1// RUN: %clang %s -g -fexceptions %extra-clang-opts -o %t
2// RUN: %Test_jit_debuginfo %s %t
3
4// If debug info for my_number() is emitted outside function foo's scope
5// then a debugger may not be able to handle it. At least one version of
6// gdb crashes in such cases.
7
8// DEBUGGER: set breakpoint pending on
9// DEBUGGER: b nested-struct.cpp:28
10// DEBUGGER: run
11// DEBUGGER: ptype foo
12// CHECK: type = int (void)
13
14int foo() {
15  struct Local {
16    static int my_number() {
17      return 42;
18    }
19  };
20
21  int i = 0;
22  i = Local::my_number();
23  return i + 1;
24}
25
26int main() {
27  foo();
28  return 0;
29}
30