123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- // RUN: %clangxx %s -g -fexceptions %extra-clang-opts -o %t
- // RUN: %Test_jit_debuginfo %s %t
- // DEBUGGER: set breakpoint pending on
- // DEBUGGER: break function_test
- // DEBUGGER: break %s:47
- // DEBUGGER: break %s:55
- // DEBUGGER: break %s:60
- // DEBUGGER: break %s:66
- // DEBUGGER: break %s:69
- // DEBUGGER: run
- // DEBUGGER: bt 2
- // CHECK: #0
- // CHECK: function_test
- // CHECK: #1
- // CHECK: main
- // DEBUGGER: continue
- // DEBUGGER: print j
- // CHECK: $1 = 0
- // DEBUGGER: step
- // DEBUGGER: print j
- // CHECK: $2 = 1
- // DEBUGGER: continue
- // DEBUGGER: print j
- // CHECK: $3 = -1
- // DEBUGGER: continue
- // DEBUGGER: bt 3
- // CHECK: #0
- // CHECK: inline_test
- // CHECK: #1
- // CHECK: function_test
- // CHECK: #2
- // CHECK: main
- // DEBUGGER: continue
- // DEBUGGER: print j
- // CHECK: $4 = 2
- // DEBUGGER: continue
- // DEBUGGER: print j
- // CHECK: $5 = 0
- // DEBUGGER: continue
- __attribute__((noinline)) static int function_test();
- __attribute__((always_inline)) static int inline_test();
- int inline_test()
- {
- int i = 0;
- i++;
- return i;
- }
- int function_test(int c)
- {
- int i, j = 0;
- for (i = 0; i < c; i++) {
- j++;
- }
- {
- int j = -1;
- j++;
- }
- j += inline_test();
- if (j > 0) {
- j = 0;
- }
- return j;
- }
- int main(int argc, char** argv)
- {
- return function_test(1);
- }
|