the tempale arguments in deciding the visibility.
This agrees with gcc 4.7.
Found by trying to build chrome with component=shared_library with 155314
reverted.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155316
91177308-0d34-0410-b5e6-
96231b3b80d8
// The arguments at which the template was instantiated.
const TemplateArgumentList &TemplateArgs = spec->getTemplateArgs();
- LV.mergeWithMin(getLVForTemplateArgumentList(TemplateArgs,
- OnlyTemplate));
+ LV.merge(getLVForTemplateArgumentList(TemplateArgs,
+ OnlyTemplate));
}
}
// CHECK: define void @_ZN6test321A1B3bazEv
// CHECK-HIDDEN: define void @_ZN6test321A1B3bazEv
}
+
+namespace test33 {
+ template<typename T>
+ class foo {
+ void bar() {}
+ int a;
+ };
+ struct __attribute__((visibility("hidden"))) zed {
+ };
+ template class __attribute__((visibility("default"))) foo<zed>;
+ // CHECK: define weak_odr void @_ZN6test333fooINS_3zedEE3barEv
+ // CHECK-HIDDEN: define weak_odr void @_ZN6test333fooINS_3zedEE3barEv
+}