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
This commit is contained in:
parent
a442a050ad
commit
f51606c71a
4 changed files with 36 additions and 7 deletions
|
@ -1,3 +1,9 @@
|
|||
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.
|
||||
|
||||
2016-07-11 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* config/rs6000/rs6000.md (UNSPEC_DOLOOP): New unspec.
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2016-07-11 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/71816
|
||||
* gcc.dg/torture/pr71816.c: New testcase.
|
||||
|
||||
2016-07-09 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||||
|
||||
PR fortran/71783
|
||||
|
|
21
gcc/testsuite/gcc.dg/torture/pr71816.c
Normal file
21
gcc/testsuite/gcc.dg/torture/pr71816.c
Normal file
|
@ -0,0 +1,21 @@
|
|||
/* { dg-do compile } */
|
||||
|
||||
void *ext2fs_resize_mem_p;
|
||||
struct ext2_icount_el {
|
||||
int ino;
|
||||
} * insert_icount_el_icount_1;
|
||||
int insert_icount_el_icount, insert_icount_el_new_size;
|
||||
void *memcpy();
|
||||
void *realloc();
|
||||
int ext2fs_resize_mem(void *p1) {
|
||||
int size = 0;
|
||||
memcpy(&ext2fs_resize_mem_p, p1, sizeof(ext2fs_resize_mem_p));
|
||||
realloc(&ext2fs_resize_mem_p, size);
|
||||
return 0;
|
||||
}
|
||||
struct ext2_icount_el *insert_icount_el() {
|
||||
if (insert_icount_el_icount)
|
||||
insert_icount_el_new_size = insert_icount_el_icount_1[0].ino;
|
||||
ext2fs_resize_mem(&insert_icount_el_icount_1);
|
||||
return 0;
|
||||
}
|
|
@ -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;
|
||||
|
|
Loading…
Add table
Reference in a new issue