1 // RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm %s -o - | FileCheck %s
4 // Make sure that attributes are properly applied to explicit template
7 #define HIDDEN __attribute__((__visibility__("hidden")))
8 #define VISIBLE __attribute__((__visibility__("default")))
12 template <typename T
> struct B
{ static A a
; };
13 template <typename T
> A B
<T
>::a
;
15 // CHECK: @_ZN2ns1BIiE1aE = weak_odr global
17 template VISIBLE A B
<int>::a
;
21 template <typename T
> struct D
{ static C c
; };
22 template <typename T
> C D
<T
>::c
;
24 // CHECK-DAG: @_ZN1DIiE1cB3TAGE
25 template __attribute__((abi_tag("TAG"))) C D
<int>::c
;