Hello,
I get a segfault and I cannot find the reason. The main computation is done in "
struct patternDC : public FunctionPass
" but I also have
class ifChecker {
public:
virtual bool operEquiv(Instruction *I1, Instruction *I2);
};
I have in
bool patternDC::runOnFunction(Function &F) {
…
ifChecker* CC=new ifChecker();
if ( CC->operEquiv(ifsInstrArray[i], ifsInstrArray[j]) )
…
and
bool ifChecker::operEquiv(Instruction *I1, Instruction *I2){
if (I1!=NULL && I2!=NULL)
//if (I1->getOpcode() != I2->getOpcode()) return false;
return true;
}
When I decomment the line from operEquiv, I have the segfault. See gdb output:
0xb7fd6ff0 <ZN12_GLOBAL__N_19ifChecker9operEquivEPN4llvm11InstructionES3+16>: movzbl 0x4(%edx),%edx
What is the problem?
Thank you !