The attached patch fixes the visibility for
template<int i>
class __attribute__((visibility("hidden"))) a {};
template<int i>
class __attribute__((visibility("default"))) b {};
template<template<int> class x, template<int> class y>
void test() {}
void use() {
test<a, b>();
test<b, a>();
}
Note that gcc produces a default symbol for these, but it also
produces a visible symbol for
namespace {
template<int i>
class a {};
template<int i>
class b {};
}
template<template<int> class x, template<int> class y>
void test() {}
void use() {
test<a, b>();
test<b, a>();
}
so it looks like they just ignore template parameters.
Cheers,
Rafael
t.patch
Description: Binary data
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
