[PATCH v6 00/11] c++/14441: Rvalue reference support

Keith Seitz
2017-03-10T20:04:49Z

This patch series was submitted in June, 2016, and the original author does
not have the time to see this through. Given that we would like this in the
8.0 release, I have contacted the orginal author, who is allowing me to
champion his patch on his behalf.

When this series was last reviewed, revisions were requested in patches 8
and 11. I have highlighted in those patches what I have changed over the last
submitted patch version (v5).

Keith Seitz (11):
Add definitions for rvalue reference types
Change {lookup,make}_reference_type API
Add ability to return rvalue reference values from value_ref
Support rvalue reference type in parser
Implement demangling for rvalue reference type names
Implement printing of rvalue reference types and values
Support DW_TAG_rvalue_reference type
Support rvalue references in the gdb python module (includes doc/)
Convert lvalue reference type check to general reference type check
Add rvalue references to overloading resolution
Add rvalue reference tests and NEWS entry

gdb/ChangeLog | 188 +++++++++++++++++++++
gdb/NEWS | 3 +
gdb/aarch64-tdep.c | 5 +-
gdb/ada-lang.c | 2 +-
gdb/amd64-tdep.c | 2 +-
gdb/amd64-windows-tdep.c | 1 +
gdb/arm-tdep.c | 5 +-
gdb/ax-gdb.c | 2 +
gdb/c-exp.y | 6 +-
gdb/c-typeprint.c | 10 +-
gdb/c-valprint.c | 14 +-
gdb/c-varobj.c | 10 +-
gdb/compile/compile-c-symbols.c | 2 +-
gdb/completer.c | 3 +-
gdb/cp-name-parser.y | 4 +
gdb/cp-support.c | 3 +-
gdb/darwin-nat-info.c | 2 +-
gdb/doc/python.texi | 4 +
gdb/dwarf2loc.c | 4 +-
gdb/dwarf2read.c | 15 +-
gdb/eval.c | 16 +-
gdb/f-exp.y | 2 +-
gdb/findvar.c | 6 +-
gdb/gdbtypes.c | 105 ++++++++++--
gdb/gdbtypes.h | 20 ++-
gdb/guile/scm-type.c | 2 +-
gdb/guile/scm-value.c | 2 +-
gdb/hppa-tdep.c | 1 +
gdb/infcall.c | 5 +-
gdb/language.c | 3 +-
gdb/m32c-tdep.c | 8 +-
gdb/m88k-tdep.c | 1 +
gdb/mn10300-tdep.c | 1 +
gdb/msp430-tdep.c | 2 +-
gdb/parse.c | 39 +++--
gdb/parser-defs.h | 1 +
gdb/ppc-sysv-tdep.c | 7 +-
gdb/printcmd.c | 2 +-
gdb/python/lib/gdb/command/explore.py | 2 +-
gdb/python/lib/gdb/types.py | 4 +-
gdb/python/py-type.c | 14 +-
gdb/python/py-value.c | 37 ++--
gdb/python/py-xmethods.c | 10 +-
gdb/s390-linux-tdep.c | 2 +-
gdb/sparc-tdep.c | 1 +
gdb/sparc64-tdep.c | 1 +
gdb/spu-tdep.c | 1 +
gdb/stabsread.c | 3 +-
gdb/symtab.c | 3 +-
gdb/testsuite/ChangeLog | 20 +++
gdb/testsuite/gdb.cp/demangle.exp | 42 ++++-
gdb/testsuite/gdb.cp/rvalue-ref-casts.cc | 75 ++++++++
gdb/testsuite/gdb.cp/rvalue-ref-casts.exp | 76 +++++++++
gdb/testsuite/gdb.cp/rvalue-ref-overload.cc | 86 ++++++++++
gdb/testsuite/gdb.cp/rvalue-ref-overload.exp | 69 ++++++++
gdb/testsuite/gdb.cp/rvalue-ref-params.cc | 83 +++++++++
gdb/testsuite/gdb.cp/rvalue-ref-params.exp | 64 +++++++
gdb/testsuite/gdb.cp/rvalue-ref-sizeof.cc | 75 ++++++++
gdb/testsuite/gdb.cp/rvalue-ref-sizeof.exp | 43 +++++
gdb/testsuite/gdb.cp/rvalue-ref-types.cc | 79 +++++++++
gdb/testsuite/gdb.cp/rvalue-ref-types.exp | 165 ++++++++++++++++++
gdb/testsuite/gdb.python/py-rvalue-ref-value-cc.cc | 55 ++++++
.../gdb.python/py-rvalue-ref-value-cc.exp | 56 ++++++
gdb/typeprint.c | 4 +-
gdb/valarith.c | 6 +-
gdb/valops.c | 70 ++++----
gdb/valprint.c | 5 +-
gdb/value.c | 12 +-
gdb/value.h | 2 +-
gdb/varobj.c | 2 +-
70 files changed, 1507 insertions(+), 168 deletions(-)
create mode 100644 gdb/testsuite/gdb.cp/rvalue-ref-casts.cc
create mode 100644 gdb/testsuite/gdb.cp/rvalue-ref-casts.exp
create mode 100644 gdb/testsuite/gdb.cp/rvalue-ref-overload.cc
create mode 100644 gdb/testsuite/gdb.cp/rvalue-ref-overload.exp
create mode 100644 gdb/testsuite/gdb.cp/rvalue-ref-params.cc
create mode 100644 gdb/testsuite/gdb.cp/rvalue-ref-params.exp
create mode 100644 gdb/testsuite/gdb.cp/rvalue-ref-sizeof.cc
create mode 100644 gdb/testsuite/gdb.cp/rvalue-ref-sizeof.exp
create mode 100644 gdb/testsuite/gdb.cp/rvalue-ref-types.cc
create mode 100644 gdb/testsuite/gdb.cp/rvalue-ref-types.exp
create mode 100644 gdb/testsuite/gdb.python/py-rvalue-ref-value-cc.cc
create mode 100644 gdb/testsuite/gdb.python/py-rvalue-ref-value-cc.exp

--
2.1.0