(Ada) Cleanup code by using ada_is_access_to_unconstrained_array call.
This patch just avoids code duplication by using a function we introduced recently (ada_is_access_to_unconstrained_array). gdb/ChangeLog: * ada-lang.c (ada_is_access_to_unconstrained_array): Remove static declaration. * ada-lang.h: add ada_is_access_to_unconstrained_array prototype. * ada-varobj.c (ada_varobj_get_number_of_children, ada_varobj_describe_child, ada_value_is_changeable_p): Cleanup code. Tested on x86_64-linux. No new testcase provided, as this is just a refactoring.
This commit is contained in:
parent
cc330e39bc
commit
d91e9ea81d
@ -1,3 +1,11 @@
|
|||||||
|
2018-09-10 Xavier Roirand <roirand@adacore.com>
|
||||||
|
|
||||||
|
* ada-lang.c (ada_is_access_to_unconstrained_array): Remove static
|
||||||
|
declaration.
|
||||||
|
* ada-lang.h: add ada_is_access_to_unconstrained_array prototype.
|
||||||
|
* ada-varobj.c (ada_varobj_get_number_of_children,
|
||||||
|
ada_varobj_describe_child, ada_value_is_changeable_p): Cleanup code.
|
||||||
|
|
||||||
2018-09-10 Xavier Roirand <roirand@adacore.com>
|
2018-09-10 Xavier Roirand <roirand@adacore.com>
|
||||||
|
|
||||||
* ada-valprint.c (ada_value_print): Use type instead of
|
* ada-valprint.c (ada_value_print): Use type instead of
|
||||||
|
@ -2834,7 +2834,7 @@ value_assign_to_component (struct value *container, struct value *component,
|
|||||||
|
|
||||||
/* Determine if TYPE is an access to an unconstrained array. */
|
/* Determine if TYPE is an access to an unconstrained array. */
|
||||||
|
|
||||||
static bool
|
bool
|
||||||
ada_is_access_to_unconstrained_array (struct type *type)
|
ada_is_access_to_unconstrained_array (struct type *type)
|
||||||
{
|
{
|
||||||
return (TYPE_CODE (type) == TYPE_CODE_TYPEDEF
|
return (TYPE_CODE (type) == TYPE_CODE_TYPEDEF
|
||||||
|
@ -194,6 +194,8 @@ extern void ada_printstr (struct ui_file *, struct type *, const gdb_byte *,
|
|||||||
struct value *ada_convert_actual (struct value *actual,
|
struct value *ada_convert_actual (struct value *actual,
|
||||||
struct type *formal_type0);
|
struct type *formal_type0);
|
||||||
|
|
||||||
|
extern bool ada_is_access_to_unconstrained_array (struct type *type);
|
||||||
|
|
||||||
extern struct value *ada_value_subscript (struct value *, int,
|
extern struct value *ada_value_subscript (struct value *, int,
|
||||||
struct value **);
|
struct value **);
|
||||||
|
|
||||||
|
@ -350,8 +350,7 @@ ada_varobj_get_number_of_children (struct value *parent_value,
|
|||||||
/* A typedef to an array descriptor in fact represents a pointer
|
/* A typedef to an array descriptor in fact represents a pointer
|
||||||
to an unconstrained array. These types always have one child
|
to an unconstrained array. These types always have one child
|
||||||
(the unconstrained array). */
|
(the unconstrained array). */
|
||||||
if (ada_is_array_descriptor_type (parent_type)
|
if (ada_is_access_to_unconstrained_array (parent_type))
|
||||||
&& TYPE_CODE (parent_type) == TYPE_CODE_TYPEDEF)
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
if (TYPE_CODE (parent_type) == TYPE_CODE_ARRAY)
|
if (TYPE_CODE (parent_type) == TYPE_CODE_ARRAY)
|
||||||
@ -680,8 +679,7 @@ ada_varobj_describe_child (struct value *parent_value,
|
|||||||
if (child_path_expr)
|
if (child_path_expr)
|
||||||
*child_path_expr = std::string ();
|
*child_path_expr = std::string ();
|
||||||
|
|
||||||
if (ada_is_array_descriptor_type (parent_type)
|
if (ada_is_access_to_unconstrained_array (parent_type))
|
||||||
&& TYPE_CODE (parent_type) == TYPE_CODE_TYPEDEF)
|
|
||||||
{
|
{
|
||||||
ada_varobj_describe_ptr_child (parent_value, parent_type,
|
ada_varobj_describe_ptr_child (parent_value, parent_type,
|
||||||
parent_name, parent_path_expr,
|
parent_name, parent_path_expr,
|
||||||
@ -937,8 +935,7 @@ ada_value_is_changeable_p (const struct varobj *var)
|
|||||||
struct type *type = (var->value != nullptr
|
struct type *type = (var->value != nullptr
|
||||||
? value_type (var->value.get ()) : var->type);
|
? value_type (var->value.get ()) : var->type);
|
||||||
|
|
||||||
if (ada_is_array_descriptor_type (type)
|
if (ada_is_access_to_unconstrained_array (type))
|
||||||
&& TYPE_CODE (type) == TYPE_CODE_TYPEDEF)
|
|
||||||
{
|
{
|
||||||
/* This is in reality a pointer to an unconstrained array.
|
/* This is in reality a pointer to an unconstrained array.
|
||||||
its value is changeable. */
|
its value is changeable. */
|
||||||
|
Loading…
Reference in New Issue
Block a user