Thanks! I've merged r309054 in r310721 to make it apply cleanly, and this one in r310722.
On Thu, Aug 10, 2017 at 8:42 PM, Richard Smith <rich...@metafoo.co.uk> wrote: > Hi Hans, this should go onto the Clang 5 branch. Thanks! > > On 10 August 2017 at 20:39, Richard Smith via cfe-commits > <cfe-commits@lists.llvm.org> wrote: >> >> Author: rsmith >> Date: Thu Aug 10 20:39:40 2017 >> New Revision: 310694 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=310694&view=rev >> Log: >> Implement latest feature test macro recommendations, P0096R4. >> >> Modified: >> cfe/trunk/lib/Frontend/InitPreprocessor.cpp >> cfe/trunk/test/Lexer/cxx-features.cpp >> cfe/trunk/www/cxx_status.html >> >> Modified: cfe/trunk/lib/Frontend/InitPreprocessor.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/InitPreprocessor.cpp?rev=310694&r1=310693&r2=310694&view=diff >> >> ============================================================================== >> --- cfe/trunk/lib/Frontend/InitPreprocessor.cpp (original) >> +++ cfe/trunk/lib/Frontend/InitPreprocessor.cpp Thu Aug 10 20:39:40 2017 >> @@ -498,6 +498,8 @@ static void InitializeCPlusPlusFeatureTe >> Builder.defineMacro("__cpp_ref_qualifiers", "200710"); >> Builder.defineMacro("__cpp_alias_templates", "200704"); >> } >> + if (LangOpts.ThreadsafeStatics) >> + Builder.defineMacro("__cpp_threadsafe_static_init", "200806"); >> >> // C++14 features. >> if (LangOpts.CPlusPlus14) { >> @@ -520,6 +522,7 @@ static void InitializeCPlusPlusFeatureTe >> Builder.defineMacro("__cpp_noexcept_function_type", "201510"); >> Builder.defineMacro("__cpp_capture_star_this", "201603"); >> Builder.defineMacro("__cpp_if_constexpr", "201606"); >> + Builder.defineMacro("__cpp_deduction_guides", "201611"); >> Builder.defineMacro("__cpp_template_auto", "201606"); >> Builder.defineMacro("__cpp_namespace_attributes", "201411"); >> Builder.defineMacro("__cpp_enumerator_attributes", "201411"); >> @@ -529,8 +532,6 @@ static void InitializeCPlusPlusFeatureTe >> Builder.defineMacro("__cpp_structured_bindings", "201606"); >> Builder.defineMacro("__cpp_nontype_template_args", "201411"); >> Builder.defineMacro("__cpp_fold_expressions", "201603"); >> - // FIXME: This is not yet listed in SD-6. >> - Builder.defineMacro("__cpp_deduction_guides", "201611"); >> } >> if (LangOpts.AlignedAllocation) >> Builder.defineMacro("__cpp_aligned_new", "201606"); >> >> Modified: cfe/trunk/test/Lexer/cxx-features.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Lexer/cxx-features.cpp?rev=310694&r1=310693&r2=310694&view=diff >> >> ============================================================================== >> --- cfe/trunk/test/Lexer/cxx-features.cpp (original) >> +++ cfe/trunk/test/Lexer/cxx-features.cpp Thu Aug 10 20:39:40 2017 >> @@ -4,7 +4,7 @@ >> // RUN: %clang_cc1 -std=c++14 -fcxx-exceptions -fsized-deallocation >> -verify %s >> // RUN: %clang_cc1 -std=c++1z -fcxx-exceptions -fsized-deallocation >> -verify %s >> // RUN: %clang_cc1 -std=c++1z -fcxx-exceptions -fsized-deallocation >> -fconcepts-ts -DCONCEPTS_TS=1 -verify %s >> -// RUN: %clang_cc1 -fno-rtti -verify %s -DNO_EXCEPTIONS -DNO_RTTI >> +// RUN: %clang_cc1 -fno-rtti -fno-threadsafe-statics -verify %s >> -DNO_EXCEPTIONS -DNO_RTTI -DNO_THREADSAFE_STATICS >> // RUN: %clang_cc1 -fcoroutines-ts -DNO_EXCEPTIONS -DCOROUTINES -verify >> %s >> >> // expected-no-diagnostics >> @@ -26,11 +26,11 @@ >> #error "wrong value for __cpp_hex_float" >> #endif >> >> -#if check(inline_variables, 0, 0, 0, 201606) // FIXME: provisional name >> +#if check(inline_variables, 0, 0, 0, 201606) >> #error "wrong value for __cpp_inline_variables" >> #endif >> >> -#if check(aligned_new, 0, 0, 0, 201606) // FIXME: provisional name >> +#if check(aligned_new, 0, 0, 0, 201606) >> #error "wrong value for __cpp_aligned_new" >> #endif >> >> @@ -48,7 +48,7 @@ >> >> // constexpr checked below >> >> -#if check(if_constexpr, 0, 0, 0, 201606) // FIXME: provisional name >> +#if check(if_constexpr, 0, 0, 0, 201606) >> #error "wrong value for __cpp_if_constexpr" >> #endif >> >> @@ -56,11 +56,11 @@ >> >> // static_assert checked below >> >> -#if check(deduction_guides, 0, 0, 0, 201611) // FIXME: provisional name >> +#if check(deduction_guides, 0, 0, 0, 201611) >> #error "wrong value for __cpp_deduction_guides" >> #endif >> >> -#if check(template_auto, 0, 0, 0, 201606) // FIXME: provisional name >> +#if check(template_auto, 0, 0, 0, 201606) >> #error "wrong value for __cpp_template_auto" >> #endif >> >> @@ -80,7 +80,7 @@ >> >> // inheriting_constructors checked below >> >> -#if check(variadic_using, 0, 0, 0, 201611) // FIXME: provisional name >> +#if check(variadic_using, 0, 0, 0, 201611) >> #error "wrong value for __cpp_variadic_using" >> #endif >> >> @@ -163,6 +163,10 @@ >> #error "wrong value for __cpp_user_defined_literals" >> #endif >> >> +#if defined(NO_THREADSAFE_STATICS) ? check(threadsafe_static_init, 0, 0, >> 0, 0) : check(threadsafe_static_init, 200806, 200806, 200806, 200806) >> +#error "wrong value for __cpp_threadsafe_static_init" >> +#endif >> + >> #if check(lambdas, 0, 200907, 200907, 200907) >> #error "wrong value for __cpp_lambdas" >> #endif >> >> Modified: cfe/trunk/www/cxx_status.html >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/www/cxx_status.html?rev=310694&r1=310693&r2=310694&view=diff >> >> ============================================================================== >> --- cfe/trunk/www/cxx_status.html (original) >> +++ cfe/trunk/www/cxx_status.html Thu Aug 10 20:39:40 2017 >> @@ -854,9 +854,9 @@ and library features that are not part o >> <th>Available in Clang?</th> >> </tr> >> <tr> >> - <td rowspan="3">SD-6: SG10 feature test recommendations</td> >> - <td rowspan="3"><a >> href="http://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations">SD-6</a></td> >> - <td rowspan="3">N/A</td> >> + <td rowspan="4">SD-6: SG10 feature test recommendations</td> >> + <td rowspan="4"><a >> href="http://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations">SD-6</a></td> >> + <td rowspan="4">N/A</td> >> <td class="full" align="center"> >> Clang 3.4 (<a >> href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3745">N3745</a>)</br> >> </td> >> @@ -871,6 +871,11 @@ and library features that are not part o >> Clang 4 (<a href="http://wg21.link/p0096r3">P0096R3</a>)</a> >> </td> >> </tr> >> + <tr> >> + <td class="svn" align="center"> >> + Clang 5 (<a href="http://wg21.link/p0096r4">P0096R4</a>)</a> >> + </td> >> + </tr> >> <!-- FIXME: Implement latest recommendations. >> <tr> >> <td class="svn" align="center"> >> >> >> _______________________________________________ >> 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