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