This is the mail archive of the gdb-prs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/16043] New: missing C++11 move constructor


https://sourceware.org/bugzilla/show_bug.cgi?id=16043

            Bug ID: 16043
           Summary: missing C++11 move constructor
           Product: gdb
           Version: HEAD
            Status: NEW
          Severity: normal
          Priority: P2
         Component: c++
          Assignee: unassigned at sourceware dot org
          Reporter: jan.kratochvil at redhat dot com

Created attachment 7230
  --> https://sourceware.org/bugzilla/attachment.cgi?id=7230&action=edit
DW_TAG_rvalue_reference_type like DW_TAG_reference_type

#include <memory>
class C {
public:
  C() {}
  C(C &&o);
  int i=42;
};
C::C(C &&o) {
  i=o.i; /* line 9 */
}
int main() {
  C a;
  C b(std::move(a));
}


(1)
DW_TAG_rvalue_reference_type is not recognized:
(gdb) b 9
(gdb) run
(gdb) p o
$3 = <unknown type in /home/jkratoch/t/test7, CU 0x0, DIE 0x1f7b>
with attached patch:
(gdb) p o
$1 = (C &) @0x7fffffffd960: {i = 42}


(2)
'&&' operator is not parsed/evaluated:
(gdb) start
(gdb) next
(gdb) p &a
$1 = (C *) 0x7fffffffd960
(gdb) p (struct C &)a
$2 = (C &) @0x7fffffffd960: {i = 42}
(gdb) p (struct C &&)a
A syntax error in expression, near `&&)a'.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]