On Fri, Apr 06, 2018 at 06:20:41AM +0100, David Chisnall wrote:
> On 6 Apr 2018, at 01:30, Pete Wright <[email protected]> wrote:
> >
> >
> > On 04/05/2018 17:15, Steve Kargl wrote:
> >> This assumes that a gcc(1) is available on the system.
> >>
> >> % man gcc
> >> No manual entry for gcc
> >>
> >> If the system compiler is clang/clang++, then it ought to be
> >> documented better than it currently is. Ian's suggests for
> >> 'clang --help' is even worse
> >>
> >> % clang --help | grep -- -std
> >> -cl-std=<value> OpenCL language standard to compile for.
> >> -std=<value> Language standard to compile for
> >> -stdlib=<value> C++ standard library to use
> >>
> >> Does <value> == <language>?
> >>
> > a quick google search turns up the following additional information:
> >
> > "clang supports the -std option, which changes what language mode clang
> > uses. The supported modes for C are c89, gnu89, c99, gnu99, c11, gnu11,
> > c17, gnu17, and various aliases for those modes. If no -std option is
> > specified, clang defaults to gnu11 mode. Many C99 and C11 features are
> > supported in earlier modes as a conforming extension, with a warning. Use
> > |-pedantic-errors| to request an error if a feature from a later standard
> > revision is used in an earlier mode."
> >
> > https://clang.llvm.org/docs/UsersManual.html
>
> I believe that the clang user manual referenced here is written in Sphynx,
> which is able to generate mandoc output as well as HTML. Perhaps we should
> incorporate the generated file in the next import?
>
> David
That would be a good start. But, after cruisng around the
clang webpages, there is no clear set of <value> for
-std=<value> in the User's manuals on the webpages. For
example, "clang -std=iso9899:1990" apparently is valid,
but google find no instances of this construct. A search
of clang.llvm.org does not find this construct. Surprising
doing something complete stupid give`
% cc -std=fubar -c a.c
error: invalid value 'fubar' in '-std=fubar'
note: use 'c89', 'c90', or 'iso9899:1990' for 'ISO C 1990' standard
note: use 'iso9899:199409' for 'ISO C 1990 with amendment 1' standard
note: use 'gnu89' or 'gnu90' for 'ISO C 1990 with GNU extensions' standard
note: use 'c99' or 'iso9899:1999' for 'ISO C 1999' standard
note: use 'gnu99' for 'ISO C 1999 with GNU extensions' standard
note: use 'c11' or 'iso9899:2011' for 'ISO C 2011' standard
note: use 'gnu11' for 'ISO C 2011 with GNU extensions' standard
note: use 'c17' or 'iso9899:2017' for 'ISO C 2017' standard
note: use 'gnu17' for 'ISO C 2017 with GNU extensions' standard
% clang++ -std=fubar a.cxx
error: invalid value 'fubar' in '-std=fubar'
note: use 'c++98' or 'c++03' for 'ISO C++ 1998 with amendments' standard
note: use 'gnu++98' or 'gnu++03' for 'ISO C++ 1998 with amendments and GNU
extensions' standard
note: use 'c++11' for 'ISO C++ 2011 with amendments' standard
note: use 'gnu++11' for 'ISO C++ 2011 with amendments and GNU extensions'
standard
note: use 'c++14' for 'ISO C++ 2014 with amendments' standard
note: use 'gnu++14' for 'ISO C++ 2014 with amendments and GNU extensions'
standard
note: use 'c++17' for 'ISO C++ 2017 with amendments' standard
note: use 'gnu++17' for 'ISO C++ 2017 with amendments and GNU extensions'
standard
note: use 'c++2a' for 'Working draft for ISO C++ 2020' standard
note: use 'gnu++2a' for 'Working draft for ISO C++ 2020 with GNU extensions'
standard
This information belongs in a manpage.
--
Steve
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "[email protected]"