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

--- Comment #5 from Sergei Trofimovich <slyfox at gcc dot gnu.org> ---
The default value is `-fchecking=2` there. `-fchecking=0` and `-fchecking=1`
work fine. This means `-fchecking=` slightly alters c++ template instantiation.

I'll try to extract smaller example.

The following workaround seems to restore the build:

--- a/gcc/cp/pt.cc
+++ b/gcc/cp/pt.cc
@@ -29302,20 +29302,21 @@ tree
 build_non_dependent_expr (tree expr)
 {
   tree orig_expr = expr;
   tree inner_expr;

   /* When checking, try to get a constant value for all non-dependent
      expressions in order to expose bugs in *_dependent_expression_p
      and constexpr.  This can affect code generation, see PR70704, so
      only do this for -fchecking=2.  */
   if (flag_checking > 1
+      && false
       && cxx_dialect >= cxx11
       /* Don't do this during nsdmi parsing as it can lead to
         unexpected recursive instantiations.  */
       && !parsing_nsdmi ()
       /* Don't do this during concept processing either and for
          the same reason.  */
       && !processing_constraint_expression_p ())
     fold_non_dependent_expr (expr, tf_none);

   STRIP_ANY_LOCATION_WRAPPER (expr);

Reply via email to