https://gcc.gnu.org/bugzilla/show_bug.cgi?id=19779
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |redi at gcc dot gnu.org --- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- I think this should be rejects-valid not a missed-optimization enhancement. For C++20 we reject valid code: #include <limits> constexpr long double x = 1.0L + std::numeric_limits<long double>::epsilon(); <stdin>:1:32: error: ‘(1.0e+0l + 4.94065645841246544176568792868221e-324l)’ is not a constant expression The code reduces to: constexpr long double x = 1.0L + __LDBL_EPSILON__;