summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema
diff options
context:
space:
mode:
authorAlexey Bataev <a.bataev@hotmail.com>2016-06-15 11:24:54 +0000
committerAlexey Bataev <a.bataev@hotmail.com>2016-06-15 11:24:54 +0000
commit61deb4dadc1682c044e1c3910ec45d36d9452fba (patch)
tree920d3e3d671cb73f19a5e39c096a2333858313b9 /clang/lib/Sema
parentb46cdeae9f5e94b12ca321e91ddef0974440222e (diff)
downloadbcm5719-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.cpp10
-rw-r--r--clang/lib/Sema/SemaStmt.cpp27
-rw-r--r--clang/lib/Sema/TreeTransform.h21
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>
OpenPOWER on IntegriCloud