]> granicus.if.org Git - clang/commit
Merging r227251:
authorHans Wennborg <hans@hanshq.net>
Tue, 27 Jan 2015 23:12:34 +0000 (23:12 +0000)
committerHans Wennborg <hans@hanshq.net>
Tue, 27 Jan 2015 23:12:34 +0000 (23:12 +0000)
commitbeb9936b46b8c672e813b3421221c3b788753b9b
treec567f728501d7d4169a3c0be6735d86b5fd6386d
parentb16beff99ce9f7672335ec4afd40e29c80a5bfb0
Merging r227251:
------------------------------------------------------------------------
r227251 | rikka | 2015-01-27 14:01:39 -0800 (Tue, 27 Jan 2015) | 17 lines

Fix a think-o in handling ambiguous corrections for a TypoExpr.

Under certain circumstances, the identifier mentioned in the diagnostic
won't match the intended correction even though the replacement
expression and the note pointing to the decl are both correct.
Basically, the TreeTransform assumes the TypoExpr's Consumer points to
the correct TypoCorrection, but the handling of typos that appear to be
ambiguous from the point of view of TransformTypoExpr would cause that
assumption to be violated by altering the Consumer's correction stream.
This fix allows the Consumer's correction stream to be reset to the
right TypoCorrection after successfully resolving the percieved ambiguity.

Included is a fix to suppress correcting the RHS of an assignment to the
LHS of that assignment for non-C++ code, to prevent a regression in
test/SemaObjC/provisional-ivar-lookup.m.

This fixes PR22297.
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_36@227266 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Sema/SemaInternal.h
lib/Sema/SemaExpr.cpp
lib/Sema/SemaExprCXX.cpp
test/SemaCXX/typo-correction-delayed.cpp