aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/CodeGen/CGDebugInfo.cpp2
-rw-r--r--test/CodeGenCXX/debug-info-class.cpp9
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;