OSDN Git Service

2012-07-04 Richard Guenther <rguenther@suse.de>
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 4 Jul 2012 13:53:11 +0000 (13:53 +0000)
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 4 Jul 2012 13:53:11 +0000 (13:53 +0000)
PR middle-end/53433
* gimple-fold.c (get_base_constructor): Do not return an
error_mark_node DECL_INITIAL.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@189262 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/gimple-fold.c

index ab8597f..a184571 100644 (file)
@@ -1,3 +1,9 @@
+2012-07-04  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/53433
+       * gimple-fold.c (get_base_constructor): Do not return an
+       error_mark_node DECL_INITIAL.
+
 2012-07-04  Uros Bizjak  <ubizjak@gmail.com>
 
        Backport from mainline
index faf72d0..de8919e 100644 (file)
@@ -2705,6 +2705,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: