summaryrefslogtreecommitdiffstats
path: root/clang/test/Modules/ExtDebugInfo.cpp
diff options
context:
space:
mode:
authorAdrian Prantl <aprantl@apple.com>2016-01-19 18:02:47 +0000
committerAdrian Prantl <aprantl@apple.com>2016-01-19 18:02:47 +0000
commite5238d2a82448674567cb47f7ca0486f36c028a9 (patch)
tree00be5bed8c158470407fb4b6baf98c30289586b2 /clang/test/Modules/ExtDebugInfo.cpp
parentb541a3488fe5713ce2b32c0ae3dda15ee7984b26 (diff)
downloadbcm5719-llvm-e5238d2a82448674567cb47f7ca0486f36c028a9.tar.gz
bcm5719-llvm-e5238d2a82448674567cb47f7ca0486f36c028a9.zip
Module Debugging: Defer the emission of anonymous tag decls
until we are visiting their declcontext. This fixes a regression introduced in r256962: When building debug info for a typdef'd anonymous tag type, we would be visiting the inner anonymous type first thus creating a "typedef changes linkage of anonymous type, but linkage was already computed" error. rdar://problem/24199640 llvm-svn: 258152
Diffstat (limited to 'clang/test/Modules/ExtDebugInfo.cpp')
-rw-r--r--clang/test/Modules/ExtDebugInfo.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/clang/test/Modules/ExtDebugInfo.cpp b/clang/test/Modules/ExtDebugInfo.cpp
index b255042cbfe..b0bca88b89e 100644
--- a/clang/test/Modules/ExtDebugInfo.cpp
+++ b/clang/test/Modules/ExtDebugInfo.cpp
@@ -35,6 +35,10 @@ enum {
auto anon_enum = DebugCXX::e2;
char _anchor = anon_enum + conflicting_uid;
+TypedefUnion tdu;
+TypedefEnum tde;
+TypedefStruct tds;
+
// CHECK: ![[NS:.*]] = !DINamespace(name: "DebugCXX", scope: ![[MOD:[0-9]+]],
// CHECK: ![[MOD]] = !DIModule(scope: null, name: {{.*}}DebugCXX
@@ -62,6 +66,13 @@ char _anchor = anon_enum + conflicting_uid;
// CHECK-SAME: flags: DIFlagFwdDecl,
// CHECK-SAME: identifier: "_ZTSN8DebugCXX8TemplateIfNS_6traitsIfEEEE")
+// CHECK: !DICompositeType(tag: DW_TAG_union_type,
+// CHECK-SAME: flags: DIFlagFwdDecl, identifier: "_ZTS12TypedefUnion")
+// CHECK: !DICompositeType(tag: DW_TAG_enumeration_type,
+// CHECK-SAME: flags: DIFlagFwdDecl, identifier: "_ZTS11TypedefEnum")
+// CHECK: !DICompositeType(tag: DW_TAG_structure_type,
+// CHECK-SAME: flags: DIFlagFwdDecl, identifier: "_ZTS13TypedefStruct")
+
// CHECK: !DIDerivedType(tag: DW_TAG_member, name: "static_member",
// CHECK-SAME: scope: !"_ZTSN8DebugCXX6StructE"
OpenPOWER on IntegriCloud