llvm segfault Instruction::getOpcode


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 {
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]) )


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 !