c++: Check satisfaction before non-dep convs. [CWG2369]
[gcc.git] / gcc / testsuite / g++.dg / concepts / diagnostic2.C
1 // { dg-do compile { target c++2a } }
2 // { dg-options "-fdiagnostics-show-caret" }
3
4 template<typename T>
5 inline constexpr bool foo_v = false;
6
7 template<typename T>
8 concept foo = foo_v<T> || foo_v<T&>; // { dg-message "no operand" }
9 /* { dg-begin-multiline-output "" }
10 concept foo = foo_v<T> || foo_v<T&>;
11 ~~~~~~~~~^~~~~~~~~~~~
12 { dg-end-multiline-output "" } */
13
14 template<typename T>
15 requires foo<T>
16 void bar();
17 /* { dg-begin-multiline-output "" }
18 void bar();
19 { dg-end-multiline-output "" } */
20 /* { dg-prune-output "~" } */
21
22 void
23 baz()
24 {
25 bar<int>(); // { dg-error "no match" }
26 /* { dg-begin-multiline-output "" }
27 bar<int>();
28 ^
29 { dg-end-multiline-output "" } */
30 }