https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104690
--- Comment #2 from Vincent Lefèvre <vincent-gcc at vinc17 dot net> --- (In reply to Jakub Jelinek from comment #1) > It requires that the callee tells the caller that it reached end of non-void > function without return and the callee checks if the value is actually used > there. Note that the rule makes sense only in the same translation unit (otherwise, this is probable out of scope of the standard since functions may be written in different languages). So I think that a part of the check between the caller and the callee can be done at compile time.