https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84981

--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> ---
And maybe also this for references as template arguments:

--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -6259,7 +6259,8 @@ convert_nontype_argument_function (tree type, tree expr,
     }

   linkage = decl_linkage (fn_no_ptr);
-  if (cxx_dialect >= cxx11 ? linkage == lk_none : linkage != lk_external)
+  if ((cxx_dialect < cxx11 && linkage != lk_external)
+      || (cxx_dialect < cxx17 && linkage == lk_none))
     {
       if (complain & tf_error)
        {


But I think there's more needed to ensure we don't produce invalid GIMPLE.

Reply via email to