Revert "gdbtypes.c: remove the usuned "top_level" parameter"

This reverts commit 25755e2b85.
This commit is contained in:
Pierre-Marie de Rodat 2015-04-20 16:04:28 +02:00
parent 1586c8fbaf
commit ee715b5a6c
2 changed files with 31 additions and 14 deletions

View file

@ -1,3 +1,18 @@
2015-04-20 Pierre-Marie de Rodat <derodat@adacore.com>
Revert:
2015-04-03 Pierre-Marie de Rodat <derodat@adacore.com>
* gdbtypes.c (is_dynamic_type_internal): Remove the unused
"top_level" parameter.
(resolve_dynamic_type_internal): Remove the unused "top_level"
parameter. Update call to is_dynamic_type_internal.
(is_dynamic_type): Update call to is_dynamic_type_internal.
(resolve_dynamic_range): Update call to
resolve_dynamic_type_internal.
(resolve_dynamic_union): Likewise.
(resolve_dynamic_struct): Likewise.
(resolve_dynamic_type): Likewise.
2015-04-19 Gabriel Krisman Bertazi <gabriel@krisman.be> 2015-04-19 Gabriel Krisman Bertazi <gabriel@krisman.be>
* breakpoint.c (update_dprintf_command_list): Remove duplicated * breakpoint.c (update_dprintf_command_list): Remove duplicated

View file

