RFC: Default language standard mode policy

Richard Smith via cfe-commits cfe-commits at lists.llvm.org
Wed Jun 29 12:09:37 PDT 2016


Hi all!

I'd like to establish a policy for Clang's default language standard (if
none is specified with -std), as follows:

  Clang defaults to the most recent published standard for the selected
language that it fully implements.

The practical impact of this is that clang++ will default to C++14 for C++
compilations (for version 3.9 onwards) and will default to C++17 once our
implementation support is complete and the standard is published (whichever
happens later).

I'd suggest that we apply the same policy for clang-cl, but if it's
important that we enable a not-yet-fully-implemented standard for cl
compatibility, that seems reasonable.

The question of whether the default mode for the GCC-compatible driver
should be -std=gnuXXX or -std=cXXX is separate, but also likely worth
discussing. Enabling GNU keywords by default is a very odd choice, and if
we believe we can change our defaults without breaking the world then this
seems like a good time to do so.

I also intend to make explicit in our documentation that our -std=XXX flag
enables the selected standard, *plus all relevant issues in Defect Report
status from the relevant language committee* (it doesn't make sense to
support a language without its bugfixes).

Thoughts?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160629/7f3e5487/attachment.html>


More information about the cfe-commits mailing list