re PR tree-optimization/55124 (ICE in find_or_generate_expression, at tree-ssa-pre...
authorRichard Biener <rguenther@suse.de>
Tue, 4 Dec 2012 09:19:05 +0000 (09:19 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Tue, 4 Dec 2012 09:19:05 +0000 (09:19 +0000)
commitc3dd8dd768d1a7af0058c4592d9e34b3b2a63fe9
treec0f80ce30991184212fcbba4fc0844cffd34bef3
parentf2b2ead42ed389a918b586b3f95c26455ae13e7c
re PR tree-optimization/55124 (ICE in find_or_generate_expression, at tree-ssa-pre.c:2803)

2012-12-04  Richard Biener  <rguenther@suse.de>

PR tree-optimization/55124
* tree-ssa-pre.c (find_or_generate_expression): Instead of
ICEing when we are not able to generate an expression defer it
by signalling failure.  Fix possible wrong-code issue by
not picking random REFERENCE expressions as fallback.
(create_component_ref_by_pieces_1): Adjust.  Add failure paths.
(create_expression_by_pieces): Likewise.
(insert_into_preds_of_block): When expression generation failed
for one edge make sure to not insert a PHI node.

* gcc.dg/torture/pr55124.c: New testcase.

From-SVN: r194125
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/torture/pr55124.c [new file with mode: 0644]
gcc/tree-ssa-pre.c