diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2012-05-15 14:09:55 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2012-05-15 14:09:55 +0000 |
commit | 31c195ac0f3869e742d42f9d02b6cd33442fb630 (patch) | |
tree | 16d7f00d9aeae65a1a52ccfdd2040c0061b87443 /test/Analysis/array-struct-region.c | |
parent | d66117b72e9ac0f590cea92f13151c70d9d42070 (diff) |
Fix our handling of visibility in explicit template instantiations.
* Don't copy the visibility attribute during instantiations. We have to be able
to distinguish
struct HIDDEN foo {};
template<class T>
DEFAULT void bar() {}
template DEFAULT void bar<foo>();
from
struct HIDDEN foo {};
template<class T>
DEFAULT void bar() {}
template void bar<foo>();
* If an instantiation has an attribute, it takes precedence over an attribute
in the template.
* With instantiation attributes handled with the above logic, we can now
select the minimum visibility when looking at template arguments.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156821 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Analysis/array-struct-region.c')
0 files changed, 0 insertions, 0 deletions