]> granicus.if.org Git - clang/commitdiff
Simplify error messages for two-parameter overloaded increment/decrement operators
authorDouglas Gregor <dgregor@apple.com>
Mon, 17 Nov 2008 15:03:30 +0000 (15:03 +0000)
committerDouglas Gregor <dgregor@apple.com>
Mon, 17 Nov 2008 15:03:30 +0000 (15:03 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59442 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Basic/DiagnosticKinds.def
lib/Sema/SemaDeclCXX.cpp
test/SemaCXX/overloaded-operator-decl.cpp

index b7b1b6e6ded2d8d6145f67b78cecdd08dd0820f8..49bb9ee9331de69332e8f4ee6668151a024f8dd8 100644 (file)
@@ -1346,12 +1346,8 @@ DIAG(err_operator_overload_must_be_unary_or_binary_plural, ERROR,
 DIAG(err_operator_overload_must_be_member, ERROR,
      "overloaded operator '%0' must be a non-static member function")
 DIAG(err_operator_overload_post_inc_must_be_int, ERROR,
-     "second parameter of overloaded post-increment operator must have type 'int' (not '%0')")
-DIAG(err_operator_overload_post_dec_must_be_int, ERROR,
-     "second parameter of overloaded post-decrement operator must have type 'int' (not '%0')")
-DIAG(err_operator_overload_post_inc_must_be_int_member, ERROR,
      "parameter of overloaded post-increment operator must have type 'int' (not '%0')")
-DIAG(err_operator_overload_post_dec_must_be_int_member, ERROR,
+DIAG(err_operator_overload_post_dec_must_be_int, ERROR,
      "parameter of overloaded post-decrement operator must have type 'int' (not '%0')")
 DIAG(err_operator_missing_type_specifier, ERROR,
      "missing type specifier after 'operator'")
index 2fb1332281ea4feb7b28482d7343ef3ba3bd4d94..74d94d7132de58e83ea97a1fd20b8541dd63aa37 100644 (file)
@@ -1987,17 +1987,10 @@ bool Sema::CheckOverloadedOperatorDeclaration(FunctionDecl *FnDecl) {
 
     if (!ParamIsInt) {
       diag::kind DK;
-      if (Op == OO_PlusPlus) {
-        if (MethodDecl)
-          DK = diag::err_operator_overload_post_inc_must_be_int_member;
-        else
-          DK = diag::err_operator_overload_post_inc_must_be_int;
-      } else {
-        if (MethodDecl)
-          DK = diag::err_operator_overload_post_dec_must_be_int_member;
-        else
-          DK = diag::err_operator_overload_post_dec_must_be_int;
-      }
+      if (Op == OO_PlusPlus)
+        DK = diag::err_operator_overload_post_inc_must_be_int;
+      else
+        DK = diag::err_operator_overload_post_dec_must_be_int;
       Diag(LastParam->getLocation(), DK,
            Context.getCanonicalType(LastParam->getType()).getAsString(),
            SourceRange(FnDecl->getLocation()));
index b755ebc98e626bd4423866869fd102717f103f82..634f3d424deabe89b6843f3b222487b5738d6ccd 100644 (file)
@@ -34,4 +34,4 @@ typedef int INT;
 typedef float FLOAT;
 Y& operator++(Y&);
 Y operator++(Y&, INT);
-X operator++(X&, FLOAT); // expected-error{{second parameter of overloaded post-increment operator must have type 'int' (not 'float')}}
+X operator++(X&, FLOAT); // expected-error{{parameter of overloaded post-increment operator must have type 'int' (not 'float')}}