man gcc doesn't mention -std=c90

L

learnerlone

This is what the man page for gcc tells me regarding -std options for the C language:

-std=
Determine the language standard. This option is
currently only supported when compiling C or C++.

The compiler can accept several base standards, such
as c89 or c++98, and GNU dialects of those standards,
such as gnu89 or gnu++98. By specifying a base
standard, the compiler will accept all programs
following that standard and those using GNU
extensions that do not contradict it. For example,
-std=c89 turns off certain features of GCC that are
incompatible with ISO C90, such as the "asm" and
"typeof" keywords, but not other GNU extensions that
do not have a meaning in ISO C90, such as omitting
the middle term of a "?:" expression. On the other
hand, by specifying a GNU dialect of a standard, all
features the compiler support are enabled, even when
those features change the meaning of the base
standard and some strict-conforming programs may be
rejected. The particular standard is used by
-pedantic to identify which features are GNU
extensions given that version of the standard. For
example -std=gnu89 -pedantic would warn about C++
style // comments, while -std=gnu99 -pedantic would
not.

A value for this option must be provided; possible
values are

c89
iso9899:1990
Support all ISO C90 programs (certain GNU
extensions that conflict with ISO C90 are
disabled). Same as -ansi for C code.

iso9899:199409
ISO C90 as modified in amendment 1.

c99
c9x
iso9899:1999
iso9899:199x
ISO C99. Note that this standard is not yet
fully supported; see
<http://gcc.gnu.org/gcc-4.4/c99status.html> for
more information. The names c9x and iso9899:199x
are deprecated.

gnu89
GNU dialect of ISO C90 (including some C99
features). This is the default for C code.

gnu99
gnu9x
GNU dialect of ISO C99. When ISO C99 is fully
implemented in GCC, this will become the default.
The name gnu9x is deprecated.

But at http://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html I learnt that -std=c90 is synonymous to -ansi. I have confirmed that -c89 and -c90 both work with my compiler but I can't understand why the man page doesn't mention -c90.

My gcc version:

$ gcc --version
gcc (Debian 4.7.1-2) 4.7.1
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
J

James Kuyper

On 08/12/2012 07:32 AM, (e-mail address removed) wrote:
....
But at http://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html I learnt that -std=c90 is synonymous to -ansi. I have confirmed that -c89 and -c90 both work with my compiler but I can't understand why the man page doesn't mention -c90.

That's a defect in the gcc documentation, and I would recommend
reporting it at <http://gcc.gnu.org/bugzilla>. Even better, volunteer to
fix it - they'll be very happy to accept your help, and fixing such
documentation issues doesn't require as much specialized knowledge as
solving software defects.

This is not the best forum for discussing compiler-specific issues, it
is for discussion of the C language itself, regardless of which compiler
is used.
 
B

Ben Bacarisse

James Kuyper said:
On 08/12/2012 07:32 AM, (e-mail address removed) wrote:
...

That's a defect in the gcc documentation, and I would recommend
reporting it at <http://gcc.gnu.org/bugzilla>.

My version (4.6.3) lists -std=c90 as an alternative, so it's been
fixed. If the OP's version is widely used it may still be worth fixing
but I'd say it's low priority.

<snip>
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,770
Messages
2,569,583
Members
45,074
Latest member
StanleyFra

Latest Threads

Top