[cfe-commits] [patch] Template instantiation and visibility (take 2)

Rafael Espíndola rafael.espindola at gmail.com
Mon Apr 23 15:58:57 PDT 2012


>  template class DEFAULT A<hidden_t>::B<hidden_t>;
>
> I claim that I should see:
>  A<hidden_t>::B<hidden_t>::hidden() is hidden
>  A<hidden_t>::B<hidden_t>::noattr() is default
>  A<hidden_t>::B<hidden_t>::temp<default_t>() is default
>  A<hidden_t>::B<hidden_t>::temp<hidden_t>() is hidden

With an extra

 template class DEFAULT A<hidden_t>;

I agree, since

template class DEFAULT A<hidden_t>::B<hidden_t>;

is only really instantiating B, no?

GCC disagrees with  A<hidden_t>::B<hidden_t>::temp<hidden_t>() . I
don't know why. It is strange since it agrees with
A<hidden_t>::B<hidden_t>::hidden() .

I have included your testcase in the patch.

The chrome build has also finished OK on linux and OS X :-)

> John.

Cheers,
Rafael
-------------- next part --------------
A non-text attachment was scrubbed...
Name: t.patch
Type: application/octet-stream
Size: 6985 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20120423/c1811567/attachment.obj>


More information about the cfe-commits mailing list