* class.c (instantiate_type): Don't abort on TREE_NONLOCAL_FLAG.
From-SVN: r19831
This commit is contained in:
parent
0d7e147bb3
commit
e596622890
|
@ -1,5 +1,12 @@
|
|||
Mon May 18 03:00:57 1998 Jason Merrill <jason@yorick.cygnus.com>
|
||||
|
||||
* class.c (instantiate_type): Don't abort on TREE_NONLOCAL_FLAG.
|
||||
|
||||
Mon May 18 01:43:01 1998 Martin v. Loewis <loewis@informatik.hu-berlin.de>
|
||||
|
||||
* decl.c (lookup_name_real): Don't look at IDENTIFIER_LOCAL_VALUE
|
||||
for a type unless it is one.
|
||||
|
||||
* class.c (finish_struct_1): Use OVL_CURRENT in error message.
|
||||
|
||||
Mon May 18 01:24:08 1998 Jeffrey A Law (law@cygnus.com)
|
||||
|
|
|
@ -5229,16 +5229,18 @@ instantiate_type (lhstype, rhs, complain)
|
|||
tree elem, baselink, name = NULL_TREE;
|
||||
|
||||
if (TREE_PURPOSE (rhs) == error_mark_node)
|
||||
{
|
||||
/* Make sure we don't drop the non-local flag, as the old code
|
||||
would rely on it. */
|
||||
int nl = TREE_NONLOCAL_FLAG (rhs);
|
||||
/* We don't need the type of this node. */
|
||||
rhs = TREE_VALUE (rhs);
|
||||
my_friendly_assert (TREE_NONLOCAL_FLAG (rhs) == nl, 980331);
|
||||
}
|
||||
{
|
||||
/* Make sure we don't drop the non-local flag, as the old code
|
||||
would rely on it. */
|
||||
int nl = TREE_NONLOCAL_FLAG (rhs);
|
||||
/* We don't need the type of this node. */
|
||||
rhs = TREE_VALUE (rhs);
|
||||
my_friendly_assert (TREE_NONLOCAL_FLAG (rhs) == nl, 980331);
|
||||
}
|
||||
|
||||
/* Now we should have a baselink. */
|
||||
my_friendly_assert (TREE_CODE (TREE_PURPOSE (rhs)) == TREE_VEC, 980331);
|
||||
my_friendly_assert (TREE_CODE (TREE_PURPOSE (rhs)) == TREE_VEC,
|
||||
980331);
|
||||
/* First look for an exact match. Search member functions.
|
||||
May have to undo what `default_conversion' might do to
|
||||
lhstype. */
|
||||
|
@ -5247,20 +5249,10 @@ instantiate_type (lhstype, rhs, complain)
|
|||
if (lhstype == error_mark_node)
|
||||
return lhstype;
|
||||
|
||||
if (TREE_NONLOCAL_FLAG (rhs))
|
||||
{
|
||||
my_friendly_abort (980401);
|
||||
/* Got to get it as a baselink. */
|
||||
rhs = lookup_fnfields (TYPE_BINFO (current_class_type),
|
||||
DECL_NAME (OVL_FUNCTION (rhs)), 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
my_friendly_assert (TREE_CHAIN (rhs) == NULL_TREE, 181);
|
||||
my_friendly_assert (TREE_CODE (TREE_VALUE (rhs)) == FUNCTION_DECL
|
||||
|| TREE_CODE (TREE_VALUE (rhs)) == OVERLOAD,
|
||||
182);
|
||||
}
|
||||
my_friendly_assert (TREE_CHAIN (rhs) == NULL_TREE, 181);
|
||||
my_friendly_assert (TREE_CODE (TREE_VALUE (rhs)) == FUNCTION_DECL
|
||||
|| TREE_CODE (TREE_VALUE (rhs)) == OVERLOAD,
|
||||
182);
|
||||
|
||||
for (baselink = rhs; baselink;
|
||||
baselink = next_baselink (baselink))
|
||||
|
|
Loading…
Reference in New Issue