Patchwork [trans-mem] fixup OBJ_TYPE_REF removable correctly

login
register
mail settings
Submitter Aldy Hernandez
Date Oct. 27, 2011, 9:56 p.m.
Message ID <4EA9D389.2010007@redhat.com>
Download mbox | patch
Permalink /patch/122254/
State New
Headers show

Comments

Aldy Hernandez - Oct. 27, 2011, 9:56 p.m.
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

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))
     {