* value.c (coerce_array): Use check_typedef.
gdb/testsuite
	* gdb.base/pointers.exp: Add test.
	* gdb.base/pointers.c (k, S): New typedefs.
	(instance): New global.
This commit is contained in:
Tom Tromey
2008-10-30 21:44:15 +00:00
parent 724b958c41
commit f3134b8886
5 changed files with 37 additions and 5 deletions

View File

@@ -1728,12 +1728,21 @@ coerce_ref (struct value *arg)
struct value *
coerce_array (struct value *arg)
{
struct type *type;
arg = coerce_ref (arg);
if (current_language->c_style_arrays
&& TYPE_CODE (value_type (arg)) == TYPE_CODE_ARRAY)
arg = value_coerce_array (arg);
if (TYPE_CODE (value_type (arg)) == TYPE_CODE_FUNC)
arg = value_coerce_function (arg);
type = check_typedef (value_type (arg));
switch (TYPE_CODE (type))
{
case TYPE_CODE_ARRAY:
if (current_language->c_style_arrays)
arg = value_coerce_array (arg);
break;
case TYPE_CODE_FUNC:
arg = value_coerce_function (arg);
break;
}
return arg;
}