[clang] c7dc836 - [Clang] fix diagnostic to correctly handle singular and plural cases for redundant qualifiers on base class type (#125943)

via cfe-commits cfe-commits at lists.llvm.org
Thu Feb 6 00:37:27 PST 2025


Author: Oleksandr T.
Date: 2025-02-06T10:37:23+02:00
New Revision: c7dc836bbe3658a9210a944b850450f5ae7b50a4

URL: https://github.com/llvm/llvm-project/commit/c7dc836bbe3658a9210a944b850450f5ae7b50a4
DIFF: https://github.com/llvm/llvm-project/commit/c7dc836bbe3658a9210a944b850450f5ae7b50a4.diff

LOG: [Clang] fix diagnostic to correctly handle singular and plural cases for redundant qualifiers on base class type (#125943)

Fixes #125942

Added: 
    

Modified: 
    clang/include/clang/Basic/DiagnosticSemaKinds.td
    clang/test/SemaCXX/warn-base-type-qualifiers.cpp

Removed: 
    


################################################################################
diff  --git a/clang/include/clang/Basic/DiagnosticSemaKinds.td b/clang/include/clang/Basic/DiagnosticSemaKinds.td
index 7b3b932c482baa2..bcae9e9f3009387 100644
--- a/clang/include/clang/Basic/DiagnosticSemaKinds.td
+++ b/clang/include/clang/Basic/DiagnosticSemaKinds.td
@@ -490,7 +490,7 @@ def warn_qual_return_type : Warning<
   "'%0' type qualifier%s1 on return type %plural{1:has|:have}1 no effect">,
   InGroup<IgnoredQualifiers>, DefaultIgnore;
 def warn_qual_base_type : Warning<
-  "'%0' qualifier%s1 on base class type %2 have no effect">,
+  "'%0' qualifier%s1 on base class type %2 %plural{1:has|:have}1 no effect">,
   InGroup<IgnoredQualifiers>, DefaultIgnore;
 
 def warn_deprecated_redundant_constexpr_static_def : Warning<

diff  --git a/clang/test/SemaCXX/warn-base-type-qualifiers.cpp b/clang/test/SemaCXX/warn-base-type-qualifiers.cpp
index b9fd577c574b99a..7c775a552dd8861 100644
--- a/clang/test/SemaCXX/warn-base-type-qualifiers.cpp
+++ b/clang/test/SemaCXX/warn-base-type-qualifiers.cpp
@@ -8,7 +8,7 @@ template <typename T> using add_const_t = typename add_const<T>::type;
 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}} \
+class B : public A_Const { }; // expected-warning {{'const' qualifier on base class type 'A_Const' (aka 'const A') has no effect}} \
                               // expected-note {{base class 'A_Const' (aka 'const A') specified here}}
 
 typedef const volatile A A_Const_Volatile;
@@ -19,7 +19,7 @@ struct D {
   D(int);
 };
 
-template <typename T> struct E : T { // expected-warning {{'const' qualifier on base class type 'const D' have no effect}} \
+template <typename T> struct E : T { // expected-warning {{'const' qualifier on base class type 'const D' has no effect}} \
                                      // expected-note {{base class 'const D' specified here}}
   using T::T;
   E(int &) : E(0) {}
@@ -27,7 +27,7 @@ template <typename T> struct E : T { // expected-warning {{'const' qualifier on
 E<const D> e(1); // expected-note {{in instantiation of template class 'E<const D>' requested here}}
 
 template <typename T>
-struct G : add_const<T>::type { // expected-warning {{'const' qualifier on base class type 'add_const<D>::type' (aka 'const D') have no effect}} \
+struct G : add_const<T>::type { // expected-warning {{'const' qualifier on base class type 'add_const<D>::type' (aka 'const D') has no effect}} \
                                 // expected-note {{base class 'add_const<D>::type' (aka 'const D') specified here}}
   using T::T;
   G(int &) : G(0) {}


        


More information about the cfe-commits mailing list