Guile: improved rvalue reference support
authorGeorge Barrett <bob@bob131.so>
Wed, 28 Apr 2021 17:32:37 +0000 (03:32 +1000)
committerAndrew Burgess <andrew.burgess@embecosm.com>
Wed, 12 May 2021 11:35:36 +0000 (12:35 +0100)
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:

* 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:

* guile.texi (Types In Guile): Add documentation for
TYPE_CODE_RVALUE_REF.

gdb/ChangeLog
gdb/NEWS
gdb/doc/ChangeLog
gdb/doc/guile.texi
gdb/guile/scm-type.c
gdb/guile/scm-value.c

index 2423d47c19235bb6fbb699dc65a9e8c24b22d3aa..26751d318b2ccaa415e900412e68dfc4d0aab71b 100644 (file)
@@ -1,3 +1,11 @@
+2021-05-12  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.
+
 2021-05-12  Markus Metzger  <markus.t.metzger@intel.com>
 
        * btrace.c (handle_pt_insn_events): Ignore status update enable
index 784c1038920f580307935a7eaad1b87b74b8206a..250f79153ca6ba55b66657f6d83fb468f9e0f424 100644 (file)
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -200,6 +200,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"
index a7714e7c326da52e65b171ee60dabceaca98f337..0546f650b328684bf458600c37511e516de4530e 100644 (file)
@@ -1,3 +1,8 @@
+2021-05-12  George Barrett  <bob@bob131.so>
+
+       * guile.texi (Types In Guile): Add documentation for
+       TYPE_CODE_RVALUE_REF.
+
 2021-05-10  Andrew Burgess  <andrew.burgess@embecosm.com>
 
        * guile.texinfo (Breakpoints In Guile): Reword sentence.
index 6c613797f22785d75d41d94b055a3d6b5e228817..c3e134b5ffe649fbb726492a45566243647a003a 100644 (file)
@@ -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.
 
index 8d9c2c5f9a4e5b54c4c493393db9e762be40e2ba..d65102b01c7d8f935123499ae8b866dfa1212a31 100644 (file)
@@ -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),
index 59995169cd0529c28fb2a53f7757e3aebf20a3ce..f50e8b5b46c597bb6533c2a5b51dc8cbebe7d4a3 100644 (file)
@@ -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: