aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/MC/MCAssembler.cpp
diff options
context:
space:
mode:
authorFangrui Song <i@maskray.me>2023-08-09 17:32:09 -0700
committerFangrui Song <i@maskray.me>2023-08-09 17:32:09 -0700
commitd7398a355461b3a9f1685b0d2bf42c157b159e8f (patch)
tree5e646e97e5e89be8dd68e02aca86f29495f033cf /llvm/lib/MC/MCAssembler.cpp
parent2b5b2bfef102b1021d91f2b9485e2443bdea9df5 (diff)
downloadllvm-d7398a355461b3a9f1685b0d2bf42c157b159e8f.zip
llvm-d7398a355461b3a9f1685b0d2bf42c157b159e8f.tar.gz
llvm-d7398a355461b3a9f1685b0d2bf42c157b159e8f.tar.bz2
[MC] Use reportError for .uleb128/.sleb128 diagnostic
User errors should use reportError. reportError allows us to continue parsing the file and collect more diagnostics. MC/ELF/leb128-err.s is adapted from MC/RISCV/riscv64-64b-pcrel.s
Diffstat (limited to 'llvm/lib/MC/MCAssembler.cpp')
-rw-r--r--llvm/lib/MC/MCAssembler.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/llvm/lib/MC/MCAssembler.cpp b/llvm/lib/MC/MCAssembler.cpp
index 55ed1a2..1cc408e 100644
--- a/llvm/lib/MC/MCAssembler.cpp
+++ b/llvm/lib/MC/MCAssembler.cpp
@@ -1009,8 +1009,11 @@ bool MCAssembler::relaxLEB(MCAsmLayout &Layout, MCLEBFragment &LF) {
uint64_t OldSize = LF.getContents().size();
int64_t Value;
bool Abs = LF.getValue().evaluateKnownAbsolute(Value, Layout);
- if (!Abs)
- report_fatal_error("sleb128 and uleb128 expressions must be absolute");
+ if (!Abs) {
+ getContext().reportError(LF.getValue().getLoc(),
+ Twine(LF.isSigned() ? ".s" : ".u") +
+ "leb128 expression is not absolute");
+ }
SmallString<8> &Data = LF.getContents();
Data.clear();
raw_svector_ostream OSE(Data);