aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2008-11-17 15:03:30 +0000
committerDouglas Gregor <dgregor@apple.com>2008-11-17 15:03:30 +0000
commit1adbab67751f44147a0d259b684cf52bae142ef3 (patch)
treed35b613e6cb247af2ec2590bb12a7d7ac7d1d071
parent2e1cd4264d363ca869bf37ef160902f211d21b8c (diff)
Simplify error messages for two-parameter overloaded increment/decrement operators
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59442 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/clang/Basic/DiagnosticKinds.def6
-rw-r--r--lib/Sema/SemaDeclCXX.cpp15
-rw-r--r--test/SemaCXX/overloaded-operator-decl.cpp2
3 files changed, 6 insertions, 17 deletions
diff --git a/include/clang/Basic/DiagnosticKinds.def b/include/clang/Basic/DiagnosticKinds.def
index b7b1b6e6de..49bb9ee933 100644
--- a/include/clang/Basic/DiagnosticKinds.def
+++ b/include/clang/Basic/DiagnosticKinds.def
@@ -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'")
diff --git a/lib/Sema/SemaDeclCXX.cpp b/lib/Sema/SemaDeclCXX.cpp
index 2fb1332281..74d94d7132 100644
--- a/lib/Sema/SemaDeclCXX.cpp
+++ b/lib/Sema/SemaDeclCXX.cpp
@@ -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()));
diff --git a/test/SemaCXX/overloaded-operator-decl.cpp b/test/SemaCXX/overloaded-operator-decl.cpp
index b755ebc98e..634f3d424d 100644
--- a/test/SemaCXX/overloaded-operator-decl.cpp
+++ b/test/SemaCXX/overloaded-operator-decl.cpp
@@ -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')}}