re PR c++/45651 (ICE in import_export_decl, at cp/decl2.c:2344)
PR c++/45651 * pt.c (instantiate_decl): Don't clear DECL_INTERFACE_KNOWN on !TREE_PUBLIC decls. From-SVN: r170781
This commit is contained in:
parent
530a480063
commit
2c86a82aa4
@ -1,3 +1,9 @@
|
|||||||
|
2011-03-08 Jason Merrill <jason@redhat.com>
|
||||||
|
|
||||||
|
PR c++/45651
|
||||||
|
* pt.c (instantiate_decl): Don't clear DECL_INTERFACE_KNOWN on
|
||||||
|
!TREE_PUBLIC decls.
|
||||||
|
|
||||||
2011-03-08 Dodji Seketeli <dodji@redhat.com>
|
2011-03-08 Dodji Seketeli <dodji@redhat.com>
|
||||||
|
|
||||||
PR c++/47957
|
PR c++/47957
|
||||||
|
@ -17223,9 +17223,14 @@ instantiate_decl (tree d, int defer_ok,
|
|||||||
instantiation. */
|
instantiation. */
|
||||||
if (!pattern_defined && expl_inst_class_mem_p
|
if (!pattern_defined && expl_inst_class_mem_p
|
||||||
&& DECL_EXPLICIT_INSTANTIATION (d))
|
&& DECL_EXPLICIT_INSTANTIATION (d))
|
||||||
|
{
|
||||||
|
/* Leave linkage flags alone on instantiations with anonymous
|
||||||
|
visibility. */
|
||||||
|
if (TREE_PUBLIC (d))
|
||||||
{
|
{
|
||||||
DECL_NOT_REALLY_EXTERN (d) = 0;
|
DECL_NOT_REALLY_EXTERN (d) = 0;
|
||||||
DECL_INTERFACE_KNOWN (d) = 0;
|
DECL_INTERFACE_KNOWN (d) = 0;
|
||||||
|
}
|
||||||
SET_DECL_IMPLICIT_INSTANTIATION (d);
|
SET_DECL_IMPLICIT_INSTANTIATION (d);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
2011-03-08 Jason Merrill <jason@redhat.com>
|
||||||
|
|
||||||
|
* g++.dg/template/anon5.C: New.
|
||||||
|
|
||||||
2011-03-08 Jakub Jelinek <jakub@redhat.com>
|
2011-03-08 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
PR debug/47881
|
PR debug/47881
|
||||||
|
6
gcc/testsuite/g++.dg/template/anon5.C
Normal file
6
gcc/testsuite/g++.dg/template/anon5.C
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
// PR c++/45651
|
||||||
|
|
||||||
|
namespace { template <int T> struct A {}; }
|
||||||
|
template <int T> struct B { void f(A<T>); };
|
||||||
|
template struct B<1>;
|
||||||
|
template<int T> void B<T>::f(A<T>) {}
|
Loading…
Reference in New Issue
Block a user