https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107608
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Richard Biener from comment #2) > With -fnon-call-exceptions we are a bit more careful (but the above is gone > in the gimplifier still). For -fnon-call-exceptions, you need -fno-delete-dead-exceptions (it looks like the gimplifier is broken there). That is for: ``` float foo(void) { float t; t = __FLT_MAX__ + __FLT_MAX__; return 1; } ``` To keep around the addition, you need both -fnon-call-exceptions and -fno-delete-dead-exceptions . I know there has been issues with where we still DCE code with -fno-delete-dead-exceptions (I fixed one last year).