diff --git a/clang-tools-extra/clang-tidy/cppcoreguidelines/ProTypeMemberInitCheck.cpp b/clang-tools-extra/clang-tidy/cppcoreguidelines/ProTypeMemberInitCheck.cpp --- a/clang-tools-extra/clang-tidy/cppcoreguidelines/ProTypeMemberInitCheck.cpp +++ b/clang-tools-extra/clang-tidy/cppcoreguidelines/ProTypeMemberInitCheck.cpp @@ -454,7 +454,7 @@ return; // Don't suggest fixes for enums because we don't know a good default. // Don't suggest fixes for bitfields because in-class initialization is not - // possible until C++2a. + // possible until C++20. if (F->getType()->isEnumeralType() || (!getLangOpts().CPlusPlus20 && F->isBitField())) return; diff --git a/clang-tools-extra/clangd/unittests/FindSymbolsTests.cpp b/clang-tools-extra/clangd/unittests/FindSymbolsTests.cpp --- a/clang-tools-extra/clangd/unittests/FindSymbolsTests.cpp +++ b/clang-tools-extra/clangd/unittests/FindSymbolsTests.cpp @@ -441,7 +441,7 @@ } TEST_F(DocumentSymbolsTest, Concepts) { - CDB.ExtraClangFlags = {"-std=c++2a"}; + CDB.ExtraClangFlags = {"-std=c++20"}; std::string FilePath = testPath("foo.cpp"); addFile(FilePath, "template concept C = requires(T t) { t.foo(); };"); diff --git a/clang-tools-extra/clangd/unittests/FindTargetTests.cpp b/clang-tools-extra/clangd/unittests/FindTargetTests.cpp --- a/clang-tools-extra/clangd/unittests/FindTargetTests.cpp +++ b/clang-tools-extra/clangd/unittests/FindTargetTests.cpp @@ -401,7 +401,7 @@ t.foo(); } )cpp"; - Flags.push_back("-std=c++2a"); + Flags.push_back("-std=c++20"); EXPECT_DECLS( "ConceptSpecializationExpr", // FIXME: Should we truncate the pretty-printed form of a concept decl @@ -642,7 +642,7 @@ // FIXME: Auto-completion in a template requires disabling delayed template // parsing. TU.ExtraArgs.push_back("-fno-delayed-template-parsing"); - TU.ExtraArgs.push_back("-std=c++2a"); + TU.ExtraArgs.push_back("-std=c++20"); TU.ExtraArgs.push_back("-xobjective-c++"); auto AST = TU.build(); diff --git a/clang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp b/clang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp --- a/clang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp +++ b/clang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp @@ -115,7 +115,7 @@ // FIXME: Auto-completion in a template requires disabling delayed template // parsing. TU.ExtraArgs.push_back("-fno-delayed-template-parsing"); - TU.ExtraArgs.push_back("-std=c++2a"); + TU.ExtraArgs.push_back("-std=c++20"); for (auto File : AdditionalFiles) TU.AdditionalFiles.insert({File.first, std::string(File.second)}); diff --git a/clang-tools-extra/docs/clang-tidy/checks/portability-simd-intrinsics.rst b/clang-tools-extra/docs/clang-tidy/checks/portability-simd-intrinsics.rst --- a/clang-tools-extra/docs/clang-tidy/checks/portability-simd-intrinsics.rst +++ b/clang-tools-extra/docs/clang-tidy/checks/portability-simd-intrinsics.rst @@ -44,6 +44,6 @@ .. option:: Std The namespace used to suggest `P0214`_ alternatives. If not specified, `std::` - for `-std=c++2a` and `std::experimental::` for `-std=c++11`. + for `-std=c++20` and `std::experimental::` for `-std=c++11`. .. _P0214: https://wg21.link/p0214 diff --git a/clang-tools-extra/test/clang-tidy/check_clang_tidy.py b/clang-tools-extra/test/clang-tidy/check_clang_tidy.py --- a/clang-tools-extra/test/clang-tidy/check_clang_tidy.py +++ b/clang-tools-extra/test/clang-tidy/check_clang_tidy.py @@ -204,15 +204,15 @@ def expand_std(std): if std == 'c++98-or-later': - return ['c++98', 'c++11', 'c++14', 'c++17', 'c++2a'] + return ['c++98', 'c++11', 'c++14', 'c++17', 'c++20'] if std == 'c++11-or-later': - return ['c++11', 'c++14', 'c++17', 'c++2a'] + return ['c++11', 'c++14', 'c++17', 'c++20'] if std == 'c++14-or-later': - return ['c++14', 'c++17', 'c++2a'] + return ['c++14', 'c++17', 'c++20'] if std == 'c++17-or-later': - return ['c++17', 'c++2a'] - if std == 'c++2a-or-later': - return ['c++2a'] + return ['c++17', 'c++20'] + if std == 'c++20-or-later': + return ['c++20'] return [std] diff --git a/clang-tools-extra/test/clang-tidy/checkers/cert-mem57-cpp-cpp17.cpp b/clang-tools-extra/test/clang-tidy/checkers/cert-mem57-cpp-cpp17.cpp --- a/clang-tools-extra/test/clang-tidy/checkers/cert-mem57-cpp-cpp17.cpp +++ b/clang-tools-extra/test/clang-tidy/checkers/cert-mem57-cpp-cpp17.cpp @@ -1,6 +1,6 @@ // RUN: %check_clang_tidy %s -std=c++14 cert-mem57-cpp %t // RUN: clang-tidy --extra-arg='-std=c++17' --extra-arg='-faligned-allocation' -checks='-*,cert-mem57-cpp' --extra-arg=-Wno-unused-variable --warnings-as-errors='*' %s -// RUN: clang-tidy --extra-arg='-std=c++2a' --extra-arg='-faligned-allocation' -checks='-*,cert-mem57-cpp' --extra-arg=-Wno-unused-variable --warnings-as-errors='*' %s +// RUN: clang-tidy --extra-arg='-std=c++20' --extra-arg='-faligned-allocation' -checks='-*,cert-mem57-cpp' --extra-arg=-Wno-unused-variable --warnings-as-errors='*' %s struct alignas(128) Vector { char Elems[128]; diff --git a/clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines-pro-type-member-init-cxx2a.cpp b/clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines-pro-type-member-init-cxx20.cpp rename from clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines-pro-type-member-init-cxx2a.cpp rename to clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines-pro-type-member-init-cxx20.cpp --- a/clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines-pro-type-member-init-cxx2a.cpp +++ b/clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines-pro-type-member-init-cxx20.cpp @@ -1,4 +1,4 @@ -// RUN: %check_clang_tidy -std=c++2a %s cppcoreguidelines-pro-type-member-init %t -- -- -fno-delayed-template-parsing +// RUN: %check_clang_tidy -std=c++20 %s cppcoreguidelines-pro-type-member-init %t -- -- -fno-delayed-template-parsing struct PositiveBitfieldMember { PositiveBitfieldMember() {} diff --git a/clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines-pro-type-member-init.cpp b/clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines-pro-type-member-init.cpp --- a/clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines-pro-type-member-init.cpp +++ b/clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines-pro-type-member-init.cpp @@ -1,5 +1,5 @@ // RUN: %check_clang_tidy -std=c++11,c++14,c++17 %s cppcoreguidelines-pro-type-member-init %t -- -- -fno-delayed-template-parsing -// FIXME: Fix the checker to work in C++2a mode. +// FIXME: Fix the checker to work in C++20 mode. struct PositiveFieldBeforeConstructor { int F; diff --git a/clang-tools-extra/test/clang-tidy/checkers/modernize-make-unique-inaccessible-ctors.cpp b/clang-tools-extra/test/clang-tidy/checkers/modernize-make-unique-inaccessible-ctors.cpp --- a/clang-tools-extra/test/clang-tidy/checkers/modernize-make-unique-inaccessible-ctors.cpp +++ b/clang-tools-extra/test/clang-tidy/checkers/modernize-make-unique-inaccessible-ctors.cpp @@ -1,12 +1,12 @@ // RUN: %check_clang_tidy -std=c++14,c++17 -check-suffix=CXX-14-17 %s modernize-make-unique %t -- -- -I %S/Inputs/modernize-smart-ptr -D CXX_14_17=1 -// RUN: %check_clang_tidy -std=c++2a -check-suffix=CXX-2A %s modernize-make-unique %t -- -- -I %S/Inputs/modernize-smart-ptr -D CXX_2A=1 +// RUN: %check_clang_tidy -std=c++20 -check-suffix=CXX-20 %s modernize-make-unique %t -- -- -I %S/Inputs/modernize-smart-ptr -D CXX_20=1 #include "unique_ptr.h" // CHECK-FIXES: #include struct NoCopyMoveCtor { -#ifdef CXX_2A - // C++2a requires to see the default constructor, otherwise it is illgal. +#ifdef CXX_20 + // C++20 requires to see the default constructor, otherwise it is illgal. NoCopyMoveCtor() = default; #endif #ifdef CXX_14_17 @@ -16,7 +16,7 @@ }; struct NoCopyMoveCtorVisible { -#ifdef CXX_2A +#ifdef CXX_20 NoCopyMoveCtorVisible() = default; #endif private: @@ -31,7 +31,7 @@ }; struct OnlyCopyCtor { -#ifdef CXX_2A +#ifdef CXX_20 OnlyCopyCtor() = default; #endif OnlyCopyCtor(const OnlyCopyCtor&) = default; @@ -39,7 +39,7 @@ }; struct OnlyCopyCtorVisible { -#ifdef CXX_2A +#ifdef CXX_20 OnlyCopyCtorVisible() = default; #endif OnlyCopyCtorVisible(const OnlyCopyCtorVisible &) = default; @@ -56,51 +56,51 @@ auto my_ptr = std::unique_ptr(new int(1)); // CHECK-MESSAGES-CXX-14-17: :[[@LINE-1]]:17: warning: use std::make_unique instead // CHECK-FIXES-CXX-14-17: auto my_ptr = std::make_unique(1); - // CHECK-MESSAGES-CXX-2A: :[[@LINE-3]]:17: warning: use std::make_unique instead - // CHECK-FIXES-CXX-2A: auto my_ptr = std::make_unique(1); + // CHECK-MESSAGES-CXX-20: :[[@LINE-3]]:17: warning: use std::make_unique instead + // CHECK-FIXES-CXX-20: auto my_ptr = std::make_unique(1); - // "new NoCopyMoveCtor{}" is processed differently in C++14/17 and C++2a: + // "new NoCopyMoveCtor{}" is processed differently in C++14/17 and C++20: // * In C++14/17, it is recognized as aggregate initialization, // no fixes will be generated although the generated fix is compilable. - // * In C++2a, it is is recognized as default constructor initialization ( - // similar to "new NoCopyMoveCtor()"), the check will emit the fix and the - // fix is correct. + // * In C++20, it is is recognized as default constructor initialization + // (similar to "new NoCopyMoveCtor()"), the check will emit the fix and + // the fix is correct. auto PNoCopyMoveCtor = std::unique_ptr(new NoCopyMoveCtor{}); // CHECK-MESSAGES-CXX-14-17: :[[@LINE-1]]:26: warning: use std::make_unique instead // CHECK-FIXES-CXX-14-17: auto PNoCopyMoveCtor = std::unique_ptr(new NoCopyMoveCtor{}); - // CHECK-MESSAGES-CXX-2A: :[[@LINE-3]]:26: warning: use std::make_unique instead - // CHECK-FIXES-CXX-2A: auto PNoCopyMoveCtor = std::make_unique(); + // CHECK-MESSAGES-CXX-20: :[[@LINE-3]]:26: warning: use std::make_unique instead + // CHECK-FIXES-CXX-20: auto PNoCopyMoveCtor = std::make_unique(); auto PNoCopyMoveCtorVisible = std::unique_ptr(new NoCopyMoveCtorVisible{}); // CHECK-MESSAGES-CXX-14-17: :[[@LINE-1]]:33: warning: use std::make_unique instead // CHECK-FIXES-CXX-14-17: auto PNoCopyMoveCtorVisible = std::unique_ptr(new NoCopyMoveCtorVisible{}); - // CHECK-MESSAGES-CXX-2A: :[[@LINE-3]]:33: warning: use std::make_unique instead - // CHECK-FIXES-CXX-2A: auto PNoCopyMoveCtorVisible = std::make_unique(); + // CHECK-MESSAGES-CXX-20: :[[@LINE-3]]:33: warning: use std::make_unique instead + // CHECK-FIXES-CXX-20: auto PNoCopyMoveCtorVisible = std::make_unique(); auto POnlyMoveCtor = std::unique_ptr(new OnlyMoveCtor{}); // CHECK-MESSAGES-CXX-14-17: :[[@LINE-1]]:24: warning: use std::make_unique instead // CHECK-FIXES-CXX-14-17: auto POnlyMoveCtor = std::unique_ptr(new OnlyMoveCtor{}); - // CHECK-MESSAGES-CXX-2A: :[[@LINE-3]]:24: warning: use std::make_unique instead - // CHECK-FIXES-CXX-2A: auto POnlyMoveCtor = std::make_unique(); + // CHECK-MESSAGES-CXX-20: :[[@LINE-3]]:24: warning: use std::make_unique instead + // CHECK-FIXES-CXX-20: auto POnlyMoveCtor = std::make_unique(); auto POnlyCopyCtor = std::unique_ptr(new OnlyCopyCtor{}); // CHECK-MESSAGES-CXX-14-17: :[[@LINE-1]]:24: warning: use std::make_unique instead // CHECK-FIXES-CXX-14-17: auto POnlyCopyCtor = std::unique_ptr(new OnlyCopyCtor{}); - // CHECK-MESSAGES-CXX-2A: :[[@LINE-3]]:24: warning: use std::make_unique instead - // CHECK-FIXES-CXX-2A: auto POnlyCopyCtor = std::make_unique(); + // CHECK-MESSAGES-CXX-20: :[[@LINE-3]]:24: warning: use std::make_unique instead + // CHECK-FIXES-CXX-20: auto POnlyCopyCtor = std::make_unique(); auto POnlyCopyCtorVisible = std::unique_ptr(new OnlyCopyCtorVisible{}); // CHECK-MESSAGES-CXX-14-17: :[[@LINE-1]]:31: warning: use std::make_unique instead // CHECK-FIXES-CXX-14-17: auto POnlyCopyCtorVisible = std::unique_ptr(new OnlyCopyCtorVisible{}); - // CHECK-MESSAGES-CXX-2A: :[[@LINE-3]]:31: warning: use std::make_unique instead - // CHECK-FIXES-CXX-2A: auto POnlyCopyCtorVisible = std::make_unique(); + // CHECK-MESSAGES-CXX-20: :[[@LINE-3]]:31: warning: use std::make_unique instead + // CHECK-FIXES-CXX-20: auto POnlyCopyCtorVisible = std::make_unique(); - // This is aggregate initialization in C++2a, no fix will be generated. + // This is aggregate initialization in C++20, no fix will be generated. auto PImplicitDeletedCopyCtor = std::unique_ptr(new ImplicitDeletedCopyCtor{}); // CHECK-MESSAGES-CXX-14-17: :[[@LINE-1]]:35: warning: use std::make_unique instead // CHECK-FIXES-CXX-14-17: auto PImplicitDeletedCopyCtor = std::unique_ptr(new ImplicitDeletedCopyCtor{}); - // CHECK-MESSAGES-CXX-2A: :[[@LINE-3]]:35: warning: use std::make_unique instead - // CHECK-FIXES-CXX-2A: auto PImplicitDeletedCopyCtor = std::unique_ptr(new ImplicitDeletedCopyCtor{}); + // CHECK-MESSAGES-CXX-20: :[[@LINE-3]]:35: warning: use std::make_unique instead + // CHECK-FIXES-CXX-20: auto PImplicitDeletedCopyCtor = std::unique_ptr(new ImplicitDeletedCopyCtor{}); #ifdef CXX_14_17 diff --git a/clang-tools-extra/test/clang-tidy/checkers/modernize-raw-string-literal.cpp b/clang-tools-extra/test/clang-tidy/checkers/modernize-raw-string-literal.cpp --- a/clang-tools-extra/test/clang-tidy/checkers/modernize-raw-string-literal.cpp +++ b/clang-tools-extra/test/clang-tidy/checkers/modernize-raw-string-literal.cpp @@ -1,5 +1,5 @@ // RUN: %check_clang_tidy -std=c++11,c++14,c++17 %s modernize-raw-string-literal %t -- -config="{CheckOptions: [{key: modernize-raw-string-literal.ReplaceShorterLiterals, value: 1}]}" -// FIXME: Fix the checker to work in C++2a mode. +// FIXME: Fix the checker to work in C++20 mode. char const *const BackSlash("goink\\frob"); // CHECK-MESSAGES: :[[@LINE-1]]:29: warning: escaped string literal can be written as a raw string literal [modernize-raw-string-literal] diff --git a/clang-tools-extra/test/clang-tidy/checkers/modernize-use-default-member-init-bitfield.cpp b/clang-tools-extra/test/clang-tidy/checkers/modernize-use-default-member-init-bitfield.cpp --- a/clang-tools-extra/test/clang-tidy/checkers/modernize-use-default-member-init-bitfield.cpp +++ b/clang-tools-extra/test/clang-tidy/checkers/modernize-use-default-member-init-bitfield.cpp @@ -1,4 +1,4 @@ -// RUN: %check_clang_tidy -std=c++2a-or-later %s modernize-use-default-member-init %t +// RUN: %check_clang_tidy -std=c++20-or-later %s modernize-use-default-member-init %t struct PositiveBitField { diff --git a/clang-tools-extra/test/clang-tidy/checkers/modernize-use-default-member-init.cpp b/clang-tools-extra/test/clang-tidy/checkers/modernize-use-default-member-init.cpp --- a/clang-tools-extra/test/clang-tidy/checkers/modernize-use-default-member-init.cpp +++ b/clang-tools-extra/test/clang-tidy/checkers/modernize-use-default-member-init.cpp @@ -1,5 +1,5 @@ // RUN: %check_clang_tidy -std=c++11,c++14,c++17 %s modernize-use-default-member-init %t -- -- -fexceptions -// FIXME: Fix the checker to work in C++2a mode. +// FIXME: Fix the checker to work in C++20 mode. struct S { }; diff --git a/clang-tools-extra/test/clang-tidy/checkers/modernize-use-trailing-return-type.cpp b/clang-tools-extra/test/clang-tidy/checkers/modernize-use-trailing-return-type.cpp --- a/clang-tools-extra/test/clang-tidy/checkers/modernize-use-trailing-return-type.cpp +++ b/clang-tools-extra/test/clang-tidy/checkers/modernize-use-trailing-return-type.cpp @@ -1,5 +1,5 @@ // RUN: %check_clang_tidy -std=c++14,c++17 %s modernize-use-trailing-return-type %t -- -- -fdeclspec -fexceptions -// FIXME: Fix the checker to work in C++2a mode, it is performing a +// FIXME: Fix the checker to work in C++20 mode, it is performing a // use-of-uninitialized-value. namespace std { diff --git a/clang-tools-extra/test/clang-tidy/checkers/performance-no-automatic-move.cpp b/clang-tools-extra/test/clang-tidy/checkers/performance-no-automatic-move.cpp --- a/clang-tools-extra/test/clang-tidy/checkers/performance-no-automatic-move.cpp +++ b/clang-tools-extra/test/clang-tidy/checkers/performance-no-automatic-move.cpp @@ -1,4 +1,4 @@ -// RUN: %check_clang_tidy -std=c++11,c++14,c++17,c++2a %s performance-no-automatic-move %t +// RUN: %check_clang_tidy -std=c++11-or-later %s performance-no-automatic-move %t struct Obj { Obj(); diff --git a/clang-tools-extra/test/clang-tidy/checkers/portability-simd-intrinsics-ppc.cpp b/clang-tools-extra/test/clang-tidy/checkers/portability-simd-intrinsics-ppc.cpp --- a/clang-tools-extra/test/clang-tidy/checkers/portability-simd-intrinsics-ppc.cpp +++ b/clang-tools-extra/test/clang-tidy/checkers/portability-simd-intrinsics-ppc.cpp @@ -2,7 +2,7 @@ // RUN: -config='{CheckOptions: [ \ // RUN: {key: portability-simd-intrinsics.Suggest, value: 1} \ // RUN: ]}' -- -target ppc64le -maltivec -// FIXME: Fix the checker to work in C++2a mode. +// FIXME: Fix the checker to work in C++20 mode. vector int vec_add(vector int, vector int); diff --git a/clang-tools-extra/test/clang-tidy/checkers/portability-simd-intrinsics-x86.cpp b/clang-tools-extra/test/clang-tidy/checkers/portability-simd-intrinsics-x86.cpp --- a/clang-tools-extra/test/clang-tidy/checkers/portability-simd-intrinsics-x86.cpp +++ b/clang-tools-extra/test/clang-tidy/checkers/portability-simd-intrinsics-x86.cpp @@ -2,7 +2,7 @@ // RUN: -config='{CheckOptions: [ \ // RUN: {key: portability-simd-intrinsics.Suggest, value: 1} \ // RUN: ]}' -- -target x86_64 -// FIXME: Fix the checker to work in C++2a mode. +// FIXME: Fix the checker to work in C++20 mode. typedef long long __m128i __attribute__((vector_size(16))); typedef double __m256 __attribute__((vector_size(32))); diff --git a/clang-tools-extra/test/clang-tidy/checkers/readability-use-anyofallof-cpp20.cpp b/clang-tools-extra/test/clang-tidy/checkers/readability-use-anyofallof-cpp20.cpp --- a/clang-tools-extra/test/clang-tidy/checkers/readability-use-anyofallof-cpp20.cpp +++ b/clang-tools-extra/test/clang-tidy/checkers/readability-use-anyofallof-cpp20.cpp @@ -1,4 +1,4 @@ -// RUN: %check_clang_tidy -std=c++2a-or-later %s readability-use-anyofallof %t +// RUN: %check_clang_tidy -std=c++20-or-later %s readability-use-anyofallof %t bool good_any_of() { int v[] = {1, 2, 3};