diff options
| author | Alexey Bataev <a.bataev@hotmail.com> | 2016-06-15 11:24:54 +0000 |
|---|---|---|
| committer | Alexey Bataev <a.bataev@hotmail.com> | 2016-06-15 11:24:54 +0000 |
| commit | 61deb4dadc1682c044e1c3910ec45d36d9452fba (patch) | |
| tree | 920d3e3d671cb73f19a5e39c096a2333858313b9 /clang/lib/Sema | |
| parent | b46cdeae9f5e94b12ca321e91ddef0974440222e (diff) | |
| download | bcm5719-llvm-61deb4dadc1682c044e1c3910ec45d36d9452fba.tar.gz bcm5719-llvm-61deb4dadc1682c044e1c3910ec45d36d9452fba.zip | |
Revert accidential "[MSVC] Late parsing of in-class defined member functions in template"
This reverts commit 0253605771b8bd9d414aba74fe2742c730d6fd1a.
llvm-svn: 272776
Diffstat (limited to 'clang/lib/Sema')
| -rw-r--r-- | clang/lib/Sema/SemaExpr.cpp | 10 | ||||
| -rw-r--r-- | clang/lib/Sema/SemaStmt.cpp | 27 | ||||
| -rw-r--r-- | clang/lib/Sema/TreeTransform.h | 21 |
3 files changed, 5 insertions, 53 deletions
diff --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp index 098a76379b3..6f23115f02a 100644 --- a/clang/lib/Sema/SemaExpr.cpp +++ b/clang/lib/Sema/SemaExpr.cpp @@ -2213,11 +2213,11 @@ Sema::ActOnIdExpression(Scope *S, CXXScopeSpec &SS, bool ADL = UseArgumentDependentLookup(SS, R, HasTrailingLParen); if (R.empty() && !ADL) { - // if (SS.isEmpty() && getLangOpts().MSVCCompat) { - // if (Expr *E = recoverFromMSUnqualifiedLookup(*this, Context, NameInfo, - // TemplateKWLoc, TemplateArgs)) - // return E; - // } + if (SS.isEmpty() && getLangOpts().MSVCCompat) { + if (Expr *E = recoverFromMSUnqualifiedLookup(*this, Context, NameInfo, + TemplateKWLoc, TemplateArgs)) + return E; + } // Don't diagnose an empty lookup for inline assembly. if (IsInlineAsmIdentifier) diff --git a/clang/lib/Sema/SemaStmt.cpp b/clang/lib/Sema/SemaStmt.cpp index 51ae9c1b844..d2d4098d177 100644 --- a/clang/lib/Sema/SemaStmt.cpp +++ b/clang/lib/Sema/SemaStmt.cpp @@ -3978,30 +3978,3 @@ StmtResult Sema::ActOnCapturedRegionEnd(Stmt *S) { return Res; } - -StmtResult Sema::ActOnMSLateParsedCompoundStmt(SourceLocation LB, - SourceLocation RB, - ArrayRef<Token> Tokens, - StringRef Rep) { - if (CurContext->isDependentContext()) - return MSLateParsedCompoundStmt::Create(getASTContext(), LB, RB, Tokens, - Rep); - - QualType CXXThisTy = getCurrentThisType(); - assert(!CXXThisTy.isNull()); - auto *CXXThisRD = CXXThisTy->castAs<PointerType>() - ->getPointeeCXXRecordDecl() - ->getCanonicalDecl(); - DeclContext *DC = getFunctionLevelDeclContext(); - while (auto *PCXXRD = dyn_cast<CXXRecordDecl>(DC)) { - if (PCXXRD->getCanonicalDecl() == CXXThisRD) - break; - DC = DC->getParent(); - } - auto *MD = dyn_cast<CXXMethodDecl>(DC); - LateParsedTemplate LPT; - LPT.Toks.append(Tokens.begin(), Tokens.end()); - LPT.D = MD; - LateTemplateParser(OpaqueParser, LPT); - return MD->getBody(); -} diff --git a/clang/lib/Sema/TreeTransform.h b/clang/lib/Sema/TreeTransform.h index 985f3072ef9..bba90191019 100644 --- a/clang/lib/Sema/TreeTransform.h +++ b/clang/lib/Sema/TreeTransform.h @@ -1292,17 +1292,6 @@ public: Constraints, Clobbers, Exprs, EndLoc); } - /// Build a new compound statement. - /// - /// By default, performs semantic analysis to build the new statement. - /// Subclasses may override this routine to provide different behavior. - StmtResult RebuildMSLateParsedCompoundStmt(SourceLocation LB, - SourceLocation RB, - ArrayRef<Token> Tokens, - StringRef Rep) { - return getSema().ActOnMSLateParsedCompoundStmt(LB, RB, Tokens, Rep); - } - /// \brief Build a new co_return statement. /// /// By default, performs semantic analysis to build the new statement. @@ -6617,16 +6606,6 @@ TreeTransform<Derived>::TransformMSAsmStmt(MSAsmStmt *S) { TransformedExprs, S->getEndLoc()); } -template <typename Derived> -StmtResult TreeTransform<Derived>::TransformMSLateParsedCompoundStmt( - MSLateParsedCompoundStmt *S) { - if (SemaRef.CurContext->isDependentContext()) - return S; - return getDerived().RebuildMSLateParsedCompoundStmt( - S->getLocStart(), S->getLocEnd(), S->tokens(), - S->getStringRepresentation()); -} - // C++ Coroutines TS template<typename Derived> |

