[PATCH v3 1/3] Guile: improved rvalue reference support
Andrew Burgess
andrew.burgess@embecosm.com
Wed Apr 28 16:54:28 GMT 2021
* George Barrett via Gdb-patches <gdb-patches@sourceware.org> [2021-04-29 02:27:26 +1000]:
> Adds a couple of missing bits to the Guile API to make C++11 rvalue
> reference values and types usable from Guile scripts.
>
> gdb/ChangeLog:
>
> 2021-04-29 George Barrett <bob@bob131.so>
>
> * guile/scm-type.c (type_integer_constants): Add binding for
> TYPE_CODE_RVALUE_REF.
> * guile/scm-value.c (gdbscm_value_referenced_value): Handle
> dereferencing of rvalue references.
> * NEWS (Guile API): Note improvements in rvalue reference
> support.
>
> gdb/doc/ChangeLog:
>
> 2021-04-29 George Barrett <bob@bob131.so>
>
> * guile.texi (Types In Guile): Add documentation for
> TYPE_CODE_RVALUE_REF.
Looks good to me.
Thanks,
Andrew
> ---
> gdb/NEWS | 7 +++++++
> gdb/doc/guile.texi | 3 +++
> gdb/guile/scm-type.c | 1 +
> gdb/guile/scm-value.c | 1 +
> 4 files changed, 12 insertions(+)
>
> diff --git a/gdb/NEWS b/gdb/NEWS
> index 6550ea352ac..9c76df8b6d5 100644
> --- a/gdb/NEWS
> +++ b/gdb/NEWS
> @@ -185,6 +185,13 @@ QMemTags
> Request the remote to store the specified allocation tags to the requested
> memory range.
>
> +* Guile API
> +
> + ** Improved support for rvalue reference values:
> + TYPE_CODE_RVALUE_REF is now exported as part of the API and the
> + value-referenced-value procedure now handles rvalue reference
> + values.
> +
> *** Changes in GDB 10
>
> * There are new feature names for ARC targets: "org.gnu.gdb.arc.core"
> diff --git a/gdb/doc/guile.texi b/gdb/doc/guile.texi
> index 762a82a08c5..c7904574002 100644
> --- a/gdb/doc/guile.texi
> +++ b/gdb/doc/guile.texi
> @@ -1268,6 +1268,9 @@ A pointer-to-member.
> @item TYPE_CODE_REF
> A reference type.
>
> +@item TYPE_CODE_RVALUE_REF
> +A C@t{++}11 rvalue reference type.
> +
> @item TYPE_CODE_CHAR
> A character type.
>
> diff --git a/gdb/guile/scm-type.c b/gdb/guile/scm-type.c
> index 8d9c2c5f9a4..d65102b01c7 100644
> --- a/gdb/guile/scm-type.c
> +++ b/gdb/guile/scm-type.c
> @@ -1318,6 +1318,7 @@ static const scheme_integer_constant type_integer_constants[] =
> X (TYPE_CODE_METHODPTR),
> X (TYPE_CODE_MEMBERPTR),
> X (TYPE_CODE_REF),
> + X (TYPE_CODE_RVALUE_REF),
> X (TYPE_CODE_CHAR),
> X (TYPE_CODE_BOOL),
> X (TYPE_CODE_COMPLEX),
> diff --git a/gdb/guile/scm-value.c b/gdb/guile/scm-value.c
> index 59995169cd0..f50e8b5b46c 100644
> --- a/gdb/guile/scm-value.c
> +++ b/gdb/guile/scm-value.c
> @@ -476,6 +476,7 @@ gdbscm_value_referenced_value (SCM self)
> res_val = value_ind (value);
> break;
> case TYPE_CODE_REF:
> + case TYPE_CODE_RVALUE_REF:
> res_val = coerce_ref (value);
> break;
> default:
> --
> 2.30.2
More information about the Gdb-patches
mailing list