[PATCH] [StaticAnalyzer]Handle Destructor call generated by C++ delete expr

Jordan Rose jordan_rose at apple.com
Tue Sep 10 08:52:10 PDT 2013


  Hm, you're right in theory...but in practice, the original `Dest` region could be null with the new temporary stuff Pavel's been working on, and possibly even with a base or member destructor where the top-level region is Unknown. We really should check for this case and create UnknownVal instead of just automatically wrapping in loc::MemRegionVal.

  And oops, I meant Unknown-handling, not null-handling...i.e. a case where we know which destructor to call because of the delete-expr's type, but not which region to act on. That's what the reinterpret_cast is for – to push beyond what the analyzer can currently model.

  ProgramState::isNull and ProgramState::assume should not crash, but maybe it's the loc::MemRegionVal wrapped around a null region. We should figure out what's going on there before moving forward.

http://llvm-reviews.chandlerc.com/D1594



More information about the cfe-commits mailing list