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