forked from OSchip/llvm-project
parent
266e42b312
commit
ccf78ac1d0
|
@ -883,11 +883,11 @@ static ICmpInst::Predicate evaluateICmpRelation(Constant *V1, Constant *V2,
|
|||
// null pointer, do the comparison with the pre-casted value.
|
||||
if (V2->isNullValue() &&
|
||||
(isa<PointerType>(CE1->getType()) || CE1->getType()->isIntegral())) {
|
||||
bool isSigned = CE1->getOpcode() == Instruction::ZExt ? false :
|
||||
bool sgnd = CE1->getOpcode() == Instruction::ZExt ? false :
|
||||
(CE1->getOpcode() == Instruction::SExt ? true :
|
||||
(CE1->getOpcode() == Instruction::PtrToInt ? false : isSigned));
|
||||
return evaluateICmpRelation(
|
||||
CE1Op0, Constant::getNullValue(CE1Op0->getType()), isSigned);
|
||||
CE1Op0, Constant::getNullValue(CE1Op0->getType()), sgnd);
|
||||
}
|
||||
|
||||
// If the dest type is a pointer type, and the RHS is a constantexpr cast
|
||||
|
@ -898,11 +898,11 @@ static ICmpInst::Predicate evaluateICmpRelation(Constant *V1, Constant *V2,
|
|||
if (CE2->isCast() && isa<PointerType>(CE1->getType()) &&
|
||||
CE1->getOperand(0)->getType() == CE2->getOperand(0)->getType() &&
|
||||
CE1->getOperand(0)->getType()->isIntegral()) {
|
||||
bool isSigned = CE1->getOpcode() == Instruction::ZExt ? false :
|
||||
bool sgnd = CE1->getOpcode() == Instruction::ZExt ? false :
|
||||
(CE1->getOpcode() == Instruction::SExt ? true :
|
||||
(CE1->getOpcode() == Instruction::PtrToInt ? false : isSigned));
|
||||
return evaluateICmpRelation(CE1->getOperand(0), CE2->getOperand(0),
|
||||
isSigned);
|
||||
sgnd);
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
Loading…
Reference in New Issue