| 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 { |
| 8 | int __attribute__((used)) f() { |
| 9 | return 0; |
| 10 | } |
| 11 | }; |
| 12 | |
| 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 | |