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 <[email protected]> wrote: > Should you add Richard's test case too? > > > > On Tue, Nov 5, 2013 at 10:28 AM, Kaelyn Uhrain <[email protected]> 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 >> [email protected] >> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits >> > >
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
