summaryrefslogtreecommitdiffstats
path: root/clang/lib/Parse/ParseDecl.cpp
diff options
context:
space:
mode:
authorEhsan Akhgari <ehsan.akhgari@gmail.com>2015-03-24 13:25:23 +0000
committerEhsan Akhgari <ehsan.akhgari@gmail.com>2015-03-24 13:25:23 +0000
commit378444331b00d96ec76f18492cbbe34c55f1339a (patch)
treec426ab25de02ead2e823a82ff709dfa30075523e /clang/lib/Parse/ParseDecl.cpp
parent722ff2864349fcd1fba3f808bfe7f7aa14623a43 (diff)
downloadbcm5719-llvm-378444331b00d96ec76f18492cbbe34c55f1339a.tar.gz
bcm5719-llvm-378444331b00d96ec76f18492cbbe34c55f1339a.zip
Revert "Diagnose ref-qualifiers occuring after virt-specifier-seq and generate fixit hints"
This reverts commit 49079d45966a3f57cd82edb35bde2e8e88fccf40. llvm-svn: 233073
Diffstat (limited to 'clang/lib/Parse/ParseDecl.cpp')
-rw-r--r--clang/lib/Parse/ParseDecl.cpp25
1 files changed, 8 insertions, 17 deletions
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)
///
OpenPOWER on IntegriCloud