On Apr 13, 2011, at 1:27 AM, Chandler Carruth wrote:

> Hello,
> 
> This patch appears to add 'typeid' support to the CFG. I wrote it while 
> working on r129431, before remembering that -Wuninitialized uses its own 
> custom CFG builder.
> 
> Unfortunately, I'm not certain if the patch adds support in the desired 
> manner (I grouped code with similar code for handling sizeof, etc., rather 
> than with C++-specific bits of the code). Also, I'm not sure how best to 
> write a test for this. A pointer or two in the right direction would help 
> there.
> <add-typeid-to-cfg.patch>_______________________________________________
> cfe-commits mailing list
> [email protected]
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Hi Chandler,

+      if (cast<CXXRecordDecl>(Record->getDecl())->isPolymorphic())
+        addStmt(E->getExprOperand());
+  }

Instead of 'addStmt', I think this only needs to be 'Visit'.  'addStmt' is only 
needed when we want to force the expression to be listed in the CFGBlock, 
whereas Visit() causes us to do a recursive walk, adding Stmts to the CFGBlock 
as necessary. 

Also, this should probably be:

  return Visit(E->getExprOperand())

as 'Block' and the return value of that call are not guaranteed to be the same. 
 I think leaving 'return Block' at the end is fine.
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to