https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113841
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Known to fail| |12.3.1 Known to work| |13.1.0 Status|UNCONFIRMED |NEW Ever confirmed|0 |1 Last reconfirmed| |2024-02-09 See Also| |https://gcc.gnu.org/bugzill | |a/show_bug.cgi?id=109030 --- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> --- This is a compiler bug not a library bug. The preprocessed source from GCC 12 compiles fine with GCC 13. GCC started to accept it with r13-6716 c++: maybe_constant_init and unevaluated operands [PR109030] This testcase in this PR (already fixed by r13-6526-ge4692319fd5fc7) demonstrates that maybe_constant_init can be called on an unevaluated operand (e.g. from massage_init_elt) so this entry point should also limit constant evaluation in that case, like maybe_constant_value does. PR c++/109030 gcc/cp/ChangeLog: * constexpr.cc (maybe_constant_init_1): For an unevaluated non-manifestly-constant operand, don't constant evaluate and instead call fold_to_constant as in maybe_constant_value.