summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael Auler <rafaelauler@fb.com>2019-01-31 13:31:33 +0000
committerRafael Auler <rafaelauler@fb.com>2019-01-31 13:31:33 +0000
commitea94c308ac1d0fc513c76c3be3feed32b44fc012 (patch)
tree817126cd8a9601f7d36cfaa729888410988f3835
parentd778d4fdedbadb7a72a357e79dcbafdeec900044 (diff)
downloadbcm5719-llvm-ea94c308ac1d0fc513c76c3be3feed32b44fc012.tar.gz
bcm5719-llvm-ea94c308ac1d0fc513c76c3be3feed32b44fc012.zip
Revert "Support attribute used in member funcs of class templates"
This reverts commit 352740: broke swift build llvm-svn: 352748
-rw-r--r--clang/lib/Sema/SemaTemplateInstantiateDecl.cpp14
-rw-r--r--clang/test/CodeGenCXX/attr-used-member-function-implicit-instantiation.cpp19
2 files changed, 0 insertions, 33 deletions
diff --git a/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp b/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
index 07533828dfd..883a73f2266 100644
--- a/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
+++ b/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
@@ -2175,20 +2175,6 @@ TemplateDeclInstantiator::VisitCXXMethodDecl(CXXMethodDecl *D,
Owner->addDecl(Method);
}
- // PR17480: Honor the used attribute to instantiate member function
- // definitions
- if (Method->hasAttr<UsedAttr>()) {
- if (const auto *A = dyn_cast<CXXRecordDecl>(Owner)) {
- SourceLocation Loc;
- if (const MemberSpecializationInfo *MSInfo =
- A->getMemberSpecializationInfo())
- Loc = MSInfo->getPointOfInstantiation();
- else if (const auto *Spec = dyn_cast<ClassTemplateSpecializationDecl>(A))
- Loc = Spec->getPointOfInstantiation();
- SemaRef.MarkFunctionReferenced(Loc, Method);
- }
- }
-
return Method;
}
diff --git a/clang/test/CodeGenCXX/attr-used-member-function-implicit-instantiation.cpp b/clang/test/CodeGenCXX/attr-used-member-function-implicit-instantiation.cpp
deleted file mode 100644
index 7d2062f989d..00000000000
--- a/clang/test/CodeGenCXX/attr-used-member-function-implicit-instantiation.cpp
+++ /dev/null
@@ -1,19 +0,0 @@
-// RUN: %clang_cc1 -triple x86_64-unknown-unknown -emit-llvm -o - %s | FileCheck %s
-
-// Check that PR17480 is fixed: __attribute__((used)) ignored in templated
-// classes
-namespace InstantiateUsedMemberDefinition {
-template <typename T>
-struct S {
- int __attribute__((used)) f() {
- return 0;
- }
-};
-
-void test() {
- // Check that InstantiateUsedMemberDefinition::S<int>::f() is defined
- // as a result of the S class template implicit instantiation
- // CHECK: define linkonce_odr i32 @_ZN31InstantiateUsedMemberDefinition1SIiE1fEv
- S<int> inst;
-}
-} // namespace InstantiateUsedMemberDefinition
OpenPOWER on IntegriCloud