This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [C++ PATCH] Fix check_explicit_specialization (PR c++/32596, regression caused by PR c++/31923)
- From: Mark Mitchell <mark at codesourcery dot com>
- To: Jakub Jelinek <jakub at redhat dot com>
- Cc: Simon Baldwin <simonb at google dot com>, gcc-patches at gcc dot gnu dot org
- Date: Thu, 16 Aug 2007 21:19:52 -0700
- Subject: Re: [C++ PATCH] Fix check_explicit_specialization (PR c++/32596, regression caused by PR c++/31923)
- References: <20070615174708.E6C3141A0C0@localhost> <4672DF37.9000708@codesourcery.com> <4672EECA.5050400@google.com> <20070815184753.GS2063@devserv.devel.redhat.com>
Jakub Jelinek wrote:
> The above change causes PR c++/32596 regression.
> The following patch copies just DECL_INTERFACE_KNOWN which is enough to fix
> this bug and didn't cause any make check-g++ or make check-libstdc++-v3
> failure, but I wonder if we shouldn't copy DECL_NOT_REALLY_EXTERN as well,
> or if DECL_INTERFACE_KNOWN can be copied over unconditionally.
I don't think DECL_NOT_REALLY_EXTERN has any meaning for a template.
(It certainly does for an instantiation, but not for the template
itself.) At least, I hope it doesn't have any meaning...
> 2007-08-15 Jakub Jelinek <jakub@redhat.com>
>
> PR c++/32596
> * pt.c (check_explicit_specialization): Set DECL_INTERFACE_KNOWN
> if tmpl_func is not public and has DECL_INTERFACE_KNOWN set.
>
> * g++.dg/ext/visibility/anon5.C: New test.
I think you should copy DECL_INTERFACE_KNOWN unconditionally. If that
passes testing, this change is OK.
Thanks,
--
Mark Mitchell
CodeSourcery
mark@codesourcery.com
(650) 331-3385 x713