Author: rsmith Date: Tue Feb 2 17:34:49 2016 New Revision: 259604 URL: http://llvm.org/viewvc/llvm-project?rev=259604&view=rev Log: Fix rejects-valid when forming a pointer-to-member with 'decltype(expr)::*'.
Modified: cfe/trunk/lib/Parse/ParseDecl.cpp cfe/trunk/test/Parser/cxx0x-decl.cpp Modified: cfe/trunk/lib/Parse/ParseDecl.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParseDecl.cpp?rev=259604&r1=259603&r2=259604&view=diff ============================================================================== --- cfe/trunk/lib/Parse/ParseDecl.cpp (original) +++ cfe/trunk/lib/Parse/ParseDecl.cpp Tue Feb 2 17:34:49 2016 @@ -4931,7 +4931,7 @@ void Parser::ParseDeclaratorInternal(Dec // Member pointers get special handling, since there's no place for the // scope spec in the generic path below. if (getLangOpts().CPlusPlus && - (Tok.is(tok::coloncolon) || + (Tok.is(tok::coloncolon) || Tok.is(tok::kw_decltype) || (Tok.is(tok::identifier) && (NextToken().is(tok::coloncolon) || NextToken().is(tok::less))) || Tok.is(tok::annot_cxxscope))) { Modified: cfe/trunk/test/Parser/cxx0x-decl.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Parser/cxx0x-decl.cpp?rev=259604&r1=259603&r2=259604&view=diff ============================================================================== --- cfe/trunk/test/Parser/cxx0x-decl.cpp (original) +++ cfe/trunk/test/Parser/cxx0x-decl.cpp Tue Feb 2 17:34:49 2016 @@ -17,6 +17,8 @@ auto g() -> enum E { return E(); } +int decltype(f())::*ptr_mem_decltype; + class ExtraSemiAfterMemFn { // Due to a peculiarity in the C++11 grammar, a deleted or defaulted function // is permitted to be followed by either one or two semicolons. _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits