On 11-11-10 17:23 , Delesley Hutchins wrote:

+    {
+      tree callee = gimple_call_fn (call);
+      if (TREE_CODE (callee) == OBJ_TYPE_REF)
+        {
+          tree objtype = TREE_TYPE (TREE_TYPE (OBJ_TYPE_REF_OBJECT (callee)));
+          /* Check to make sure objtype is a valid type.
+             OBJ_TYPE_REF_OBJECT does not always return the correct static 
type of the callee.
+             For example:  Given  foo(void* ptr) { ((Foo*) 
ptr)->doSomething(); }
+             objtype will be void, not Foo.  Whether or not this happens 
depends on the details
+             of how a particular call is lowered to GIMPLE, and there is no 
easy fix that works
+             in all cases.  For now, we simply rely on gcc's type information; 
if that information
+             is not accurate, then the analysis will be less precise.

Re-format for 80 cols.

OK with that change.


Diego.

Reply via email to