Author: fjricci
Date: Thu May 19 15:35:07 2016
New Revision: 270112

URL: http://llvm.org/viewvc/llvm-project?rev=270112&view=rev
Log:
This is a cherry-pick of commit r260618

Author:    Greg Clayton <gclay...@apple.com>
Date:      Thu Feb 11 23:36:57 2016 +0000

Removed a bad assertion:

assert(((SymbolFileDWARF*)m_ast.GetSymbolFile())->UserIDMatches(die.GetDIERef().GetUID())
 &&
       "Adding incorrect type to forward declaration map");

The problem is that "m_ast.GetSymbolFile()" can return a 
SymbolFileDWARFDebugMap. The code is doing the right thing if the assertion is 
ignored.

<rdar://problem/24437972>

Modified:
    
lldb/branches/release_38/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp

Modified: 
lldb/branches/release_38/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/branches/release_38/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp?rev=270112&r1=270111&r2=270112&view=diff
==============================================================================
--- 
lldb/branches/release_38/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
 (original)
+++ 
lldb/branches/release_38/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
 Thu May 19 15:35:07 2016
@@ -863,8 +863,10 @@ DWARFASTParserClang::ParseTypeFromDWARF
                             // When the definition needs to be defined.
                             
assert(!dwarf->GetForwardDeclClangTypeToDie().count(ClangASTContext::RemoveFastQualifiers(clang_type).GetOpaqueQualType())
 &&
                                    "Type already in the forward declaration 
map!");
-                            
assert(((SymbolFileDWARF*)m_ast.GetSymbolFile())->UserIDMatches(die.GetDIERef().GetUID())
 &&
-                                   "Adding incorrect type to forward 
declaration map");
+                            // Can't assume m_ast.GetSymbolFile() is actually 
a SymbolFileDWARF, it can be a
+                            // SymbolFileDWARFDebugMap for Apple binaries.
+                            
//assert(((SymbolFileDWARF*)m_ast.GetSymbolFile())->UserIDMatches(die.GetDIERef().GetUID())
 &&
+                            //       "Adding incorrect type to forward 
declaration map");
                             
dwarf->GetForwardDeclDieToClangType()[die.GetDIE()] = 
clang_type.GetOpaqueQualType();
                             
dwarf->GetForwardDeclClangTypeToDie()[ClangASTContext::RemoveFastQualifiers(clang_type).GetOpaqueQualType()]
 = die.GetDIERef();
                             m_ast.SetHasExternalStorage 
(clang_type.GetOpaqueQualType(), true);


_______________________________________________
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to