re PR c++/17154 (Using declaration of function name ignored inside partial specialization of template class)
PR c++/17154 * search.c (lookup_field_1): Handle using declaration in class template partial specialization. * g++.dg/template/using9.C: New test. From-SVN: r92994
This commit is contained in:
parent
23ff7e2d27
commit
023458fab2
|
@ -1,3 +1,9 @@
|
|||
2005-01-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
|
||||
|
||||
PR c++/17154
|
||||
* search.c (lookup_field_1): Handle using declaration in
|
||||
class template partial specialization.
|
||||
|
||||
2005-01-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
|
||||
|
||||
PR c++/19258
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/* Breadth-first and depth-first routines for
|
||||
searching multiple-inheritance lattice for GNU C++.
|
||||
Copyright (C) 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
|
||||
1999, 2000, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
1999, 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
Contributed by Michael Tiemann (tiemann@cygnus.com)
|
||||
|
||||
This file is part of GCC.
|
||||
|
@ -470,13 +470,10 @@ lookup_field_1 (tree type, tree name, bool want_type)
|
|||
the compiler cannot handle that. Once the class is
|
||||
defined, USING_DECLs are purged from TYPE_FIELDS; see
|
||||
handle_using_decl. However, we make special efforts to
|
||||
make using-declarations in template classes work
|
||||
correctly. */
|
||||
if (CLASSTYPE_TEMPLATE_INFO (type)
|
||||
&& !CLASSTYPE_USE_TEMPLATE (type)
|
||||
&& !TREE_TYPE (field))
|
||||
;
|
||||
else
|
||||
make using-declarations in class templates and class
|
||||
template partial specializations work correctly noticing
|
||||
that dependent USING_DECL's do not have TREE_TYPE set. */
|
||||
if (TREE_TYPE (field))
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2004-01-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
|
||||
|
||||
PR c++/17154
|
||||
* g++.dg/template/using9.C: New test.
|
||||
|
||||
2005-01-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
|
||||
|
||||
PR c++/19258
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
// { dg-do compile }
|
||||
|
||||
// Origin: stefaandr@hotmail.com
|
||||
|
||||
// PR c++/17154: Using declaration in partial class template specialization.
|
||||
|
||||
template <int numrows, class T> struct A { void test_A() {}; };
|
||||
template <int numrows, class T> struct B {};
|
||||
template <class T> struct B <3, T> : public A <3, T> {
|
||||
using A <3, T>::test_A;
|
||||
void test_B_spec() { test_A(); };
|
||||
};
|
Loading…
Reference in New Issue