summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaExprCXX.cpp
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2009-10-26 20:45:27 +0000
committerFariborz Jahanian <fjahanian@apple.com>2009-10-26 20:45:27 +0000
commit59f64202d6cc14ace06522467ebde85a9e8de00b (patch)
tree765c4e028b26e192828995df7143299089de6509 /clang/lib/Sema/SemaExprCXX.cpp
parenta4a347f0b91b7283ac01aee8cd72f4814ae863d8 (diff)
downloadbcm5719-llvm-59f64202d6cc14ace06522467ebde85a9e8de00b.tar.gz
bcm5719-llvm-59f64202d6cc14ace06522467ebde85a9e8de00b.zip
Add 'fixit' hint on mis-use of pointer-to-member
binary operators. llvm-svn: 85153
Diffstat (limited to 'clang/lib/Sema/SemaExprCXX.cpp')
-rw-r--r--clang/lib/Sema/SemaExprCXX.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/clang/lib/Sema/SemaExprCXX.cpp b/clang/lib/Sema/SemaExprCXX.cpp
index 942c6bc4fec..8e3fbda67c5 100644
--- a/clang/lib/Sema/SemaExprCXX.cpp
+++ b/clang/lib/Sema/SemaExprCXX.cpp
@@ -1404,7 +1404,8 @@ QualType Sema::CheckPointerToMemberOperands(
LType = Ptr->getPointeeType().getNonReferenceType();
else {
Diag(Loc, diag::err_bad_memptr_lhs)
- << OpSpelling << 1 << LType << lex->getSourceRange();
+ << OpSpelling << 1 << LType
+ << CodeModificationHint::CreateReplacement(SourceRange(Loc), ".*");
return QualType();
}
}
@@ -1417,8 +1418,10 @@ QualType Sema::CheckPointerToMemberOperands(
// overkill?
if (!IsDerivedFrom(LType, Class, Paths) ||
Paths.isAmbiguous(Context.getCanonicalType(Class))) {
+ const char *ReplaceStr = isIndirect ? ".*" : "->*";
Diag(Loc, diag::err_bad_memptr_lhs) << OpSpelling
- << (int)isIndirect << lex->getType() << lex->getSourceRange();
+ << (int)isIndirect << lex->getType() <<
+ CodeModificationHint::CreateReplacement(SourceRange(Loc), ReplaceStr);
return QualType();
}
}
OpenPOWER on IntegriCloud