Commit 3d9850f4 by Nathan Sidwell Committed by Nathan Sidwell

search.c (lookup_field_r): Remove obsolete code for type-named field in PoD.

	* search.c (lookup_field_r): Remove obsolete code for type-named
	field in PoD.

From-SVN: r251243
parent 8e063904
2017-08-21 Nathan Sidwell <nathan@acm.org> 2017-08-21 Nathan Sidwell <nathan@acm.org>
* search.c (lookup_field_r): Remove obsolete code for type-named
field in PoD.
* search.c (lookup_field_1): Assert TYPE is a class and VFIELD * search.c (lookup_field_1): Assert TYPE is a class and VFIELD
isn't special. isn't special.
(lookup_field_fuzzy_info::fuzzy_lookup_fnfields): Delete. (lookup_field_fuzzy_info::fuzzy_lookup_fnfields): Delete.
......
...@@ -1111,39 +1111,22 @@ lookup_field_r (tree binfo, void *data) ...@@ -1111,39 +1111,22 @@ lookup_field_r (tree binfo, void *data)
nval = dep_using; nval = dep_using;
} }
/* If there is no declaration with the indicated name in this type,
then there's nothing to do. */
if (!nval)
goto done;
/* If we're looking up a type (as with an elaborated type specifier) /* If we're looking up a type (as with an elaborated type specifier)
we ignore all non-types we find. */ we ignore all non-types we find. */
if (lfi->want_type && !DECL_DECLARES_TYPE_P (nval)) if (lfi->want_type && nval && !DECL_DECLARES_TYPE_P (nval))
{ {
if (lfi->name == TYPE_IDENTIFIER (type)) nval = NULL_TREE;
{ if (CLASSTYPE_NESTED_UTDS (type))
/* If the aggregate has no user defined constructors, we allow if (binding_entry e = binding_table_find (CLASSTYPE_NESTED_UTDS (type),
it to have fields with the same name as the enclosing type. lfi->name))
If we are looking for that name, find the corresponding nval = TYPE_MAIN_DECL (e->type);
TYPE_DECL. */
for (nval = TREE_CHAIN (nval); nval; nval = TREE_CHAIN (nval))
if (DECL_NAME (nval) == lfi->name
&& TREE_CODE (nval) == TYPE_DECL)
break;
}
else
nval = NULL_TREE;
if (!nval && CLASSTYPE_NESTED_UTDS (type) != NULL)
{
binding_entry e = binding_table_find (CLASSTYPE_NESTED_UTDS (type),
lfi->name);
if (e != NULL)
nval = TYPE_MAIN_DECL (e->type);
else
goto done;
}
} }
/* If there is no declaration with the indicated name in this type,
then there's nothing to do. */
if (!nval)
goto done;
/* If the lookup already found a match, and the new value doesn't /* If the lookup already found a match, and the new value doesn't
hide the old one, we might have an ambiguity. */ hide the old one, we might have an ambiguity. */
if (lfi->rval_binfo if (lfi->rval_binfo
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment