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"