DIEHashing: Provide an assert for unreachable functionality regarding friends.
authorDavid Blaikie <dblaikie@gmail.com>
Tue, 22 Oct 2013 20:28:55 +0000 (20:28 +0000)
committerDavid Blaikie <dblaikie@gmail.com>
Tue, 22 Oct 2013 20:28:55 +0000 (20:28 +0000)
Since (as of r190716) Clang no longer emits debug info for C++ friend
declarations (and it seems GCC never has/does, which was the motivation
for the Clang change), there's no actual reachable case for implementing
the part of DWARF 4, Section 7.27 part 5 that pertains to friends.

Leave an assert here so that if/when we do have a client producing
friends and using type units, we can fill in the gap and add appropriate
(unit and feature) tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193193 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/AsmPrinter/DIEHash.cpp

index 9a1f966c8d003a8a974dd7abdae4c72a481fb6d5..ea5cbad346a2875701550190ecfdb7a7b4c2e3f6 100644 (file)
@@ -200,6 +200,9 @@ void DIEHash::hashAttribute(AttrEntry Attr, dwarf::Tag Tag) {
   if (const DIEEntry *EntryAttr = dyn_cast<DIEEntry>(Value)) {
     DIE *Entry = EntryAttr->getEntry();
 
+    assert(Tag != dwarf::DW_TAG_friend && "No current LLVM clients emit friend "
+                                          "tags. Add support here when there's "
+                                          "a use case");
     // Step 5
     // If the tag in Step 3 is one of [the below tags]
     if ((Tag == dwarf::DW_TAG_pointer_type ||