OSDN Git Service

Don't bother creating LabelBegin for .dwo units
authorDavid Blaikie <dblaikie@gmail.com>
Sun, 2 Nov 2014 02:26:24 +0000 (02:26 +0000)
committerDavid Blaikie <dblaikie@gmail.com>
Sun, 2 Nov 2014 02:26:24 +0000 (02:26 +0000)
This would help catch cases where we might otherwise try to reference a
dwo CU label, which would be weird - because without relocations in the
dwo file it's not generally meaningful to talk about the CU offsets
there (or, if it is, we can do so in absolute terms without using a
relocation to compute it).

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

lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
lib/CodeGen/AsmPrinter/DwarfCompileUnit.h

index 885be61..63cf62c 100644 (file)
@@ -687,8 +687,9 @@ void DwarfCompileUnit::collectDeadVariables(DISubprogram SP) {
 }
 
 void DwarfCompileUnit::emitHeader(const MCSymbol *ASectionSym) const {
-  // Emit the compile units header.
-  Asm->OutStreamer.EmitLabel(LabelBegin);
+  // Don't bother labeling the .dwo unit, as its offset isn't used.
+  if (!Skeleton)
+    Asm->OutStreamer.EmitLabel(LabelBegin);
 
   DwarfUnit::emitHeader(ASectionSym);
 }
index 5f80e0c..27ed6fc 100644 (file)
@@ -158,8 +158,11 @@ public:
   void initSection(const MCSection *Section, MCSymbol *SectionSym) {
     DwarfUnit::initSection(Section);
     this->SectionSym = SectionSym;
-    LabelBegin =
-        Asm->GetTempSymbol(Section->getLabelBeginName(), getUniqueID());
+
+    // Don't bother labeling the .dwo unit, as its offset isn't used.
+    if (!Skeleton)
+      LabelBegin =
+          Asm->GetTempSymbol(Section->getLabelBeginName(), getUniqueID());
   }
 
   unsigned getLength() {