[trans-mem] fixup OBJ_TYPE_REF removable correctly
diff mbox

Message ID 4EA9D389.2010007@redhat.com
State New
Headers show

Commit Message

Aldy Hernandez Oct. 27, 2011, 9:56 p.m. UTC
Ho hum, more patches on our way to mergeability.

This seems to be more fallout from the last merge.  There's an apparent 
discrepancy between what we think is valid gimple in 
ipa_tm_insert_gettmclone_call() and what verify_gimple_call() believes 
is true.

This, along with other patches I have queued up, fixes more regressions 
in g++.dg/tm/.

Committed to branch.
* trans-mem.c (ipa_tm_insert_gettmclone_call): Use gimple_call_fntype
	to get function return type.

Patch
diff mbox

Index: trans-mem.c
===================================================================
--- trans-mem.c	(revision 180581)
+++ trans-mem.c	(working copy)
@@ -4300,11 +4300,11 @@  ipa_tm_insert_gettmclone_call (struct cg
 
   gimple_call_set_fn (stmt, callfn);
 
-  /* Discard OBJ_TYPE_REF above, may produce incompatible LHS and RHS
+  /* Discarding OBJ_TYPE_REF above may produce incompatible LHS and RHS
      for a call statement.  Fix it.  */
   {
     tree lhs = gimple_call_lhs (stmt);
-    tree rettype =  TREE_TYPE (TREE_TYPE (TREE_TYPE (callfn)));
+    tree rettype = TREE_TYPE (gimple_call_fntype (stmt));
     if (lhs
 	&& !useless_type_conversion_p (TREE_TYPE (lhs), rettype))
     {