diff options
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/fold-const.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr71071.c | 12 |
4 files changed, 24 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1c19f92..5133b37 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2016-05-13 Jakub Jelinek <jakub@redhat.com> + 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 c4346de..8a7c93e 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 3858cd4..5f3ff4d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2016-05-13 Jakub Jelinek <jakub@redhat.com> + + PR bootstrap/71071 + * gcc.dg/pr71071.c: New test. + 2016-05-13 Uros Bizjak <ubizjak@gmail.com> * 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 0000000..582f1f1 --- /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) + ; +} |