Author: rsmith Date: Wed Sep 28 15:26:06 2016 New Revision: 282627 URL: http://llvm.org/viewvc/llvm-project?rev=282627&view=rev Log: P0095R3: Implement the latest published revision of SD-6 (C++ feature test macros).
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=282627&r1=282626&r2=282627&view=diff ============================================================================== --- cfe/trunk/lib/Frontend/InitPreprocessor.cpp (original) +++ cfe/trunk/lib/Frontend/InitPreprocessor.cpp Wed Sep 28 15:26:06 2016 @@ -467,7 +467,8 @@ static void InitializeCPlusPlusFeatureTe Builder.defineMacro("__cpp_lambdas", "200907"); Builder.defineMacro("__cpp_constexpr", LangOpts.CPlusPlus14 ? "201304" : "200704"); - Builder.defineMacro("__cpp_range_based_for", "200907"); + Builder.defineMacro("__cpp_range_based_for", + LangOpts.CPlusPlus1z ? "201603" : "200907"); Builder.defineMacro("__cpp_static_assert", LangOpts.CPlusPlus1z ? "201411" : "200410"); Builder.defineMacro("__cpp_decltype", "200707"); @@ -498,12 +499,15 @@ static void InitializeCPlusPlusFeatureTe // C++17 features. if (LangOpts.CPlusPlus1z) { + Builder.defineMacro("__cpp_hex_float", "201603"); //Builder.defineMacro("__cpp_noexcept_function_type", "201510"); - Builder.defineMacro("__cpp_fold_expressions", "201411"); + Builder.defineMacro("__cpp_capture_star_this", "201603"); Builder.defineMacro("__cpp_namespace_attributes", "201411"); Builder.defineMacro("__cpp_enumerator_attributes", "201411"); Builder.defineMacro("__cpp_nested_namespace_definitions", "201411"); + Builder.defineMacro("__cpp_aggregate_bases", "201603"); Builder.defineMacro("__cpp_nontype_template_args", "201411"); + Builder.defineMacro("__cpp_fold_expressions", "201603"); } // TS features. Modified: cfe/trunk/test/Lexer/cxx-features.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Lexer/cxx-features.cpp?rev=282627&r1=282626&r2=282627&view=diff ============================================================================== --- cfe/trunk/test/Lexer/cxx-features.cpp (original) +++ cfe/trunk/test/Lexer/cxx-features.cpp Wed Sep 28 15:26:06 2016 @@ -22,15 +22,27 @@ // --- C++17 features --- +#if check(hex_float, 0, 0, 0, 201603) +#error "wrong value for __cpp_hex_float" +#endif + #if check(noexcept_function_type, 0, 0, 0, 0) -// FIXME +// FIXME: value shuld be 201510 for cxx1z once implemented #error "wrong value for __cpp_noexcept_function_type" #endif -#if check(fold_expressions, 0, 0, 0, 201411) +#if check(fold_expressions, 0, 0, 0, 201603) #error "wrong value for __cpp_fold_expressions" #endif +#if check(capture_star_this, 0, 0, 0, 201603) +#error "wrong value for __cpp_capture_star_this" +#endif + +// FIXME: bump __cpp_constexpr to 201603 for constexpr lambda support + +// range_based_for checked below + // static_assert checked below #if check(namespace_attributes, 0, 0, 0, 201411) @@ -47,6 +59,10 @@ #error "wrong value for __cpp_nested_namespace_definitions" #endif +#if check(aggregate_bases, 0, 0, 0, 201603) +#error "wrong value for __cpp_aggregate_bases" +#endif + #if check(nontype_template_args, 0, 0, 0, 201411) #error "wrong value for __cpp_nontype_template_args" #endif @@ -122,7 +138,7 @@ #error "wrong value for __cpp_constexpr" #endif -#if check(range_based_for, 0, 200907, 200907, 200907) +#if check(range_based_for, 0, 200907, 200907, 201603) #error "wrong value for __cpp_range_based_for" #endif Modified: cfe/trunk/www/cxx_status.html URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/www/cxx_status.html?rev=282627&r1=282626&r2=282627&view=diff ============================================================================== --- cfe/trunk/www/cxx_status.html (original) +++ cfe/trunk/www/cxx_status.html Wed Sep 28 15:26:06 2016 @@ -774,7 +774,7 @@ Clang version they became available:</p> </tr> <tr> <td class="svn" align="center"> - SVN (<a href="http://wg21.link/p0096r2">P0096R2</a>)</a> + SVN (<a href="http://wg21.link/p0096r3">P0096R3</a>)</a> </td> </tr> <!-- FIXME: Implement latest recommendations. _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits