diff options
author | Kaelyn Uhrain <rikka@google.com> | 2012-01-25 20:49:08 +0000 |
---|---|---|
committer | Kaelyn Uhrain <rikka@google.com> | 2012-01-25 20:49:08 +0000 |
commit | cd78e612d6fa8e214e6a6bb0e739a0c3e419df91 (patch) | |
tree | 80fe736fdb339888bc309422e146c3753a84396d /lib/Sema/SemaExpr.cpp | |
parent | ada4fa7978dc91a5e615af2ec29e12e3c6973c7f (diff) |
Avoid correcting unknown identifiers to types where types aren't allowed.
Pass a typo correction callback object from ParseCastExpr to
Sema::ActOnIdExpression to be a bit more selective about what kinds of
corrections will be allowed for unknown identifiers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148973 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema/SemaExpr.cpp')
-rw-r--r-- | lib/Sema/SemaExpr.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/Sema/SemaExpr.cpp b/lib/Sema/SemaExpr.cpp index 08439e1868..8a53ece6b3 100644 --- a/lib/Sema/SemaExpr.cpp +++ b/lib/Sema/SemaExpr.cpp @@ -1704,7 +1704,8 @@ ExprResult Sema::ActOnIdExpression(Scope *S, CXXScopeSpec &SS, UnqualifiedId &Id, bool HasTrailingLParen, - bool IsAddressOfOperand) { + bool IsAddressOfOperand, + CorrectionCandidateCallback *CCC) { assert(!(IsAddressOfOperand && HasTrailingLParen) && "cannot be direct & operand and have a trailing lparen"); @@ -1819,7 +1820,7 @@ ExprResult Sema::ActOnIdExpression(Scope *S, TemplateArgs); CorrectionCandidateCallback DefaultValidator; - if (DiagnoseEmptyLookup(S, SS, R, DefaultValidator)) + if (DiagnoseEmptyLookup(S, SS, R, CCC ? *CCC : DefaultValidator)) return ExprError(); assert(!R.empty() && |