1094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// RUN: %clangxx %s -O0 -g -fexceptions %extra-clang-opts -o %t 2094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// RUN: %Test_jit_debuginfo %s %t 3094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// XFAIL: host-bcc 4094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// (This testcase is expected to fail because of bcc optimizations that 5094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// are enabled by default in the absence of metadata) 6094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 7094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// DEBUGGER: set breakpoint pending on 8094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// DEBUGGER: break test_struct 9094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// DEBUGGER: run 10094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// DEBUGGER: step 11094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// DEBUGGER: print s 12094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// CHECK: $1 = {n = 10, n2 = {20, 21}} 13094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// DEBUGGER: continue 14094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 15094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleastruct int_struct { 16094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea int n; 17094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea int n2[2]; 18094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea} compound_int; 19094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 20094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 21094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleaint test_struct(struct int_struct s) 22094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea{ 23094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea s.n2[1]++; 24094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea return s.n > s.n2[0] ? s.n : s.n2[0]; 25094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea} 26094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 27094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleaint main(int argc, char* argv[]) 28094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea{ 29094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea struct int_struct s; 30094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 31094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea s.n = 10; 32094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea s.n2[0] = 20; 33094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea s.n2[1] = 21; 34094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 35094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea int result = test_struct(s); 36094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea return(result == 20 ? 0 : -1); 37094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea} 38