mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-20 10:24:12 +00:00
Produce an error instead of asserting on invalid .sleb128/.uleb128.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@233155 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -1034,7 +1034,10 @@ bool MCAssembler::relaxInstruction(MCAsmLayout &Layout,
|
||||
|
||||
bool MCAssembler::relaxLEB(MCAsmLayout &Layout, MCLEBFragment &LF) {
|
||||
uint64_t OldSize = LF.getContents().size();
|
||||
int64_t Value = LF.getValue().evaluateKnownAbsolute(Layout);
|
||||
int64_t Value;
|
||||
bool Abs = LF.getValue().evaluateKnownAbsolute(Value, Layout);
|
||||
if (!Abs)
|
||||
report_fatal_error("sleb128 and uleb128 expressions must be absolute");
|
||||
SmallString<8> &Data = LF.getContents();
|
||||
Data.clear();
|
||||
raw_svector_ostream OSE(Data);
|
||||
@ -1050,7 +1053,9 @@ bool MCAssembler::relaxDwarfLineAddr(MCAsmLayout &Layout,
|
||||
MCDwarfLineAddrFragment &DF) {
|
||||
MCContext &Context = Layout.getAssembler().getContext();
|
||||
uint64_t OldSize = DF.getContents().size();
|
||||
int64_t AddrDelta = DF.getAddrDelta().evaluateKnownAbsolute(Layout);
|
||||
int64_t AddrDelta;
|
||||
bool Abs = DF.getAddrDelta().evaluateKnownAbsolute(AddrDelta, Layout);
|
||||
assert(Abs && "We created a line delta with an invalid expression");
|
||||
int64_t LineDelta;
|
||||
LineDelta = DF.getLineDelta();
|
||||
SmallString<8> &Data = DF.getContents();
|
||||
@ -1065,7 +1070,9 @@ bool MCAssembler::relaxDwarfCallFrameFragment(MCAsmLayout &Layout,
|
||||
MCDwarfCallFrameFragment &DF) {
|
||||
MCContext &Context = Layout.getAssembler().getContext();
|
||||
uint64_t OldSize = DF.getContents().size();
|
||||
int64_t AddrDelta = DF.getAddrDelta().evaluateKnownAbsolute(Layout);
|
||||
int64_t AddrDelta;
|
||||
bool Abs = DF.getAddrDelta().evaluateKnownAbsolute(AddrDelta, Layout);
|
||||
assert(Abs && "We created call frame with an invalid expression");
|
||||
SmallString<8> &Data = DF.getContents();
|
||||
Data.clear();
|
||||
raw_svector_ostream OSE(Data);
|
||||
|
Reference in New Issue
Block a user