diff options
author | Chris Lattner <sabre@nondot.org> | 2009-07-31 17:47:16 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-07-31 17:47:16 +0000 |
commit | d57fd4eb9c80dd035bd3f0f1d3e64a4a5aee358e (patch) | |
tree | f5dfb3ecf44bd901f18e4eaa1a552675ef1d1c93 | |
parent | 013162700841c12357dc27f2a4a268c967c3eb50 (diff) | |
download | external_llvm-d57fd4eb9c80dd035bd3f0f1d3e64a4a5aee358e.zip external_llvm-d57fd4eb9c80dd035bd3f0f1d3e64a4a5aee358e.tar.gz external_llvm-d57fd4eb9c80dd035bd3f0f1d3e64a4a5aee358e.tar.bz2 |
fix a bunch of failing tests now that MCContext::GetSection doesn't create sections.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77689 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | tools/llvm-mc/AsmParser.cpp | 15 | ||||
-rw-r--r-- | tools/llvm-mc/llvm-mc.cpp | 5 |
2 files changed, 16 insertions, 4 deletions
diff --git a/tools/llvm-mc/AsmParser.cpp b/tools/llvm-mc/AsmParser.cpp index 3cd2b8e..8348479 100644 --- a/tools/llvm-mc/AsmParser.cpp +++ b/tools/llvm-mc/AsmParser.cpp @@ -17,6 +17,7 @@ #include "llvm/ADT/Twine.h" #include "llvm/MC/MCContext.h" #include "llvm/MC/MCInst.h" +#include "llvm/MC/MCSection.h" #include "llvm/MC/MCStreamer.h" #include "llvm/MC/MCSymbol.h" #include "llvm/Support/SourceMgr.h" @@ -641,7 +642,12 @@ bool AsmParser::ParseDirectiveDarwinSection() { return TokError("unexpected token in '.section' directive"); Lexer.Lex(); - Out.SwitchSection(Ctx.GetSection(Section.c_str())); + // FIXME: Arch specific. + MCSection *S = Ctx.GetSection(Section); + if (S == 0) + S = MCSection::Create(Section, Ctx); + + Out.SwitchSection(S); return false; } @@ -657,7 +663,12 @@ bool AsmParser::ParseDirectiveSectionSwitch(const char *Section, SectionStr += Directives; } - Out.SwitchSection(Ctx.GetSection(Section)); + // FIXME: Arch specific. + MCSection *S = Ctx.GetSection(Section); + if (S == 0) + S = MCSection::Create(Section, Ctx); + + Out.SwitchSection(S); return false; } diff --git a/tools/llvm-mc/llvm-mc.cpp b/tools/llvm-mc/llvm-mc.cpp index 11d8b96..44a8319 100644 --- a/tools/llvm-mc/llvm-mc.cpp +++ b/tools/llvm-mc/llvm-mc.cpp @@ -13,6 +13,7 @@ //===----------------------------------------------------------------------===// #include "llvm/MC/MCContext.h" +#include "llvm/MC/MCSection.h" #include "llvm/MC/MCStreamer.h" #include "llvm/ADT/OwningPtr.h" #include "llvm/Support/CommandLine.h" @@ -189,8 +190,8 @@ static int AssembleInput(const char *ProgName) { OwningPtr<MCStreamer> Str(createAsmStreamer(Ctx, outs())); // FIXME: Target hook & command line option for initial section. - Str.get()->SwitchSection(Ctx.GetSection("__TEXT,__text," - "regular,pure_instructions")); + Str.get()->SwitchSection(MCSection::Create("__TEXT,__text," + "regular,pure_instructions", Ctx)); AsmParser Parser(SrcMgr, Ctx, *Str.get()); OwningPtr<TargetAsmParser> TAP(GetTargetAsmParser(ProgName, Parser)); |