]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
* pt.c (instantiate_decl): Don't recheck substitutions.
authorJason Merrill <jason@redhat.com>
Thu, 19 Jul 2012 01:36:58 +0000 (21:36 -0400)
committerJason Merrill <jason@gcc.gnu.org>
Thu, 19 Jul 2012 01:36:58 +0000 (21:36 -0400)
From-SVN: r189640

gcc/cp/ChangeLog
gcc/cp/pt.c

index 5cc6ccd2f8ec39ddfaeb1cf760e51f82df63b495..9a3c65604ad2077c9e1e0f43adb4717f15f857d7 100644 (file)
@@ -1,3 +1,7 @@
+2012-07-18  Jason Merrill  <jason@redhat.com>
+
+       * pt.c (instantiate_decl): Don't recheck substitutions.
+
 2012-07-18  Paolo Carlini  <paolo.carlini@oracle.com>
            Jason Merrill  <jason@redhat.com>
 
index 65eb2cc103d2359408decdaadddef8a84fddc234..0d253982233e7e4ae02d1f40c0efc929455bde1b 100644 (file)
@@ -18248,35 +18248,6 @@ instantiate_decl (tree d, int defer_ok,
   if (TREE_CODE (d) == FUNCTION_DECL)
     maybe_instantiate_noexcept (d);
 
-  /* Recheck the substitutions to obtain any warning messages
-     about ignoring cv qualifiers.  Don't do this for artificial decls,
-     as it breaks the context-sensitive substitution for lambda op(). */
-  if (!defer_ok && !DECL_ARTIFICIAL (d))
-    {
-      tree gen = DECL_TEMPLATE_RESULT (gen_tmpl);
-      tree type = TREE_TYPE (gen);
-
-      /* Make sure that we can see identifiers, and compute access
-        correctly.  D is already the target FUNCTION_DECL with the
-        right context.  */
-      push_access_scope (d);
-
-      if (TREE_CODE (gen) == FUNCTION_DECL)
-       {
-         tsubst (DECL_ARGUMENTS (gen), gen_args, tf_warning_or_error, d);
-          tsubst_exception_specification (type, gen_args, tf_warning_or_error,
-                                          d, /*defer_ok*/true);
-         /* Don't simply tsubst the function type, as that will give
-            duplicate warnings about poor parameter qualifications.
-            The function arguments are the same as the decl_arguments
-            without the top level cv qualifiers.  */
-         type = TREE_TYPE (type);
-       }
-      tsubst (type, gen_args, tf_warning_or_error, d);
-
-      pop_access_scope (d);
-    }
-
   /* Defer all other templates, unless we have been explicitly
      forbidden from doing so.  */
   if (/* If there is no definition, we cannot instantiate the