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

Attachment: t.patch
Description: Binary data

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to