diff options
author | Adrian Prantl <aprantl@apple.com> | 2016-08-17 18:27:24 +0000 |
---|---|---|
committer | Adrian Prantl <aprantl@apple.com> | 2016-08-17 18:27:24 +0000 |
commit | 26cb1d266081d85d6fe410b1f7fa741ba2a37dda (patch) | |
tree | 1c95a689ae900318e13e25e6530cdae751483e53 /clang/test/Modules/ModuleDebugInfo.cpp | |
parent | b35be69ff5092d914419609820d0eb0d7c442b99 (diff) | |
download | llvm-26cb1d266081d85d6fe410b1f7fa741ba2a37dda.zip llvm-26cb1d266081d85d6fe410b1f7fa741ba2a37dda.tar.gz llvm-26cb1d266081d85d6fe410b1f7fa741ba2a37dda.tar.bz2 |
Module debug info: Fix a bug in handling record decls without fields.
The previous condition would erroneously mark all CXXRecordDecls
that didn't have any fields as being defined in a clang module.
This patch fixes the condition to only apply to explicit template
instantiations.
<rdar://problem/27771823>
llvm-svn: 278952
Diffstat (limited to 'clang/test/Modules/ModuleDebugInfo.cpp')
-rw-r--r-- | clang/test/Modules/ModuleDebugInfo.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/clang/test/Modules/ModuleDebugInfo.cpp b/clang/test/Modules/ModuleDebugInfo.cpp index 021283a..1bc0613 100644 --- a/clang/test/Modules/ModuleDebugInfo.cpp +++ b/clang/test/Modules/ModuleDebugInfo.cpp @@ -49,6 +49,7 @@ // This type is anchored by a function parameter. // CHECK: !DICompositeType(tag: DW_TAG_class_type, name: "A<void>" +// CHECK-SAME: elements: // CHECK-SAME: templateParams: // CHECK-SAME: identifier: "_ZTSN8DebugCXX1AIJvEEE") @@ -58,6 +59,7 @@ // This type is anchored by an explicit template instantiation. // CHECK: !DICompositeType(tag: DW_TAG_class_type, // CHECK-SAME: name: "Template<int, DebugCXX::traits<int> >" +// CHECK-SAME: elements: // CHECK-SAME: templateParams: // CHECK-SAME: identifier: "_ZTSN8DebugCXX8TemplateIiNS_6traitsIiEEEE") @@ -66,11 +68,13 @@ // CHECK-SAME: identifier: "_ZTSN8DebugCXX6traitsIiEE") // CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "traits<float>" +// CHECK-SAME: elements: // CHECK-SAME: templateParams: // CHECK-SAME: identifier: "_ZTSN8DebugCXX6traitsIfEE") // CHECK: !DICompositeType(tag: DW_TAG_class_type, // CHECK-SAME: name: "Template<long, DebugCXX::traits<long> >" +// CHECK-SAME: elements: // CHECK-SAME: templateParams: // CHECK-SAME: identifier: "_ZTSN8DebugCXX8TemplateIlNS_6traitsIlEEEE") @@ -135,4 +139,10 @@ // CHECK-SAME: flags: DIFlagFwdDecl // CHECK-SAME: identifier: "_ZTSN21FwdDeclTemplateMemberIiE6MemberE") +// CHECK: !DIDerivedType(tag: DW_TAG_typedef, name: "SpecializedBase", +// CHECK-SAME: baseType: ![[SPECIALIZEDBASE:.*]]) +// CHECK: ![[SPECIALIZEDBASE]] = !DICompositeType(tag: DW_TAG_class_type, +// CHECK-SAME: name: "WithSpecializedBase<float>", +// CHECK-SAME: flags: DIFlagFwdDecl, + // CHECK-NEG-NOT: !DICompositeType(tag: DW_TAG_structure_type, name: "PureForwardDecl" |