ipa-inline-transform.c (inline_call): Drop -fstrict-aliasing when inlining -fno-strict-aliasing into...
* ipa-inline-transform.c (inline_call): Drop -fstrict-aliasing when inlining -fno-strict-aliasing into -fstrict-aliasing body. From-SVN: r231095
This commit is contained in:
parent
6fa04359f8
commit
45285060c3
1 changed files with 15 additions and 0 deletions
|
@ -322,6 +322,21 @@ inline_call (struct cgraph_edge *e, bool update_original,
|
|||
if (DECL_FUNCTION_PERSONALITY (callee->decl))
|
||||
DECL_FUNCTION_PERSONALITY (to->decl)
|
||||
= DECL_FUNCTION_PERSONALITY (callee->decl);
|
||||
if (!opt_for_fn (callee->decl, flag_strict_aliasing)
|
||||
&& opt_for_fn (to->decl, flag_strict_aliasing))
|
||||
{
|
||||
struct gcc_options opts = global_options;
|
||||
|
||||
cl_optimization_restore (&opts,
|
||||
TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl)));
|
||||
opts.x_flag_strict_aliasing = false;
|
||||
if (dump_file)
|
||||
fprintf (dump_file, "Dropping flag_strict_aliasing on %s:%i\n",
|
||||
to->name (), to->order);
|
||||
build_optimization_node (&opts);
|
||||
DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl)
|
||||
= build_optimization_node (&opts);
|
||||
}
|
||||
|
||||
/* If aliases are involved, redirect edge to the actual destination and
|
||||
possibly remove the aliases. */
|
||||
|
|
Loading…
Add table
Reference in a new issue