1 // RUN: %clang_cc1 -triple x86_64-unknown-unknown -emit-llvm -o - %s | FileCheck %s
2
3 // Check that PR17480 is fixed: __attribute__((used)) ignored in templated
4 // classes
5 namespace InstantiateUsedMemberDefinition {
6 template <typename T>
7 struct S {
fInstantiateUsedMemberDefinition::S8 int __attribute__((used)) f() {
9 return 0;
10 }
11 };
12
test()13 void test() {
14 // Check that InstantiateUsedMemberDefinition::S<int>::f() is defined
15 // as a result of the S class template implicit instantiation
16 // CHECK: define linkonce_odr i32 @_ZN31InstantiateUsedMemberDefinition1SIiE1fEv
17 S<int> inst;
18 }
19 } // namespace InstantiateUsedMemberDefinition
20