From f51606c71ab31d906d499108b1a2b8d8e45d9e06 Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Mon, 11 Jul 2016 13:32:51 +0000 Subject: re PR bootstrap/71816 (bootstrap broken on multiple targets) 2016-07-11 Richard Biener 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 --- gcc/tree-ssa-pre.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'gcc/tree-ssa-pre.c') 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; -- cgit v1.1