summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2019-09-05 10:18:24 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2019-09-05 10:18:24 +0000
commit67991a59cb5ebc846c480daeb469c00cd6117275 (patch)
tree5fe132f557fb16e6c2ad4d31c9e1e5ffff33e0b1
parent988f1e3e32a95df46da4f98b5652b0dc8b444c7f (diff)
downloadbcm5719-llvm-67991a59cb5ebc846c480daeb469c00cd6117275.tar.gz
bcm5719-llvm-67991a59cb5ebc846c480daeb469c00cd6117275.zip
[X86] X86InstrInfo::optimizeCompareInstr - fix potential null dereference.
Fixes clang static-analyzer warning. Technically the MachineInstr *Sub might still be null if we're comparing zero (IsCmpZero == true), although this probably won't happen as SrcReg2 is probably == 0. llvm-svn: 371047
-rw-r--r--llvm/lib/Target/X86/X86InstrInfo.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/X86InstrInfo.cpp b/llvm/lib/Target/X86/X86InstrInfo.cpp
index d597ec90ea6..bf7dcb232b8 100644
--- a/llvm/lib/Target/X86/X86InstrInfo.cpp
+++ b/llvm/lib/Target/X86/X86InstrInfo.cpp
@@ -3616,8 +3616,9 @@ bool X86InstrInfo::optimizeCompareInstr(MachineInstr &CmpInstr, unsigned SrcReg,
if (!IsCmpZero && !Sub)
return false;
- bool IsSwapped = (SrcReg2 != 0 && Sub->getOperand(1).getReg() == SrcReg2 &&
- Sub->getOperand(2).getReg() == SrcReg);
+ bool IsSwapped =
+ (SrcReg2 != 0 && Sub && Sub->getOperand(1).getReg() == SrcReg2 &&
+ Sub->getOperand(2).getReg() == SrcReg);
// Scan forward from the instruction after CmpInstr for uses of EFLAGS.
// It is safe to remove CmpInstr if EFLAGS is redefined or killed.
OpenPOWER on IntegriCloud