re PR c++/49418 (G++ discards cv-quals from template parameter types)
authorJason Merrill <jason@redhat.com>
Fri, 24 Jun 2011 02:18:42 +0000 (22:18 -0400)
committerJason Merrill <jason@gcc.gnu.org>
Fri, 24 Jun 2011 02:18:42 +0000 (22:18 -0400)
PR c++/49418
* typeck2.c (build_functional_cast): Strip cv-quals for value init.
* init.c (build_zero_init_1): Not here.

From-SVN: r175368

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

index e00b4001c490d6abb7b23a6887efd2ce1c2a1bd6..12b12e577da9aa271d748da2bbbc2e10234f1981 100644 (file)
@@ -1,5 +1,9 @@
 2011-06-23  Jason Merrill  <jason@redhat.com>
 
+       PR c++/49519
+       * typeck2.c (build_functional_cast): Strip cv-quals for value init.
+       * init.c (build_zero_init_1): Not here.
+
        PR c++/35255
        * pt.c (resolve_overloaded_unification): Fix DR 115 handling.
 
index 62b68f2b9ea6a81e8575705813ce34b561a182d4..3c347a4521f983a2c84914731bf5f0185c9a1754 100644 (file)
@@ -176,7 +176,7 @@ build_zero_init_1 (tree type, tree nelts, bool static_storage_p,
        initialized are initialized to zero.  */
     ;
   else if (SCALAR_TYPE_P (type))
-    init = convert (cv_unqualified (type), integer_zero_node);
+    init = convert (type, integer_zero_node);
   else if (CLASS_TYPE_P (type))
     {
       tree field;
index ff2949c510d2fed81206f84e199720905ba56a5b..8bb938e46a8a4d9d36e53df6c38bb09afd4e91ad 100644 (file)
@@ -1641,7 +1641,7 @@ build_functional_cast (tree exp, tree parms, tsubst_flags_t complain)
        {
          if (VOID_TYPE_P (type))
            return void_zero_node;
-         return build_value_init (type, complain);
+         return build_value_init (cv_unqualified (type), complain);
        }
 
       /* This must build a C cast.  */