mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-26 05:32:25 +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();
|
||||
int64_t Value;
|
||||
if (!SOExpr->EvaluateAsAbsolute(Value))
|
||||
return Match_Success;
|
||||
return Match_InvalidOperand;
|
||||
assert((Value >= INT32_MIN && Value <= INT32_MAX) &&
|
||||
"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