================
@@ -0,0 +1,20 @@
+// RUN: %clang_cc1 %s -std=c++11 -Wignored-qualifiers -verify
+
+class A { };
+
+typedef const A A_Const;
+class B : public A_Const { }; // expected-warning {{'const' qualifier on base 
class type 'A_Const' (aka 'const A') have no effect}} \
+                              // expected-note {{base class 'A_Const' (aka 
'const A') specified here}}
+
+typedef const volatile A A_Const_Volatile;
+class C : public A_Const_Volatile { }; // expected-warning {{'const volatile' 
qualifiers on base class type 'A_Const_Volatile' (aka 'const volatile A') have 
no effect}} \
+                                       // expected-note {{base class 
'A_Const_Volatile' (aka 'const volatile A') specified here}}
+
+struct D {
+  D(int);
+};
+template <typename T> struct E : T {
----------------
erichkeane wrote:

I would like us to, at least at first?  Is the diagnostic reasonable? 

My fear of course is that this ends up being SUPER noisy here in the template 
case, but I would like to get feedback on this.  We could potentially split the 
template-case into a separate diagnostic group to make it easier to suppress.

That said, your current cutout for this is likely insufficient.  What if this 
was: `struct E : T::type` where that has a const on it?  

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

Reply via email to