public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/53232] New: No warning for main() without a return statement with -std=c99
@ 2012-05-04 12:56 vincent-gcc at vinc17 dot net
  2012-05-04 13:44 ` [Bug c/53232] " manu at gcc dot gnu.org
                   ` (17 more replies)
  0 siblings, 18 replies; 19+ messages in thread
From: vincent-gcc at vinc17 dot net @ 2012-05-04 12:56 UTC (permalink / raw)
  To: gcc-bugs

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.


^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2023-01-20 15:10 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-05-04 12:56 [Bug c/53232] New: No warning for main() without a return statement with -std=c99 vincent-gcc at vinc17 dot net
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

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).