forked from OSchip/llvm-project
Simplify error messages for two-parameter overloaded increment/decrement operators
llvm-svn: 59442
This commit is contained in:
parent
77324f3854
commit
9edcc802c3
|
@ -1346,12 +1346,8 @@ DIAG(err_operator_overload_must_be_unary_or_binary_plural, ERROR,
|
||||||
DIAG(err_operator_overload_must_be_member, ERROR,
|
DIAG(err_operator_overload_must_be_member, ERROR,
|
||||||
"overloaded operator '%0' must be a non-static member function")
|
"overloaded operator '%0' must be a non-static member function")
|
||||||
DIAG(err_operator_overload_post_inc_must_be_int, ERROR,
|
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')")
|
"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')")
|
"parameter of overloaded post-decrement operator must have type 'int' (not '%0')")
|
||||||
DIAG(err_operator_missing_type_specifier, ERROR,
|
DIAG(err_operator_missing_type_specifier, ERROR,
|
||||||
"missing type specifier after 'operator'")
|
"missing type specifier after 'operator'")
|
||||||
|
|
|
@ -1987,17 +1987,10 @@ bool Sema::CheckOverloadedOperatorDeclaration(FunctionDecl *FnDecl) {
|
||||||
|
|
||||||
if (!ParamIsInt) {
|
if (!ParamIsInt) {
|
||||||
diag::kind DK;
|
diag::kind DK;
|
||||||
if (Op == OO_PlusPlus) {
|
if (Op == OO_PlusPlus)
|
||||||
if (MethodDecl)
|
DK = diag::err_operator_overload_post_inc_must_be_int;
|
||||||
DK = diag::err_operator_overload_post_inc_must_be_int_member;
|
else
|
||||||
else
|
DK = diag::err_operator_overload_post_dec_must_be_int;
|
||||||
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;
|
|
||||||
}
|
|
||||||
Diag(LastParam->getLocation(), DK,
|
Diag(LastParam->getLocation(), DK,
|
||||||
Context.getCanonicalType(LastParam->getType()).getAsString(),
|
Context.getCanonicalType(LastParam->getType()).getAsString(),
|
||||||
SourceRange(FnDecl->getLocation()));
|
SourceRange(FnDecl->getLocation()));
|
||||||
|
|
|
@ -34,4 +34,4 @@ typedef int INT;
|
||||||
typedef float FLOAT;
|
typedef float FLOAT;
|
||||||
Y& operator++(Y&);
|
Y& operator++(Y&);
|
||||||
Y operator++(Y&, INT);
|
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')}}
|
||||||
|
|
Loading…
Reference in New Issue