On Fri, Apr 06, 2018 at 06:20:41AM +0100, David Chisnall wrote: > On 6 Apr 2018, at 01:30, Pete Wright <pete_at_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. -- SteveReceived on Fri Apr 06 2018 - 04:22:22 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:15 UTC