fold-const.c (fold_checksum_tree): Ignore TYPE_CACHED_VALUES.
authorDaniel Jacobowitz <dan@debian.org>
Mon, 13 Sep 2004 23:25:45 +0000 (23:25 +0000)
committerDaniel Jacobowitz <drow@gcc.gnu.org>
Mon, 13 Sep 2004 23:25:45 +0000 (23:25 +0000)
* fold-const.c (fold_checksum_tree): Ignore TYPE_CACHED_VALUES.
Only use TYPE_BINFO for aggregates.

From-SVN: r87457

gcc/ChangeLog
gcc/fold-const.c

index 419c409633cb5f00830d3b7672574fa333794ead..cc493a4c5fff85091c1a29069f8ffaddb716adb6 100644 (file)
@@ -1,3 +1,8 @@
+2004-09-13  Daniel Jacobowitz  <dan@debian.org>
+
+       * fold-const.c (fold_checksum_tree): Ignore TYPE_CACHED_VALUES.
+       Only use TYPE_BINFO for aggregates.
+
 2004-09-13  Daniel Jacobowitz  <dan@debian.org>
 
        * expmed.c (synth_mult): Initialize latency.  Check cost before
index 972f276d59c6373ddeef2d2f1ac0ae03580e3cc0..4453f36423384af7fe197fbcd9330440aa170de4 100644 (file)
@@ -9051,13 +9051,16 @@ fold_checksum_tree (tree expr, struct md5_ctx *ctx, htab_t ht)
       SET_DECL_ASSEMBLER_NAME (expr, NULL);
     }
   else if (TREE_CODE_CLASS (code) == 't'
-          && (TYPE_POINTER_TO (expr) || TYPE_REFERENCE_TO (expr)))
+          && (TYPE_POINTER_TO (expr) || TYPE_REFERENCE_TO (expr)
+              || TYPE_CACHED_VALUES_P (expr)))
     {
-      /* Allow TYPE_POINTER_TO and TYPE_REFERENCE_TO to be modified.  */
+      /* Allow these fields to be modified.  */
       memcpy (buf, expr, tree_size (expr));
       expr = (tree) buf;
       TYPE_POINTER_TO (expr) = NULL;
       TYPE_REFERENCE_TO (expr) = NULL;
+      TYPE_CACHED_VALUES_P (expr) = 0;
+      TYPE_CACHED_VALUES (expr) = NULL;
     }
   md5_process_bytes (expr, tree_size (expr), ctx);
   fold_checksum_tree (TREE_TYPE (expr), ctx, ht);
@@ -9135,7 +9138,10 @@ fold_checksum_tree (tree expr, struct md5_ctx *ctx, htab_t ht)
          fold_checksum_tree (TYPE_MAX_VALUE (expr), ctx, ht);
        }
       fold_checksum_tree (TYPE_MAIN_VARIANT (expr), ctx, ht);
-      fold_checksum_tree (TYPE_BINFO (expr), ctx, ht);
+      if (TREE_CODE (expr) == RECORD_TYPE
+         || TREE_CODE (expr) == UNION_TYPE
+         || TREE_CODE (expr) == QUAL_UNION_TYPE)
+       fold_checksum_tree (TYPE_BINFO (expr), ctx, ht);
       fold_checksum_tree (TYPE_CONTEXT (expr), ctx, ht);
       break;
     default: