Better diagnostic for malformed .org assembly directive.

Provide source line number information.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149101 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Jim Grosbach
2012-01-27 00:37:08 +00:00
parent 3b0714d993
commit ebd4c05c3c
9 changed files with 26 additions and 19 deletions

View File

@@ -232,12 +232,12 @@ void MCObjectStreamer::EmitDwarfAdvanceFrameAddr(const MCSymbol *LastLabel,
new MCDwarfCallFrameFragment(*AddrDelta, getCurrentSectionData());
}
void MCObjectStreamer::EmitValueToOffset(const MCExpr *Offset,
bool MCObjectStreamer::EmitValueToOffset(const MCExpr *Offset,
unsigned char Value) {
int64_t Res;
if (Offset->EvaluateAsAbsolute(Res, getAssembler())) {
new MCOrgFragment(*Offset, Value, getCurrentSectionData());
return;
return false;
}
MCSymbol *CurrentPos = getContext().CreateTempSymbol();
@@ -249,8 +249,9 @@ void MCObjectStreamer::EmitValueToOffset(const MCExpr *Offset,
MCBinaryExpr::Create(MCBinaryExpr::Sub, Offset, Ref, getContext());
if (!Delta->EvaluateAsAbsolute(Res, getAssembler()))
report_fatal_error("expected assembly-time absolute expression");
return true;
EmitFill(Res, Value, 0);
return false;
}
// Associate GPRel32 fixup with data and resize data area