aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/fold-const.c4
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/pr71071.c12
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)
+ ;
+}