]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR middle-end/53433 (ICE in int_mode_for_mode, at stor-layout.c:424 during lto...
authorRichard Guenther <rguenther@suse.de>
Wed, 4 Jul 2012 13:56:00 +0000 (13:56 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Wed, 4 Jul 2012 13:56:00 +0000 (13:56 +0000)
2012-07-04  Richard Guenther  <rguenther@suse.de>

PR middle-end/53433
* tree-ssa-ccp.c (get_base_constructor): Do not return an
error_mark_node DECL_INITIAL.

From-SVN: r189263

gcc/ChangeLog
gcc/tree-ssa-ccp.c

index edbf66075ebbc0aa571275596a86d7f541539cc1..815552cf27e0e76a4c936bc4e3fa9f46350766d8 100644 (file)
@@ -1,3 +1,9 @@
+2012-07-04  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/53433
+       * tree-ssa-ccp.c (get_base_constructor): Do not return an
+       error_mark_node DECL_INITIAL.
+
 2012-07-02  Martin Jambor  <mjambor@suse.cz>
 
        PR middle-end/38474
index 9e09eeec887cee5405432e0876e1b401557d59c4..90c69a0f31723f0a5f131b524238eb46a2995b39 100644 (file)
@@ -1364,6 +1364,10 @@ get_base_constructor (tree base, HOST_WIDE_INT *bit_offset)
       if (!DECL_INITIAL (base)
          && (TREE_STATIC (base) || DECL_EXTERNAL (base)))
         return error_mark_node;
+      /* Do not return an error_mark_node DECL_INITIAL.  LTO uses this
+        as special marker (_not_ zero ...) for its own purposes.  */
+      if (DECL_INITIAL (base) == error_mark_node)
+       return NULL_TREE;
       return DECL_INITIAL (base);
 
     case ARRAY_REF: