]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR tree-optimization/25394 (libgcc2.c:2033: ICE: tree check: expected tree that...
authorDaniel Berlin <dberlin@dberlin.org>
Wed, 28 Dec 2005 14:09:28 +0000 (14:09 +0000)
committerDaniel Berlin <dberlin@gcc.gnu.org>
Wed, 28 Dec 2005 14:09:28 +0000 (14:09 +0000)
2005-12-28  Daniel Berlin  <dberlin@dberlin.org>

Fix PR tree-optimization/25394
* fold-const.c (fold_checksum_tree): Guard
portions of checksumming with correct structure checks.

From-SVN: r109109

gcc/ChangeLog
gcc/fold-const.c

index 9a3f53ff404abafd5d3788cd137090daeac00ddb..2b7ff265bfb0484d472836ae9ac3844f3092309f 100644 (file)
@@ -1,3 +1,9 @@
+2005-12-28  Daniel Berlin  <dberlin@dberlin.org>
+
+       Fix PR tree-optimization/25394
+       * fold-const.c (fold_checksum_tree): Guard 
+       portions of checksumming with correct structure checks.
+
 2005-12-27  Kazu Hirata  <kazu@codesourcery.com>
 
        * global.c, tree-ssa-pre.c: Move DEF_VEC_P(basic_block) and
index 4006d8996a9c3437ecbf15c1d1044f25b06449e3..2366c754dda91340c2510fbb2a88f855705661f0 100644 (file)
@@ -10498,13 +10498,16 @@ recursive_label:
        fold_checksum_tree (TREE_OPERAND (expr, i), ctx, ht);
       break;
     case tcc_declaration:
-      fold_checksum_tree (DECL_SIZE (expr), ctx, ht);
-      fold_checksum_tree (DECL_SIZE_UNIT (expr), ctx, ht);
       fold_checksum_tree (DECL_NAME (expr), ctx, ht);
       fold_checksum_tree (DECL_CONTEXT (expr), ctx, ht);
-      fold_checksum_tree (DECL_INITIAL (expr), ctx, ht);
-      fold_checksum_tree (DECL_ABSTRACT_ORIGIN (expr), ctx, ht);
-      fold_checksum_tree (DECL_ATTRIBUTES (expr), ctx, ht);
+      if (CODE_CONTAINS_STRUCT (TREE_CODE (expr), TS_DECL_COMMON))
+       {
+         fold_checksum_tree (DECL_SIZE (expr), ctx, ht);
+         fold_checksum_tree (DECL_SIZE_UNIT (expr), ctx, ht);
+         fold_checksum_tree (DECL_INITIAL (expr), ctx, ht);
+         fold_checksum_tree (DECL_ABSTRACT_ORIGIN (expr), ctx, ht);
+         fold_checksum_tree (DECL_ATTRIBUTES (expr), ctx, ht);
+       }
       if (CODE_CONTAINS_STRUCT (TREE_CODE (expr), TS_DECL_WITH_VIS))
        fold_checksum_tree (DECL_SECTION_NAME (expr), ctx, ht);