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

--- Comment #2 from Paolo Carlini <paolo.carlini at oracle dot com> ---
The below, very lightly tested so far, should work fine, adjusts
DECL_DECLARED_CONSTEXPR_P as we used to do - before r253321 - a few lines below
before returning. Jakub, I'm in the middle of a few other things, you may want
to give it a try, in case we want it for 8.1.0 and we don't have a better fix:

Index: method.c
===================================================================
--- method.c    (revision 258846)
+++ method.c    (working copy)
@@ -2189,6 +2189,10 @@ defaulted_late_check (tree fn)
             "expected signature", fn);
       inform (DECL_SOURCE_LOCATION (fn),
              "expected signature: %qD", implicit_fn);
+      /* For error recovery sake (c++/85067).  */
+      if (DECL_DEFAULTED_IN_CLASS_P (fn)
+         && DECL_DECLARED_CONSTEXPR_P (implicit_fn))
+       DECL_DECLARED_CONSTEXPR_P (fn) = true;
       return;
     }

Reply via email to