Use the actual .text section, it is less code than building a dummy one.
authorRafael Espindola <rafael.espindola@gmail.com>
Fri, 24 Jan 2014 02:31:35 +0000 (02:31 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Fri, 24 Jan 2014 02:31:35 +0000 (02:31 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199968 91177308-0d34-0410-b5e6-96231b3b80d8

lib/LTO/LTOModule.cpp

index 4fa21ae81852b9797c6d4df7991b8b2afce5ecc1..60209539461be8888c389b8bde775a1c8db99bfe 100644 (file)
@@ -534,31 +534,10 @@ LTOModule::addPotentialUndefinedSymbol(const GlobalValue *decl, bool isFunc) {
 
 namespace {
 
-// Common infrastructure is allowed to assume the existence of a current
-// section. Since this streamer doesn't need one itself, we just provide
-// a dummy one.
-class DummySection : public MCSection {
-public:
-  DummySection() : MCSection(SV_ELF, SectionKind::getText()) {}
-
-  virtual void PrintSwitchToSection(const MCAsmInfo &MAI, raw_ostream &OS,
-                                    const MCExpr *Subsection) const {}
-
-  virtual std::string getLabelBeginName() const { return ""; }
-
-  virtual std::string getLabelEndName() const { return ""; }
-
-  virtual bool UseCodeAlign() const { return false; }
-
-  virtual bool isVirtualSection() const { return false; }
-};
-
   class RecordStreamer : public MCStreamer {
   public:
     enum State { NeverSeen, Global, Defined, DefinedGlobal, Used };
 
-    DummySection TheSection;
-
   private:
     StringMap<State> Symbols;
 
@@ -644,9 +623,7 @@ public:
       return Symbols.end();
     }
 
-    RecordStreamer(MCContext &Context) : MCStreamer(Context, 0) {
-      SwitchSection(&TheSection);
-    }
+    RecordStreamer(MCContext &Context) : MCStreamer(Context, 0) {}
 
     virtual void EmitInstruction(const MCInst &Inst) {
       // Scan for values.
@@ -686,7 +663,9 @@ public:
     // Noop calls.
     virtual void ChangeSection(const MCSection *Section,
                                const MCExpr *Subsection) {}
-    virtual void InitSections() {}
+    virtual void InitSections() {
+      SwitchSection(getContext().getObjectFileInfo()->getTextSection());
+    }
     virtual void EmitAssemblerFlag(MCAssemblerFlag Flag) {}
     virtual void EmitThumbFunc(MCSymbol *Func) {}
     virtual void EmitSymbolDesc(MCSymbol *Symbol, unsigned DescValue) {}