DebugInfo: Omit pubnames/pubtypes when compiling with -gmlt
authorDavid Blaikie <dblaikie@gmail.com>
Wed, 12 Mar 2014 03:34:38 +0000 (03:34 +0000)
committerDavid Blaikie <dblaikie@gmail.com>
Wed, 12 Mar 2014 03:34:38 +0000 (03:34 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@203634 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/AsmPrinter/DwarfUnit.cpp
test/DebugInfo/cu-line-tables.ll

index e046bf417b61800af9ee045ac6100649e6848aad..fe5ded34cbebb0439e1b16e6ab201771e5b71bf9 100644 (file)
@@ -998,8 +998,9 @@ void DwarfUnit::updateAcceleratorTables(DIScope Context, DIType Ty,
     unsigned Flags = IsImplementation ? dwarf::DW_FLAG_type_implementation : 0;
     addAccelType(Ty.getName(), std::make_pair(TyDIE, Flags));
 
-    if (!Context || Context.isCompileUnit() || Context.isFile() ||
-        Context.isNameSpace())
+    if ((!Context || Context.isCompileUnit() || Context.isFile() ||
+         Context.isNameSpace()) &&
+        getCUNode().getEmissionKind() != DIBuilder::LineTablesOnly)
       GlobalTypes[getParentContextString(Context) + Ty.getName().str()] = TyDIE;
   }
 }
@@ -1064,6 +1065,8 @@ void DwarfUnit::addAccelType(StringRef Name,
 
 /// addGlobalName - Add a new global name to the compile unit.
 void DwarfUnit::addGlobalName(StringRef Name, DIE *Die, DIScope Context) {
+  if (getCUNode().getEmissionKind() == DIBuilder::LineTablesOnly)
+    return;
   std::string FullName = getParentContextString(Context) + Name.str();
   GlobalNames[FullName] = Die;
 }
index 493184dba1dd9eab0bb7f8567e4f04b59fcf7efe..2179bd57b8287f7eef10d1c9ec173039bc083baa 100644 (file)
 ; CHECK: .debug_ranges contents:
 ; CHECK-NOT: 00000000 <End of list>
 
+; CHECK: .debug_pubnames contents:
+; CHECK-NOT: Offset
+
+; CHECK: .debug_pubtypes contents:
+; CHECK-NOT: Offset
+
 ; Function Attrs: nounwind uwtable
 define i32 @f(i32 %a) #0 {
 entry: