From: Jason Merrill Date: Tue, 19 May 1998 20:38:04 +0000 (+0000) Subject: tree.c (is_overloaded_fn): Don't abort on placeholders from push_class_decls. X-Git-Tag: prereleases/egcs-1.1-prerelease~1190 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b8887b63230e09737eba0330a02c3149463aec04;p=thirdparty%2Fgcc.git tree.c (is_overloaded_fn): Don't abort on placeholders from push_class_decls. * tree.c (is_overloaded_fn): Don't abort on placeholders from push_class_decls. From-SVN: r19888 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 991ed6f6c793..13e1312a09fc 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +Tue May 19 20:36:23 1998 Jason Merrill + + * tree.c (is_overloaded_fn): Don't abort on placeholders from + push_class_decls. + Tue May 19 15:16:22 1998 Brendan Kehoe * class.c (is_empty_class): Return 0 if TYPE is an error_mark_node. diff --git a/gcc/cp/search.c b/gcc/cp/search.c index c4b1b6729d65..1a779138f380 100644 --- a/gcc/cp/search.c +++ b/gcc/cp/search.c @@ -3495,7 +3495,11 @@ dfs_pushdecls (binfo) If we can't do that, keep a TREE_LIST with possibly ambiguous decls in there. */ maybe_push_cache_obstack (); - envelope_add_decl (type, OVL_CURRENT (*methods), &TREE_PURPOSE (class_value)); + /* Arbitrarily choose the first function in the list. This is OK + because this is only used for initial lookup; anything that + actually uses the function will look it up again. */ + envelope_add_decl (type, OVL_CURRENT (*methods), + &TREE_PURPOSE (class_value)); pop_obstacks (); methods++; diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c index f2dd941fbb9d..60d20b3f2588 100644 --- a/gcc/cp/tree.c +++ b/gcc/cp/tree.c @@ -1311,10 +1311,13 @@ int is_overloaded_fn (x) tree x; { - /* XXX A baselink is also considered an overloaded function. */ + /* XXX A baselink is also considered an overloaded function. + As is a placeholder from push_class_decls. */ if (TREE_CODE (x) == TREE_LIST) { - my_friendly_assert (TREE_CODE (TREE_PURPOSE (x)) == TREE_VEC, 388); + my_friendly_assert (TREE_CODE (TREE_PURPOSE (x)) == TREE_VEC + || TREE_CODE (TREE_PURPOSE (x)) == IDENTIFIER_NODE, + 388); x = TREE_VALUE (x); } return (TREE_CODE (x) == FUNCTION_DECL