1094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// RUN: %clang %s -g -fexceptions %extra-clang-opts -o %t 2094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// RUN: %Test_jit_debuginfo %s %t 3094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// DEBUGGER: set breakpoint pending on 4094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// DEBUGGER: break %s:42 5094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// DEBUGGER: run 6094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// DEBUGGER: print pf[0] 7094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// CHECK: $1 = 0 8094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// DEBUGGER: print d[0][0] 9094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// CHECK: $2 = 0 10094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// DEBUGGER: print us 11094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// CHECK: $3 = 65535 12094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// DEBUGGER: print l 13094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// CHECK: $4 = 1 14094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// DEBUGGER: print f 15094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// CHECK: $5 = 10 16094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// DEBUGGER: continue 17094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 18094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleastruct double_struct { 19094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea double d; 20094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea double d2[2]; 21094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea} compound_double; 22094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 23094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 24094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleafloat f = 0.f; 25094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleafloat *pf = &f; 26094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 27094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleaconst double d[2][2] = {{0, 1}, {2, 3.0}}; 28094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleastruct double_struct s; 29094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 30094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleaunsigned short us = -1; 31094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleaconst unsigned long l = 1; 32094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 33094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleaint main(int argc, char* argv[]) 34094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea{ 35094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea int f = 10; // shadow 36094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 37094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea s.d = 10e-4; 38094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea s.d2[0] = 1e4; 39094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea s.d2[1] = 100.5; 40094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 41094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea double result = pf[0] * d[1][1] * s.d * us * l; 42094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea return (result == 0 ? 0 : -1); 43094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea} 44