public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "vincent-gcc at vinc17 dot net" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug c/53232] New: No warning for main() without a return statement with -std=c99 Date: Fri, 04 May 2012 12:56:00 -0000 [thread overview] Message-ID: <bug-53232-4@http.gcc.gnu.org/bugzilla/> (raw) http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53232 Bug #: 53232 Summary: No warning for main() without a return statement with -std=c99 Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: minor Priority: P3 Component: c AssignedTo: unassigned@gcc.gnu.org ReportedBy: vincent-gcc@vinc17.net On the following program, GCC (4.4 to 4.7 at least) invoked with -std=c99 -Wreturn-type doesn't give a warning about the missing return statement. #include <stdio.h> static int i = 0; int main (void) { if (i++ == 0) printf ("%d\n", main ()); } According to the C99 rules, it seems that the return statement is optional only for program termination. Though this is ambiguous, someone else at least has the same interpretation as me: http://groups.google.com/group/comp.std.c/msg/c2f56fecfb699952 Before seeing this message, I posted http://groups.google.com/group/comp.std.c/browse_thread/thread/0187ef7b23bedf16 to comp.std.c (Subject: main function without a return statement in C99/C11). Also, I think that the warning should be given in every case for the following reasons: * A missing return statement may be unintentional (I think that implicit values like here should be discouraged in general, and that the C99 rule is there more to avoid undefined behavior than to save space). * Compatibility with C90 and with freestanding environments. * It is difficult to guarantee that main() will not be called from another C file.
next reply other threads:[~2012-05-04 12:56 UTC|newest] Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top 2012-05-04 12:56 vincent-gcc at vinc17 dot net [this message] 2012-05-04 13:44 ` [Bug c/53232] " manu at gcc dot gnu.org 2012-05-04 14:34 ` redi at gcc dot gnu.org 2012-05-04 15:29 ` manu at gcc dot gnu.org 2012-05-04 15:39 ` redi at gcc dot gnu.org 2012-05-04 15:44 ` vincent-gcc at vinc17 dot net 2012-05-04 16:09 ` redi at gcc dot gnu.org 2012-05-04 16:12 ` redi at gcc dot gnu.org 2012-05-04 19:58 ` vincent-gcc at vinc17 dot net 2021-08-28 19:07 ` pinskia at gcc dot gnu.org 2023-01-20 7:21 ` pinskia at gcc dot gnu.org 2023-01-20 13:33 ` vincent-gcc at vinc17 dot net 2023-01-20 13:47 ` redi at gcc dot gnu.org 2023-01-20 13:52 ` jakub at gcc dot gnu.org 2023-01-20 13:59 ` vincent-gcc at vinc17 dot net 2023-01-20 14:01 ` jakub at gcc dot gnu.org 2023-01-20 14:29 ` vincent-gcc at vinc17 dot net 2023-01-20 14:31 ` jakub at gcc dot gnu.org 2023-01-20 15:10 ` vincent-gcc at vinc17 dot net
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=bug-53232-4@http.gcc.gnu.org/bugzilla/ \ --to=gcc-bugzilla@gcc.gnu.org \ --cc=gcc-bugs@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).