1// RUN: %clangxx --target=x86_64-pc-linux -flimit-debug-info -o %t -c %s -g
2// RUN: %lldb %t -o "target var a" -o "expr -- var" -o exit | FileCheck %s
3
4// This forces lldb to attempt to complete the type A. Since it has no
5// definition it will fail.
6// CHECK: target var a
7// CHECK: (A) a = <incomplete type "A">
8
9// Now attempt to display the second variable, which will try to add a typedef
10// to the incomplete type. Make sure that succeeds. Use the expression command
11// to make sure the resulting AST can be imported correctly.
12// CHECK: expr -- var
13// CHECK: (A::X) $0 = 0
14
15struct A {
16 // Declare the constructor, but don't define it to avoid emitting the
17 // definition in the debug info.
18 A();
19 using X = int;
20};
21
22A a;
23A::X var;
24

source code of lldb/test/Shell/SymbolFile/DWARF/x86/typedef-in-incomplete-type.cpp