aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndrew Pinski <pinskia@physics.uc.edu>2004-06-13 22:15:51 +0000
committerAndrew Pinski <pinskia@gcc.gnu.org>2004-06-13 15:15:51 -0700
commita40de696ac0207908f22b2b50330e22e86e45329 (patch)
treefb674db0c88cd83c47b51eb697f13cb87d395920 /gcc
parentd29647a46cd2396c11366309a3e3c19b85f3d499 (diff)
downloadgcc-a40de696ac0207908f22b2b50330e22e86e45329.zip
gcc-a40de696ac0207908f22b2b50330e22e86e45329.tar.gz
gcc-a40de696ac0207908f22b2b50330e22e86e45329.tar.bz2
fold-const.c (fold_checksum_tree <case 't'>): Only look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
2004-06-13 Andrew Pinski <pinskia@physics.uc.edu> * fold-const.c (fold_checksum_tree <case 't'>): Only look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE. Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if EXPR is an INTEGERAL_TYPE or a scalar float type. From-SVN: r83068
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/fold-const.c11
2 files changed, 15 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6e42d59..8ec2db5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2004-06-13 Andrew Pinski <pinskia@physics.uc.edu>
+
+ * fold-const.c (fold_checksum_tree <case 't'>): Only
+ look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
+ Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
+ EXPR is an INTEGERAL_TYPE or a scalar float type.
+
2004-06-13 Diego Novillo <dnovillo@redhat.com>
* tree-sra.c (tree_sra): Update documentation.
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index 02f4128..1cc2b81 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -8731,13 +8731,18 @@ fold_checksum_tree (tree expr, struct md5_ctx *ctx, htab_t ht)
fold_checksum_tree (DECL_VINDEX (expr), ctx, ht);
break;
case 't':
- fold_checksum_tree (TYPE_VALUES (expr), ctx, ht);
+ if (TREE_CODE (expr) == ENUMERAL_TYPE)
+ fold_checksum_tree (TYPE_VALUES (expr), ctx, ht);
fold_checksum_tree (TYPE_SIZE (expr), ctx, ht);
fold_checksum_tree (TYPE_SIZE_UNIT (expr), ctx, ht);
fold_checksum_tree (TYPE_ATTRIBUTES (expr), ctx, ht);
fold_checksum_tree (TYPE_NAME (expr), ctx, ht);
- fold_checksum_tree (TYPE_MIN_VALUE (expr), ctx, ht);
- fold_checksum_tree (TYPE_MAX_VALUE (expr), ctx, ht);
+ if (INTEGRAL_TYPE_P (expr)
+ || SCALAR_FLOAT_TYPE_P (expr))
+ {
+ fold_checksum_tree (TYPE_MIN_VALUE (expr), ctx, 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);
fold_checksum_tree (TYPE_CONTEXT (expr), ctx, ht);