Hi,<div><br></div><div>I've done some work on CFG. Biggest change is that CFGElement can no longer be converted to Stmt* (through static_cast nor dyn_cast). This is needed to properly handle all kinds of CFGElement: Statement, Initializer, ImplicitDtor and Scope. I've fixed some of the code that was assuming the CFGElement to represent Stmt* and left rest of it with appropriate comments.</div>
<div><br></div><div>I've also added Initializer CFGElements creation in CFG. Initializer CFGElement returns CXXBaseOrMemberInitializer object instead of Stmt.</div><div><br></div><div>For ImplicitDtor CFGElements I'm planning to add methods for getting:</div>
<div>- CXXDestructorDecl for destructor to call,</div><div>- Location of place destructor was called,</div><div>- Exact statement that created the object for which destructor is called (Expr for temporary object and VarDecl for automatic object).</div>
<div><br></div><div>I think that it would also be useful to add methods for transparently getting:</div><div>- Start location of the CFGElement,</div><div>- End location of the CFGElement.</div><div><br></div><div>Now a few questions:</div>
<div>- Do you have any suggestions on what more should be added to CFGElement interface?</div><div>- In valid AST, can the CXXBaseOrMemberInitializer::getInit() method return null pointer?</div><div><br></div><div>Cheers,</div>
<div>Marcin</div>