summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2015-04-29 17:48:08 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2015-04-29 17:48:08 +0000
commit6282b215ccfd20f9dce63e97fbb08945c2dccb7d (patch)
treeddf0b7525120cf7fdac33c16b480902fa9171198
parenta52f48412dd544816d308b6279ab51eb3f0b39f4 (diff)
downloadbcm5719-llvm-6282b215ccfd20f9dce63e97fbb08945c2dccb7d.tar.gz
bcm5719-llvm-6282b215ccfd20f9dce63e97fbb08945c2dccb7d.zip
Revert r236063 due to regression with -fdelayed-template-parsing.
llvm-svn: 236134
-rw-r--r--clang/lib/Sema/SemaTemplateInstantiateDecl.cpp8
-rw-r--r--clang/test/SemaTemplate/instantiate-local-class.cpp13
2 files changed, 0 insertions, 21 deletions
diff --git a/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp b/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
index 57faa1cbad8..8f2e95a6152 100644
--- a/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
+++ b/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
@@ -1302,19 +1302,11 @@ Decl *TemplateDeclInstantiator::VisitCXXRecordDecl(CXXRecordDecl *D) {
// DR1484 clarifies that the members of a local class are instantiated as part
// of the instantiation of their enclosing entity.
if (D->isCompleteDefinition() && D->isLocalClass()) {
- Sema::SavePendingLocalImplicitInstantiationsRAII
- SavedPendingLocalImplicitInstantiations(SemaRef);
-
SemaRef.InstantiateClass(D->getLocation(), Record, D, TemplateArgs,
TSK_ImplicitInstantiation,
/*Complain=*/true);
-
SemaRef.InstantiateClassMembers(D->getLocation(), Record, TemplateArgs,
TSK_ImplicitInstantiation);
-
- // This class may have local implicit instantiations that need to be
- // performed within this scope.
- SemaRef.PerformPendingInstantiations(/*LocalOnly=*/true);
}
SemaRef.DiagnoseUnusedNestedTypedefs(Record);
diff --git a/clang/test/SemaTemplate/instantiate-local-class.cpp b/clang/test/SemaTemplate/instantiate-local-class.cpp
index 668fb6fa65b..367134a2a53 100644
--- a/clang/test/SemaTemplate/instantiate-local-class.cpp
+++ b/clang/test/SemaTemplate/instantiate-local-class.cpp
@@ -213,16 +213,3 @@ namespace PR23194 {
return make_seed_pair();
}
}
-
-namespace PR20625 {
-template <typename T>
-void f() {
- struct N {
- static constexpr int get() { return 42; }
- };
- constexpr int n = N::get();
- static_assert(n == 42, "n == 42");
-}
-
-void g() { f<void>(); }
-}
OpenPOWER on IntegriCloud