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: run 5094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// DEBUGGER: bt 2 6094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// CHECK: function_with_a_segfault 7094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// CHECK: some_function 8094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 9094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleastatic int function_with_a_segfault() { 10094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea int* bla = 0; 11094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea *bla = 5; 12094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea return 0; 13094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea} 14094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 15094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleastatic int some_function() { 16094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea return function_with_a_segfault(); 17094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea} 18094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 19094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleastatic int foo() { 20094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea return some_function(); 21094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea} 22094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 23094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleastatic int bar() { 24094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea return foo(); 25094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea} 26094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 27094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleaint main() { 28094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea return bar(); 29094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea} 30