Ignore variable if scope info is not available.
[oota-llvm.git] / lib / CodeGen / AsmPrinter / DwarfDebug.cpp
index 82b48acbbb8a12dc268306bf51bb9faa8f68bc37..2849723af3f9d64eb6f28ca27dbd71e5e5ac236f 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);