This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: Which standard is the default for -std?
- From: Ian Lance Taylor <iant at google dot com>
- To: John Rocha <jrr at cisco dot com>
- Cc: gcc-help at gcc dot gnu dot org
- Date: Wed, 10 Mar 2010 08:07:12 -0800
- Subject: Re: Which standard is the default for -std?
- References: <4B96812C.8030307@cisco.com>
John Rocha <jrr@cisco.com> writes:
> My man page for [gcc] indicates:
>
> 1. gnu89
> is the default value "Default, ISO C90 plus GNU extension
> (including some C(features)".
> 2. gnu99
> "ISO C99 plus GNU extension. When IOS C99 is fully implemented in
> GCC this will become the default."
>
> The version of [g++/gcc] I am using is as 4.1.2 20070115 (detailed
> listing shown at end) for Linux on a SUSE 10 SP1 machine.
>
> I went to gnu.org, navigated to the latest documentation for [g++/gcc]
> and found 4.4.3 20100121. The PDF documentation for 4.4.3 describes
> the '-std' options the same way: gnu89 is the current default, gnu99
> is the planned to be the future default.
>
> Is this still true?
Yes.
> So, is gnu89 still the default for the '-std' flag?
Yes.
I don't really know how we would decide to change the default. The
handling of non-static inline functions is different in GNU89 and
C99/GNU99 modes. This happened because inline functions do not exist
in C89, and C99 choose to follow C++, which is not how GNU89 behaves.
Changing the default is sure to break some currently working programs
(the -fgnu89-inline option can be used to restore the GNU89 inline
behaviour when in C99/GNU99 mode). This incompatibility means that
flipping the default is not something to be done casually.
> Secondly, is there some flag or option that displays the settings,
> even the default settings that are in use? I know, RTFM and trust in
> it, but I've been burned by outdated documentation a few times. Hence
> my apprehension.
You can see the status of many options using -fverbose-asm and looking
in the .s file, but unfortunately the -std option doesn't seem to be
one of them.
Ian