Я пытаюсь написать простой компилятор.
//PART 1: check if it is greater zero zero
ICmpInst* greaterThanZero = new ICmpInst(ICmpInst::ICMP_SGE, (Value*)zero, (Value*)loadInstructionArrayIndex);
Builder.Insert(greaterThanZero);
TerminatorInst* greaterThanZeroError =BranchInst::Create(trap,cont,greaterThanZero);
ReplaceInstWithInst(branchInstruction, greaterThanZeroError);
//PART 2: check if it is within the bound
ICmpInst* compareInstruction = new ICmpInst(ICmpInst::ICMP_SGE, (Value*)loadInstructionArrayIndex, (Value*)bound); //error occurs
Часть 1 работает нормально без проблем. Но как только я начинаю добавлять часть 2 для проверки второго условия, возникает ошибка:
LLVM ERROR: Broken function found, compilation aborted!
Какими способами можно решить эту проблему? Я думаю, есть ли другой способ подойти к этому.