Index: include/clang/Basic/DiagnosticGroups.td =================================================================== --- include/clang/Basic/DiagnosticGroups.td +++ include/clang/Basic/DiagnosticGroups.td @@ -183,7 +183,8 @@ def CXXPre14CompatPedantic : DiagGroup<"c++98-c++11-compat-pedantic", [CXXPre14Compat, CXXPre14CompatBinaryLiteral]>; -def CXXPre17Compat : DiagGroup<"c++98-c++11-c++14-compat">; +def CXXPre17Compat : DiagGroup<"c++98-c++11-c++14-compat", + [CXX14CompatCTAD]>; def CXXPre17CompatPedantic : DiagGroup<"c++98-c++11-c++14-compat-pedantic", [CXXPre17Compat]>; def CXXPre2aCompat : DiagGroup<"c++98-c++11-c++14-c++17-compat">; @@ -229,6 +230,7 @@ def ReservedUserDefinedLiteral : DiagGroup<"reserved-user-defined-literal", [CXX11CompatReservedUserDefinedLiteral]>; +def CXX14CompatCTAD : DiagGroup<"c++14-compat-ctad">; def CXX11Compat : DiagGroup<"c++11-compat", [CXX11Narrowing, Index: include/clang/Basic/DiagnosticSemaKinds.td =================================================================== --- include/clang/Basic/DiagnosticSemaKinds.td +++ include/clang/Basic/DiagnosticSemaKinds.td @@ -2164,7 +2164,7 @@ def warn_cxx14_compat_class_template_argument_deduction : Warning< "class template argument deduction is incompatible with C++ standards " "before C++17%select{|; for compatibility, use explicit type name %1}0">, - InGroup, DefaultIgnore; + InGroup, DefaultIgnore; // C++14 deduced return types def err_auto_fn_deduction_failure : Error<