https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91337
Chinoune <chinoune.mehdi at hotmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID --- Comment #3 from Chinoune <chinoune.mehdi at hotmail dot com> --- Sorry, It wasn't a bug. the compiler is not skipping the if statement. -fassociative-math : Allow re-association of operands in series of floating-point operations. This violates the ISO C and C++ language standard by possibly changing computation result. NOTE: re-ordering may change the sign of zero as well as ignore NaNs and inhibit or create underflow or overflow (and thus cannot be used on code that relies on rounding behavior like (x + 2**52) - 2**52. May also reorder floating-point comparisons and thus may not be used when ordered comparisons are required. -fassociative-math is enabled by -funsafe-math-optimizations .