pr12552 is a regression from 3.0. In the last run of mozilla's tests
when compiling with clang r154343
(https://tbpl.mozilla.org/?tree=Try&rev=3428e6faedb8), that was the
only problem on the clang side.

The issue is fixed on trunk. I have attached some patches that fix it
in 3.1. The first one is a full port of the changes on trunk. It also
fixes

template <class T> struct __attribute__((visibility("default"))) A {
  static void zed() {}
};
struct H {};
template class A<H>;

with -fvisibility=hidden, for which we currently produce a default
symbol. Trunk and gcc 4.7 produce a hidden one.

The second patch ports just enough of the new logic to fix pr12552.

The third patch is a completely different fix. It is based on what I
did in r154749.

Is one of these OK for 3.1?

Cheers,
Rafael

Attachment: clang-visibility-3.1-full.patch
Description: Binary data

Attachment: clang-visibility-3.1-partial.patch
Description: Binary data

Attachment: clang-visibility-3.1-other.patch
Description: Binary data

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

Reply via email to