https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107242
--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> --- I think that either the C++ frontend needs to reject this code or we need to ignore -frounding-math in constant folding this (I think we do that elsewhere). x86 is fine, presumambly because of ... !? I get struct cf test_comparison () { struct cf D.2394; const complex float a; const complex float b; a = __complex__ (2.2000000476837158203125e+0, 0.0); b = __complex__ (4.400000095367431640625e+0, 0.0); _1 = __complex__ (2.2000000476837158203125e+0, 0.0) + __complex__ (4.400000095367431640625e+0, 0.0); D.2394._M_value = _1; return D.2394; }