compcov int fix

This commit is contained in:
vanhauser-thc
2024-05-13 08:44:43 +02:00
parent 93c7cbd496
commit 24b9d74e70
2 changed files with 7 additions and 0 deletions

View File

@ -13,6 +13,7 @@
* afl-cc:
- re-enable i386 support that was accidently disabled
- fixes for LTO and outdated afl-gcc mode
- fix COMPCOV split compare for old LLVMs
- ensure shared memory variables are visible in weird build setups
* afl-cmin
- work with input files that have a space

View File

@ -1778,7 +1778,13 @@ bool SplitComparesTransform::runOnModule(Module &M) {
auto op0 = CI->getOperand(0);
auto op1 = CI->getOperand(1);
// has to valid operands
if (!op0 || !op1) { continue; }
// has exactly one constant and one variable
int constants = 0;
if (dyn_cast<ConstantInt>(op0)) { ++constants; }
if (dyn_cast<ConstantInt>(op1)) { ++constants; }
if (constants != 1) { continue; }
auto iTy1 = dyn_cast<IntegerType>(op0->getType());
if (iTy1 && isa<IntegerType>(op1->getType())) {