Modify DwarfDebug::constructImportedEntityDIE to return rather than insert into the...
authorDavid Blaikie <dblaikie@gmail.com>
Sun, 31 Aug 2014 05:41:15 +0000 (05:41 +0000)
committerDavid Blaikie <dblaikie@gmail.com>
Sun, 31 Aug 2014 05:41:15 +0000 (05:41 +0000)
Another step towards improving lexical_scope handling

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

lib/CodeGen/AsmPrinter/DwarfDebug.cpp
lib/CodeGen/AsmPrinter/DwarfDebug.h

index 1eb8af938a3dffed6eaf71ef23c78a4a86d2be3e..56ad9666e95ba6a8373622bdb1355ea915c8cc5b 100644 (file)
@@ -603,7 +603,8 @@ std::unique_ptr<DIE> DwarfDebug::constructScopeDIE(DwarfCompileUnit &TheCU,
     assert(ScopeDIE && "Scope DIE should not be null.");
     for (ImportedEntityMap::const_iterator i = Range.first; i != Range.second;
          ++i)
-      constructImportedEntityDIE(TheCU, i->second, *ScopeDIE);
+      ScopeDIE->addChild(
+          constructImportedEntityDIE(TheCU, DIImportedEntity(i->second)));
   }
 
   // Add children
@@ -683,21 +684,14 @@ DwarfCompileUnit &DwarfDebug::constructDwarfCompileUnit(DICompileUnit DIUnit) {
   return NewCU;
 }
 
-void DwarfDebug::constructImportedEntityDIE(DwarfCompileUnit &TheCU,
-                                            const MDNode *N) {
+void DwarfDebug::constructAndAddImportedEntityDIE(DwarfCompileUnit &TheCU,
+                                                  const MDNode *N) {
   DIImportedEntity Module(N);
   assert(Module.Verify());
   if (DIE *D = TheCU.getOrCreateContextDIE(Module.getContext()))
     D->addChild(constructImportedEntityDIE(TheCU, Module));
 }
 
-void DwarfDebug::constructImportedEntityDIE(DwarfCompileUnit &TheCU,
-                                            const MDNode *N, DIE &Context) {
-  DIImportedEntity Module(N);
-  assert(Module.Verify());
-  Context.addChild(constructImportedEntityDIE(TheCU, Module));
-}
-
 std::unique_ptr<DIE>
 DwarfDebug::constructImportedEntityDIE(DwarfCompileUnit &TheCU,
                                        const DIImportedEntity &Module) {
@@ -785,7 +779,7 @@ void DwarfDebug::beginModule() {
     // Emit imported_modules last so that the relevant context is already
     // available.
     for (unsigned i = 0, e = ImportedEntities.getNumElements(); i != e; ++i)
-      constructImportedEntityDIE(CU, ImportedEntities.getElement(i));
+      constructAndAddImportedEntityDIE(CU, ImportedEntities.getElement(i));
   }
 
   // Tell MMI that we have debug info.
index bfc288dda2b845f42e4c20ac9c8f951a776ae838..b5a20b2b907d2110c2448dd2b968736f42b6bba8 100644 (file)
@@ -508,11 +508,8 @@ class DwarfDebug : public AsmPrinterHandler {
   DwarfCompileUnit &constructDwarfCompileUnit(DICompileUnit DIUnit);
 
   /// \brief Construct imported_module or imported_declaration DIE.
-  void constructImportedEntityDIE(DwarfCompileUnit &TheCU, const MDNode *N);
-
-  /// \brief Construct import_module DIE.
-  void constructImportedEntityDIE(DwarfCompileUnit &TheCU, const MDNode *N,
-                                  DIE &Context);
+  void constructAndAddImportedEntityDIE(DwarfCompileUnit &TheCU,
+                                        const MDNode *N);
 
   /// \brief Construct import_module DIE.
   std::unique_ptr<DIE>