xref: /llvm-project/cross-project-tests/debuginfo-tests/llgdb-tests/nested-struct.cpp (revision 5257efdc5b30212b62a9d68857dc8e66d0e1a863)
11364750dSJames Henderson // RUN: %clangxx %target_itanium_abi_host_triple -O0 -g %s -c -o %t.o
21364750dSJames Henderson // RUN: %test_debuginfo %s %t.o
3*5257efdcSOCHyams // XFAIL: !system-darwin && gdb-clang-incompatibility
41364750dSJames Henderson // Radar 9440721
51364750dSJames Henderson // If debug info for my_number() is emitted outside function foo's scope
61364750dSJames Henderson // then a debugger may not be able to handle it. At least one version of
71364750dSJames Henderson // gdb crashes in such cases.
81364750dSJames Henderson 
91364750dSJames Henderson // DEBUGGER: ptype foo
101364750dSJames Henderson // CHECK: int (void)
111364750dSJames Henderson 
foo()121364750dSJames Henderson int foo() {
131364750dSJames Henderson   struct Local {
141364750dSJames Henderson     static int my_number() {
151364750dSJames Henderson       return 42;
161364750dSJames Henderson     }
171364750dSJames Henderson   };
181364750dSJames Henderson 
191364750dSJames Henderson   int i = 0;
201364750dSJames Henderson   i = Local::my_number();
211364750dSJames Henderson   return i + 1;
221364750dSJames Henderson }
23