diff options
author | Richard Biener <rguenther@suse.de> | 2016-07-11 13:32:51 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2016-07-11 13:32:51 +0000 |
commit | f51606c71ab31d906d499108b1a2b8d8e45d9e06 (patch) | |
tree | 807e81c9fa47e49720195efa23b1e80b1ac00e6e /gcc/tree-ssa-pre.c | |
parent | a442a050ad11c772f865980d578709af38d876e8 (diff) | |
download | gcc-f51606c71ab31d906d499108b1a2b8d8e45d9e06.zip gcc-f51606c71ab31d906d499108b1a2b8d8e45d9e06.tar.gz gcc-f51606c71ab31d906d499108b1a2b8d8e45d9e06.tar.bz2 |
re PR bootstrap/71816 (bootstrap broken on multiple targets)
2016-07-11 Richard Biener <rguenther@suse.de>
PR tree-optimization/71816
* tree-ssa-pre.c (compute_avail): Adjust alignment of ref rather
than replacing all of its operands.
* gcc.dg/torture/pr71816.c: New testcase.
From-SVN: r238208
Diffstat (limited to 'gcc/tree-ssa-pre.c')
-rw-r--r-- | gcc/tree-ssa-pre.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c index 0c97f4f..9964c55 100644 --- a/gcc/tree-ssa-pre.c +++ b/gcc/tree-ssa-pre.c @@ -3791,13 +3791,9 @@ compute_avail (void) || ref1->opcode == MEM_REF) && (TYPE_ALIGN (ref1->type) > TYPE_ALIGN (ref2->type))) - { - ref->operands.release (); - ref->operands = operands; - ref1 = ref2; - } - else - operands.release (); + ref1->type + = build_aligned_type (ref1->type, + TYPE_ALIGN (ref2->type)); /* TBAA behavior is an obvious part so make sure that the hashtable one covers this as well by adjusting the ref alias set and its base. */ @@ -3824,6 +3820,7 @@ compute_avail (void) ref1->op2 = fold_convert (ptr_type_node, ref1->op2); } + operands.release (); result = pre_expr_pool.allocate (); result->kind = REFERENCE; |