On Fri, Apr 06, 2018 at 06:20:41AM +0100, David Chisnall wrote:
> On 6 Apr 2018, at 01:30, Pete Wright <p...@nomadlogic.org> 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
_______________________________________________
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to