HomePhabricator

[analyzer] Handle base class initializers and destructors.

Authored by jordan_rose on Jul 26 2012, 1:04 PM.

Description

[analyzer] Handle base class initializers and destructors.

Most of the logic here is fairly simple; the interesting thing is that
we now distinguish complete constructors from base or delegate constructors.
We also make sure to cast to the base class before evaluating a constructor
or destructor, since non-virtual base classes may behave differently.

This includes some refactoring of VisitCXXConstructExpr and VisitCXXDestructor
in order to keep ExprEngine.cpp as clean as possible (leaving the details for
ExprEngineCXX.cpp).

llvm-svn: 160806

Details

Committed
jordan_roseJul 26 2012, 1:04 PM
Parents
rGb3244566f002: [analyzer] Variables with destructors are live until the destructor is run.
Branches
Unknown
Tags
Unknown