Commit 8bb50e5c by Richard Guenther Committed by Richard Biener

re PR lto/50602 (ICE in tree_nrv, at tree-nrv.c:155 during large LTO build)

2012-05-04  Richard Guenther  <rguenther@suse.de>

	PR lto/50602
	* lto-wrapper.c (merge_and_complain): Complain about mismatches
	of -freg-struct-return and -fpcc-struct-return.
	(run_gcc): Pass through -freg-struct-return and -fpcc-struct-return
	from the input file options and ignore those from the link
	command line.

From-SVN: r187155
parent efe7068b
2012-05-04 Richard Guenther <rguenther@suse.de> 2012-05-04 Richard Guenther <rguenther@suse.de>
PR lto/50602
* lto-wrapper.c (merge_and_complain): Complain about mismatches
of -freg-struct-return and -fpcc-struct-return.
(run_gcc): Pass through -freg-struct-return and -fpcc-struct-return
from the input file options and ignore those from the link
command line.
2012-05-04 Richard Guenther <rguenther@suse.de>
PR tree-optimization/53168 PR tree-optimization/53168
* tree-ssa-pre.c (phi_translate_1): Only handle type-punned * tree-ssa-pre.c (phi_translate_1): Only handle type-punned
memory reads when the result is a constant we can pun. memory reads when the result is a constant we can pun.
......
...@@ -414,6 +414,16 @@ merge_and_complain (struct cl_decoded_option **decoded_options, ...@@ -414,6 +414,16 @@ merge_and_complain (struct cl_decoded_option **decoded_options,
if (j == *decoded_options_count) if (j == *decoded_options_count)
append_option (decoded_options, decoded_options_count, foption); append_option (decoded_options, decoded_options_count, foption);
break; break;
case OPT_freg_struct_return:
case OPT_fpcc_struct_return:
for (j = 0; j < *decoded_options_count; ++j)
if ((*decoded_options)[j].opt_index == foption->opt_index)
break;
if (j == *decoded_options_count)
fatal ("Option %s not used consistently in all LTO input files",
foption->orig_option_with_args_text);
break;
} }
} }
} }
...@@ -558,6 +568,8 @@ run_gcc (unsigned argc, char *argv[]) ...@@ -558,6 +568,8 @@ run_gcc (unsigned argc, char *argv[])
case OPT_fcommon: case OPT_fcommon:
case OPT_fexceptions: case OPT_fexceptions:
case OPT_fgnu_tm: case OPT_fgnu_tm:
case OPT_freg_struct_return:
case OPT_fpcc_struct_return:
break; break;
default: default:
...@@ -619,6 +631,12 @@ run_gcc (unsigned argc, char *argv[]) ...@@ -619,6 +631,12 @@ run_gcc (unsigned argc, char *argv[])
/* We've handled these LTO options, do not pass them on. */ /* We've handled these LTO options, do not pass them on. */
continue; continue;
case OPT_freg_struct_return:
case OPT_fpcc_struct_return:
/* Ignore these, they are determined by the input files.
??? We fail to diagnose a possible mismatch here. */
continue;
default: default:
break; break;
} }
......
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