https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120775
--- Comment #28 from Jakub Jelinek <jakub at gcc dot gnu.org> --- (In reply to Marek Polacek from comment #27) > (In reply to Jakub Jelinek from comment #26) > > https://forge.sourceware.org/marek/gcc/pulls/96 seems to fix that, shall I > > merge that or do you want something else? > > Could we do just > > - refl = cxx_constant_value (refl); > + refl = fold_non_dependent_expr (refl, tf_warning_or_error, > + /*manifestly_const_eval=*/true); > > ? I think we can't. One, I think we need to handle the processing_template_decl case more carefully, if it isn't constant, just revert to building SPLICE_EXPR, while for !processing_template_decl we want to error. And fold_non_dependent_expr calls maybe_constant_value instead of cxx_constant_value, so while it is mce_true as well, it doesn't report errors, just silently returns non-constant.
