From: Simon Marchi via Gdb-patches <gdb-patches@sourceware.org>
To: gdb-patches@sourceware.org
Subject: [PATCH 4/4] gdb: trivial changes to use array_view
Date: Mon, 8 Nov 2021 16:06:09 -0500 [thread overview]
Message-ID: <20211108210609.353208-4-simon.marchi@efficios.com> (raw)
In-Reply-To: <20211108210609.353208-1-simon.marchi@efficios.com>
From: Simon Marchi <simon.marchi@polymtl.ca>
Change a few relatively obvious spots using value contents to propagate
the use array_view a bit more.
Change-Id: I5338a60986f06d5969fec803d04f8423c9288a15
---
gdb/frame.c | 2 +-
gdb/rust-lang.c | 10 ++++------
gdb/valarith.c | 9 +++------
gdb/valops.c | 28 ++++++++++------------------
gdb/value.c | 2 +-
5 files changed, 19 insertions(+), 32 deletions(-)
diff --git a/gdb/frame.c b/gdb/frame.c
index 70b1247d15e..268397259de 100644
--- a/gdb/frame.c
+++ b/gdb/frame.c
@@ -1261,7 +1261,7 @@ frame_unwind_register_value (frame_info *next_frame, int regnum)
else
{
int i;
- const gdb_byte *buf = value_contents (value).data ();
+ gdb::array_view<const gdb_byte> buf = value_contents (value);
fprintf_unfiltered (&debug_file, " bytes=");
fprintf_unfiltered (&debug_file, "[");
diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c
index e5a404187be..9ab8fbe30c0 100644
--- a/gdb/rust-lang.c
+++ b/gdb/rust-lang.c
@@ -1317,9 +1317,8 @@ eval_op_rust_struct_anon (struct type *expect_type, struct expression *exp,
if (rust_enum_p (type))
{
- gdb::array_view<const gdb_byte> view (value_contents (lhs).data (),
- TYPE_LENGTH (type));
- type = resolve_dynamic_type (type, view, value_address (lhs));
+ type = resolve_dynamic_type (type, value_contents (lhs),
+ value_address (lhs));
if (rust_empty_enum_p (type))
error (_("Cannot access field %d of empty enum %s"),
@@ -1380,9 +1379,8 @@ eval_op_rust_structop (struct type *expect_type, struct expression *exp,
struct type *type = value_type (lhs);
if (type->code () == TYPE_CODE_STRUCT && rust_enum_p (type))
{
- gdb::array_view<const gdb_byte> view (value_contents (lhs).data (),
- TYPE_LENGTH (type));
- type = resolve_dynamic_type (type, view, value_address (lhs));
+ type = resolve_dynamic_type (type, value_contents (lhs),
+ value_address (lhs));
if (rust_empty_enum_p (type))
error (_("Cannot access field %s of empty enum %s"),
diff --git a/gdb/valarith.c b/gdb/valarith.c
index ebf394df437..ac995a5cbb0 100644
--- a/gdb/valarith.c
+++ b/gdb/valarith.c
@@ -927,12 +927,10 @@ fixed_point_binop (struct value *arg1, struct value *arg2, enum exp_opcode op)
type2 = type1;
}
- v1.read_fixed_point (gdb::make_array_view (value_contents (arg1).data (),
- TYPE_LENGTH (type1)),
+ v1.read_fixed_point (value_contents (arg1),
type_byte_order (type1), type1->is_unsigned (),
type1->fixed_point_scaling_factor ());
- v2.read_fixed_point (gdb::make_array_view (value_contents (arg2).data (),
- TYPE_LENGTH (type2)),
+ v2.read_fixed_point (value_contents (arg2),
type_byte_order (type2), type2->is_unsigned (),
type2->fixed_point_scaling_factor ());
}
@@ -942,8 +940,7 @@ fixed_point_binop (struct value *arg1, struct value *arg2, enum exp_opcode op)
value *fp_val = allocate_value (type1);
fp.write_fixed_point
- (gdb::make_array_view (value_contents_raw (fp_val).data (),
- TYPE_LENGTH (type1)),
+ (value_contents_raw (fp_val),
type_byte_order (type1),
type1->is_unsigned (),
type1->fixed_point_scaling_factor ());
diff --git a/gdb/valops.c b/gdb/valops.c
index 106e12d3234..86a1da11ec3 100644
--- a/gdb/valops.c
+++ b/gdb/valops.c
@@ -351,9 +351,8 @@ value_to_gdb_mpq (struct value *value)
|| is_fixed_point_type (type));
gdb_mpz vz;
- vz.read (gdb::make_array_view (value_contents (value).data (),
- TYPE_LENGTH (type)),
- type_byte_order (type), type->is_unsigned ());
+ vz.read (value_contents (value), type_byte_order (type),
+ type->is_unsigned ());
mpq_set_z (result.val, vz.val);
if (is_fixed_point_type (type))
@@ -392,8 +391,7 @@ value_cast_to_fixed_point (struct type *to_type, struct value *from_val)
/* Finally, create the result value, and pack the unscaled value
in it. */
struct value *result = allocate_value (to_type);
- unscaled.write (gdb::make_array_view (value_contents_raw (result).data (),
- TYPE_LENGTH (to_type)),
+ unscaled.write (value_contents_raw (result),
type_byte_order (to_type),
to_type->is_unsigned ());
@@ -554,11 +552,10 @@ value_cast (struct type *type, struct value *arg2)
{
gdb_mpq fp_val;
- fp_val.read_fixed_point
- (gdb::make_array_view (value_contents (arg2).data (),
- TYPE_LENGTH (type2)),
- type_byte_order (type2), type2->is_unsigned (),
- type2->fixed_point_scaling_factor ());
+ fp_val.read_fixed_point (value_contents (arg2),
+ type_byte_order (type2),
+ type2->is_unsigned (),
+ type2->fixed_point_scaling_factor ());
struct value *v = allocate_value (to_type);
target_float_from_host_double (value_contents_raw (v).data (),
@@ -1259,14 +1256,9 @@ value_assign (struct value *toval, struct value *fromval)
value_contents (fromval).data ());
}
else
- {
- gdb::array_view<const gdb_byte> contents
- = gdb::make_array_view (value_contents (fromval).data (),
- TYPE_LENGTH (type));
- put_frame_register_bytes (frame, value_reg,
- value_offset (toval),
- contents);
- }
+ put_frame_register_bytes (frame, value_reg,
+ value_offset (toval),
+ value_contents (fromval));
}
gdb::observers::register_changed.notify (frame, value_reg);
diff --git a/gdb/value.c b/gdb/value.c
index 7c86e7e13ca..88080a01df8 100644
--- a/gdb/value.c
+++ b/gdb/value.c
@@ -4010,7 +4010,7 @@ value_fetch_lazy_register (struct value *val)
else
{
int i;
- const gdb_byte *buf = value_contents (new_val).data ();
+ gdb::array_view<const gdb_byte> buf = value_contents (new_val);
if (VALUE_LVAL (new_val) == lval_register)
fprintf_unfiltered (&debug_file, " register=%d",
--
2.33.0
next prev parent reply other threads:[~2021-11-08 21:07 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-08 21:06 [PATCH 1/4] gdb: fix length of array view returned by some value_contents functions Simon Marchi via Gdb-patches
2021-11-08 21:06 ` [PATCH 2/4] gdbsupport: add array_view copy function Simon Marchi via Gdb-patches
2021-11-08 21:11 ` Simon Marchi via Gdb-patches
2021-11-16 20:54 ` Tom Tromey
2021-11-16 20:53 ` Tom Tromey
2021-11-16 21:56 ` Simon Marchi via Gdb-patches
2021-11-17 0:20 ` Tom Tromey
2021-11-18 20:07 ` Simon Marchi
2021-11-08 21:06 ` [PATCH 3/4] gdb: make extract_integer take an array_view Simon Marchi via Gdb-patches
2021-11-08 21:06 ` Simon Marchi via Gdb-patches [this message]
2021-11-16 20:41 ` [PATCH 1/4] gdb: fix length of array view returned by some value_contents functions Tom Tromey
2021-11-16 21:40 ` Simon Marchi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20211108210609.353208-4-simon.marchi@efficios.com \
--to=gdb-patches@sourceware.org \
--cc=simon.marchi@efficios.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox