OSDN Git Service

Ignore variable if scope info is not available.
authorDevang Patel <dpatel@apple.com>
Tue, 10 Nov 2009 23:20:04 +0000 (23:20 +0000)
committerDevang Patel <dpatel@apple.com>
Tue, 10 Nov 2009 23:20:04 +0000 (23:20 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86753 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/AsmPrinter/DwarfDebug.cpp

index 82b48ac..2849723 100644 (file)
@@ -1453,7 +1453,8 @@ DIE *DwarfDebug::UpdateSubprogramScopeDIE(MDNode *SPNode) {
    DIGlobalVariable GV(N);
    if (GV.getContext().getNode() == SPNode) {
      DIE *ScopedGVDie = CreateGlobalVariableDIE(ModuleCU, GV);
-     SPDie->AddChild(ScopedGVDie);
+     if (ScopedGVDie)
+       SPDie->AddChild(ScopedGVDie);
    }
  }
  return SPDie;
@@ -2076,7 +2077,9 @@ void DwarfDebug::CollectVariableInfo() {
       ConcreteScopes.lookup(ScopeLoc.getOrigLocation().getNode());
     if (!Scope)
       Scope = DbgScopeMap.lookup(ScopeLoc.getScope().getNode()); 
-    assert (Scope && "Unable to find variable scope!");
+    // If variable scope is not found then skip this variable.
+    if (!Scope)
+      continue;
 
     DbgVariable *RegVar = new DbgVariable(DV, VP.first);
     Scope->AddVariable(RegVar);