Fix visibility when we have two types with explicit visibility in a template
argument list.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155368 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/CodeGenCXX/visibility.cpp b/test/CodeGenCXX/visibility.cpp
index d126de3..2aa0678 100644
--- a/test/CodeGenCXX/visibility.cpp
+++ b/test/CodeGenCXX/visibility.cpp
@@ -700,3 +700,15 @@
// CHECK: define weak_odr void @_ZN6test353fooINS_3zedEE3barEv
// CHECK-HIDDEN: define weak_odr void @_ZN6test353fooINS_3zedEE3barEv
}
+
+namespace test36 {
+ template<typename T1, typename T2>
+ class foo {
+ void bar() {}
+ };
+ class DEFAULT S1 {};
+ struct HIDDEN S2 {};
+ template class foo<S1, S2>;
+ // CHECK: define weak_odr hidden void @_ZN6test363fooINS_2S1ENS_2S2EE3barEv
+ // CHECK-HIDDEN: define weak_odr hidden void @_ZN6test363fooINS_2S1ENS_2S2EE3barEv
+}