This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[FYI 2/3] Fix rust_dump_subexp_body
- From: Tom Tromey <tom at tromey dot com>
- To: gdb-patches at sourceware dot org
- Cc: Tom Tromey <tom at tromey dot com>
- Date: Fri, 12 May 2017 09:00:54 -0600
- Subject: [FYI 2/3] Fix rust_dump_subexp_body
- Authentication-results: sourceware.org; auth=none
- References: <20170512150055.27230-1-tom@tromey.com>
rust_dump_subexp_body was not correct in a couple of cases. While
debugging the bug I was really interested in, this caused a crash.
This patch fixes the problems. No test case because, IIRC there
generally aren't tests for expression dumping.
ChangeLog
2017-05-12 Tom Tromey <tom@tromey.com>
* rust-lang.c (rust_dump_subexp_body) <STRUCTOP_ANONYMOUS,
OP_RUST_ARRAY>: Fix.
---
gdb/ChangeLog | 5 +++++
gdb/rust-lang.c | 5 +++--
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index b4caf1f..c2d3f2d 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,10 @@
2017-05-12 Tom Tromey <tom@tromey.com>
+ * rust-lang.c (rust_dump_subexp_body) <STRUCTOP_ANONYMOUS,
+ OP_RUST_ARRAY>: Fix.
+
+2017-05-12 Tom Tromey <tom@tromey.com>
+
* rust-lang.c (rust_print_subexp): Replace "return" with "break".
2017-05-09 Yao Qi <yao.qi@linaro.org>
diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c
index dc48ff9..b4a529d 100644
--- a/gdb/rust-lang.c
+++ b/gdb/rust-lang.c
@@ -1951,14 +1951,15 @@ rust_dump_subexp_body (struct expression *exp, struct ui_file *stream,
{
int field_number;
- field_number = longest_to_int (exp->elts[elt].longconst);
+ field_number = longest_to_int (exp->elts[elt + 1].longconst);
fprintf_filtered (stream, "Field number: %d", field_number);
- elt = dump_subexp (exp, stream, elt + 2);
+ elt = dump_subexp (exp, stream, elt + 3);
}
break;
case OP_RUST_ARRAY:
+ ++elt;
break;
default:
--
2.9.3