https://gcc.gnu.org/bugzilla/show_bug.cgi?id=27394
Oleg Endo <olegendo at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED CC| |olegendo at gcc dot gnu.org Resolution|--- |INVALID Known to fail| | --- Comment #9 from Oleg Endo <olegendo at gcc dot gnu.org> --- I've briefly checked this issue on trunk / sh-elf. For -O0 function 'f' returns -128, while -O1 returs 127. At -O1 'f' gets inlined and main returns '1'. Anyway, I think this can be closed. The test case is showing that undefined behavior is undefined while the main motivation seems to be debugging. For that there are more modern debugging tools available these days. For example the option -fsanitize=float-cast-overflow will catch this problem.