diff options
| author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2019-10-13 11:29:35 +0000 | 
|---|---|---|
| committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2019-10-13 11:29:35 +0000 | 
| commit | 944a051ebbdd11117e6afaed86f01165f56f3ba9 (patch) | |
| tree | 23f314f4cbd47188493deb9aac6a2a2f5c4a29d5 /llvm/lib/CodeGen/GlobalISel | |
| parent | d2b790eb680520d39f07d45449a361da3bd83c65 (diff) | |
| download | bcm5719-llvm-944a051ebbdd11117e6afaed86f01165f56f3ba9.tar.gz bcm5719-llvm-944a051ebbdd11117e6afaed86f01165f56f3ba9.zip | |
IRTranslator - silence static analyzer null dereference warnings. NFCI.
The CmpInst::getType() calls can be replaced by just using User::getType() that it was dyn_cast from, and we then need to assert that any default predicate cases came from the CmpInst.
llvm-svn: 374716
Diffstat (limited to 'llvm/lib/CodeGen/GlobalISel')
| -rw-r--r-- | llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp | 7 | 
1 files changed, 4 insertions, 3 deletions
| diff --git a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp index 37ac96e5290..08f3e4f5bd3 100644 --- a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp +++ b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp @@ -335,7 +335,7 @@ bool IRTranslator::translateFNeg(const User &U, MachineIRBuilder &MIRBuilder) {  bool IRTranslator::translateCompare(const User &U,                                      MachineIRBuilder &MIRBuilder) { -  const CmpInst *CI = dyn_cast<CmpInst>(&U); +  auto *CI = dyn_cast<CmpInst>(&U);    Register Op0 = getOrCreateVReg(*U.getOperand(0));    Register Op1 = getOrCreateVReg(*U.getOperand(1));    Register Res = getOrCreateVReg(U); @@ -346,11 +346,12 @@ bool IRTranslator::translateCompare(const User &U,      MIRBuilder.buildICmp(Pred, Res, Op0, Op1);    else if (Pred == CmpInst::FCMP_FALSE)      MIRBuilder.buildCopy( -        Res, getOrCreateVReg(*Constant::getNullValue(CI->getType()))); +        Res, getOrCreateVReg(*Constant::getNullValue(U.getType())));    else if (Pred == CmpInst::FCMP_TRUE)      MIRBuilder.buildCopy( -        Res, getOrCreateVReg(*Constant::getAllOnesValue(CI->getType()))); +        Res, getOrCreateVReg(*Constant::getAllOnesValue(U.getType())));    else { +    assert(CI && "Instruction should be CmpInst");      MIRBuilder.buildInstr(TargetOpcode::G_FCMP, {Res}, {Pred, Op0, Op1},                            MachineInstr::copyFlagsFromInstruction(*CI));    } | 

