mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-28 04:33:05 +00:00
ARM: raise error message when complex SO expressions can't really be
solved as a constant at compilation time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204898 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
229897211b
commit
09b4588309
@ -9357,7 +9357,7 @@ unsigned ARMAsmParser::validateTargetOperandClass(MCParsedAsmOperand *AsmOp,
|
|||||||
const MCExpr *SOExpr = Op->getImm();
|
const MCExpr *SOExpr = Op->getImm();
|
||||||
int64_t Value;
|
int64_t Value;
|
||||||
if (!SOExpr->EvaluateAsAbsolute(Value))
|
if (!SOExpr->EvaluateAsAbsolute(Value))
|
||||||
return Match_Success;
|
return Match_InvalidOperand;
|
||||||
assert((Value >= INT32_MIN && Value <= INT32_MAX) &&
|
assert((Value >= INT32_MIN && Value <= INT32_MAX) &&
|
||||||
"expression value must be representiable in 32 bits");
|
"expression value must be representiable in 32 bits");
|
||||||
}
|
}
|
||||||
|
8
test/MC/ARM/label_offset.s
Normal file
8
test/MC/ARM/label_offset.s
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
@ RUN: not llvm-mc -triple=armv7-linux-gnuabi -filetype=obj < %s 2>&1 | FileCheck %s
|
||||||
|
|
||||||
|
.text
|
||||||
|
cmp r2, #(l2 - l1) >> 6
|
||||||
|
@ CHECK: error: invalid operand for instruction
|
||||||
|
|
||||||
|
l1:
|
||||||
|
l2:
|
Loading…
Reference in New Issue
Block a user