diff options
author | Saleem Abdulrasool <compnerd@compnerd.org> | 2014-12-17 16:17:44 +0000 |
---|---|---|
committer | Saleem Abdulrasool <compnerd@compnerd.org> | 2014-12-17 16:17:44 +0000 |
commit | 1ce7d31f33320d5f9056b12b9c497cab1f643355 (patch) | |
tree | 932ef52dbb59af5ecebd58e3c3ad824452d54fae /llvm/lib | |
parent | eca08380ce92f467dfd5e7978286e769bea1636c (diff) | |
download | bcm5719-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.cpp | 5 |
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 || |