1094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// RUN: %clang %s -g -fexceptions %extra-clang-opts -o %t 2094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// RUN: %Test_jit_debuginfo %s %t 3094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 4094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// If debug info for my_number() is emitted outside function foo's scope 5094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// then a debugger may not be able to handle it. At least one version of 6094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// gdb crashes in such cases. 7094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 8094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// DEBUGGER: set breakpoint pending on 9094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// DEBUGGER: b nested-struct.cpp:28 10094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// DEBUGGER: run 11094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// DEBUGGER: ptype foo 12094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// CHECK: type = int (void) 13094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 14094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleaint foo() { 15094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea struct Local { 16094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea static int my_number() { 17094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea return 42; 18094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea } 19094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea }; 20094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 21094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea int i = 0; 22094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea i = Local::my_number(); 23094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea return i + 1; 24094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea} 25094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 26094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleaint main() { 27094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea foo(); 28094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea return 0; 29094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea} 30