aboutsummaryrefslogtreecommitdiff
path: root/tools/llvm-mc/AsmParser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/llvm-mc/AsmParser.cpp')
-rw-r--r--tools/llvm-mc/AsmParser.cpp26
1 files changed, 17 insertions, 9 deletions
diff --git a/tools/llvm-mc/AsmParser.cpp b/tools/llvm-mc/AsmParser.cpp
index 9f219925b0..2c855d950f 100644
--- a/tools/llvm-mc/AsmParser.cpp
+++ b/tools/llvm-mc/AsmParser.cpp
@@ -1287,10 +1287,15 @@ 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: CACHE THIS.
+ MCSection *S = 0; //Ctx.GetSection(Section);
+ if (S == 0)
+ S = MCSectionMachO::Create(Segment, Section,
+ MCSectionMachO::S_ZEROFILL, 0,
+ SectionKind(), Ctx);
+
// Create the zerofill section but no symbol
- Out.EmitZerofill(getMachOSection(Segment, Section,
- MCSectionMachO::S_ZEROFILL, 0,
- SectionKind()));
+ Out.EmitZerofill(S);
return false;
}
@@ -1343,13 +1348,16 @@ bool AsmParser::ParseDirectiveDarwinZerofill() {
if (!Sym->isUndefined())
return Error(IDLoc, "invalid symbol redefinition");
- // Create the zerofill Symbol with Size and Pow2Alignment
- //
// FIXME: Arch specific.
- Out.EmitZerofill(getMachOSection(Segment, Section,
- MCSectionMachO::S_ZEROFILL, 0,
- SectionKind()),
- Sym, Size, Pow2Alignment);
+ // FIXME: CACHE.
+ MCSection *S = 0; //Ctx.GetSection(Section);
+ if (S == 0)
+ S = MCSectionMachO::Create(Segment, Section,
+ MCSectionMachO::S_ZEROFILL, 0,
+ SectionKind(), Ctx);
+
+ // Create the zerofill Symbol with Size and Pow2Alignment
+ Out.EmitZerofill(S, Sym, Size, Pow2Alignment);
return false;
}