diff options
author | Saar Raz <saar@raz.email> | 2020-01-24 00:43:22 +0200 |
---|---|---|
committer | Saar Raz <saar@raz.email> | 2020-01-24 02:28:33 +0200 |
commit | 2ec65e229314d468006998eaef7074b86ef7482d (patch) | |
tree | b40b8f4c158de29132f5c6ff17d804273a68e3c9 /clang/test/CXX | |
parent | 29f14c1df25992db8c908e441c69e1fd4d4e4010 (diff) | |
download | bcm5719-llvm-2ec65e229314d468006998eaef7074b86ef7482d.tar.gz bcm5719-llvm-2ec65e229314d468006998eaef7074b86ef7482d.zip |
[Concepts] Deprecate -fconcepts-ts, enable Concepts under -std=c++2a
Now with concepts support merged and mostly complete, we do not need -fconcepts-ts
(which was also misleading as we were not implementing the TS) and can enable
concepts features under C++2a. A warning will be generated if users still attempt
to use -fconcepts-ts.
(cherry picked from commit 67c608a9695496cfc9d3fdf9d0b12b554ac6b4df)
Diffstat (limited to 'clang/test/CXX')
30 files changed, 31 insertions, 32 deletions
diff --git a/clang/test/CXX/class.derived/class.virtual/p6.cpp b/clang/test/CXX/class.derived/class.virtual/p6.cpp index 63a4313de55..f0243a776b6 100644 --- a/clang/test/CXX/class.derived/class.virtual/p6.cpp +++ b/clang/test/CXX/class.derived/class.virtual/p6.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++2a -fconcepts-ts -verify %s +// RUN: %clang_cc1 -std=c++2a -verify %s template<typename T> class A { diff --git a/clang/test/CXX/class/class.compare/class.spaceship/p2.cpp b/clang/test/CXX/class/class.compare/class.spaceship/p2.cpp index 1290a063e79..a912384ccf7 100644 --- a/clang/test/CXX/class/class.compare/class.spaceship/p2.cpp +++ b/clang/test/CXX/class/class.compare/class.spaceship/p2.cpp @@ -118,8 +118,7 @@ namespace BadDeducedType { template<typename T> concept CmpCat = true; struct D { - // FIXME: Once we support P1141R2, we should give a better diagnostic here: - // {{deduced return type for defaulted three-way comparison operator must be 'auto', not 'CmpCat auto'}} - friend CmpCat auto operator<=>(const D&, const D&) = default; // expected-error {{unknown type name 'CmpCat'}} + // expected-error@+1 {{deduced return type for defaulted three-way comparison operator must be 'auto', not 'CmpCat auto'}} + friend CmpCat auto operator<=>(const D&, const D&) = default; }; } diff --git a/clang/test/CXX/dcl/dcl.decl/p3.cpp b/clang/test/CXX/dcl/dcl.decl/p3.cpp index eec0aa2043a..5bfec8a22da 100644 --- a/clang/test/CXX/dcl/dcl.decl/p3.cpp +++ b/clang/test/CXX/dcl/dcl.decl/p3.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++2a -fconcepts-ts -verify %s +// RUN: %clang_cc1 -std=c++2a -verify %s template<typename T, typename U> constexpr bool is_same_v = false; diff --git a/clang/test/CXX/dcl/dcl.fct/p17.cpp b/clang/test/CXX/dcl/dcl.fct/p17.cpp index bf19e57e796..10e52570d94 100644 --- a/clang/test/CXX/dcl/dcl.fct/p17.cpp +++ b/clang/test/CXX/dcl/dcl.fct/p17.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++2a -fconcepts-ts -verify %s +// RUN: %clang_cc1 -std=c++2a -verify %s template<typename T, typename U> constexpr bool is_same_v = false; template<typename T> constexpr bool is_same_v<T, T> = true; diff --git a/clang/test/CXX/dcl/dcl.spec/dcl.type/dcl.spec.auto/p6.cpp b/clang/test/CXX/dcl/dcl.spec/dcl.type/dcl.spec.auto/p6.cpp index a4e71d341cd..ae194670954 100644 --- a/clang/test/CXX/dcl/dcl.spec/dcl.type/dcl.spec.auto/p6.cpp +++ b/clang/test/CXX/dcl/dcl.spec/dcl.type/dcl.spec.auto/p6.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++2a -fconcepts-ts -verify %s +// RUN: %clang_cc1 -std=c++2a -verify %s template<typename T, unsigned size> concept LargerThan = sizeof(T) > size; diff --git a/clang/test/CXX/expr/expr.prim/expr.prim.id/mixed-constraints.cpp b/clang/test/CXX/expr/expr.prim/expr.prim.id/mixed-constraints.cpp index fafb3f7b35d..6add2c5d10a 100644 --- a/clang/test/CXX/expr/expr.prim/expr.prim.id/mixed-constraints.cpp +++ b/clang/test/CXX/expr/expr.prim/expr.prim.id/mixed-constraints.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++2a -fconcepts-ts -verify %s +// RUN: %clang_cc1 -std=c++2a -verify %s template<typename T> requires (sizeof(T) >= 4 && sizeof(T) <= 10) // expected-note@-1{{because 'sizeof(char [20]) <= 10' (20 <= 10) evaluated to false}} diff --git a/clang/test/CXX/expr/expr.prim/expr.prim.id/p4.cpp b/clang/test/CXX/expr/expr.prim/expr.prim.id/p4.cpp index f13ab279da3..f4c38c73d25 100644 --- a/clang/test/CXX/expr/expr.prim/expr.prim.id/p4.cpp +++ b/clang/test/CXX/expr/expr.prim/expr.prim.id/p4.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++2a -fconcepts-ts -verify %s +// RUN: %clang_cc1 -std=c++2a -verify %s namespace functions { diff --git a/clang/test/CXX/expr/expr.prim/expr.prim.lambda/expr.prim.lambda.closure/p3.cpp b/clang/test/CXX/expr/expr.prim/expr.prim.lambda/expr.prim.lambda.closure/p3.cpp index 0c0f820d168..9c5765b06b8 100644 --- a/clang/test/CXX/expr/expr.prim/expr.prim.lambda/expr.prim.lambda.closure/p3.cpp +++ b/clang/test/CXX/expr/expr.prim/expr.prim.lambda/expr.prim.lambda.closure/p3.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++2a -fconcepts-ts -verify %s +// RUN: %clang_cc1 -std=c++2a -verify %s auto l1 = [] (auto x) requires (sizeof(decltype(x)) == 1) { return x; }; // expected-note@-1{{candidate template ignored: constraints not satisfied [with x:auto = int]}} diff --git a/clang/test/CXX/expr/expr.prim/expr.prim.req/compound-requirement.cpp b/clang/test/CXX/expr/expr.prim/expr.prim.req/compound-requirement.cpp index 578efb5b24e..19b794ba29a 100644 --- a/clang/test/CXX/expr/expr.prim/expr.prim.req/compound-requirement.cpp +++ b/clang/test/CXX/expr/expr.prim/expr.prim.req/compound-requirement.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++2a -fconcepts-ts -x c++ %s -verify +// RUN: %clang_cc1 -std=c++2a -x c++ %s -verify static_assert(requires { { 0 }; }); static_assert(requires { { "aaaa" }; }); diff --git a/clang/test/CXX/expr/expr.prim/expr.prim.req/equivalence.cpp b/clang/test/CXX/expr/expr.prim/expr.prim.req/equivalence.cpp index ea345320190..8a36d7a520a 100644 --- a/clang/test/CXX/expr/expr.prim/expr.prim.req/equivalence.cpp +++ b/clang/test/CXX/expr/expr.prim/expr.prim.req/equivalence.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++2a -fconcepts-ts -x c++ %s -verify +// RUN: %clang_cc1 -std=c++2a -x c++ %s -verify template<typename T, typename U> constexpr bool is_same_v = false; template<typename T> constexpr bool is_same_v<T, T> = true; diff --git a/clang/test/CXX/expr/expr.prim/expr.prim.req/nested-requirement.cpp b/clang/test/CXX/expr/expr.prim/expr.prim.req/nested-requirement.cpp index f8776832d33..bc093a0fc50 100644 --- a/clang/test/CXX/expr/expr.prim/expr.prim.req/nested-requirement.cpp +++ b/clang/test/CXX/expr/expr.prim/expr.prim.req/nested-requirement.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++2a -fconcepts-ts -x c++ %s -verify +// RUN: %clang_cc1 -std=c++2a -x c++ %s -verify static_assert(requires { requires true; }); diff --git a/clang/test/CXX/expr/expr.prim/expr.prim.req/p3.cpp b/clang/test/CXX/expr/expr.prim/expr.prim.req/p3.cpp index a1a745253dd..d2c8cd4fc21 100644 --- a/clang/test/CXX/expr/expr.prim/expr.prim.req/p3.cpp +++ b/clang/test/CXX/expr/expr.prim/expr.prim.req/p3.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++2a -fconcepts-ts -x c++ %s -verify +// RUN: %clang_cc1 -std=c++2a -x c++ %s -verify // Examples from standard diff --git a/clang/test/CXX/expr/expr.prim/expr.prim.req/requires-expr.cpp b/clang/test/CXX/expr/expr.prim/expr.prim.req/requires-expr.cpp index f9d8c3eed11..90a38292d15 100644 --- a/clang/test/CXX/expr/expr.prim/expr.prim.req/requires-expr.cpp +++ b/clang/test/CXX/expr/expr.prim/expr.prim.req/requires-expr.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++2a -fconcepts-ts -x c++ %s -verify +// RUN: %clang_cc1 -std=c++2a -x c++ %s -verify using A = int; diff --git a/clang/test/CXX/expr/expr.prim/expr.prim.req/simple-requirement.cpp b/clang/test/CXX/expr/expr.prim/expr.prim.req/simple-requirement.cpp index a5e6c3057fe..39e882b8fa5 100644 --- a/clang/test/CXX/expr/expr.prim/expr.prim.req/simple-requirement.cpp +++ b/clang/test/CXX/expr/expr.prim/expr.prim.req/simple-requirement.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 %s -I%S -std=c++2a -fconcepts-ts -verify +// RUN: %clang_cc1 %s -I%S -std=c++2a -verify namespace std { struct type_info; } diff --git a/clang/test/CXX/expr/expr.prim/expr.prim.req/type-requirement.cpp b/clang/test/CXX/expr/expr.prim/expr.prim.req/type-requirement.cpp index 8e402a88c40..71c87ffff8b 100644 --- a/clang/test/CXX/expr/expr.prim/expr.prim.req/type-requirement.cpp +++ b/clang/test/CXX/expr/expr.prim/expr.prim.req/type-requirement.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++2a -fconcepts-ts -x c++ %s -verify +// RUN: %clang_cc1 -std=c++2a -x c++ %s -verify using A = int; diff --git a/clang/test/CXX/over/over.match/over.match.best/p1-2a.cpp b/clang/test/CXX/over/over.match/over.match.best/p1-2a.cpp index 36c68071448..dff06308a98 100644 --- a/clang/test/CXX/over/over.match/over.match.best/p1-2a.cpp +++ b/clang/test/CXX/over/over.match/over.match.best/p1-2a.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++2a -fconcepts-ts -verify %s +// RUN: %clang_cc1 -std=c++2a -verify %s template<typename T, typename U> constexpr static bool is_same_v = false; diff --git a/clang/test/CXX/over/over.match/over.match.viable/p3.cpp b/clang/test/CXX/over/over.match/over.match.viable/p3.cpp index ef752d76ec2..c6f99222267 100644 --- a/clang/test/CXX/over/over.match/over.match.viable/p3.cpp +++ b/clang/test/CXX/over/over.match/over.match.viable/p3.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++2a -fconcepts-ts -verify %s +// RUN: %clang_cc1 -std=c++2a -verify %s struct S2 {}; // expected-note@-1 {{candidate constructor (the implicit copy constructor) not viable: no known conversion from 'S1' to 'const S2' for 1st argument}} diff --git a/clang/test/CXX/over/over.over/p4-2a.cpp b/clang/test/CXX/over/over.over/p4-2a.cpp index a5d7a110992..669620360f8 100644 --- a/clang/test/CXX/over/over.over/p4-2a.cpp +++ b/clang/test/CXX/over/over.over/p4-2a.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++2a -fconcepts-ts -verify %s +// RUN: %clang_cc1 -std=c++2a -verify %s template<typename T, typename U> constexpr static bool is_same_v = false; diff --git a/clang/test/CXX/temp/temp.arg/temp.arg.template/p3-2a.cpp b/clang/test/CXX/temp/temp.arg/temp.arg.template/p3-2a.cpp index e7feae31889..8e69f134a3d 100644 --- a/clang/test/CXX/temp/temp.arg/temp.arg.template/p3-2a.cpp +++ b/clang/test/CXX/temp/temp.arg/temp.arg.template/p3-2a.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++2a -fconcepts-ts -frelaxed-template-template-args -verify %s +// RUN: %clang_cc1 -std=c++2a -frelaxed-template-template-args -verify %s template<typename T> concept C = T::f(); // expected-note@-1{{similar constraint}} diff --git a/clang/test/CXX/temp/temp.constr/temp.constr.constr/function-templates.cpp b/clang/test/CXX/temp/temp.constr/temp.constr.constr/function-templates.cpp index 99de7261a81..ea761b20388 100644 --- a/clang/test/CXX/temp/temp.constr/temp.constr.constr/function-templates.cpp +++ b/clang/test/CXX/temp/temp.constr/temp.constr.constr/function-templates.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++2a -fconcepts-ts -x c++ -verify %s +// RUN: %clang_cc1 -std=c++2a -x c++ -verify %s template<typename T> constexpr bool is_ptr_v = false; diff --git a/clang/test/CXX/temp/temp.constr/temp.constr.constr/non-function-templates.cpp b/clang/test/CXX/temp/temp.constr/temp.constr.constr/non-function-templates.cpp index a25b22a9a15..7d4d858b286 100644 --- a/clang/test/CXX/temp/temp.constr/temp.constr.constr/non-function-templates.cpp +++ b/clang/test/CXX/temp/temp.constr/temp.constr.constr/non-function-templates.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++2a -fconcepts-ts -x c++ -verify %s +// RUN: %clang_cc1 -std=c++2a -x c++ -verify %s template<typename T> requires (sizeof(T) >= 2) // expected-note{{because 'sizeof(char) >= 2' (1 >= 2) evaluated to false}} struct A { diff --git a/clang/test/CXX/temp/temp.constr/temp.constr.constr/partial-specializations.cpp b/clang/test/CXX/temp/temp.constr/temp.constr.constr/partial-specializations.cpp index 9f3c21f9917..4372aab591e 100644 --- a/clang/test/CXX/temp/temp.constr/temp.constr.constr/partial-specializations.cpp +++ b/clang/test/CXX/temp/temp.constr/temp.constr.constr/partial-specializations.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++2a -fconcepts-ts -x c++ -verify %s +// RUN: %clang_cc1 -std=c++2a -x c++ -verify %s namespace class_templates { diff --git a/clang/test/CXX/temp/temp.constr/temp.constr.decl/class-template-decl.cpp b/clang/test/CXX/temp/temp.constr/temp.constr.decl/class-template-decl.cpp index 2a1a4e1b7ff..abda8698382 100644 --- a/clang/test/CXX/temp/temp.constr/temp.constr.decl/class-template-decl.cpp +++ b/clang/test/CXX/temp/temp.constr/temp.constr.decl/class-template-decl.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++2a -fconcepts-ts -x c++ -verify %s +// RUN: %clang_cc1 -std=c++2a -x c++ -verify %s namespace nodiag { diff --git a/clang/test/CXX/temp/temp.constr/temp.constr.decl/p3.cpp b/clang/test/CXX/temp/temp.constr/temp.constr.decl/p3.cpp index c6fe82d8de4..749ec1ce13e 100644 --- a/clang/test/CXX/temp/temp.constr/temp.constr.decl/p3.cpp +++ b/clang/test/CXX/temp/temp.constr/temp.constr.decl/p3.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++2a -fconcepts-ts -x c++ -verify %s +// RUN: %clang_cc1 -std=c++2a -x c++ -verify %s template<typename T> struct X { diff --git a/clang/test/CXX/temp/temp.constr/temp.constr.normal/p1.cpp b/clang/test/CXX/temp/temp.constr/temp.constr.normal/p1.cpp index 387b75c4ef0..95fe35b4591 100644 --- a/clang/test/CXX/temp/temp.constr/temp.constr.normal/p1.cpp +++ b/clang/test/CXX/temp/temp.constr/temp.constr.normal/p1.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++2a -fconcepts-ts -x c++ -verify %s +// RUN: %clang_cc1 -std=c++2a -x c++ -verify %s template<typename T> concept True = true; template<typename T> concept Foo = True<T*>; diff --git a/clang/test/CXX/temp/temp.constr/temp.constr.order/class-template-partial-specializations.cpp b/clang/test/CXX/temp/temp.constr/temp.constr.order/class-template-partial-specializations.cpp index 5d41035aa88..ceb5af87b8f 100644 --- a/clang/test/CXX/temp/temp.constr/temp.constr.order/class-template-partial-specializations.cpp +++ b/clang/test/CXX/temp/temp.constr/temp.constr.order/class-template-partial-specializations.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++2a -fconcepts-ts -x c++ -verify %s +// RUN: %clang_cc1 -std=c++2a -x c++ -verify %s template<typename T> requires (sizeof(T) >= 4) // expected-note@-1{{similar constraint expressions not considered equivalen}} diff --git a/clang/test/CXX/temp/temp.constr/temp.constr.order/function-templates.cpp b/clang/test/CXX/temp/temp.constr/temp.constr.order/function-templates.cpp index 7f68369d528..8ae63087144 100644 --- a/clang/test/CXX/temp/temp.constr/temp.constr.order/function-templates.cpp +++ b/clang/test/CXX/temp/temp.constr/temp.constr.order/function-templates.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++2a -fconcepts-ts -x c++ -verify %s +// RUN: %clang_cc1 -std=c++2a -x c++ -verify %s template<typename T> requires (sizeof(T) >= 4) // expected-note@-1{{similar constraint expressions not considered equivalent}} diff --git a/clang/test/CXX/temp/temp.constr/temp.constr.order/var-template-partial-specializations.cpp b/clang/test/CXX/temp/temp.constr/temp.constr.order/var-template-partial-specializations.cpp index cf88e34036d..98bfaead773 100644 --- a/clang/test/CXX/temp/temp.constr/temp.constr.order/var-template-partial-specializations.cpp +++ b/clang/test/CXX/temp/temp.constr/temp.constr.order/var-template-partial-specializations.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++2a -fconcepts-ts -x c++ -verify %s +// RUN: %clang_cc1 -std=c++2a -x c++ -verify %s template<typename T> requires (sizeof(T) >= 4) // expected-note@-1{{similar constraint expressions not considered equivalent}} diff --git a/clang/test/CXX/temp/temp.explicit/p8.cpp b/clang/test/CXX/temp/temp.explicit/p8.cpp index 72d22557899..1f09be04afb 100644 --- a/clang/test/CXX/temp/temp.explicit/p8.cpp +++ b/clang/test/CXX/temp/temp.explicit/p8.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++2a -fconcepts-ts -x c++ -verify %s +// RUN: %clang_cc1 -std=c++2a -x c++ -verify %s template<typename T, typename S = char> requires (sizeof(T) + sizeof(S) < 10) // expected-note@-1{{because 'sizeof(char [100]) + sizeof(char) < 10' (101 < 10) evaluated to false}} diff --git a/clang/test/CXX/temp/temp.param/p10-2a.cpp b/clang/test/CXX/temp/temp.param/p10-2a.cpp index 3d2be1a92be..f9398de9e44 100644 --- a/clang/test/CXX/temp/temp.param/p10-2a.cpp +++ b/clang/test/CXX/temp/temp.param/p10-2a.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++2a -fconcepts-ts -x c++ -verify %s +// RUN: %clang_cc1 -std=c++2a -x c++ -verify %s template<typename T> concept C1 = sizeof(T) == 1; |