|  | // This regression test checks byval arguments' debug info. | 
|  | // Radar 8367011 | 
|  | // RUN: %llvmgcc -S -O0 -g %s -o - | \ | 
|  | // RUN:    llc --disable-fp-elim -o %t.s -O0 -relocation-model=pic | 
|  | // RUN: %compile_c %t.s -o %t.o | 
|  | // RUN: %link %t.o -o %t.exe | 
|  | // RUN: echo {break get\nrun\np missing_arg.b} > %t.in | 
|  | // RUN: gdb -q -batch -n -x %t.in %t.exe | tee %t.out | \ | 
|  | // RUN:   grep {1 = 4242} | 
|  |  | 
|  | // XTARGET: x86_64-apple-darwin | 
|  |  | 
|  | class EVT { | 
|  | public: | 
|  | int a; | 
|  | int b; | 
|  | int c; | 
|  | }; | 
|  |  | 
|  | class VAL { | 
|  | public: | 
|  | int x; | 
|  | int y; | 
|  | }; | 
|  | void foo(EVT e); | 
|  | EVT bar(); | 
|  |  | 
|  | void get(int *i, unsigned dl, VAL v, VAL *p, unsigned n, EVT missing_arg) { | 
|  | //CHECK: .ascii "missing_arg" | 
|  | EVT e = bar(); | 
|  | if (dl == n) | 
|  | foo(missing_arg); | 
|  | } | 
|  |  | 
|  |  | 
|  | EVT bar() { | 
|  | EVT e; | 
|  | return e; | 
|  | } | 
|  |  | 
|  | void foo(EVT e) {} | 
|  |  | 
|  | int main(){ | 
|  | VAL v; | 
|  | EVT ma; | 
|  | ma.a = 1; | 
|  | ma.b = 4242; | 
|  | ma.c = 3; | 
|  | int i = 42; | 
|  | get (&i, 1, v, &v, 2, ma); | 
|  | return 0; | 
|  | } | 
|  |  |