From: Jakub Jelinek Date: Fri, 13 May 2016 20:24:22 +0000 (+0200) Subject: re PR bootstrap/71071 (ICE --enable-checking=fold : fold check: original tree changed... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9e37582dfb2ec9e0bc9f0b5d76aa13cd142d6cf0;p=gcc.git re PR bootstrap/71071 (ICE --enable-checking=fold : fold check: original tree changed by fold) PR bootstrap/71071 * fold-const.c (fold_checksum_tree): Allow modification of TYPE_ALIAS_SET during folding. * gcc.dg/pr71071.c: New test. From-SVN: r236222 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1c19f925bb1..5133b37024b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2016-05-13 Jakub Jelinek + PR bootstrap/71071 + * fold-const.c (fold_checksum_tree): Allow modification + of TYPE_ALIAS_SET during folding. + * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue, ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro. (ix86_split_to_parts): Likewise. Fix up formatting. diff --git a/gcc/fold-const.c b/gcc/fold-const.c index c4346de9750..8a7c93e0459 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -12130,7 +12130,8 @@ fold_checksum_tree (const_tree expr, struct md5_ctx *ctx, || TYPE_REFERENCE_TO (expr) || TYPE_CACHED_VALUES_P (expr) || TYPE_CONTAINS_PLACEHOLDER_INTERNAL (expr) - || TYPE_NEXT_VARIANT (expr))) + || TYPE_NEXT_VARIANT (expr) + || TYPE_ALIAS_SET_KNOWN_P (expr))) { /* Allow these fields to be modified. */ tree tmp; @@ -12140,6 +12141,7 @@ fold_checksum_tree (const_tree expr, struct md5_ctx *ctx, TYPE_POINTER_TO (tmp) = NULL; TYPE_REFERENCE_TO (tmp) = NULL; TYPE_NEXT_VARIANT (tmp) = NULL; + TYPE_ALIAS_SET (tmp) = -1; if (TYPE_CACHED_VALUES_P (tmp)) { TYPE_CACHED_VALUES_P (tmp) = 0; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 3858cd46285..5f3ff4d4a8a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2016-05-13 Jakub Jelinek + + PR bootstrap/71071 + * gcc.dg/pr71071.c: New test. + 2016-05-13 Uros Bizjak * gcc.dg/vect/tree-vect.h (check_vect): Handle AVX2, diff --git a/gcc/testsuite/gcc.dg/pr71071.c b/gcc/testsuite/gcc.dg/pr71071.c new file mode 100644 index 00000000000..582f1f15a43 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr71071.c @@ -0,0 +1,12 @@ +/* PR bootstrap/71071 */ +/* { dg-do compile } * +/* { dg-options "-O2" } */ + +struct S { unsigned b : 1; } a; + +void +foo () +{ + if (a.b) + ; +}