diff options
author | spop <spop@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-11-09 19:23:43 +0000 |
---|---|---|
committer | spop <spop@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-11-09 19:23:43 +0000 |
commit | df4ae4c4516593909d0074d4ddea3da9c0243fda (patch) | |
tree | 3d7e9821162a3ea039aaa73e75b610839ad30c8c /gcc/tree-if-conv.c | |
parent | 124e94e2fc4aca4e87c16390052155a5165a7031 (diff) | |
download | gcc-df4ae4c4516593909d0074d4ddea3da9c0243fda.tar.gz |
Fix PR46036.
2010-11-09 Sebastian Pop <sebastian.pop@amd.com>
PR tree-optimization/46036
* tree-if-conv.c (predicate_bbs): Call unshare_expr before
add_to_dst_predicate_list.
* gfortran.dg/lto/pr46036_0.f90: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166508 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-if-conv.c')
-rw-r--r-- | gcc/tree-if-conv.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/tree-if-conv.c b/gcc/tree-if-conv.c index 642dbda24cb..17b66721e5d 100644 --- a/gcc/tree-if-conv.c +++ b/gcc/tree-if-conv.c @@ -928,7 +928,7 @@ predicate_bbs (loop_p loop) &true_edge, &false_edge); /* If C is true, then TRUE_EDGE is taken. */ - add_to_dst_predicate_list (loop, true_edge, cond, c); + add_to_dst_predicate_list (loop, true_edge, cond, unshare_expr (c)); /* If C is false, then FALSE_EDGE is taken. */ c2 = invert_truthvalue_loc (loc, unshare_expr (c)); |