| // RUN: %clang %s -g -fexceptions %extra-clang-opts -o %t |
| // RUN: %Test_jit_debuginfo %s %t |
| // DEBUGGER: set breakpoint pending on |
| // DEBUGGER: break test_parameters |
| // DEBUGGER: run |
| // DEBUGGER: step |
| // DEBUGGER: print pf[0] |
| // CHECK: $1 = 0 |
| // DEBUGGER: print ppd[1][1] |
| // CHECK: $2 = 3 |
| // DEBUGGER: print s |
| // CHECK: $3 = (char_struct &) |
| // CHECK: {c = 97 'a', c2 = "01"} |
| // DEBUGGER: print ppn |
| // CHECK: $4 = (int **) 0x0 |
| // DEBUGGER: print us |
| // CHECK: $5 = 10 |
| // DEBUGGER: print l |
| // CHECK: $6 = 42 |
| // DEBUGGER: continue |
| |
| struct char_struct { |
| char c; |
| char c2[2]; |
| } compound_char; |
| |
| |
| double test_parameters(float* pf, double ppd[][2], struct char_struct& s, int** ppn = 0, unsigned short us = 10u, const unsigned long l = 42) |
| { |
| double result = pf[0] * ppd[1][1] * s.c * us * l; |
| return result; |
| } |
| |
| int main(int argc, char* argv[]) |
| { |
| struct char_struct s; |
| float f = 0.f; |
| double d[2][2] = {{0, 1}, {2, 3.0}}; |
| |
| s.c = 'a'; |
| s.c2[0] = '0'; |
| s.c2[1] = '1'; |
| |
| double result = test_parameters(&f, d, s); |
| return(result == 0 ? 0 : -1); |
| } |