Article View: comp.std.c
Article #5023valueless return statement in non-void function
From: walter briscoe
Date: Mon, 15 Apr 1996 13:05
Date: Mon, 15 Apr 1996 13:05
35 lines
1989 bytes
1989 bytes
I recently had trouble moving some K&R code to ISO C. Specifically, a function without a return statement was used to return a value with an implicit return at the } terminating the function. Section 6.6.6.4 of ANSI/ISO 9899-1990 contains the Semantic restriction > If a return statement without an expression is executed, and the value > of the function call is used by the caller, the behavior is undefined. It goes on to say: > Reaching the } that terminates the function is equivalent to executing > a return statement without an expression. I am surprised/irritated that the undefined behavior is in the caller rather than the called function. The Rationale, I have, associated with a draft of the standard makes no comment on the return statement. I would like the next version of the standard to have an additional constraint: A return statement without an expression shall only appear in a function whose return type is void. causing the redundancy of: > If a return statement without an expression is executed, and the value > of the function call is used by the caller, the behavior is undefined. The obvious objection to such a statement is that it conflicts with prior art. I would answer that by making the implicit type of declarations void rather than int. That would allow less unreasonable prior art to port without complaint. I would have implicitly typed declarations deprecated in the next revision of the standard to facilitate their removal by a further revision. -- walter briscoe
Technical Details
Message-ID:
<829573502snz@wbriscoe.demon.co.uk>Path:
arc1-ca.pugleaf.net!mail2news.demon.co.uk!wbriscoe.demon.co.ukShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!mail2news.demon.co.uk!wbriscoe.demon.co.uk From: walter briscoe <walter@wbriscoe.demon.co.uk> Newsgroups: comp.std.c Subject: valueless return statement in non-void function Date: Mon, 15 Apr 96 13:05:02 GMT Message-ID: <829573502snz@wbriscoe.demon.co.uk> Reply-To: walter@wbriscoe.demon.co.uk X-NNTP-Posting-Host: wbriscoe.demon.co.uk X-Newsreader: Demon Internet Simple News v1.30 X-Mail2News-Path: wbriscoe.demon.co.uk