diff options
author | Fangrui Song <i@maskray.me> | 2023-08-09 17:32:09 -0700 |
---|---|---|
committer | Fangrui Song <i@maskray.me> | 2023-08-09 17:32:09 -0700 |
commit | d7398a355461b3a9f1685b0d2bf42c157b159e8f (patch) | |
tree | 5e646e97e5e89be8dd68e02aca86f29495f033cf /llvm/lib/MC/MCAssembler.cpp | |
parent | 2b5b2bfef102b1021d91f2b9485e2443bdea9df5 (diff) | |
download | llvm-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.cpp | 7 |
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); |