On Wed, Jun 29, 2016 at 1:34 PM, Sean Silva <chisophu...@gmail.com> wrote:
> > > On Wed, Jun 29, 2016 at 12:51 PM, Richard Smith <rich...@metafoo.co.uk> > wrote: > >> On Wed, Jun 29, 2016 at 12:30 PM, Sean Silva <chisophu...@gmail.com> >> wrote: >> >>> >>> >>> On Wed, Jun 29, 2016 at 12:09 PM, Richard Smith via cfe-commits < >>> cfe-commits@lists.llvm.org> wrote: >>> >>>> 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. >>>> >>> >>> Using cXXX instead of gnuXXX would break the world on PS4. So for sure >>> with `-std=c++latest` we would end up proposing a patch to change this for >>> the PS4 target to gnu++latest (or gnu++11 if gnu++latest is not feasible). >>> >> >> OK. Out of interest, is it the GNU keywords that you need, or some other >> effect of the difference between modes? >> > > A quick check of two titles I have at hand shows that at least `typeof` is > in use. > (this check consisted of using -std=c++11 instead of -std=gnu++11 and seeing what breaks) -- Sean Silva > > -- Sean Silva > > >> >> >>> (As I'm sure you're aware, we have pending to upstream a patch that >>> makes -std=gnu++11 the default C++ language mode on PS4 (just blocked on >>> fixing tests to not assume the existing std)). >>> >>> It may be feasible for us to use a "-std=gnu++latest" behavior and not >>> have to have a PS4-specific default; CC'ing Warren and Paul. >>> >>> -- Sean Silva >>> >>> >>>> >>>> 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? >>>> >>>> _______________________________________________ >>>> cfe-commits mailing list >>>> cfe-commits@lists.llvm.org >>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >>>> >>>> >>> >> >
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits