llvm-project/clang/test/CodeGenCXX/debug-info-class.cpp
David Blaikie 831c9927e8 Debug Info: Emit vtables pointer members as artificial.
I wasn't sure where to put the test case for this, but this seemed like as good
a place as any. I had to reorder the tests here to make them legible while
still matching the order of metadata output in the IR file (for some reason
making it virtual changed the ordering).

Relevant commit to fix up LLVM to actually respect 'artificial' member
variables is coming once I write up a test case for it.

llvm-svn: 170154
2012-12-13 22:29:06 +00:00

30 lines
571 B
C++

// RUN: %clang -emit-llvm -g -S %s -o - | FileCheck %s
struct foo;
void func(foo *f) { // CHECK: DW_TAG_structure_type
}
class bar;
void func(bar *f) { // CHECK: DW_TAG_class_type
}
union baz;
void func(baz *f) { // CHECK: DW_TAG_union_type
}
class B { // CHECK: DW_TAG_class_type
public:
virtual ~B();
// CHECK: metadata !"_vptr$B", {{.*}}, i32 64, metadata !{{.*}}} ; [ DW_TAG_member ]
};
struct A { // CHECK: DW_TAG_structure_type
int one;
static const int HdrSize = 52; // CHECK: HdrSize
int two;
A() {
int x = 1;
}
};
int main() {
A a;
B b;
}