================
@@ -0,0 +1,31 @@
+// RUN: %clang_cc1 -std=c++2c -verify %s
+
+
+namespace dr2789 { // dr2789: 18 open
+
+template <typename T = int>
+struct Base {
+    constexpr void g(); // expected-note {{candidate function}}
+};
+
+template <typename T = int>
+struct Base2 {
+    constexpr void g() requires true;  // expected-note {{candidate function}}
+};
+
+template <typename T = int>
+struct S : Base<T>, Base2<T> {
+    constexpr void f();                      // #1
+    constexpr void f(this S&) requires true{}; // #2
+
+    using Base<T>::g;
+    using Base2<T>::g;
+};
+
+void test() {
+    S<> s;
+    s.f();
+    s.g(); // expected-error {{call to member function 'g' is ambiguous}}
----------------
Endilll wrote:

I believe our current best practices on handling errors with notes in DR tests 
are showcased here: 
https://github.com/llvm/llvm-project/blob/fe3c4218438adeebba4914a57b4d382e3a947394/clang/test/CXX/drs/dr13xx.cpp#L505
Notes being scattered across the test makes it harder to match the test against 
compiler output on e.g. Compiler Explorer.

https://github.com/llvm/llvm-project/pull/73493
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to