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