diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2009-10-26 20:45:27 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2009-10-26 20:45:27 +0000 |
commit | 59f64202d6cc14ace06522467ebde85a9e8de00b (patch) | |
tree | 765c4e028b26e192828995df7143299089de6509 /clang/lib/Sema/SemaExprCXX.cpp | |
parent | a4a347f0b91b7283ac01aee8cd72f4814ae863d8 (diff) | |
download | bcm5719-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.cpp | 7 |
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(); } } |