[LLVMdev] llvm::Pass::Pass(llvm::PassKind, intptr_t): Assertion `pid && "pid cannot be 0"' failed.

Surinder surifilms at gmail.com
Sun Jan 30 20:57:07 PST 2011


llvm/include/llvm/Pass.h:93: llvm::Pass::Pass(llvm::PassKind,
intptr_t): Assertion `pid && "pid cannot be 0"' failed.


On Mon, Jan 31, 2011 at 3:55 PM, Surinder <surifilms at gmail.com> wrote:
> I have written a new pass, it compiles ok but crashes when i run it
> with error (llvm::Pass::Pass(llvm::PassKind, intptr_t): Assertion `pid
> && "pid cannot be 0"' failed.).
>
> The pass is :
>
> using namespace llvm;
> namespace
> {
>  struct Dfl : public FunctionPass {
>    static char ID;
>    Dfl() : FunctionPass(ID) { }
>    virtual bool runOnFunction(Function &F) {
>      bool modified=false;
>      errs() << "In Dfl for Function : " << F.getName();
>      if (F.empty()) errs() << " is empty."  << "\n";
>      else errs()  << "\n";
>      return modified;
>    };
>    // pass interface to other passes
>    virtual void getAnalysisUsage(AnalysisUsage &AU) const {
>       AU.setPreservesAll();
>       AU.addRequired<DominatorTree>();
>    }
>  };  // end struc Dfl
>  // Identifier variable for the pass
>  char Dfl::ID = 0;
>  // Register the pass
>  static RegisterPass<Dfl> X("dfl","emit cfg in dfl format"
>                             , false, false);
> }
>




More information about the llvm-dev mailing list