PR c++/25632
authorrakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 4 Jan 2006 22:46:09 +0000 (22:46 +0000)
committerrakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 4 Jan 2006 22:46:09 +0000 (22:46 +0000)
* init.c (constant_value_1): Unshare use of DECL_INITIAL.  Fix a typo
in condition.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@109354 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/cp/ChangeLog
gcc/cp/init.c

index b2967c1..e487339 100644 (file)
@@ -1,3 +1,9 @@
+2005-01-04  Zdenek Dvorak <dvorakz@suse.cz>
+
+       PR c++/25632
+       * init.c (constant_value_1): Unshare use of DECL_INITIAL.  Fix a typo
+       in condition.
+
 2006-01-04  Chris Lattner  <sabre@gnu.org>
 
         * typeck2.c: update copyright to 2006
index dbdd866..3ec5510 100644 (file)
@@ -1503,7 +1503,7 @@ constant_value_1 (tree decl, bool integral_p)
          mark_used (decl);
          init = DECL_INITIAL (decl);
        }
-      if (!(init || init == error_mark_node)
+      if (!init || init == error_mark_node
          || !TREE_TYPE (init)
          || (integral_p
              ? !INTEGRAL_OR_ENUMERATION_TYPE_P (TREE_TYPE (init))
@@ -1516,7 +1516,7 @@ constant_value_1 (tree decl, bool integral_p)
                 || TREE_CODE (init) == CONSTRUCTOR
                 || TREE_CODE (init) == STRING_CST)))
        break;
-      decl = init;
+      decl = unshare_expr (init);
     }
   return decl;
 }