Summary: | Non-POD class causes garbage when printing object from a return value | ||
---|---|---|---|
Product: | gdb | Reporter: | Morten Stenshorne <mstensho> |
Component: | c++ | Assignee: | Not yet assigned to anyone <unassigned> |
Status: | NEW --- | ||
Severity: | normal | CC: | naesten, sivachandra |
Priority: | P2 | ||
Version: | 7.5 | ||
Target Milestone: | --- | ||
See Also: | http://bugs.debian.org/776893 | ||
Host: | Target: | ||
Build: | Last reconfirmed: | ||
Attachments: | Test case |
Description
Morten Stenshorne
2013-02-18 15:43:42 UTC
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "gdb and binutils". The branch, master has been updated via ebb8ece2ef50ba3f86e8b4ab7a22a4c7734d114b (commit) via 2d1c107c1b8835f4e85c35320d8595a4a6fcaebe (commit) via 82c48ac732edb0155288a93ef3dd39625ff2d2e1 (commit) via 778811d5e7eb96b5ecb848033ffaa2df455a921e (commit) from 91dc4e0a22515bec2d60a8a402970bca5042f26f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=ebb8ece2ef50ba3f86e8b4ab7a22a4c7734d114b commit ebb8ece2ef50ba3f86e8b4ab7a22a4c7734d114b Author: Siva Chandra <sivachandra@chromium.org> Date: Tue Sep 9 06:50:26 2014 -0700 Fix gnuv3_pass_by_reference to treat dynamic classes as non-trivial. gdb/ChangeLog: * gnu-v3-abi.c (gnuv3_pass_by_reference): Treat dynamic classes as non-trivial. https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=2d1c107c1b8835f4e85c35320d8595a4a6fcaebe commit 2d1c107c1b8835f4e85c35320d8595a4a6fcaebe Author: Siva Chandra <sivachandra@chromium.org> Date: Tue Sep 9 06:46:14 2014 -0700 Add new non-trial return value tests. gdb/testsuite/ChangeLog: * gdb.cp/non-trivial-retval.cc: Add new test cases. * gdb.cp/non-trivial-retval.exp: Add new tests. https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=82c48ac732edb0155288a93ef3dd39625ff2d2e1 commit 82c48ac732edb0155288a93ef3dd39625ff2d2e1 Author: Siva Chandra <sivachandra@chromium.org> Date: Tue Sep 9 06:03:42 2014 -0700 Fix gnuv3_pass_by_reference to lookup copy c-tors with qualified args. Before this, a copy constructor declared as in the following snippet was not being treated as a copy constructor. class A { public: A (A &); // OK. A (const A &); // Not being treated as a copy constructor because of the // 'const' qualifier. }; gdb/ChangeLog: PR c++/13403 PR c++/15154 * gnu-v3-abi.c (gnuv3_pass_by_reference): Lookup copy constructors with qualified args. https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=778811d5e7eb96b5ecb848033ffaa2df455a921e commit 778811d5e7eb96b5ecb848033ffaa2df455a921e Author: Siva Chandra <sivachandra@chromium.org> Date: Mon Sep 8 07:04:59 2014 -0700 Non trivial return value tests. gdb/testsuite/ChangeLog: PR c++/13403 PR c++/15154 * gdb.cp/non-trivial-retval.cc: New file. * gdb.cp/non-trivial-retval.exp: New file. ----------------------------------------------------------------------- Summary of changes: gdb/ChangeLog | 12 +++ gdb/gnu-v3-abi.c | 21 ++++- gdb/testsuite/ChangeLog | 12 +++ gdb/testsuite/gdb.cp/non-trivial-retval.cc | 119 +++++++++++++++++++++++++++ gdb/testsuite/gdb.cp/non-trivial-retval.exp | 36 ++++++++ 5 files changed, 195 insertions(+), 5 deletions(-) create mode 100644 gdb/testsuite/gdb.cp/non-trivial-retval.cc create mode 100644 gdb/testsuite/gdb.cp/non-trivial-retval.exp Still doesn't DTRT with, say, std::list<std::string> and pretty printers; see https://bugs.debian.org/776893 for an example: it seems to copy the object byte-by-byte to some other location and print that one, with the result that the printer goes around the list over and over and over and over because it can never find the link-to-header it expects to indicate the end of the list. (In reply to Samuel Bronson from comment #2) > Still doesn't DTRT with, say, std::list<std::string> and pretty printers; > see https://bugs.debian.org/776893 for an example: it seems to copy the > object byte-by-byte to some other location and print that one, with the > result that the printer goes around the list over and over and over and over > because it can never find the link-to-header it expects to indicate the end > of the list. I do not think the original problem in this PR and the above are related. I think a new/different bug would be good. |