Commit 1f91035f by Jan Hubicka

cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear static chain if needed.


	* cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
	static chain if needed.
	* g++.dg/torture/pr60659.C: New testcase.

From-SVN: r208927
parent 6e071b1e
2014-03-28 Jan Hubicka <hubicka@ucw.cz>
* cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
static chain if needed.
2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
PR target/60697
......
......@@ -1488,6 +1488,14 @@ cgraph_redirect_edge_call_stmt_to_callee (struct cgraph_edge *e)
gsi_insert_before (&gsi, set_stmt, GSI_SAME_STMT);
}
gimple_call_set_lhs (new_stmt, NULL_TREE);
update_stmt_fn (DECL_STRUCT_FUNCTION (e->caller->decl), new_stmt);
}
/* If new callee has no static chain, remove it. */
if (gimple_call_chain (new_stmt) && !DECL_STATIC_CHAIN (e->callee->decl))
{
gimple_call_set_chain (new_stmt, NULL);
update_stmt_fn (DECL_STRUCT_FUNCTION (e->caller->decl), new_stmt);
}
cgraph_set_call_stmt_including_clones (e->caller, e->call_stmt, new_stmt, false);
......
2014-03-28 Eric Botcazou <ebotcazou@adacore.com>
* gnat.dg/opt33.adb: New testcase.
2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
PR target/60697
......
-- { dg-do compile }
-- { dg-options "-O" }
with Ada.Containers.Ordered_Sets;
with Ada.Strings.Unbounded;
procedure Opt33 is
type Rec is record
Name : Ada.Strings.Unbounded.Unbounded_String;
end record;
function "<" (Left : Rec; Right : Rec) return Boolean;
package My_Ordered_Sets is new Ada.Containers.Ordered_Sets (Rec);
protected type Data is
procedure Do_It;
private
Set : My_Ordered_Sets.Set;
end Data;
function "<" (Left : Rec; Right : Rec) return Boolean is
begin
return False;
end "<";
protected body Data is
procedure Do_It is
procedure Dummy (Position : My_Ordered_Sets.Cursor) is
begin
null;
end;
begin
Set.Iterate (Dummy'Access);
end;
end Data;
begin
null;
end;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment