/* 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.
#include "rtl.h"
#include "output.h"
#include "toplev.h"
-#include "stack.h"
static int is_subobject_of_p (tree, tree);
static tree dfs_lookup_base (tree, void *);
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;
}
/* Add the new value. */
lfi->ambiguous = tree_cons (NULL_TREE, nval, lfi->ambiguous);
TREE_TYPE (lfi->ambiguous) = error_mark_node;
- lfi->errstr = "request for member `%D' is ambiguous";
+ lfi->errstr = "request for member %qD is ambiguous";
}
}
else
/* Check that virtual overrider OVERRIDER is acceptable for base function
BASEFN. Issue diagnostic, and return zero, if unacceptable. */
-int
+static int
check_final_overrider (tree overrider, tree basefn)
{
tree over_type = TREE_TYPE (overrider);