[binutils-gdb] Guile: improved rvalue reference support
Andrew Burgess
aburgess@sourceware.org
Wed May 12 11:36:08 GMT 2021
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=97cef6b7b79c22a3cc14ef369c1dc09a8bcca357
commit 97cef6b7b79c22a3cc14ef369c1dc09a8bcca357
Author: George Barrett <bob@bob131.so>
Date: Thu Apr 29 03:32:37 2021 +1000
Guile: improved rvalue reference support
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.
Diff:
---
gdb/ChangeLog | 8 ++++++++
gdb/NEWS | 7 +++++++
gdb/doc/ChangeLog | 5 +++++
gdb/doc/guile.texi | 3 +++
gdb/guile/scm-type.c | 1 +
gdb/guile/scm-value.c | 1 +
6 files changed, 25 insertions(+)
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 2423d47c192..26751d318b2 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -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
diff --git a/gdb/NEWS b/gdb/NEWS
index 784c1038920..250f79153ca 100644
--- 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"
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index a7714e7c326..0546f650b32 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -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.
diff --git a/gdb/doc/guile.texi b/gdb/doc/guile.texi
index 6c613797f22..c3e134b5ffe 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:
More information about the Gdb-cvs
mailing list