1094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// RUN: %clangxx %s -g -fexceptions %extra-clang-opts -o %t
2094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// RUN: %Test_jit_debuginfo %s %t
3094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// DEBUGGER: set verbose on
4094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// DEBUGGER: b __jit_debug_register_code
5094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// DEBUGGER: run
6094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// DEBUGGER: info sources
7094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// CHECK: test_info_sources.cpp
8094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// DEBUGGER: c
9094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea
10094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea
11094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleastatic int function_with_a_segfault() {
12094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea  int* bla = 0;
13094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea  *bla = 5;
14094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea  return 0;
15094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea}
16094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea
17094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleastatic int some_function() {
18094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea  return function_with_a_segfault();
19094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea}
20094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea
21094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleastatic int foo() {
22094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea  return some_function();
23094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea}
24094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea
25094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleastatic int bar() {
26094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea  return foo();
27094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea}
28094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea
29094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleaint main() {
30094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea  return bar();
31094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea}
32