https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60725
Martin Sebor <msebor at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |msebor at gcc dot gnu.org --- Comment #5 from Martin Sebor <msebor at gcc dot gnu.org> --- Not to complicate things too much, but reaching the closing } of a non-void function is valid in C. What is not valid (i.e., has undefined behavior) is calling such a function and using its return value when none was provided (as in the program in comment #3). The program in the Description, however, has well-defined behavior because f1's return value isn't used.