mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-24 23:28:41 +00:00
Fix the assembler to print a better relocatable expression error
diagnostic that includes location information. Currently if one has this assembly: .quad (0x1234 + (4 * SOME_VALUE)) where SOME_VALUE is undefined ones gets the less than useful error message with no location information: % clang -c x.s clang -cc1as: fatal error: error in backend: expected relocatable expression With this fix one now gets a more useful error message with location information: % clang -c x.s x.s:5:8: error: expected relocatable expression .quad (0x1234 + (4 * SOME_VALUE)) ^ To do this I plumbed the SMLoc through the MCObjectStreamer EmitValue() and EmitValueImpl() interfaces so it could be used when creating the MCFixup. rdar://12391022 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@206906 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -175,7 +175,8 @@ public:
|
||||
|
||||
void EmitBytes(StringRef Data) override;
|
||||
|
||||
void EmitValueImpl(const MCExpr *Value, unsigned Size) override;
|
||||
void EmitValueImpl(const MCExpr *Value, unsigned Size,
|
||||
const SMLoc &Loc = SMLoc()) override;
|
||||
void EmitIntValue(uint64_t Value, unsigned Size) override;
|
||||
|
||||
void EmitULEB128Value(const MCExpr *Value) override;
|
||||
@@ -702,7 +703,8 @@ void MCAsmStreamer::EmitIntValue(uint64_t Value, unsigned Size) {
|
||||
EmitValue(MCConstantExpr::Create(Value, getContext()), Size);
|
||||
}
|
||||
|
||||
void MCAsmStreamer::EmitValueImpl(const MCExpr *Value, unsigned Size) {
|
||||
void MCAsmStreamer::EmitValueImpl(const MCExpr *Value, unsigned Size,
|
||||
const SMLoc &Loc) {
|
||||
assert(Size <= 8 && "Invalid size");
|
||||
assert(getCurrentSection().first &&
|
||||
"Cannot emit contents before setting section!");
|
||||
|
Reference in New Issue
Block a user