summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-mc/AsmParser.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-07-31 18:27:48 +0000
committerChris Lattner <sabre@nondot.org>2009-07-31 18:27:48 +0000
commit4b21d044a462f4f532127145582b9bba19bd39e1 (patch)
treeb0b809c313540ca92a06bbe7e3469061950d2cd0 /llvm/tools/llvm-mc/AsmParser.cpp
parentbc78a728ee8aded5962419809afdf24ecafb8551 (diff)
downloadbcm5719-llvm-4b21d044a462f4f532127145582b9bba19bd39e1.tar.gz
bcm5719-llvm-4b21d044a462f4f532127145582b9bba19bd39e1.zip
fix some more issues where we expected GetSection to do "get or create"
llvm-svn: 77700
Diffstat (limited to 'llvm/tools/llvm-mc/AsmParser.cpp')
-rw-r--r--llvm/tools/llvm-mc/AsmParser.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/llvm/tools/llvm-mc/AsmParser.cpp b/llvm/tools/llvm-mc/AsmParser.cpp
index 8348479240d..90a9a33593c 100644
--- a/llvm/tools/llvm-mc/AsmParser.cpp
+++ b/llvm/tools/llvm-mc/AsmParser.cpp
@@ -1052,8 +1052,13 @@ bool AsmParser::ParseDirectiveDarwinZerofill() {
// If this is the end of the line all that was wanted was to create the
// the section but with no symbol.
if (Lexer.is(AsmToken::EndOfStatement)) {
+ // FIXME: Arch specific.
+ MCSection *S = Ctx.GetSection(Section);
+ if (S == 0)
+ S = MCSection::Create(Section, Ctx);
+
// Create the zerofill section but no symbol
- Out.EmitZerofill(Ctx.GetSection(Section.c_str()));
+ Out.EmitZerofill(S);
return false;
}
@@ -1107,8 +1112,13 @@ bool AsmParser::ParseDirectiveDarwinZerofill() {
if (Sym->getSection() || Ctx.GetSymbolValue(Sym))
return Error(IDLoc, "invalid symbol redefinition");
+ // FIXME: Arch specific.
+ MCSection *S = Ctx.GetSection(Section);
+ if (S == 0)
+ S = MCSection::Create(Section, Ctx);
+
// Create the zerofill Symbol with Size and Pow2Alignment
- Out.EmitZerofill(Ctx.GetSection(Section.c_str()), Sym, Size, Pow2Alignment);
+ Out.EmitZerofill(S, Sym, Size, Pow2Alignment);
return false;
}
OpenPOWER on IntegriCloud