* [PATCH v2] value: Make accessor methods' parameters const-correct
@ 2016-04-07 20:13 Martin Galvan
2016-04-08 17:49 ` Pedro Alves
0 siblings, 1 reply; 3+ messages in thread
From: Martin Galvan @ 2016-04-07 20:13 UTC (permalink / raw)
To: gdb-patches, palves, simon.marchi
I did a quick pass over value.c and value.h and made some of the accessor methods'
pass-by-reference parameters const-correct. Besides the obvious benefits, this is
required if we want to use them on values that are already declared as const
(such as the parameters to lval_funcs).
There's probably a lot more stuff that can be made const, here and elsewhere.
I have write access and copyright assignment. Ok to commit?
gdb/ChangeLog:
2016-04-07 Martin Galvan <martin.galvan@tallertechnologies.com>
* value.c (value_next): Make pass-by-reference parameters const-correct.
(value_parent): Likewise.
(value_enclosing_type): Likewise.
(value_lazy): Likewise.
(value_stack): Likewise.
(value_embedded_offset): Likewise.
(value_pointed_to_offset): Likewise.
(value_raw_address): Likewise.
(deprecated_value_modifiable): Likewise.
(value_free_to_mark): Likewise.
(value_release_to_mark): Likewise.
(internalvar_name): Likewise.
(readjust_indirect_value_type): Likewise.
(value_initialized): Likewise.
* value.h (value_next): Likewise.
(value_parent): Likewise.
(value_enclosing_type): Likewise.
(value_lazy): Likewise.
(value_stack): Likewise.
(value_embedded_offset): Likewise.
(value_pointed_to_offset): Likewise.
(value_raw_address): Likewise.
(deprecated_value_modifiable): Likewise.
(value_free_to_mark): Likewise.
(value_release_to_mark): Likewise.
(internalvar_name): Likewise.
(readjust_indirect_value_type): Likewise.
(value_initialized): Likewise.
---
gdb/value.c | 30 +++++++++++++++---------------
gdb/value.h | 30 +++++++++++++++---------------
2 files changed, 30 insertions(+), 30 deletions(-)
diff --git a/gdb/value.c b/gdb/value.c
index 3b66946..5aeed02 100644
--- a/gdb/value.c
+++ b/gdb/value.c
@@ -1093,7 +1093,7 @@ allocate_optimized_out_value (struct type *type)
/* Accessor methods. */
struct value *
-value_next (struct value *value)
+value_next (const struct value *value)
{
return value->next;
}
@@ -1143,7 +1143,7 @@ set_value_bitsize (struct value *value, int bit)
}
struct value *
-value_parent (struct value *value)
+value_parent (const struct value *value)
{
return value->parent;
}
@@ -1179,7 +1179,7 @@ value_contents_all_raw (struct value *value)
}
struct type *
-value_enclosing_type (struct value *value)
+value_enclosing_type (const struct value *value)
{
return value->enclosing_type;
}
@@ -1388,7 +1388,7 @@ value_contents_copy (struct value *dst, int dst_offset,
}
int
-value_lazy (struct value *value)
+value_lazy (const struct value *value)
{
return value->lazy;
}
@@ -1400,7 +1400,7 @@ set_value_lazy (struct value *value, int val)
}
int
-value_stack (struct value *value)
+value_stack (const struct value *value)
{
return value->stack;
}
@@ -1481,7 +1481,7 @@ value_bits_synthetic_pointer (const struct value *value,
}
int
-value_embedded_offset (struct value *value)
+value_embedded_offset (const struct value *value)
{
return value->embedded_offset;
}
@@ -1493,7 +1493,7 @@ set_value_embedded_offset (struct value *value, int val)
}
int
-value_pointed_to_offset (struct value *value)
+value_pointed_to_offset (const struct value *value)
{
return value->pointed_to_offset;
}
@@ -1546,7 +1546,7 @@ value_address (const struct value *value)
}
CORE_ADDR
-value_raw_address (struct value *value)
+value_raw_address (const struct value *value)
{
if (value->lval == lval_internalvar
|| value->lval == lval_internalvar_component
@@ -1583,7 +1583,7 @@ deprecated_value_regnum_hack (struct value *value)
}
int
-deprecated_value_modifiable (struct value *value)
+deprecated_value_modifiable (const struct value *value)
{
return value->modifiable;
}
@@ -1644,7 +1644,7 @@ value_free (struct value *val)
/* Free all values allocated since MARK was obtained by value_mark
(except for those released). */
void
-value_free_to_mark (struct value *mark)
+value_free_to_mark (const struct value *mark)
{
struct value *val;
struct value *next;
@@ -1736,7 +1736,7 @@ release_value_or_incref (struct value *val)
/* Release all values up to mark */
struct value *
-value_release_to_mark (struct value *mark)
+value_release_to_mark (const struct value *mark)
{
struct value *val;
struct value *next;
@@ -2500,7 +2500,7 @@ clear_internalvar (struct internalvar *var)
}
char *
-internalvar_name (struct internalvar *var)
+internalvar_name (const struct internalvar *var)
{
return var->name;
}
@@ -3772,8 +3772,8 @@ coerce_ref_if_computed (const struct value *arg)
struct value *
readjust_indirect_value_type (struct value *value, struct type *enc_type,
- struct type *original_type,
- struct value *original_value)
+ const struct type *original_type,
+ const struct value *original_value)
{
/* Re-adjust type. */
deprecated_set_value_type (value, TYPE_TARGET_TYPE (original_type));
@@ -3878,7 +3878,7 @@ set_value_initialized (struct value *val, int status)
/* Return the initialized field in a value struct. */
int
-value_initialized (struct value *val)
+value_initialized (const struct value *val)
{
return val->initialized;
}
diff --git a/gdb/value.h b/gdb/value.h
index 2eac5ef..f8ec854 100644
--- a/gdb/value.h
+++ b/gdb/value.h
@@ -93,7 +93,7 @@ struct value;
put into the value history or exposed to Python are taken off this
list. */
-struct value *value_next (struct value *);
+struct value *value_next (const struct value *);
/* Type of the value. */
@@ -126,7 +126,7 @@ extern void set_value_bitpos (struct value *, int bit);
single read from the target when displaying multiple
bitfields. */
-struct value *value_parent (struct value *);
+struct value *value_parent (const struct value *);
extern void set_value_parent (struct value *value, struct value *parent);
/* Describes offset of a value within lval of a structure in bytes.
@@ -142,7 +142,7 @@ extern void set_value_offset (struct value *, int offset);
relevant if lval != not_lval.''. Shouldn't the value instead be
not_lval and be done with it? */
-extern int deprecated_value_modifiable (struct value *value);
+extern int deprecated_value_modifiable (const struct value *value);
/* If a value represents a C++ object, then the `type' field gives the
object's compile-time type. If the object actually belongs to some
@@ -185,7 +185,7 @@ extern int deprecated_value_modifiable (struct value *value);
`type', and `embedded_offset' is zero, so everything works
normally. */
-extern struct type *value_enclosing_type (struct value *);
+extern struct type *value_enclosing_type (const struct value *);
extern void set_value_enclosing_type (struct value *val,
struct type *new_type);
@@ -205,9 +205,9 @@ extern struct type *value_actual_type (struct value *value,
int resolve_simple_types,
int *real_type_found);
-extern int value_pointed_to_offset (struct value *value);
+extern int value_pointed_to_offset (const struct value *value);
extern void set_value_pointed_to_offset (struct value *value, int val);
-extern int value_embedded_offset (struct value *value);
+extern int value_embedded_offset (const struct value *value);
extern void set_value_embedded_offset (struct value *value, int val);
/* For lval_computed values, this structure holds functions used to
@@ -312,10 +312,10 @@ extern void *value_computed_closure (const struct value *value);
element. If you ever change the way lazy flag is set and reset, be
sure to consider this use as well! */
-extern int value_lazy (struct value *);
+extern int value_lazy (const struct value *);
extern void set_value_lazy (struct value *value, int val);
-extern int value_stack (struct value *);
+extern int value_stack (const struct value *);
extern void set_value_stack (struct value *value, int val);
/* Throw an error complaining that the value has been optimized
@@ -398,7 +398,7 @@ extern void mark_value_bits_optimized_out (struct value *value,
/* Set or return field indicating whether a variable is initialized or
not, based on debugging information supplied by the compiler.
1 = initialized; 0 = uninitialized. */
-extern int value_initialized (struct value *);
+extern int value_initialized (const struct value *);
extern void set_value_initialized (struct value *, int);
/* Set COMPONENT's location as appropriate for a component of WHOLE
@@ -425,7 +425,7 @@ extern CORE_ADDR value_address (const struct value *);
/* Like value_address, except the result does not include value's
offset. */
-extern CORE_ADDR value_raw_address (struct value *);
+extern CORE_ADDR value_raw_address (const struct value *);
/* Set the address of a value. */
extern void set_value_address (struct value *, CORE_ADDR);
@@ -458,8 +458,8 @@ extern struct value *coerce_ref_if_computed (const struct value *arg);
extern struct value * readjust_indirect_value_type (struct value *value,
struct type *enc_type,
- struct type *original_type,
- struct value *original_val);
+ const struct type *original_type,
+ const struct value *original_val);
/* Convert a REF to the object referenced. */
@@ -694,7 +694,7 @@ extern struct value *allocate_repeat_value (struct type *type, int count);
extern struct value *value_mark (void);
-extern void value_free_to_mark (struct value *mark);
+extern void value_free_to_mark (const struct value *mark);
extern struct value *value_cstring (const char *ptr, ssize_t len,
struct type *char_type);
@@ -1006,7 +1006,7 @@ extern void value_print_array_elements (struct value *val,
struct ui_file *stream, int format,
enum val_prettyformat pretty);
-extern struct value *value_release_to_mark (struct value *mark);
+extern struct value *value_release_to_mark (const struct value *mark);
extern void val_print (struct type *type, const gdb_byte *valaddr,
int embedded_offset, CORE_ADDR address,
@@ -1034,7 +1034,7 @@ extern void print_variable_and_value (const char *name,
extern void typedef_print (struct type *type, struct symbol *news,
struct ui_file *stream);
-extern char *internalvar_name (struct internalvar *var);
+extern char *internalvar_name (const struct internalvar *var);
extern void preserve_values (struct objfile *);
--
2.8.1
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH v2] value: Make accessor methods' parameters const-correct
2016-04-07 20:13 [PATCH v2] value: Make accessor methods' parameters const-correct Martin Galvan
@ 2016-04-08 17:49 ` Pedro Alves
2016-04-08 18:12 ` Martin Galvan
0 siblings, 1 reply; 3+ messages in thread
From: Pedro Alves @ 2016-04-08 17:49 UTC (permalink / raw)
To: Martin Galvan, gdb-patches, simon.marchi
On 04/07/2016 09:13 PM, Martin Galvan wrote:
> I did a quick pass over value.c and value.h and made some of the accessor methods'
> pass-by-reference parameters const-correct. Besides the obvious benefits, this is
> required if we want to use them on values that are already declared as const
> (such as the parameters to lval_funcs).
>
> There's probably a lot more stuff that can be made const, here and elsewhere.
>
> I have write access and copyright assignment. Ok to commit?
>
OK.
Thanks,
Pedro Alves
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2016-04-08 18:12 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-04-07 20:13 [PATCH v2] value: Make accessor methods' parameters const-correct Martin Galvan
2016-04-08 17:49 ` Pedro Alves
2016-04-08 18:12 ` Martin Galvan
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox