1*1364750dSJames Henderson // RUN: %clangxx %target_itanium_abi_host_triple -O0 -g %s -c -o %t.o 2*1364750dSJames Henderson // RUN: %test_debuginfo %s %t.o 3*1364750dSJames Henderson // Radar 9440721 4*1364750dSJames Henderson // If debug info for my_number() is emitted outside function foo's scope 5*1364750dSJames Henderson // then a debugger may not be able to handle it. At least one version of 6*1364750dSJames Henderson // gdb crashes in such cases. 7*1364750dSJames Henderson 8*1364750dSJames Henderson // DEBUGGER: ptype foo 9*1364750dSJames Henderson // CHECK: int (void) 10*1364750dSJames Henderson 11*1364750dSJames Henderson int foo() { 12*1364750dSJames Henderson struct Local { 13*1364750dSJames Henderson static int my_number() { 14*1364750dSJames Henderson return 42; 15*1364750dSJames Henderson } 16*1364750dSJames Henderson }; 17*1364750dSJames Henderson 18*1364750dSJames Henderson int i = 0; 19*1364750dSJames Henderson i = Local::my_number(); 20*1364750dSJames Henderson return i + 1; 21*1364750dSJames Henderson } 22