From 378444331b00d96ec76f18492cbbe34c55f1339a Mon Sep 17 00:00:00 2001 From: Ehsan Akhgari Date: Tue, 24 Mar 2015 13:25:23 +0000 Subject: Revert "Diagnose ref-qualifiers occuring after virt-specifier-seq and generate fixit hints" This reverts commit 49079d45966a3f57cd82edb35bde2e8e88fccf40. llvm-svn: 233073 --- clang/lib/Parse/ParseDecl.cpp | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) (limited to 'clang/lib/Parse/ParseDecl.cpp') diff --git a/clang/lib/Parse/ParseDecl.cpp b/clang/lib/Parse/ParseDecl.cpp index 5726fb622c6..c19759e596c 100644 --- a/clang/lib/Parse/ParseDecl.cpp +++ b/clang/lib/Parse/ParseDecl.cpp @@ -5342,8 +5342,15 @@ void Parser::ParseFunctionDeclarator(Declarator &D, } // Parse ref-qualifier[opt]. - if (ParseRefQualifier(RefQualifierIsLValueRef, RefQualifierLoc)) + if (Tok.is(tok::amp) || Tok.is(tok::ampamp)) { + Diag(Tok, getLangOpts().CPlusPlus11 ? + diag::warn_cxx98_compat_ref_qualifier : + diag::ext_ref_qualifier); + + RefQualifierIsLValueRef = Tok.is(tok::amp); + RefQualifierLoc = ConsumeToken(); EndLoc = RefQualifierLoc; + } // C++11 [expr.prim.general]p3: // If a declaration declares a member function or member function @@ -5439,22 +5446,6 @@ void Parser::ParseFunctionDeclarator(Declarator &D, FnAttrs, EndLoc); } -/// ParseRefQualifier - Parses a member function ref-qualifier. Returns -/// true if a ref-qualifier is found. -bool Parser::ParseRefQualifier(bool &RefQualifierIsLValueRef, - SourceLocation &RefQualifierLoc) { - if (Tok.is(tok::amp) || Tok.is(tok::ampamp)) { - Diag(Tok, getLangOpts().CPlusPlus11 ? - diag::warn_cxx98_compat_ref_qualifier : - diag::ext_ref_qualifier); - - RefQualifierIsLValueRef = Tok.is(tok::amp); - RefQualifierLoc = ConsumeToken(); - return true; - } - return false; -} - /// isFunctionDeclaratorIdentifierList - This parameter list may have an /// identifier list form for a K&R-style function: void foo(a,b,c) /// -- cgit v1.2.3