[LLVMdev] Dereferencing NULL pointer in IndVarSimplify.cpp?

Liang Wang netcasper at gmail.com
Fri Oct 17 17:21:12 PDT 2014


Here is the code in IndVarSimplify.cpp.

    SmallVector<WeakVH, 16> DeadInsts;

  while (!DeadInsts.empty())
    if (Instruction *Inst =
      RecursivelyDeleteTriviallyDeadInstructions(Inst, TLI);

Since DeadInsts.pop_back_val() is WeakVH which could hold a NULL
pointer, the expression, &*DeadInsts.pop_back_val(), could be &*NULL.
Then NULL pointer is dereferenced here.

I wrote a small test case and it works just fine. But is this a
well-defined behavior in the standard?


More information about the llvm-dev mailing list