r194088 - Revert "Try to correct a mistyped "-" or ">" to "->" for some C++ cases."
Kaelyn Uhrain
rikka at google.com
Tue Nov 5 20:47:28 PST 2013
This commit was reverting an earlier commit; nothing was being added. But
yes, Richard's test case would be part of the revised version once I get
the patch working properly.
On Tue, Nov 5, 2013 at 8:13 PM, Nico Weber <thakis at chromium.org> wrote:
> Should you add Richard's test case too?
>
>
>
> On Tue, Nov 5, 2013 at 10:28 AM, Kaelyn Uhrain <rikka at google.com> wrote:
>
>> Author: rikka
>> Date: Tue Nov 5 12:28:21 2013
>> New Revision: 194088
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=194088&view=rev
>> Log:
>> Revert "Try to correct a mistyped "-" or ">" to "->" for some C++ cases."
>>
>> Revert this patch until cases of rejected valid code (e.g. identifiers
>> that require ADL to be resolved properly) are fixed.
>>
>> Modified:
>> cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td
>> cfe/trunk/lib/Parse/ParseExpr.cpp
>> cfe/trunk/test/SemaCXX/member-expr.cpp
>>
>> Modified: cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td?rev=194088&r1=194087&r2=194088&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td (original)
>> +++ cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td Tue Nov 5
>> 12:28:21 2013
>> @@ -499,9 +499,6 @@ def ext_abstract_pack_declarator_parens
>> def err_function_is_not_record : Error<
>> "unexpected '%select{.|->}0' in function call; perhaps remove the "
>> "'%select{.|->}0'?">;
>> -def err_mistyped_arrow_in_member_access : Error<
>> - "use of undeclared identifier %0; did you mean '->' instead of "
>> - "'%select{-|>}1'?">;
>>
>> // C++ derived classes
>> def err_dup_virtual : Error<"duplicate 'virtual' in base specifier">;
>>
>> Modified: cfe/trunk/lib/Parse/ParseExpr.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParseExpr.cpp?rev=194088&r1=194087&r2=194088&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/lib/Parse/ParseExpr.cpp (original)
>> +++ cfe/trunk/lib/Parse/ParseExpr.cpp Tue Nov 5 12:28:21 2013
>> @@ -166,46 +166,6 @@ ExprResult Parser::ParseAssignmentExpres
>> ExprResult LHS = ParseCastExpression(/*isUnaryExpression=*/false,
>> /*isAddressOfOperand=*/false,
>> isTypeCast);
>> -
>> - // Check for a possible typo of "-" or ">" instead of "->" after a
>> - // pointer to a struct or class, while recovery is still possible.
>> - if (LHS.isUsable() && (Tok.is(tok::minus) || Tok.is(tok::greater))) {
>> - QualType LHSType = LHS.get()->getType();
>> - const RecordType *Pointee =
>> - LHSType->isPointerType()
>> - ? LHSType->getPointeeType()->getAsStructureType()
>> - : 0;
>> - const RecordDecl *RD = Pointee ? Pointee->getDecl() : 0;
>> - const Token &NextTok = NextToken();
>> - if (RD && NextTok.is(tok::identifier)) {
>> - UnqualifiedId Name;
>> - CXXScopeSpec ScopeSpec;
>> - SourceLocation TemplateKWLoc;
>> - NoTypoCorrectionCCC NoTCValidator;
>> - Name.setIdentifier(NextTok.getIdentifierInfo(),
>> NextTok.getLocation());
>> - Sema::SFINAETrap Trap(Actions);
>> - ExprResult Res =
>> - Actions.ActOnIdExpression(getCurScope(), ScopeSpec,
>> TemplateKWLoc,
>> - Name, false, false, &NoTCValidator);
>> - if (Res.isInvalid()) {
>> - Token OpTok = Tok;
>> - Tok.setKind(tok::arrow);
>> - PP.EnableBacktrackAtThisPos();
>> - Res = ParsePostfixExpressionSuffix(LHS);
>> - if (Res.isUsable()) {
>> - LHS = Res;
>> - PP.CommitBacktrackedTokens();
>> - Diag(OpTok, diag::err_mistyped_arrow_in_member_access)
>> - << NextTok.getIdentifierInfo() << OpTok.is(tok::greater)
>> - << FixItHint::CreateReplacement(OpTok.getLocation(), "->");
>> - } else {
>> - Tok = OpTok;
>> - PP.Backtrack();
>> - }
>> - }
>> - }
>> - }
>> -
>> return ParseRHSOfBinaryExpression(LHS, prec::Assignment);
>> }
>>
>>
>> Modified: cfe/trunk/test/SemaCXX/member-expr.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/member-expr.cpp?rev=194088&r1=194087&r2=194088&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/test/SemaCXX/member-expr.cpp (original)
>> +++ cfe/trunk/test/SemaCXX/member-expr.cpp Tue Nov 5 12:28:21 2013
>> @@ -224,16 +224,3 @@ namespace pr16676 {
>> .i; // expected-error {{member reference type 'pr16676::S *' is
>> a pointer; maybe you meant to use '->'}}
>> }
>> }
>> -
>> -namespace PR9054 {
>> -struct Foo {
>> - void bar(int);
>> - int fiz;
>> -};
>> -
>> -int test(struct Foo *foo) {
>> - foo-bar(5); // expected-error {{use of undeclared identifier 'bar';
>> did you mean '->' instead of '-'?}}
>> - foo>baz(4); // expected-error-re {{use of undeclared identifier
>> 'baz'$}}
>> - return foo>fiz; // expected-error {{use of undeclared identifier
>> 'fiz'; did you mean '->' instead of '>'?}}
>> -}
>> -}
>>
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20131105/a05ec5fd/attachment.html>
More information about the cfe-commits
mailing list