------- Comment #3 from jakub at gcc dot gnu dot org 2008-08-14 08:03 ------- I think the primary question is, do we expect -frounding-math to force this to be evaluated at runtime or not? If it should be evaluated at runtime, then I'd say initializer_constant_valid_p should reject PLUS_EXPR and MINUS_EXPR with FLOAT_TYPE_P (endtype) (and maybe also narrowing casts like (float) double) if flag_rounding_math. If it shouldn't be evaluated at runtime, we'd need to figure out where to call (perhaps recursively) the fold*initializer calls - that's something only the C FE uses, but not C++.
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36912