Author: rafauler Date: Fri Mar 8 12:23:57 2019 New Revision: 355721 URL: http://llvm.org/viewvc/llvm-project?rev=355721&view=rev Log: Revert "Recommit "Support attribute used in member funcs of class templates""
There is nontrivial bug caused in lld that I need to further investigate. Meanwhile, I'll revert this. This reverts commit 8297e93480c636dc90fd14653c5a66406193363f. Removed: cfe/trunk/test/CodeGenCXX/attr-used-member-function-implicit-instantiation.cpp Modified: cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp Modified: cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp?rev=355721&r1=355720&r2=355721&view=diff ============================================================================== --- cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp (original) +++ cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp Fri Mar 8 12:23:57 2019 @@ -2232,20 +2232,6 @@ TemplateDeclInstantiator::VisitCXXMethod 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; } Removed: cfe/trunk/test/CodeGenCXX/attr-used-member-function-implicit-instantiation.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/attr-used-member-function-implicit-instantiation.cpp?rev=355720&view=auto ============================================================================== --- cfe/trunk/test/CodeGenCXX/attr-used-member-function-implicit-instantiation.cpp (original) +++ cfe/trunk/test/CodeGenCXX/attr-used-member-function-implicit-instantiation.cpp (removed) @@ -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 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits