diff options
-rw-r--r-- | lib/CodeGen/CGDebugInfo.cpp | 2 | ||||
-rw-r--r-- | test/CodeGenCXX/debug-info-class.cpp | 9 |
2 files changed, 8 insertions, 3 deletions
diff --git a/lib/CodeGen/CGDebugInfo.cpp b/lib/CodeGen/CGDebugInfo.cpp index f3468f29c1..844514be27 100644 --- a/lib/CodeGen/CGDebugInfo.cpp +++ b/lib/CodeGen/CGDebugInfo.cpp @@ -1199,7 +1199,7 @@ CollectVTableInfo(const CXXRecordDecl *RD, llvm::DIFile Unit, unsigned Size = CGM.getContext().getTypeSize(CGM.getContext().VoidPtrTy); llvm::DIType VPTR = DBuilder.createMemberType(Unit, getVTableName(RD), Unit, - 0, Size, 0, 0, 0, + 0, Size, 0, 0, llvm::DIDescriptor::FlagArtificial, getOrCreateVTablePtrType(Unit)); EltTys.push_back(VPTR); } diff --git a/test/CodeGenCXX/debug-info-class.cpp b/test/CodeGenCXX/debug-info-class.cpp index 062227a023..131693b21a 100644 --- a/test/CodeGenCXX/debug-info-class.cpp +++ b/test/CodeGenCXX/debug-info-class.cpp @@ -8,6 +8,11 @@ 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 @@ -16,8 +21,8 @@ struct A { // CHECK: DW_TAG_structure_type int x = 1; } }; -class B { // CHECK: DW_TAG_class_type -}; + + int main() { A a; B b; |