@@ -131,7 +131,7 @@ void SubstitutionPass::addNeg(BinaryOperator *bo) {
131131
132132 // Create sub
133133 if (bo->getOpcode () == Instruction::Add) {
134- op = BinaryOperator::CreateNeg (bo->getOperand (1 ), " " , bo);
134+ op = BinaryOperator::CreateNeg (bo->getOperand (1 ), " " , bo-> getIterator ()); // Fix for llvm 19.0.0
135135 op =
136136 BinaryOperator::Create (Instruction::Sub, bo->getOperand (0 ), op, " " , bo);
137137
@@ -152,10 +152,11 @@ void SubstitutionPass::addDoubleNeg(BinaryOperator *bo) {
152152 BinaryOperator *op, *op2 = NULL ;
153153 UnaryOperator *op3, *op4;
154154 if (bo->getOpcode () == Instruction::Add) {
155- op = BinaryOperator::CreateNeg (bo->getOperand (0 ), " " , bo);
156- op2 = BinaryOperator::CreateNeg (bo->getOperand (1 ), " " , bo);
155+ BasicBlock::iterator insertPos = bo->getIterator (); // Fix for llvm 19.0.0
156+ op = BinaryOperator::CreateNeg (bo->getOperand (0 ), " " , insertPos);
157+ op2 = BinaryOperator::CreateNeg (bo->getOperand (1 ), " " , insertPos);
157158 op = BinaryOperator::Create (Instruction::Add, op, op2, " " , bo);
158- op = BinaryOperator::CreateNeg (op, " " , bo );
159+ op = BinaryOperator::CreateNeg (op, " " , insertPos );
159160 bo->replaceAllUsesWith (op);
160161 // Check signed wrap
161162 // op->setHasNoSignedWrap(bo->hasNoSignedWrap());
@@ -233,7 +234,7 @@ void SubstitutionPass::addRand2(BinaryOperator *bo) {
233234void SubstitutionPass::subNeg (BinaryOperator *bo) {
234235 BinaryOperator *op = NULL ;
235236 if (bo->getOpcode () == Instruction::Sub) {
236- op = BinaryOperator::CreateNeg (bo->getOperand (1 ), " " , bo);
237+ op = BinaryOperator::CreateNeg (bo->getOperand (1 ), " " , bo-> getIterator ()); // Fix for llvm 19.0.0
237238 op = BinaryOperator::Create (Instruction::Add, bo->getOperand (0 ), op, " " , bo);
238239 // Check signed wrap
239240 // op->setHasNoSignedWrap(bo->hasNoSignedWrap());
0 commit comments