[llvm-branch-commits] [clang] [clang] Implement instantiation context note for checking template parameters (PR #126088)

Matheus Izvekov via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Wed Feb 19 09:51:11 PST 2025


================
@@ -1018,9 +1019,9 @@ namespace cwg62 { // cwg62: 2.9
   struct A {
     struct { int n; } b;
   };
-  template<typename T> struct X {};
-  template<typename T> T get() { return get<T>(); }
-  template<typename T> int take(T) { return 0; }
+  template<typename T> struct X {}; // cxx98-note 6{{template parameter is declared here}}
----------------
mizvekov wrote:

Why though? These notes are not particularly relevant for a DR test.

This makes these tests very cumbersome to update.

I don't quite understand all these special rules for these DR tests, as I think they popped up while I was on a break from the project, and I probably missed discussions here.

But this goes around the design intent of the diagnostic verifier, which encourages these sorts of matches, while at the same time does not support matching on a diagnostic sequence at all, while this can give the people illusion that this is actually verified.

I think this makes the verifier unsuited for this kind of test. FileCheck on the raw clang output and a generator/updater script would be a superior solution, which would actually support matching on a sequence of diagnostics.

https://github.com/llvm/llvm-project/pull/126088


More information about the llvm-branch-commits mailing list