summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorSaleem Abdulrasool <compnerd@compnerd.org>2014-12-17 16:17:44 +0000
committerSaleem Abdulrasool <compnerd@compnerd.org>2014-12-17 16:17:44 +0000
commit1ce7d31f33320d5f9056b12b9c497cab1f643355 (patch)
tree932ef52dbb59af5ecebd58e3c3ad824452d54fae /llvm/lib
parenteca08380ce92f467dfd5e7978286e769bea1636c (diff)
downloadbcm5719-llvm-1ce7d31f33320d5f9056b12b9c497cab1f643355.tar.gz
bcm5719-llvm-1ce7d31f33320d5f9056b12b9c497cab1f643355.zip
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! llvm-svn: 224432
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp b/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
index 76107924095..ecc7f0b1650 100644
--- a/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
+++ b/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
@@ -77,7 +77,10 @@ static bool getITDeprecationInfo(MCInst &MI, MCSubtargetInfo &STI,
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 ||
OpenPOWER on IntegriCloud