HomePhabricator

[analyzer] Handle zeroing CXXConstructExprs.

Authored by jordan_rose on Jun 20 2013, 5:59 PM.

Description

[analyzer] Handle zeroing CXXConstructExprs.

Certain expressions can cause a constructor invocation to zero-initialize
its object even if the constructor itself does no initialization. The
analyzer now handles that before evaluating the call to the constructor,
using the same "default binding" mechanism that calloc() uses, rather
than simply ignoring the zero-initialization flag.

As a bonus, trivial default constructors are now no longer inlined; they
are instead processed explicitly by ExprEngine. This has a (positive)
effect on the generated path edges: they no longer stop at a default
constructor call unless there's a user-provided implementation.

rdar://problem/14212563

llvm-svn: 184511

Details

Committed
jordan_roseJun 20 2013, 5:59 PM
Parents
rGdd91e0c703c6: [analyzer] Fix stale comment in CallEvent.
Branches
Unknown
Tags
Unknown