Skip to content
  • Eli Bendersky's avatar
    Expose an InitToTextSection through MCStreamer. · cbb2514d
    Eli Bendersky authored
    The aim of this patch is to fix the following piece of code in the
    platform-independent AsmParser:
    
    void AsmParser::CheckForValidSection() {
      if (!ParsingInlineAsm && !getStreamer().getCurrentSection()) {
        TokError("expected section directive before assembly directive");
        Out.SwitchSection(Ctx.getMachOSection(
                            "__TEXT", "__text",
                            MCSectionMachO::S_ATTR_PURE_INSTRUCTIONS,
                            0, SectionKind::getText()));
      }
    }
    
    This was added for the "-n" option of llvm-mc.
    
    The proposed fix adds another virtual method to MCStreamer, called
    InitToTextSection. Conceptually, it's similar to the existing
    InitSections which initializes all common sections and switches to
    text. The new method is implemented by each platform streamer in a way
    that it sees fit. So AsmParser can now do this:
    
    void AsmParser::CheckForValidSection() {
      if (!ParsingInlineAsm && !getStreamer().getCurrentSection()) {
        TokError("expected section directive before assembly directive");
        Out.InitToTextSection();
      }
    }
    
    Which is much more reasonable.
    
    llvm-svn: 172450
    cbb2514d
Loading