1094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// RUN: %clangxx %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:45 5094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// DEBUGGER: run 6094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// DEBUGGER: info locals 7094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// CHECK: pf = 0x 8094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// CHECK: s = {f = 0.00100000005, f2 = {10000, 100.5}} 9094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// CHECK: us = 65535 10094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// CHECK: f = 0 11094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// CHECK: d = {{[{][{]}}0, 1}, {2, 3{{[}][}]}} 12094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// CHECK: l = 0 13094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// CHECK: result = 0 14094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// DEBUGGER: continue 15094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 16094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleastruct float_struct { 17094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea float f; 18094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea float f2[2]; 19094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea} compound_float; 20094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 21094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 22094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleaint main(int argc, char* argv[]) 23094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea{ 24094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea float f = 0.f; 25094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea float *pf = &f; 26094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 27094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea double d[2][2] = {{0, 1}, {2, 3.0}}; 28094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea struct float_struct s; 29094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 30094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea unsigned short us = -1; 31094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea const unsigned long l = static_cast<unsigned long>(-1.0e8f); 32094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 33094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea { 34094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea int** ppn = 0; 35094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea if (ppn) { 36094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea return -1; 37094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea } 38094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea } 39094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 40094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea s.f = 10e-4f; 41094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea s.f2[0] = 1e4f; 42094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea s.f2[1] = 100.5f; 43094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 44094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea double result = pf[0] * d[1][1] * s.f * us * l; 45094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea return (result == 0 ? 0 : -1); 46094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea} 47