https://gcc.gnu.org/bugzilla/show_bug.cgi?id=29186
--- Comment #26 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Richard B. Kreckel from comment #25) > (In reply to Richard Biener from comment #24) > > So you're just lucky indeed ... > > This makes me wonder if there is still a way to trigger this. > > You suggest this has been fixed for the division (is there a PR or > reference?) and I am not able to create a similar bug using addition, > multiplication, etc. using GCC 10. You just need to give GCC the incentive to break it. Like with #include <fenv.h> #include <stdio.h> int main() { double x = (double)printf("") + 1.0; // one double y = (double)printf(""); // zero double breakme = x / y; feclearexcept(FE_ALL_EXCEPT); double z = x / y; // should set FE_DIVBYZERO if (fetestexcept(FE_ALL_EXCEPT)) { printf("flag set after call.\n"); } printf("%f/%f==%f\n",x,y,z + breakme); }