r310804 - Replace remaining user-visible mentions of C++1z with C++17.

Hans Wennborg via cfe-commits cfe-commits at lists.llvm.org
Mon Aug 14 10:28:56 PDT 2017


r310862. Thanks!

On Sun, Aug 13, 2017 at 3:41 PM, Richard Smith <richard at metafoo.co.uk> wrote:
> Since we took the -std=c++17 change for Clang 5, we should take this one
> too.
>
> On 13 August 2017 at 15:26, Richard Smith via cfe-commits
> <cfe-commits at lists.llvm.org> wrote:
>>
>> Author: rsmith
>> Date: Sun Aug 13 15:26:53 2017
>> New Revision: 310804
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=310804&view=rev
>> Log:
>> Replace remaining user-visible mentions of C++1z with C++17.
>>
>> Modified:
>>     cfe/trunk/include/clang/Basic/DiagnosticGroups.td
>>     cfe/trunk/include/clang/Basic/DiagnosticLexKinds.td
>>     cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td
>>     cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td
>>     cfe/trunk/test/CXX/dcl.dcl/dcl.attr/dcl.attr.nodiscard/p2.cpp
>>     cfe/trunk/test/CXX/dcl.dcl/dcl.attr/dcl.attr.unused/p3.cpp
>>     cfe/trunk/test/CXX/drs/dr0xx.cpp
>>     cfe/trunk/test/CXX/drs/dr13xx.cpp
>>     cfe/trunk/test/CXX/drs/dr1xx.cpp
>>     cfe/trunk/test/CXX/drs/dr2xx.cpp
>>     cfe/trunk/test/CXX/drs/dr4xx.cpp
>>     cfe/trunk/test/CXX/drs/dr5xx.cpp
>>     cfe/trunk/test/CXX/stmt.stmt/stmt.iter/stmt.ranged/p1.cpp
>>     cfe/trunk/test/FixIt/fixit.cpp
>>     cfe/trunk/test/Lexer/hexfloat.cpp
>>     cfe/trunk/test/Parser/cxx0x-attributes.cpp
>>     cfe/trunk/test/Parser/cxx1z-constexpr-lambdas.cpp
>>     cfe/trunk/test/Parser/cxx1z-nested-namespace-definition.cpp
>>     cfe/trunk/test/SemaCXX/cxx0x-compat.cpp
>>     cfe/trunk/test/SemaCXX/deprecated.cpp
>>     cfe/trunk/test/SemaCXX/inline.cpp
>>     cfe/trunk/test/SemaCXX/static-assert.cpp
>>     cfe/trunk/test/SemaCXX/warn-c++1z-extensions.cpp
>>     cfe/trunk/test/SemaTemplate/temp_arg_nontype_cxx11.cpp
>>
>> Modified: cfe/trunk/include/clang/Basic/DiagnosticGroups.td
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticGroups.td?rev=310804&r1=310803&r2=310804&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/include/clang/Basic/DiagnosticGroups.td (original)
>> +++ cfe/trunk/include/clang/Basic/DiagnosticGroups.td Sun Aug 13 15:26:53
>> 2017
>> @@ -156,9 +156,10 @@ def FormatZeroLength : DiagGroup<"format
>>
>>  def InvalidIOSDeploymentTarget :
>> DiagGroup<"invalid-ios-deployment-target">;
>>
>> -def CXX1zCompatMangling : DiagGroup<"c++1z-compat-mangling">;
>> +def CXX17CompatMangling : DiagGroup<"c++17-compat-mangling">;
>> +def : DiagGroup<"c++1z-compat-mangling", [CXX17CompatMangling]>;
>>  // Name of this warning in GCC.
>> -def NoexceptType : DiagGroup<"noexcept-type", [CXX1zCompatMangling]>;
>> +def NoexceptType : DiagGroup<"noexcept-type", [CXX17CompatMangling]>;
>>
>>  // Warnings for C++1y code which is not compatible with prior C++
>> standards.
>>  def CXXPre14Compat : DiagGroup<"c++98-c++11-compat">;
>> @@ -220,9 +221,10 @@ def CXX14Compat : DiagGroup<"c++14-compa
>>  def CXX14CompatPedantic : DiagGroup<"c++14-compat-pedantic",
>>                                      [CXXPre1zCompatPedantic]>;
>>
>> -def CXX1zCompat : DiagGroup<"c++1z-compat", [DeprecatedRegister,
>> +def CXX17Compat : DiagGroup<"c++17-compat", [DeprecatedRegister,
>>                                               DeprecatedIncrementBool,
>> -                                             CXX1zCompatMangling]>;
>> +                                             CXX17CompatMangling]>;
>> +def : DiagGroup<"c++1z-compat", [CXX17Compat]>;
>>
>>  def CXX2aCompat : DiagGroup<"c++2a-compat">;
>>
>> @@ -780,10 +782,11 @@ def CXX14 : DiagGroup<"c++14-extensions"
>>
>>  // A warning group for warnings about using C++1z features as extensions
>> in
>>  // earlier C++ versions.
>> -def CXX1z : DiagGroup<"c++1z-extensions">;
>> +def CXX17 : DiagGroup<"c++17-extensions">;
>>
>>  def : DiagGroup<"c++0x-extensions", [CXX11]>;
>>  def : DiagGroup<"c++1y-extensions", [CXX14]>;
>> +def : DiagGroup<"c++1z-extensions", [CXX17]>;
>>
>>  def DelegatingCtorCycles :
>>    DiagGroup<"delegating-ctor-cycles">;
>>
>> Modified: cfe/trunk/include/clang/Basic/DiagnosticLexKinds.td
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticLexKinds.td?rev=310804&r1=310803&r2=310804&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/include/clang/Basic/DiagnosticLexKinds.td (original)
>> +++ cfe/trunk/include/clang/Basic/DiagnosticLexKinds.td Sun Aug 13
>> 15:26:53 2017
>> @@ -181,10 +181,10 @@ def err_hex_constant_requires : Error<
>>  def ext_hex_constant_invalid : Extension<
>>    "hexadecimal floating constants are a C99 feature">, InGroup<C99>;
>>  def ext_hex_literal_invalid : Extension<
>> -  "hexadecimal floating literals are a C++1z feature">, InGroup<CXX1z>;
>> +  "hexadecimal floating literals are a C++17 feature">, InGroup<CXX17>;
>>  def warn_cxx1z_hex_literal : Warning<
>>    "hexadecimal floating literals are incompatible with "
>> -  "C++ standards before C++1z">,
>> +  "C++ standards before C++17">,
>>    InGroup<CXXPre1zCompatPedantic>, DefaultIgnore;
>>  def ext_binary_literal : Extension<
>>    "binary integer literals are a GNU extension">,
>> InGroup<GNUBinaryLiteral>;
>> @@ -208,7 +208,7 @@ def warn_cxx98_compat_unicode_literal :
>>    "unicode literals are incompatible with C++98">,
>>    InGroup<CXX98Compat>, DefaultIgnore;
>>  def warn_cxx14_compat_u8_character_literal : Warning<
>> -  "unicode literals are incompatible with C++ standards before C++1z">,
>> +  "unicode literals are incompatible with C++ standards before C++17">,
>>    InGroup<CXXPre1zCompat>, DefaultIgnore;
>>  def warn_cxx11_compat_user_defined_literal : Warning<
>>    "identifier after literal will be treated as a user-defined literal
>> suffix "
>>
>> Modified: cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td?rev=310804&r1=310803&r2=310804&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td (original)
>> +++ cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td Sun Aug 13
>> 15:26:53 2017
>> @@ -211,10 +211,10 @@ def err_inline_namespace_alias : Error<"
>>  def err_namespace_nonnamespace_scope : Error<
>>    "namespaces can only be defined in global or namespace scope">;
>>  def ext_nested_namespace_definition : ExtWarn<
>> -  "nested namespace definition is a C++1z extension; "
>> -  "define each namespace separately">, InGroup<CXX1z>;
>> +  "nested namespace definition is a C++17 extension; "
>> +  "define each namespace separately">, InGroup<CXX17>;
>>  def warn_cxx14_compat_nested_namespace_definition : Warning<
>> -  "nested namespace definition is incompatible with C++ standards before
>> C++1z">,
>> +  "nested namespace definition is incompatible with C++ standards before
>> C++17">,
>>    InGroup<CXXPre1zCompat>, DefaultIgnore;
>>  def err_inline_nested_namespace_definition : Error<
>>    "nested namespace definition cannot be 'inline'">;
>> @@ -358,7 +358,7 @@ def err_expected_coloncolon_after_super
>>    "expected '::' after '__super'">;
>>
>>  def ext_decomp_decl_empty : ExtWarn<
>> -  "ISO C++1z does not allow a decomposition group to be empty">,
>> +  "ISO C++17 does not allow a decomposition group to be empty">,
>>    InGroup<DiagGroup<"empty-decomposition">>;
>>
>>  /// Objective-C parser diagnostics
>> @@ -522,16 +522,16 @@ def err_function_is_not_record : Error<
>>  def err_super_in_using_declaration : Error<
>>    "'__super' cannot be used with a using declaration">;
>>  def ext_constexpr_if : ExtWarn<
>> -  "constexpr if is a C++1z extension">, InGroup<CXX1z>;
>> +  "constexpr if is a C++17 extension">, InGroup<CXX17>;
>>  def warn_cxx14_compat_constexpr_if : Warning<
>> -  "constexpr if is incompatible with C++ standards before C++1z">,
>> +  "constexpr if is incompatible with C++ standards before C++17">,
>>    DefaultIgnore, InGroup<CXXPre1zCompat>;
>>  def ext_init_statement : ExtWarn<
>> -  "'%select{if|switch}0' initialization statements are a C++1z
>> extension">,
>> -  InGroup<CXX1z>;
>> +  "'%select{if|switch}0' initialization statements are a C++17
>> extension">,
>> +  InGroup<CXX17>;
>>  def warn_cxx14_compat_init_statement : Warning<
>>    "%select{if|switch}0 initialization statements are incompatible with "
>> -  "C++ standards before C++1z">, DefaultIgnore, InGroup<CXXPre1zCompat>;
>> +  "C++ standards before C++17">, DefaultIgnore, InGroup<CXXPre1zCompat>;
>>
>>  // C++ derived classes
>>  def err_dup_virtual : Error<"duplicate 'virtual' in base specifier">;
>> @@ -560,7 +560,7 @@ def warn_cxx98_compat_nullptr : Warning<
>>
>>  def warn_cxx14_compat_attribute : Warning<
>>    "attributes on %select{a namespace|an enumerator}0 declaration are "
>> -  "incompatible with C++ standards before C++1z">,
>> +  "incompatible with C++ standards before C++17">,
>>    InGroup<CXXPre1zCompat>, DefaultIgnore;
>>  def warn_cxx98_compat_alignas : Warning<"'alignas' is incompatible with
>> C++98">,
>>    InGroup<CXX98Compat>, DefaultIgnore;
>> @@ -577,10 +577,10 @@ def err_cxx11_attribute_repeated : Error
>>    "attribute %0 cannot appear multiple times in an attribute specifier">;
>>  def warn_cxx14_compat_using_attribute_ns : Warning<
>>    "default scope specifier for attributes is incompatible with C++
>> standards "
>> -  "before C++1z">, InGroup<CXXPre1zCompat>, DefaultIgnore;
>> +  "before C++17">, InGroup<CXXPre1zCompat>, DefaultIgnore;
>>  def ext_using_attribute_ns : ExtWarn<
>> -  "default scope specifier for attributes is a C++1z extension">,
>> -  InGroup<CXX1z>;
>> +  "default scope specifier for attributes is a C++17 extension">,
>> +  InGroup<CXX17>;
>>  def err_using_attribute_ns_conflict : Error<
>>    "attribute with scope specifier cannot follow default scope
>> specifier">;
>>  def err_attributes_not_allowed : Error<"an attribute list cannot appear
>> here">;
>> @@ -617,11 +617,11 @@ def err_expected_comma_greater : Error<
>>  def err_class_on_template_template_param : Error<
>>    "template template parameter requires 'class' after the parameter
>> list">;
>>  def ext_template_template_param_typename : ExtWarn<
>> -  "template template parameter using 'typename' is a C++1z extension">,
>> -  InGroup<CXX1z>;
>> +  "template template parameter using 'typename' is a C++17 extension">,
>> +  InGroup<CXX17>;
>>  def warn_cxx14_compat_template_template_param_typename : Warning<
>>    "template template parameter using 'typename' is "
>> -  "incompatible with C++ standards before C++1z">,
>> +  "incompatible with C++ standards before C++17">,
>>    InGroup<CXXPre1zCompat>, DefaultIgnore;
>>  def err_template_spec_syntax_non_template : Error<
>>    "identifier followed by '<' indicates a class template specialization
>> but "
>> @@ -695,10 +695,10 @@ def err_default_template_template_parame
>>    "template">;
>>
>>  def ext_fold_expression : ExtWarn<
>> -  "pack fold expression is a C++1z extension">,
>> -  InGroup<CXX1z>;
>> +  "pack fold expression is a C++17 extension">,
>> +  InGroup<CXX17>;
>>  def warn_cxx14_compat_fold_expression : Warning<
>> -  "pack fold expression is incompatible with C++ standards before
>> C++1z">,
>> +  "pack fold expression is incompatible with C++ standards before
>> C++17">,
>>    InGroup<CXXPre1zCompat>, DefaultIgnore;
>>  def err_expected_fold_operator : Error<
>>    "expected a foldable binary operator in fold expression">;
>> @@ -751,16 +751,16 @@ def err_alias_declaration_pack_expansion
>>  // C++1z using-declaration pack expansions
>>  def ext_multi_using_declaration : ExtWarn<
>>    "use of multiple declarators in a single using declaration is "
>> -  "a C++1z extension">, InGroup<CXX1z>;
>> +  "a C++17 extension">, InGroup<CXX17>;
>>  def warn_cxx1z_compat_multi_using_declaration : Warning<
>>    "use of multiple declarators in a single using declaration is "
>> -  "incompatible with C++ standards before C++1z">,
>> +  "incompatible with C++ standards before C++17">,
>>    InGroup<CXXPre1zCompat>, DefaultIgnore;
>>  def ext_using_declaration_pack : ExtWarn<
>> -  "pack expansion of using declaration is a C++1z extension">,
>> InGroup<CXX1z>;
>> +  "pack expansion of using declaration is a C++17 extension">,
>> InGroup<CXX17>;
>>  def warn_cxx1z_compat_using_declaration_pack : Warning<
>>    "pack expansion using declaration is incompatible with C++ standards "
>> -  "before C++1z">, InGroup<CXXPre1zCompat>, DefaultIgnore;
>> +  "before C++17">, InGroup<CXXPre1zCompat>, DefaultIgnore;
>>
>>  // C++11 override control
>>  def ext_override_control_keyword : ExtWarn<
>> @@ -817,10 +817,10 @@ def err_expected_star_this_capture : Err
>>
>>  // C++1z constexpr lambda expressions
>>  def warn_cxx14_compat_constexpr_on_lambda : Warning<
>> -  "constexpr on lambda expressions is incompatible with C++ standards
>> before C++1z">,
>> +  "constexpr on lambda expressions is incompatible with C++ standards
>> before C++17">,
>>    InGroup<CXXPre1zCompat>, DefaultIgnore;
>>  def ext_constexpr_on_lambda_cxx1z : ExtWarn<
>> -  "'constexpr' on lambda expressions is a C++1z extension">,
>> InGroup<CXX1z>;
>> +  "'constexpr' on lambda expressions is a C++17 extension">,
>> InGroup<CXX17>;
>>
>>  // Availability attribute
>>  def err_expected_version : Error<
>>
>> Modified: cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td?rev=310804&r1=310803&r2=310804&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td (original)
>> +++ cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td Sun Aug 13
>> 15:26:53 2017
>> @@ -213,9 +213,9 @@ def warn_auto_storage_class : Warning<
>>
>>  def warn_deprecated_register : Warning<
>>    "'register' storage class specifier is deprecated "
>> -  "and incompatible with C++1z">, InGroup<DeprecatedRegister>;
>> +  "and incompatible with C++17">, InGroup<DeprecatedRegister>;
>>  def ext_register_storage_class : ExtWarn<
>> -  "ISO C++1z does not allow 'register' storage class specifier">,
>> +  "ISO C++17 does not allow 'register' storage class specifier">,
>>    DefaultError, InGroup<Register>;
>>
>>  def err_invalid_decl_spec_combination : Error<
>> @@ -393,9 +393,9 @@ def err_decomp_decl_context : Error<
>>    "decomposition declaration not permitted in this context">;
>>  def warn_cxx14_compat_decomp_decl : Warning<
>>    "decomposition declarations are incompatible with "
>> -  "C++ standards before C++1z">, DefaultIgnore, InGroup<CXXPre1zCompat>;
>> +  "C++ standards before C++17">, DefaultIgnore, InGroup<CXXPre1zCompat>;
>>  def ext_decomp_decl : ExtWarn<
>> -  "decomposition declarations are a C++1z extension">, InGroup<CXX1z>;
>> +  "decomposition declarations are a C++17 extension">, InGroup<CXX17>;
>>  def err_decomp_decl_spec : Error<
>>    "decomposition declaration cannot be declared "
>>    "%plural{1:'%1'|:with '%1' specifiers}0">;
>> @@ -496,7 +496,7 @@ def err_access_decl : Error<
>>    "ISO C++11 does not allow access declarations; "
>>    "use using declarations instead">;
>>  def ext_dynamic_exception_spec : ExtWarn<
>> -  "ISO C++1z does not allow dynamic exception specifications">,
>> +  "ISO C++17 does not allow dynamic exception specifications">,
>>    InGroup<DynamicExceptionSpec>, DefaultError;
>>  def warn_exception_spec_deprecated : Warning<
>>    "dynamic exception specifications are deprecated">,
>> @@ -509,7 +509,7 @@ def warn_deprecated_copy_operation : War
>>    InGroup<Deprecated>, DefaultIgnore;
>>  def warn_cxx1z_compat_exception_spec_in_signature : Warning<
>>    "mangled name of %0 will change in C++17 due to non-throwing exception
>> "
>> -  "specification in function signature">, InGroup<CXX1zCompatMangling>;
>> +  "specification in function signature">, InGroup<CXX17CompatMangling>;
>>
>>  def warn_global_constructor : Warning<
>>    "declaration requires a global constructor">,
>> @@ -1216,15 +1216,15 @@ def err_static_assert_expression_is_not_
>>    "static_assert expression is not an integral constant expression">;
>>  def err_static_assert_failed : Error<"static_assert failed%select{
>> %1|}0">;
>>  def ext_static_assert_no_message : ExtWarn<
>> -  "static_assert with no message is a C++1z extension">, InGroup<CXX1z>;
>> +  "static_assert with no message is a C++17 extension">, InGroup<CXX17>;
>>  def warn_cxx14_compat_static_assert_no_message : Warning<
>> -  "static_assert with no message is incompatible with C++ standards
>> before C++1z">,
>> +  "static_assert with no message is incompatible with C++ standards
>> before C++17">,
>>    DefaultIgnore, InGroup<CXXPre1zCompat>;
>>
>>  def ext_inline_variable : ExtWarn<
>> -  "inline variables are a C++1z extension">, InGroup<CXX1z>;
>> +  "inline variables are a C++17 extension">, InGroup<CXX17>;
>>  def warn_cxx14_compat_inline_variable : Warning<
>> -  "inline variables are incompatible with C++ standards before C++1z">,
>> +  "inline variables are incompatible with C++ standards before C++17">,
>>    DefaultIgnore, InGroup<CXXPre1zCompat>;
>>
>>  def warn_inline_namespace_reopened_noninline : Warning<
>> @@ -1938,7 +1938,7 @@ def err_auto_not_allowed : Error<
>>    "|in non-static struct member|in struct member"
>>    "|in non-static union member|in union member"
>>    "|in non-static class member|in interface member"
>> -  "|in exception declaration|in template parameter until C++1z|in block
>> literal"
>> +  "|in exception declaration|in template parameter until C++17|in block
>> literal"
>>    "|in template argument|in typedef|in type alias|in function return
>> type"
>>    "|in conversion function type|here|in lambda parameter"
>>    "|in type allocated by 'new'|in K&R-style function parameter"
>> @@ -2163,11 +2163,11 @@ def err_for_range_iter_deduction_failure
>>  def err_for_range_member_begin_end_mismatch : Error<
>>    "range type %0 has '%select{begin|end}1' member but no
>> '%select{end|begin}1' member">;
>>  def ext_for_range_begin_end_types_differ : ExtWarn<
>> -  "'begin' and 'end' returning different types (%0 and %1) is a C++1z
>> extension">,
>> -  InGroup<CXX1z>;
>> +  "'begin' and 'end' returning different types (%0 and %1) is a C++17
>> extension">,
>> +  InGroup<CXX17>;
>>  def warn_for_range_begin_end_types_differ : Warning<
>>    "'begin' and 'end' returning different types (%0 and %1) is
>> incompatible "
>> -  "with C++ standards before C++1z">, InGroup<CXXPre1zCompat>,
>> DefaultIgnore;
>> +  "with C++ standards before C++17">, InGroup<CXXPre1zCompat>,
>> DefaultIgnore;
>>  def note_in_for_range: Note<
>>    "when looking up '%select{begin|end}0' function for range expression "
>>    "of type %1">;
>> @@ -3927,7 +3927,7 @@ def err_template_nontype_parm_bad_type :
>>    "a non-type template parameter cannot have type %0">;
>>  def warn_cxx14_compat_template_nontype_parm_auto_type : Warning<
>>    "non-type template parameters declared with %0 are incompatible with
>> C++ "
>> -  "standards before C++1z">,
>> +  "standards before C++17">,
>>    DefaultIgnore, InGroup<CXXPre1zCompat>;
>>  def err_template_param_default_arg_redefinition : Error<
>>    "template parameter redefines default argument">;
>> @@ -6363,9 +6363,9 @@ def note_member_first_declared_here : No
>>  def err_decrement_bool : Error<"cannot decrement expression of type
>> bool">;
>>  def warn_increment_bool : Warning<
>>    "incrementing expression of type bool is deprecated and "
>> -  "incompatible with C++1z">, InGroup<DeprecatedIncrementBool>;
>> +  "incompatible with C++17">, InGroup<DeprecatedIncrementBool>;
>>  def ext_increment_bool : ExtWarn<
>> -  "ISO C++1z does not allow incrementing expression of type bool">,
>> +  "ISO C++17 does not allow incrementing expression of type bool">,
>>    DefaultError, InGroup<IncrementBool>;
>>  def err_increment_decrement_enum : Error<
>>    "cannot %select{decrement|increment}0 expression of enum type %1">;
>> @@ -6554,10 +6554,10 @@ let CategoryName = "Lambda Issue" in {
>>
>>    // C++1z '*this' captures.
>>    def warn_cxx14_compat_star_this_lambda_capture : Warning<
>> -    "by value capture of '*this' is incompatible with C++ standards
>> before C++1z">,
>> +    "by value capture of '*this' is incompatible with C++ standards
>> before C++17">,
>>       InGroup<CXXPre1zCompat>, DefaultIgnore;
>>    def ext_star_this_lambda_capture_cxx1z : ExtWarn<
>> -    "capture of '*this' by copy is a C++1z extension">, InGroup<CXX1z>;
>> +    "capture of '*this' by copy is a C++17 extension">, InGroup<CXX17>;
>>  }
>>
>>  def err_return_in_captured_stmt : Error<
>> @@ -7230,7 +7230,7 @@ def warn_unused_volatile : Warning<
>>  def ext_cxx14_attr : Extension<
>>    "use of the %0 attribute is a C++14 extension">, InGroup<CXX14>;
>>  def ext_cxx1z_attr : Extension<
>> -  "use of the %0 attribute is a C++1z extension">, InGroup<CXX1z>;
>> +  "use of the %0 attribute is a C++17 extension">, InGroup<CXX17>;
>>
>>  def warn_unused_comparison : Warning<
>>    "%select{%select{|in}1equality|relational}0 comparison result unused">,
>>
>> Modified: cfe/trunk/test/CXX/dcl.dcl/dcl.attr/dcl.attr.nodiscard/p2.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CXX/dcl.dcl/dcl.attr/dcl.attr.nodiscard/p2.cpp?rev=310804&r1=310803&r2=310804&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/test/CXX/dcl.dcl/dcl.attr/dcl.attr.nodiscard/p2.cpp
>> (original)
>> +++ cfe/trunk/test/CXX/dcl.dcl/dcl.attr/dcl.attr.nodiscard/p2.cpp Sun Aug
>> 13 15:26:53 2017
>> @@ -1,5 +1,5 @@
>> -// RUN: %clang_cc1 -fsyntax-only -std=c++1z -verify -Wc++1z-extensions %s
>> -// RUN: %clang_cc1 -fsyntax-only -std=c++11 -verify -DEXT
>> -Wc++1z-extensions %s
>> +// RUN: %clang_cc1 -fsyntax-only -std=c++17 -verify -Wc++17-extensions %s
>> +// RUN: %clang_cc1 -fsyntax-only -std=c++11 -verify -DEXT
>> -Wc++17-extensions %s
>>
>>  struct [[nodiscard]] S {};
>>  S get_s();
>> @@ -23,7 +23,7 @@ void f() {
>>  }
>>
>>  #ifdef EXT
>> -// expected-warning at 4 {{use of the 'nodiscard' attribute is a C++1z
>> extension}}
>> -// expected-warning at 8 {{use of the 'nodiscard' attribute is a C++1z
>> extension}}
>> -// expected-warning at 11 {{use of the 'nodiscard' attribute is a C++1z
>> extension}}
>> +// expected-warning at 4 {{use of the 'nodiscard' attribute is a C++17
>> extension}}
>> +// expected-warning at 8 {{use of the 'nodiscard' attribute is a C++17
>> extension}}
>> +// expected-warning at 11 {{use of the 'nodiscard' attribute is a C++17
>> extension}}
>>  #endif
>>
>> Modified: cfe/trunk/test/CXX/dcl.dcl/dcl.attr/dcl.attr.unused/p3.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CXX/dcl.dcl/dcl.attr/dcl.attr.unused/p3.cpp?rev=310804&r1=310803&r2=310804&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/test/CXX/dcl.dcl/dcl.attr/dcl.attr.unused/p3.cpp (original)
>> +++ cfe/trunk/test/CXX/dcl.dcl/dcl.attr/dcl.attr.unused/p3.cpp Sun Aug 13
>> 15:26:53 2017
>> @@ -1,5 +1,5 @@
>> -// RUN: %clang_cc1 -fsyntax-only -Wunused -Wused-but-marked-unused
>> -std=c++1z -Wc++1z-extensions -verify %s
>> -// RUN: %clang_cc1 -fsyntax-only -Wunused -Wused-but-marked-unused
>> -std=c++11 -Wc++1z-extensions -verify -DEXT %s
>> +// RUN: %clang_cc1 -fsyntax-only -Wunused -Wused-but-marked-unused
>> -std=c++17 -Wc++17-extensions -verify %s
>> +// RUN: %clang_cc1 -fsyntax-only -Wunused -Wused-but-marked-unused
>> -std=c++11 -Wc++17-extensions -verify -DEXT %s
>>
>>  static_assert(__has_cpp_attribute(maybe_unused) == 201603, "");
>>
>> @@ -20,7 +20,7 @@ void f() {
>>  }
>>
>>  #ifdef EXT
>> -// expected-warning at 6 {{use of the 'maybe_unused' attribute is a C++1z
>> extension}}
>> -// expected-warning at 13 {{use of the 'maybe_unused' attribute is a C++1z
>> extension}}
>> -// expected-warning at 14 {{use of the 'maybe_unused' attribute is a C++1z
>> extension}}
>> +// expected-warning at 6 {{use of the 'maybe_unused' attribute is a C++17
>> extension}}
>> +// expected-warning at 13 {{use of the 'maybe_unused' attribute is a C++17
>> extension}}
>> +// expected-warning at 14 {{use of the 'maybe_unused' attribute is a C++17
>> extension}}
>>  #endif
>>
>> Modified: cfe/trunk/test/CXX/drs/dr0xx.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CXX/drs/dr0xx.cpp?rev=310804&r1=310803&r2=310804&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/test/CXX/drs/dr0xx.cpp (original)
>> +++ cfe/trunk/test/CXX/drs/dr0xx.cpp Sun Aug 13 15:26:53 2017
>> @@ -1,7 +1,7 @@
>>  // RUN: %clang_cc1 -std=c++98 %s -verify -fexceptions -fcxx-exceptions
>> -pedantic-errors -Wno-bind-to-temporary-copy
>>  // RUN: %clang_cc1 -std=c++11 %s -verify -fexceptions -fcxx-exceptions
>> -pedantic-errors -triple %itanium_abi_triple
>>  // RUN: %clang_cc1 -std=c++14 %s -verify -fexceptions -fcxx-exceptions
>> -pedantic-errors -triple %itanium_abi_triple
>> -// RUN: %clang_cc1 -std=c++1z %s -verify -fexceptions -fcxx-exceptions
>> -pedantic-errors -triple %itanium_abi_triple
>> +// RUN: %clang_cc1 -std=c++17 %s -verify -fexceptions -fcxx-exceptions
>> -pedantic-errors -triple %itanium_abi_triple
>>
>>  namespace dr1 { // dr1: no
>>    namespace X { extern "C" void dr1_f(int a = 1); }
>> @@ -276,9 +276,9 @@ namespace dr23 { // dr23: yes
>>
>>  namespace dr25 { // dr25: yes
>>    struct A {
>> -    void f() throw(int); // expected-error 0-1{{ISO C++1z does not
>> allow}} expected-note 0-1{{use 'noexcept}}
>> +    void f() throw(int); // expected-error 0-1{{ISO C++17 does not
>> allow}} expected-note 0-1{{use 'noexcept}}
>>    };
>> -  void (A::*f)() throw (int); // expected-error 0-1{{ISO C++1z does not
>> allow}} expected-note 0-1{{use 'noexcept}}
>> +  void (A::*f)() throw (int); // expected-error 0-1{{ISO C++17 does not
>> allow}} expected-note 0-1{{use 'noexcept}}
>>    void (A::*g)() throw () = f;
>>  #if __cplusplus <= 201402L
>>    // expected-error at -2 {{is not superset of source}}
>> @@ -286,7 +286,7 @@ namespace dr25 { // dr25: yes
>>    // expected-error at -4 {{different exception specifications}}
>>  #endif
>>    void (A::*g2)() throw () = 0;
>> -  void (A::*h)() throw (int, char) = f; // expected-error 0-1{{ISO C++1z
>> does not allow}} expected-note 0-1{{use 'noexcept}}
>> +  void (A::*h)() throw (int, char) = f; // expected-error 0-1{{ISO C++17
>> does not allow}} expected-note 0-1{{use 'noexcept}}
>>    void (A::*i)() throw () = &A::f;
>>  #if __cplusplus <= 201402L
>>    // expected-error at -2 {{is not superset of source}}
>> @@ -294,7 +294,7 @@ namespace dr25 { // dr25: yes
>>    // expected-error at -4 {{different exception specifications}}
>>  #endif
>>    void (A::*i2)() throw () = 0;
>> -  void (A::*j)() throw (int, char) = &A::f; // expected-error 0-1{{ISO
>> C++1z does not allow}} expected-note 0-1{{use 'noexcept}}
>> +  void (A::*j)() throw (int, char) = &A::f; // expected-error 0-1{{ISO
>> C++17 does not allow}} expected-note 0-1{{use 'noexcept}}
>>    void x() {
>>      g2 = f;
>>  #if __cplusplus <= 201402L
>> @@ -941,7 +941,7 @@ namespace dr84 { // dr84: yes
>>    };
>>    A a;
>>    // Cannot use B(C) / operator C() pair to construct the B from the B
>> temporary
>> -  // here. In C++1z, we initialize the B object directly using
>> 'A::operator B()'.
>> +  // here. In C++17, we initialize the B object directly using
>> 'A::operator B()'.
>>    B b = a;
>>  #if __cplusplus <= 201402L
>>    // expected-error at -2 {{no viable}}
>> @@ -1033,14 +1033,14 @@ namespace dr91 { // dr91: yes
>>  }
>>
>>  namespace dr92 { // dr92: 4 c++17
>> -  void f() throw(int, float); // expected-error 0-1{{ISO C++1z does not
>> allow}} expected-note 0-1{{use 'noexcept}}
>> -  void (*p)() throw(int) = &f; // expected-error 0-1{{ISO C++1z does not
>> allow}} expected-note 0-1{{use 'noexcept}}
>> +  void f() throw(int, float); // expected-error 0-1{{ISO C++17 does not
>> allow}} expected-note 0-1{{use 'noexcept}}
>> +  void (*p)() throw(int) = &f; // expected-error 0-1{{ISO C++17 does not
>> allow}} expected-note 0-1{{use 'noexcept}}
>>  #if __cplusplus <= 201402L
>>    // expected-error at -2 {{target exception specification is not superset
>> of source}}
>>  #else
>>    // expected-warning at -4 {{target exception specification is not superset
>> of source}}
>>  #endif
>> -  void (*q)() throw(int); // expected-error 0-1{{ISO C++1z does not
>> allow}} expected-note 0-1{{use 'noexcept}}
>> +  void (*q)() throw(int); // expected-error 0-1{{ISO C++17 does not
>> allow}} expected-note 0-1{{use 'noexcept}}
>>    void (**pp)() throw() = &q;
>>  #if __cplusplus <= 201402L
>>    // expected-error at -2 {{exception specifications are not allowed}}
>> @@ -1064,7 +1064,7 @@ namespace dr92 { // dr92: 4 c++17
>>    // expected-error at -2 {{not implicitly convertible}}
>>  #endif
>>
>> -  template<void() throw(int)> struct Y {}; // expected-error 0-1{{ISO
>> C++1z does not allow}} expected-note 0-1{{use 'noexcept}}
>> +  template<void() throw(int)> struct Y {}; // expected-error 0-1{{ISO
>> C++17 does not allow}} expected-note 0-1{{use 'noexcept}}
>>    Y<&h> yp; // ok
>>  }
>>
>>
>> Modified: cfe/trunk/test/CXX/drs/dr13xx.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CXX/drs/dr13xx.cpp?rev=310804&r1=310803&r2=310804&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/test/CXX/drs/dr13xx.cpp (original)
>> +++ cfe/trunk/test/CXX/drs/dr13xx.cpp Sun Aug 13 15:26:53 2017
>> @@ -1,7 +1,7 @@
>>  // RUN: %clang_cc1 -std=c++98 %s -verify -fexceptions -fcxx-exceptions
>> -pedantic-errors
>>  // RUN: %clang_cc1 -std=c++11 %s -verify -fexceptions -fcxx-exceptions
>> -pedantic-errors
>>  // RUN: %clang_cc1 -std=c++14 %s -verify -fexceptions -fcxx-exceptions
>> -pedantic-errors
>> -// RUN: %clang_cc1 -std=c++1z %s -verify -fexceptions -fcxx-exceptions
>> -pedantic-errors
>> +// RUN: %clang_cc1 -std=c++17 %s -verify -fexceptions -fcxx-exceptions
>> -pedantic-errors
>>
>>  __extension__ typedef __SIZE_TYPE__ size_t;
>>
>> @@ -124,7 +124,7 @@ namespace dr1315 { // dr1315: partial
>>  namespace dr1330 { // dr1330: 4 c++11
>>    // exception-specifications are parsed in a context where the class is
>> complete.
>>    struct A {
>> -    void f() throw(T) {} // expected-error 0-1{{C++1z}} expected-note
>> 0-1{{noexcept}}
>> +    void f() throw(T) {} // expected-error 0-1{{C++17}} expected-note
>> 0-1{{noexcept}}
>>      struct T {};
>>
>>  #if __cplusplus >= 201103L
>> @@ -134,7 +134,7 @@ namespace dr1330 { // dr1330: 4 c++11
>>  #endif
>>    };
>>
>> -  void (A::*af1)() throw(A::T) = &A::f; // expected-error 0-1{{C++1z}}
>> expected-note 0-1{{noexcept}}
>> +  void (A::*af1)() throw(A::T) = &A::f; // expected-error 0-1{{C++17}}
>> expected-note 0-1{{noexcept}}
>>    void (A::*af2)() throw() = &A::f; // expected-error-re {{{{not
>> superset|different exception spec}}}}
>>
>>  #if __cplusplus >= 201103L
>> @@ -144,7 +144,7 @@ namespace dr1330 { // dr1330: 4 c++11
>>    // Likewise, they're instantiated separately from an enclosing class
>> template.
>>    template<typename U>
>>    struct B {
>> -    void f() throw(T, typename U::type) {} // expected-error 0-1{{C++1z}}
>> expected-note 0-1{{noexcept}}
>> +    void f() throw(T, typename U::type) {} // expected-error 0-1{{C++17}}
>> expected-note 0-1{{noexcept}}
>>      struct T {};
>>
>>  #if __cplusplus >= 201103L
>> @@ -161,7 +161,7 @@ namespace dr1330 { // dr1330: 4 c++11
>>      static const int value = true;
>>    };
>>
>> -  void (B<P>::*bpf1)() throw(B<P>::T, int) = &B<P>::f; // expected-error
>> 0-1{{C++1z}} expected-note 0-1{{noexcept}}
>> +  void (B<P>::*bpf1)() throw(B<P>::T, int) = &B<P>::f; // expected-error
>> 0-1{{C++17}} expected-note 0-1{{noexcept}}
>>  #if __cplusplus < 201103L
>>    // expected-error at -2 {{not superset}}
>>    // FIXME: We only delay instantiation in C++11 onwards. In C++98,
>> something
>> @@ -172,7 +172,7 @@ namespace dr1330 { // dr1330: 4 c++11
>>    // the "T has not yet been instantiated" error here, rather than giving
>>    // confusing errors later on.
>>  #endif
>> -  void (B<P>::*bpf2)() throw(int) = &B<P>::f; // expected-error
>> 0-1{{C++1z}} expected-note 0-1{{noexcept}}
>> +  void (B<P>::*bpf2)() throw(int) = &B<P>::f; // expected-error
>> 0-1{{C++17}} expected-note 0-1{{noexcept}}
>>  #if __cplusplus <= 201402L
>>    // expected-error at -2 {{not superset}}
>>  #else
>> @@ -194,7 +194,7 @@ namespace dr1330 { // dr1330: 4 c++11
>>
>>    template<typename T> int f() throw(typename T::error) { return 0; } //
>> expected-error 1-4{{prior to '::'}} expected-note 0-1{{prior to '::'}}
>> expected-note 0-1{{requested here}}
>>  #if __cplusplus > 201402L
>> -    // expected-error at -2 0-1{{C++1z}} expected-note at -2 0-1{{noexcept}}
>> +    // expected-error at -2 0-1{{C++17}} expected-note at -2 0-1{{noexcept}}
>>  #endif
>>    // An exception-specification is needed even if the function is only
>> used in
>>    // an unevaluated operand.
>> @@ -203,7 +203,7 @@ namespace dr1330 { // dr1330: 4 c++11
>>    decltype(f<char>()) f2; // expected-note {{instantiation of}}
>>    bool f3 = noexcept(f<float>()); // expected-note {{instantiation of}}
>>  #endif
>> -  // In C++1z onwards, substituting explicit template arguments into the
>> +  // In C++17 onwards, substituting explicit template arguments into the
>>    // function type substitutes into the exception specification (because
>> it's
>>    // part of the type). In earlier languages, we don't notice there's a
>> problem
>>    // until we've already started to instantiate.
>> @@ -217,7 +217,7 @@ namespace dr1330 { // dr1330: 4 c++11
>>    template<typename T> struct C {
>>      C() throw(typename T::type); // expected-error 1-2{{prior to '::'}}
>>  #if __cplusplus > 201402L
>> -    // expected-error at -2 0-1{{C++1z}} expected-note at -2 0-1{{noexcept}}
>> +    // expected-error at -2 0-1{{C++17}} expected-note at -2 0-1{{noexcept}}
>>  #endif
>>    };
>>    struct D : C<void> {}; // ok
>>
>> Modified: cfe/trunk/test/CXX/drs/dr1xx.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CXX/drs/dr1xx.cpp?rev=310804&r1=310803&r2=310804&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/test/CXX/drs/dr1xx.cpp (original)
>> +++ cfe/trunk/test/CXX/drs/dr1xx.cpp Sun Aug 13 15:26:53 2017
>> @@ -1,7 +1,7 @@
>>  // RUN: %clang_cc1 -std=c++98 -triple x86_64-unknown-unknown %s -verify
>> -fexceptions -fcxx-exceptions -pedantic-errors
>>  // RUN: %clang_cc1 -std=c++11 -triple x86_64-unknown-unknown %s -verify
>> -fexceptions -fcxx-exceptions -pedantic-errors
>>  // RUN: %clang_cc1 -std=c++14 -triple x86_64-unknown-unknown %s -verify
>> -fexceptions -fcxx-exceptions -pedantic-errors
>> -// RUN: %clang_cc1 -std=c++1z -triple x86_64-unknown-unknown %s -verify
>> -fexceptions -fcxx-exceptions -pedantic-errors
>> +// RUN: %clang_cc1 -std=c++17 -triple x86_64-unknown-unknown %s -verify
>> -fexceptions -fcxx-exceptions -pedantic-errors
>>
>>  namespace dr100 { // dr100: yes
>>    template<const char *> struct A {}; // expected-note 0-1{{declared
>> here}}
>> @@ -313,7 +313,7 @@ namespace dr126 { // dr126: no
>>      virtual void z() throw(long); // expected-error {{more lax}}
>>    };
>>  #else
>> -  void f() throw(int); // expected-error {{ISO C++1z does not allow}}
>> expected-note {{use 'noexcept}}
>> +  void f() throw(int); // expected-error {{ISO C++17 does not allow}}
>> expected-note {{use 'noexcept}}
>>  #endif
>>  }
>>
>>
>> Modified: cfe/trunk/test/CXX/drs/dr2xx.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CXX/drs/dr2xx.cpp?rev=310804&r1=310803&r2=310804&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/test/CXX/drs/dr2xx.cpp (original)
>> +++ cfe/trunk/test/CXX/drs/dr2xx.cpp Sun Aug 13 15:26:53 2017
>> @@ -1,7 +1,7 @@
>>  // RUN: %clang_cc1 -std=c++98 %s -verify -fexceptions -fcxx-exceptions
>> -pedantic-errors
>>  // RUN: %clang_cc1 -std=c++11 %s -verify -fexceptions -fcxx-exceptions
>> -pedantic-errors
>>  // RUN: %clang_cc1 -std=c++14 %s -verify -fexceptions -fcxx-exceptions
>> -pedantic-errors
>> -// RUN: %clang_cc1 -std=c++1z %s -verify -fexceptions -fcxx-exceptions
>> -pedantic-errors
>> +// RUN: %clang_cc1 -std=c++17 %s -verify -fexceptions -fcxx-exceptions
>> -pedantic-errors
>>
>>  // PR13819 -- __SIZE_TYPE__ is incompatible.
>>  typedef __SIZE_TYPE__ size_t; // expected-error 0-1 {{extension}}
>> @@ -984,7 +984,7 @@ namespace dr289 { // dr289: yes
>>  namespace dr294 { // dr294: no
>>    void f() throw(int);
>>  #if __cplusplus > 201402L
>> -    // expected-error at -2 {{ISO C++1z does not allow}} expected-note at -2
>> {{use 'noexcept}}
>> +    // expected-error at -2 {{ISO C++17 does not allow}} expected-note at -2
>> {{use 'noexcept}}
>>  #endif
>>    int main() {
>>      (void)static_cast<void (*)() throw()>(f); // FIXME: ill-formed in
>> C++14 and before
>> @@ -1001,13 +1001,13 @@ namespace dr294 { // dr294: no
>>  #endif
>>      (void)static_cast<void (*)() throw(int)>(f); // FIXME: ill-formed in
>> C++14 and before
>>  #if __cplusplus > 201402L
>> -    // expected-error at -2 {{ISO C++1z does not allow}} expected-note at -2
>> {{use 'noexcept}}
>> +    // expected-error at -2 {{ISO C++17 does not allow}} expected-note at -2
>> {{use 'noexcept}}
>>  #endif
>>
>>      void (*p)() throw() = f; // expected-error-re {{{{not
>> superset|different exception specification}}}}
>>      void (*q)() throw(int) = f;
>>  #if __cplusplus > 201402L
>> -    // expected-error at -2 {{ISO C++1z does not allow}} expected-note at -2
>> {{use 'noexcept}}
>> +    // expected-error at -2 {{ISO C++17 does not allow}} expected-note at -2
>> {{use 'noexcept}}
>>  #endif
>>    }
>>  }
>>
>> Modified: cfe/trunk/test/CXX/drs/dr4xx.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CXX/drs/dr4xx.cpp?rev=310804&r1=310803&r2=310804&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/test/CXX/drs/dr4xx.cpp (original)
>> +++ cfe/trunk/test/CXX/drs/dr4xx.cpp Sun Aug 13 15:26:53 2017
>> @@ -1,7 +1,7 @@
>>  // RUN: env ASAN_OPTIONS=detect_stack_use_after_return=0 %clang_cc1
>> -std=c++98 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors
>>  // RUN: env ASAN_OPTIONS=detect_stack_use_after_return=0 %clang_cc1
>> -std=c++11 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors
>>  // RUN: env ASAN_OPTIONS=detect_stack_use_after_return=0 %clang_cc1
>> -std=c++14 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors
>> -// RUN: env ASAN_OPTIONS=detect_stack_use_after_return=0 %clang_cc1
>> -std=c++1z %s -verify -fexceptions -fcxx-exceptions -pedantic-errors
>> +// RUN: env ASAN_OPTIONS=detect_stack_use_after_return=0 %clang_cc1
>> -std=c++17 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors
>>
>>  // FIXME: __SIZE_TYPE__ expands to 'long long' on some targets.
>>  __extension__ typedef __SIZE_TYPE__ size_t;
>> @@ -507,16 +507,16 @@ namespace dr437 { // dr437: sup 1308
>>    struct S {
>>      void f() throw(S);
>>  #if __cplusplus > 201402L
>> -    // expected-error at -2 {{ISO C++1z does not allow}} expected-note at -2
>> {{use 'noexcept}}
>> +    // expected-error at -2 {{ISO C++17 does not allow}} expected-note at -2
>> {{use 'noexcept}}
>>  #endif
>>      void g() throw(T<S>);
>>  #if __cplusplus > 201402L
>> -    // expected-error at -2 {{ISO C++1z does not allow}} expected-note at -2
>> {{use 'noexcept}}
>> +    // expected-error at -2 {{ISO C++17 does not allow}} expected-note at -2
>> {{use 'noexcept}}
>>  #endif
>>      struct U;
>>      void h() throw(U);
>>  #if __cplusplus > 201402L
>> -    // expected-error at -2 {{ISO C++1z does not allow}} expected-note at -2
>> {{use 'noexcept}}
>> +    // expected-error at -2 {{ISO C++17 does not allow}} expected-note at -2
>> {{use 'noexcept}}
>>  #endif
>>      struct U {};
>>    };
>>
>> Modified: cfe/trunk/test/CXX/drs/dr5xx.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CXX/drs/dr5xx.cpp?rev=310804&r1=310803&r2=310804&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/test/CXX/drs/dr5xx.cpp (original)
>> +++ cfe/trunk/test/CXX/drs/dr5xx.cpp Sun Aug 13 15:26:53 2017
>> @@ -1,7 +1,7 @@
>>  // RUN: %clang_cc1 -std=c++98 %s -verify -fexceptions -fcxx-exceptions
>> -pedantic-errors
>>  // RUN: %clang_cc1 -std=c++11 %s -verify -fexceptions -fcxx-exceptions
>> -pedantic-errors
>>  // RUN: %clang_cc1 -std=c++14 %s -verify -fexceptions -fcxx-exceptions
>> -pedantic-errors
>> -// RUN: %clang_cc1 -std=c++1z %s -verify -fexceptions -fcxx-exceptions
>> -pedantic-errors
>> +// RUN: %clang_cc1 -std=c++17 %s -verify -fexceptions -fcxx-exceptions
>> -pedantic-errors
>>
>>  // FIXME: This is included to avoid a diagnostic with no source location
>>  // pointing at the implicit operator new. We can't match such a
>> diagnostic
>> @@ -966,7 +966,7 @@ namespace dr595 { // dr595: dup 1330
>>    template<class T> struct X {
>>      void f() throw(T) {}
>>  #if __cplusplus > 201402L
>> -    // expected-error at -2 {{ISO C++1z does not allow}} expected-note at -2
>> {{use 'noexcept}}
>> +    // expected-error at -2 {{ISO C++17 does not allow}} expected-note at -2
>> {{use 'noexcept}}
>>  #endif
>>    };
>>    struct S {
>>
>> Modified: cfe/trunk/test/CXX/stmt.stmt/stmt.iter/stmt.ranged/p1.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CXX/stmt.stmt/stmt.iter/stmt.ranged/p1.cpp?rev=310804&r1=310803&r2=310804&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/test/CXX/stmt.stmt/stmt.iter/stmt.ranged/p1.cpp (original)
>> +++ cfe/trunk/test/CXX/stmt.stmt/stmt.iter/stmt.ranged/p1.cpp Sun Aug 13
>> 15:26:53 2017
>> @@ -1,6 +1,6 @@
>>  // RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify %s
>>  // RUN: %clang_cc1 -std=c++14 -fsyntax-only -verify %s
>> -// RUN: %clang_cc1 -std=c++1z -fsyntax-only -verify %s
>> +// RUN: %clang_cc1 -std=c++17 -fsyntax-only -verify %s
>>
>>  struct pr12960 {
>>    int begin;
>> @@ -125,7 +125,7 @@ void g() {
>>    };
>>    for (auto a : Differ())
>>  #if __cplusplus <= 201402L
>> -    // expected-warning at -2 {{'begin' and 'end' returning different types
>> ('int *' and 'null_t') is a C++1z extension}}
>> +    // expected-warning at -2 {{'begin' and 'end' returning different types
>> ('int *' and 'null_t') is a C++17 extension}}
>>      // expected-note at -6 {{selected 'begin' function with iterator type
>> 'int *'}}
>>      // expected-note at -6 {{selected 'end' function with iterator type
>> 'null_t'}}
>>  #endif
>>
>> Modified: cfe/trunk/test/FixIt/fixit.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/FixIt/fixit.cpp?rev=310804&r1=310803&r2=310804&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/test/FixIt/fixit.cpp (original)
>> +++ cfe/trunk/test/FixIt/fixit.cpp Sun Aug 13 15:26:53 2017
>> @@ -216,7 +216,7 @@ template<class T> typedef Mystery<T>::ty
>>  }
>>
>>  template<template<typename> Foo, // expected-error {{template template
>> parameter requires 'class' after the parameter list}}
>> -         template<typename> typename Bar, // expected-warning {{template
>> template parameter using 'typename' is a C++1z extension}}
>> +         template<typename> typename Bar, // expected-warning {{template
>> template parameter using 'typename' is a C++17 extension}}
>>           template<typename> struct Baz> // expected-error {{template
>> template parameter requires 'class' after the parameter list}}
>>  void func();
>>
>>
>> Modified: cfe/trunk/test/Lexer/hexfloat.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Lexer/hexfloat.cpp?rev=310804&r1=310803&r2=310804&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/test/Lexer/hexfloat.cpp (original)
>> +++ cfe/trunk/test/Lexer/hexfloat.cpp Sun Aug 13 15:26:53 2017
>> @@ -1,7 +1,7 @@
>>  // RUN: %clang_cc1 -std=c++98 -fsyntax-only -verify -pedantic %s
>>  // RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify -pedantic %s
>>  // RUN: %clang_cc1 -std=c++14 -fsyntax-only -verify -pedantic %s
>> -// RUN: %clang_cc1 -std=c++1z -fsyntax-only -verify -pedantic %s
>> +// RUN: %clang_cc1 -std=c++17 -fsyntax-only -verify -pedantic %s
>>  double e = 0x.p0; // expected-error-re {{hexadecimal floating
>> {{constant|literal}} requires a significand}}
>>
>>  float f = 0x1p+1;
>> @@ -9,10 +9,10 @@ double d = 0x.2p2;
>>  float g = 0x1.2p2;
>>  double h = 0x1.p2;
>>  #if __cplusplus <= 201402L
>> -// expected-warning at -5 {{hexadecimal floating literals are a C++1z
>> feature}}
>> -// expected-warning at -5 {{hexadecimal floating literals are a C++1z
>> feature}}
>> -// expected-warning at -5 {{hexadecimal floating literals are a C++1z
>> feature}}
>> -// expected-warning at -5 {{hexadecimal floating literals are a C++1z
>> feature}}
>> +// expected-warning at -5 {{hexadecimal floating literals are a C++17
>> feature}}
>> +// expected-warning at -5 {{hexadecimal floating literals are a C++17
>> feature}}
>> +// expected-warning at -5 {{hexadecimal floating literals are a C++17
>> feature}}
>> +// expected-warning at -5 {{hexadecimal floating literals are a C++17
>> feature}}
>>  #endif
>>
>>  // PR12717: In order to minimally diverge from the C++ standard, we do
>> not lex
>>
>> Modified: cfe/trunk/test/Parser/cxx0x-attributes.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Parser/cxx0x-attributes.cpp?rev=310804&r1=310803&r2=310804&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/test/Parser/cxx0x-attributes.cpp (original)
>> +++ cfe/trunk/test/Parser/cxx0x-attributes.cpp Sun Aug 13 15:26:53 2017
>> @@ -1,4 +1,4 @@
>> -// RUN: %clang_cc1 -fcxx-exceptions -fexceptions -fsyntax-only -verify
>> -std=c++11 -Wc++14-compat -Wc++14-extensions -Wc++1z-extensions %s
>> +// RUN: %clang_cc1 -fcxx-exceptions -fexceptions -fsyntax-only -verify
>> -std=c++11 -Wc++14-compat -Wc++14-extensions -Wc++17-extensions %s
>>
>>  // Need std::initializer_list
>>  namespace std {
>> @@ -127,7 +127,7 @@ extern "C++" [[]] { } // expected-error
>>  [[]] using ns::i; // expected-error {{an attribute list cannot appear
>> here}}
>>  [[unknown]] using namespace ns; // expected-warning {{unknown attribute
>> 'unknown' ignored}}
>>  [[noreturn]] using namespace ns; // expected-error {{'noreturn' attribute
>> only applies to functions}}
>> -namespace [[]] ns2 {} // expected-warning {{attributes on a namespace
>> declaration are incompatible with C++ standards before C++1z}}
>> +namespace [[]] ns2 {} // expected-warning {{attributes on a namespace
>> declaration are incompatible with C++ standards before C++17}}
>>
>>  using [[]] alignas(4) [[]] ns::i; // expected-error {{an attribute list
>> cannot appear here}}
>>  using [[]] alignas(4) [[]] foobar = int; // expected-error {{an attribute
>> list cannot appear here}} expected-error {{'alignas' attribute only applies
>> to}}
>> @@ -179,7 +179,7 @@ enum [[]] E2; // expected-error {{forbid
>>  enum [[]] E1;
>>  enum [[]] E3 : int;
>>  enum [[]] {
>> -  k_123 [[]] = 123 // expected-warning {{attributes on an enumerator
>> declaration are incompatible with C++ standards before C++1z}}
>> +  k_123 [[]] = 123 // expected-warning {{attributes on an enumerator
>> declaration are incompatible with C++ standards before C++17}}
>>  };
>>  enum [[]] E1 e; // expected-error {{an attribute list cannot appear
>> here}}
>>  enum [[]] class E4 { }; // expected-error {{an attribute list cannot
>> appear here}}
>> @@ -352,7 +352,7 @@ int fallthru(int n) {
>>    switch (n) {
>>    case 0:
>>      n += 5;
>> -    [[fallthrough]]; // expected-warning {{use of the 'fallthrough'
>> attribute is a C++1z extension}}
>> +    [[fallthrough]]; // expected-warning {{use of the 'fallthrough'
>> attribute is a C++17 extension}}
>>    case 1:
>>      n *= 2;
>>      break;
>>
>> Modified: cfe/trunk/test/Parser/cxx1z-constexpr-lambdas.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Parser/cxx1z-constexpr-lambdas.cpp?rev=310804&r1=310803&r2=310804&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/test/Parser/cxx1z-constexpr-lambdas.cpp (original)
>> +++ cfe/trunk/test/Parser/cxx1z-constexpr-lambdas.cpp Sun Aug 13 15:26:53
>> 2017
>> @@ -1,4 +1,4 @@
>> -// RUN: %clang_cc1 -std=c++1z %s -verify
>> +// RUN: %clang_cc1 -std=c++17 %s -verify
>>  // RUN: %clang_cc1 -std=c++14 %s -verify
>>  // RUN: %clang_cc1 -std=c++11 %s -verify
>>
>> @@ -23,9 +23,9 @@ auto XL16 = [] () constexpr
>>                    { };
>>
>>  #else
>> -auto L = []() mutable constexpr {return 0; }; //expected-warning{{is a
>> C++1z extension}}
>> -auto L2 = []() constexpr { return 0;};//expected-warning{{is a C++1z
>> extension}}
>> -auto L4 = []() constexpr mutable { return 0; }; //expected-warning{{is a
>> C++1z extension}}
>> +auto L = []() mutable constexpr {return 0; }; //expected-warning{{is a
>> C++17 extension}}
>> +auto L2 = []() constexpr { return 0;};//expected-warning{{is a C++17
>> extension}}
>> +auto L4 = []() constexpr mutable { return 0; }; //expected-warning{{is a
>> C++17 extension}}
>>  #endif
>>
>>
>>
>> Modified: cfe/trunk/test/Parser/cxx1z-nested-namespace-definition.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Parser/cxx1z-nested-namespace-definition.cpp?rev=310804&r1=310803&r2=310804&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/test/Parser/cxx1z-nested-namespace-definition.cpp (original)
>> +++ cfe/trunk/test/Parser/cxx1z-nested-namespace-definition.cpp Sun Aug 13
>> 15:26:53 2017
>> @@ -2,13 +2,13 @@
>>  // RUN: %clang_cc1 -fsyntax-only -verify %s
>>  // RUN: not %clang_cc1 -x c++ -fixit %t -Werror -DFIXIT
>>  // RUN: %clang_cc1 -x c++ %t -DFIXIT
>> -// RUN: %clang_cc1 -fsyntax-only -verify %s -std=c++1z -Wc++14-compat
>> +// RUN: %clang_cc1 -fsyntax-only -verify %s -std=c++17 -Wc++14-compat
>>
>>  namespace foo1::foo2::foo3 {
>>  #if __cplusplus <= 201400L
>> -// expected-warning at -2 {{nested namespace definition is a C++1z
>> extension; define each namespace separately}}
>> +// expected-warning at -2 {{nested namespace definition is a C++17
>> extension; define each namespace separately}}
>>  #else
>> -// expected-warning at -4 {{nested namespace definition is incompatible with
>> C++ standards before C++1z}}
>> +// expected-warning at -4 {{nested namespace definition is incompatible with
>> C++ standards before C++17}}
>>  #endif
>>    int foo(int x) { return x; }
>>  }
>>
>> Modified: cfe/trunk/test/SemaCXX/cxx0x-compat.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/cxx0x-compat.cpp?rev=310804&r1=310803&r2=310804&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/test/SemaCXX/cxx0x-compat.cpp (original)
>> +++ cfe/trunk/test/SemaCXX/cxx0x-compat.cpp Sun Aug 13 15:26:53 2017
>> @@ -1,5 +1,5 @@
>>  // RUN: %clang_cc1 -fsyntax-only -std=c++98 -Wc++11-compat -verify %s
>> -// RUN: %clang_cc1 -fsyntax-only -std=c++1z -Wc++11-compat -verify %s
>> +// RUN: %clang_cc1 -fsyntax-only -std=c++17 -Wc++11-compat -verify %s
>>
>>  #if __cplusplus < 201103L
>>
>> @@ -42,14 +42,14 @@ void h(size_t foo, size_t bar) {
>>  char c = 'x'_x; // expected-warning {{will be treated as a user-defined
>> literal suffix}}
>>
>>  template<int ...N> int f() { // expected-warning {{C++11 extension}}
>> -  return (N + ...); // expected-warning {{C++1z extension}}
>> +  return (N + ...); // expected-warning {{C++17 extension}}
>>  }
>>
>>  #else
>>
>>  auto init_capture = [a(0)] {}; // expected-warning {{initialized lambda
>> captures are incompatible with C++ standards before C++14}}
>> -static_assert(true); // expected-warning {{incompatible with C++
>> standards before C++1z}}
>> +static_assert(true); // expected-warning {{incompatible with C++
>> standards before C++17}}
>>
>> -template<int ...N> int f() { return (N + ...); } // expected-warning
>> {{incompatible with C++ standards before C++1z}}
>> +template<int ...N> int f() { return (N + ...); } // expected-warning
>> {{incompatible with C++ standards before C++17}}
>>
>>  #endif
>>
>> Modified: cfe/trunk/test/SemaCXX/deprecated.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/deprecated.cpp?rev=310804&r1=310803&r2=310804&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/test/SemaCXX/deprecated.cpp (original)
>> +++ cfe/trunk/test/SemaCXX/deprecated.cpp Sun Aug 13 15:26:53 2017
>> @@ -1,9 +1,9 @@
>>  // RUN: %clang_cc1 -std=c++98 %s -Wdeprecated -verify -triple
>> x86_64-linux-gnu
>>  // RUN: %clang_cc1 -std=c++11 %s -Wdeprecated -verify -triple
>> x86_64-linux-gnu
>> -// RUN: %clang_cc1 -std=c++1y %s -Wdeprecated -verify -triple
>> x86_64-linux-gnu
>> -// RUN: %clang_cc1 -std=c++1z %s -Wdeprecated -verify -triple
>> x86_64-linux-gnu
>> +// RUN: %clang_cc1 -std=c++14 %s -Wdeprecated -verify -triple
>> x86_64-linux-gnu
>> +// RUN: %clang_cc1 -std=c++17 %s -Wdeprecated -verify -triple
>> x86_64-linux-gnu
>>
>> -// RUN: %clang_cc1 -std=c++1y %s -Wdeprecated -verify -triple
>> x86_64-linux-gnu -Wno-deprecated-register -DNO_DEPRECATED_FLAGS
>> +// RUN: %clang_cc1 -std=c++14 %s -Wdeprecated -verify -triple
>> x86_64-linux-gnu -Wno-deprecated-register -DNO_DEPRECATED_FLAGS
>>
>>  #include "Inputs/register.h"
>>
>> @@ -12,8 +12,8 @@ void h() throw(int);
>>  void i() throw(...);
>>  #if __cplusplus > 201402L
>>  // expected-warning at -4 {{dynamic exception specifications are
>> deprecated}} expected-note at -4 {{use 'noexcept' instead}}
>> -// expected-error at -4 {{ISO C++1z does not allow dynamic exception
>> specifications}} expected-note at -4 {{use 'noexcept(false)' instead}}
>> -// expected-error at -4 {{ISO C++1z does not allow dynamic exception
>> specifications}} expected-note at -4 {{use 'noexcept(false)' instead}}
>> +// expected-error at -4 {{ISO C++17 does not allow dynamic exception
>> specifications}} expected-note at -4 {{use 'noexcept(false)' instead}}
>> +// expected-error at -4 {{ISO C++17 does not allow dynamic exception
>> specifications}} expected-note at -4 {{use 'noexcept(false)' instead}}
>>  #elif __cplusplus >= 201103L
>>  // expected-warning at -8 {{dynamic exception specifications are
>> deprecated}} expected-note at -8 {{use 'noexcept' instead}}
>>  // expected-warning at -8 {{dynamic exception specifications are
>> deprecated}} expected-note at -8 {{use 'noexcept(false)' instead}}
>> @@ -23,7 +23,7 @@ void i() throw(...);
>>  void stuff() {
>>    register int n;
>>  #if __cplusplus > 201402L
>> -  // expected-error at -2 {{ISO C++1z does not allow 'register' storage
>> class specifier}}
>> +  // expected-error at -2 {{ISO C++17 does not allow 'register' storage
>> class specifier}}
>>  #elif __cplusplus >= 201103L && !defined(NO_DEPRECATED_FLAGS)
>>    // expected-warning at -4 {{'register' storage class specifier is
>> deprecated}}
>>  #endif
>> @@ -34,14 +34,14 @@ void stuff() {
>>    bool b;
>>    ++b;
>>  #if __cplusplus > 201402L
>> -  // expected-error at -2 {{ISO C++1z does not allow incrementing expression
>> of type bool}}
>> +  // expected-error at -2 {{ISO C++17 does not allow incrementing expression
>> of type bool}}
>>  #else
>>    // expected-warning at -4 {{incrementing expression of type bool is
>> deprecated}}
>>  #endif
>>
>>    b++;
>>  #if __cplusplus > 201402L
>> -  // expected-error at -2 {{ISO C++1z does not allow incrementing expression
>> of type bool}}
>> +  // expected-error at -2 {{ISO C++17 does not allow incrementing expression
>> of type bool}}
>>  #else
>>    // expected-warning at -4 {{incrementing expression of type bool is
>> deprecated}}
>>  #endif
>>
>> Modified: cfe/trunk/test/SemaCXX/inline.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/inline.cpp?rev=310804&r1=310803&r2=310804&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/test/SemaCXX/inline.cpp (original)
>> +++ cfe/trunk/test/SemaCXX/inline.cpp Sun Aug 13 15:26:53 2017
>> @@ -1,6 +1,6 @@
>>  // RUN: %clang_cc1 -fsyntax-only -verify %s
>>  // RUN: %clang_cc1 -fsyntax-only -verify -std=c++14 %s
>> -// RUN: %clang_cc1 -fsyntax-only -verify -std=c++1z %s
>> -Wc++98-c++11-c++14-compat
>> +// RUN: %clang_cc1 -fsyntax-only -verify -std=c++17 %s
>> -Wc++98-c++11-c++14-compat
>>
>>  // Check that we don't allow illegal uses of inline
>>  // (checking C++-only constructs here)
>> @@ -12,7 +12,7 @@ void localVar() {
>>
>>  // Check that we warn appropriately.
>>  #if __cplusplus <= 201402L
>> -inline int a; // expected-warning{{inline variables are a C++1z
>> extension}}
>> +inline int a; // expected-warning{{inline variables are a C++17
>> extension}}
>>  #else
>> -inline int a; // expected-warning{{inline variables are incompatible with
>> C++ standards before C++1z}}
>> +inline int a; // expected-warning{{inline variables are incompatible with
>> C++ standards before C++17}}
>>  #endif
>>
>> Modified: cfe/trunk/test/SemaCXX/static-assert.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/static-assert.cpp?rev=310804&r1=310803&r2=310804&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/test/SemaCXX/static-assert.cpp (original)
>> +++ cfe/trunk/test/SemaCXX/static-assert.cpp Sun Aug 13 15:26:53 2017
>> @@ -49,5 +49,5 @@ struct X { ~X(); };
>>  StaticAssertProtected<int> sap1;
>>  StaticAssertProtected<X> sap2; // expected-note {{instantiation}}
>>
>> -static_assert(true); // expected-warning {{C++1z extension}}
>> +static_assert(true); // expected-warning {{C++17 extension}}
>>  static_assert(false); // expected-error-re {{failed{{$}}}}
>> expected-warning {{extension}}
>>
>> Modified: cfe/trunk/test/SemaCXX/warn-c++1z-extensions.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/warn-c%2B%2B1z-extensions.cpp?rev=310804&r1=310803&r2=310804&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/test/SemaCXX/warn-c++1z-extensions.cpp (original)
>> +++ cfe/trunk/test/SemaCXX/warn-c++1z-extensions.cpp Sun Aug 13 15:26:53
>> 2017
>> @@ -1,8 +1,8 @@
>>  // RUN: %clang_cc1 -fsyntax-only -std=c++14 -verify %s
>>
>>  void f() {
>> -  if (bool b = true; b) {} // expected-warning {{'if' initialization
>> statements are a C++1z extension}}
>> -  switch (int n = 5; n) { // expected-warning {{'switch' initialization
>> statements are a C++1z extension}}
>> +  if (bool b = true; b) {} // expected-warning {{'if' initialization
>> statements are a C++17 extension}}
>> +  switch (int n = 5; n) { // expected-warning {{'switch' initialization
>> statements are a C++17 extension}}
>>    case 5: break;
>>    }
>>  }
>>
>> Modified: cfe/trunk/test/SemaTemplate/temp_arg_nontype_cxx11.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaTemplate/temp_arg_nontype_cxx11.cpp?rev=310804&r1=310803&r2=310804&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/test/SemaTemplate/temp_arg_nontype_cxx11.cpp (original)
>> +++ cfe/trunk/test/SemaTemplate/temp_arg_nontype_cxx11.cpp Sun Aug 13
>> 15:26:53 2017
>> @@ -25,7 +25,7 @@ namespace CanonicalNullptr {
>>  }
>>
>>  namespace Auto {
>> -  template<auto> struct A { };  // expected-error {{until C++1z}}
>> +  template<auto> struct A { };  // expected-error {{until C++17}}
>>  }
>>
>>  namespace check_conversion_early {
>>
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>
>


More information about the cfe-commits mailing list