@ -1748,7 +1748,7 @@ stub_noname_complaint (void)
/* Worker for is_dynamic_type. */ /* Worker for is_dynamic_type. */
static int static int
is_dynamic_type_internal (struct type *type) is_dynamic_type_internal (struct type *type, int top_level)
{ {
type = check_typedef (type); type = check_typedef (type);
@ -1773,7 +1773,7 @@ is_dynamic_type_internal (struct type *type)
of the range type are static. It allows us to assume that of the range type are static. It allows us to assume that
the subtype of a static range type is also static. */ the subtype of a static range type is also static. */
return (!has_static_range (TYPE_RANGE_DATA (type)) return (!has_static_range (TYPE_RANGE_DATA (type))
|| is_dynamic_type_internal (TYPE_TARGET_TYPE (type))); || is_dynamic_type_internal (TYPE_TARGET_TYPE (type), 0));
} }
case TYPE_CODE_ARRAY: case TYPE_CODE_ARRAY:
@ -1782,9 +1782,9 @@ is_dynamic_type_internal (struct type *type)
/* The array is dynamic if either the bounds are dynamic, /* The array is dynamic if either the bounds are dynamic,
or the elements it contains have a dynamic contents. */ or the elements it contains have a dynamic contents. */
if (is_dynamic_type_internal (TYPE_INDEX_TYPE (type))) if (is_dynamic_type_internal (TYPE_INDEX_TYPE (type), 0))
return 1; return 1;
return is_dynamic_type_internal (TYPE_TARGET_TYPE (type)); return is_dynamic_type_internal (TYPE_TARGET_TYPE (type), 0);
} }
case TYPE_CODE_STRUCT: case TYPE_CODE_STRUCT:
@ -1794,7 +1794,7 @@ is_dynamic_type_internal (struct type *type)
for (i = 0; i < TYPE_NFIELDS (type); ++i) for (i = 0; i < TYPE_NFIELDS (type); ++i)
if (!field_is_static (&TYPE_FIELD (type, i)) if (!field_is_static (&TYPE_FIELD (type, i))
&& is_dynamic_type_internal (TYPE_FIELD_TYPE (type, i))) && is_dynamic_type_internal (TYPE_FIELD_TYPE (type, i), 0))
return 1; return 1;
} }
break; break;
@ -1808,11 +1808,11 @@ is_dynamic_type_internal (struct type *type)
int int
is_dynamic_type (struct type *type) is_dynamic_type (struct type *type)
{ {
return is_dynamic_type_internal (type); return is_dynamic_type_internal (type, 1);
} }
static struct type *resolve_dynamic_type_internal static struct type *resolve_dynamic_type_internal
(struct type *type, struct property_addr_info *addr_stack); (struct type *type, struct property_addr_info *addr_stack, int top_level);
/* Given a dynamic range type (dyn_range_type) and a stack of /* Given a dynamic range type (dyn_range_type) and a stack of
struct property_addr_info elements, return a static version struct property_addr_info elements, return a static version
@ -1860,7 +1860,7 @@ resolve_dynamic_range (struct type *dyn_range_type,
static_target_type static_target_type
= resolve_dynamic_type_internal (TYPE_TARGET_TYPE (dyn_range_type), = resolve_dynamic_type_internal (TYPE_TARGET_TYPE (dyn_range_type),
addr_stack); addr_stack, 0);
static_range_type = create_range_type (copy_type (dyn_range_type), static_range_type = create_range_type (copy_type (dyn_range_type),
static_target_type, static_target_type,
&low_bound, &high_bound); &low_bound, &high_bound);
@ -1928,7 +1928,7 @@ resolve_dynamic_union (struct type *type,
continue; continue;
t = resolve_dynamic_type_internal (TYPE_FIELD_TYPE (resolved_type, i), t = resolve_dynamic_type_internal (TYPE_FIELD_TYPE (resolved_type, i),
addr_stack); addr_stack, 0);
TYPE_FIELD_TYPE (resolved_type, i) = t; TYPE_FIELD_TYPE (resolved_type, i) = t;
if (TYPE_LENGTH (t) > max_len) if (TYPE_LENGTH (t) > max_len)
max_len = TYPE_LENGTH (t); max_len = TYPE_LENGTH (t);
@ -1985,7 +1985,7 @@ resolve_dynamic_struct (struct type *type,
TYPE_FIELD_TYPE (resolved_type, i) TYPE_FIELD_TYPE (resolved_type, i)
= resolve_dynamic_type_internal (TYPE_FIELD_TYPE (resolved_type, i), = resolve_dynamic_type_internal (TYPE_FIELD_TYPE (resolved_type, i),
&pinfo); &pinfo, 0);
gdb_assert (TYPE_FIELD_LOC_KIND (resolved_type, i) gdb_assert (TYPE_FIELD_LOC_KIND (resolved_type, i)
== FIELD_LOC_KIND_BITPOS); == FIELD_LOC_KIND_BITPOS);
@ -2016,21 +2016,23 @@ resolve_dynamic_struct (struct type *type,
static struct type * static struct type *
resolve_dynamic_type_internal (struct type *type, resolve_dynamic_type_internal (struct type *type,
struct property_addr_info *addr_stack) struct property_addr_info *addr_stack,
int top_level)
{ {
struct type *real_type = check_typedef (type); struct type *real_type = check_typedef (type);
struct type *resolved_type = type; struct type *resolved_type = type;
struct dynamic_prop *prop; struct dynamic_prop *prop;
CORE_ADDR value; CORE_ADDR value;
if (!is_dynamic_type_internal (real_type)) if (!is_dynamic_type_internal (real_type, top_level))
return type; return type;
if (TYPE_CODE (type) == TYPE_CODE_TYPEDEF) if (TYPE_CODE (type) == TYPE_CODE_TYPEDEF)
{ {
resolved_type = copy_type (type); resolved_type = copy_type (type);
TYPE_TARGET_TYPE (resolved_type) TYPE_TARGET_TYPE (resolved_type)
= resolve_dynamic_type_internal (TYPE_TARGET_TYPE (type), addr_stack); = resolve_dynamic_type_internal (TYPE_TARGET_TYPE (type), addr_stack,
top_level);
} }
else else
{ {
@ -2075,7 +2077,7 @@ resolve_dynamic_type (struct type *type, CORE_ADDR addr)
{ {
struct property_addr_info pinfo = {check_typedef (type), addr, NULL}; struct property_addr_info pinfo = {check_typedef (type), addr, NULL};
return resolve_dynamic_type_internal (type, &pinfo); return resolve_dynamic_type_internal (type, &pinfo, 1);
} }
/* See gdbtypes.h */ /* See gdbtypes.h */