HomePhabricator

[analyzer] Don't initialize virtual base classes more than once.

Authored by jordan_rose on Jun 24 2013, 6:55 PM.

Description

[analyzer] Don't initialize virtual base classes more than once.

In order to make sure virtual base classes are always initialized once,
the AST contains initializers for the base class in /all/ of its
descendents, not just the immediate descendents. However, at runtime,
the most-derived object is responsible for initializing all the virtual
base classes; all the other initializers will be ignored.

The analyzer now checks to see if it's being called from another base
constructor, and if so does not perform virtual base initialization.

rdar://problem/14236851

llvm-svn: 184814

Details

Committed
jordan_roseJun 24 2013, 6:55 PM
Parents
rG5a8738ffe017: Fix regression from r184810.
Branches
Unknown
Tags
Unknown