[llvm] r224432 - ARM: correct an off-by-one in an assert
Saleem Abdulrasool
compnerd at compnerd.org
Wed Dec 17 08:17:44 PST 2014
Author: compnerd
Date: Wed Dec 17 10:17:44 2014
New Revision: 224432
URL: http://llvm.org/viewvc/llvm-project?rev=224432&view=rev
Log:
ARM: correct an off-by-one in an assert
The assert was off-by-one, resulting in failures for valid input.
Thanks to Asiri Rathnayake for pointing out the failure!
Modified:
llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
llvm/trunk/test/MC/ARM/arm-store-deprecated.s
Modified: llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp?rev=224432&r1=224431&r2=224432&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp (original)
+++ llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp Wed Dec 17 10:17:44 2014
@@ -77,7 +77,10 @@ static bool getITDeprecationInfo(MCInst
static bool getARMStoreDeprecationInfo(MCInst &MI, MCSubtargetInfo &STI,
std::string &Info) {
- assert(MI.getNumOperands() > 4 && "expected >4 arguments");
+ if (STI.getFeatureBits() & llvm::ARM::ModeThumb)
+ return false;
+
+ assert(MI.getNumOperands() >= 4 && "expected >= 4 arguments");
for (unsigned OI = 4, OE = MI.getNumOperands(); OI < OE; ++OI) {
assert(MI.getOperand(OI).isReg() && "expected register");
if (MI.getOperand(OI).getReg() == ARM::SP ||
Modified: llvm/trunk/test/MC/ARM/arm-store-deprecated.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/ARM/arm-store-deprecated.s?rev=224432&r1=224431&r2=224432&view=diff
==============================================================================
--- llvm/trunk/test/MC/ARM/arm-store-deprecated.s (original)
+++ llvm/trunk/test/MC/ARM/arm-store-deprecated.s Wed Dec 17 10:17:44 2014
@@ -145,3 +145,9 @@ push:
@ CHECK: push {sp}
@ CHECK: ^
+ .global single
+ .type single,%function
+single:
+ stmdaeq r0, {r0}
+@ CHECK-NOT: warning
+
More information about the llvm-commits
mailing list