aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2018-09-13 10:56:34 -0600
committerTom Tromey <tom@tromey.com>2018-09-13 10:57:40 -0600
commit4a3fe98f885a2d1db804584e7ea265ab3ccef4d7 (patch)
tree26d5b44bfa4d40c4358b4b78b65f57e5552ae2ea /gdb
parent098b2108a2b61531c0bc8ea16854f773083a95d7 (diff)
downloadgdb-4a3fe98f885a2d1db804584e7ea265ab3ccef4d7.zip
gdb-4a3fe98f885a2d1db804584e7ea265ab3ccef4d7.tar.gz
gdb-4a3fe98f885a2d1db804584e7ea265ab3ccef4d7.tar.bz2
Make Rust error message mention the field name
I noticed a spot in rust-lang.c where the placeholder "foo" was used instead of the actual field name. This patch fixes the bug. gdb/ChangeLog 2018-09-13 Tom Tromey <tom@tromey.com> PR rust/23650: * rust-lang.c (rust_evaluate_subexp): Use field name, not "foo". gdb/testsuite/ChangeLog 2018-09-13 Tom Tromey <tom@tromey.com> PR rust/23650: * gdb.rust/simple.exp: Add test for enum field access error.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/rust-lang.c4
-rw-r--r--gdb/testsuite/ChangeLog5
-rw-r--r--gdb/testsuite/gdb.rust/simple.exp2
4 files changed, 14 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 1613808..5783e7c 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,10 @@
2018-09-13 Tom Tromey <tom@tromey.com>
+ PR rust/23650:
+ * rust-lang.c (rust_evaluate_subexp): Use field name, not "foo".
+
+2018-09-13 Tom Tromey <tom@tromey.com>
+
PR rust/23626:
* rust-lang.c (rust_enum_variant): Now static.
(rust_empty_enum_p): New function.
diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c
index b777389..43db722 100644
--- a/gdb/rust-lang.c
+++ b/gdb/rust-lang.c
@@ -1726,9 +1726,9 @@ tuple structs, and tuple-like enum variants"));
struct type *outer_type = type;
type = value_type (lhs);
if (rust_tuple_type_p (type) || rust_tuple_struct_type_p (type))
- error (_("Attempting to access named field foo of tuple "
+ error (_("Attempting to access named field %s of tuple "
"variant %s::%s, which has only anonymous fields"),
- TYPE_NAME (outer_type),
+ field_name, TYPE_NAME (outer_type),
rust_last_path_segment (TYPE_NAME (type)));
TRY
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index c356d02..7d6a2ec 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2018-09-13 Tom Tromey <tom@tromey.com>
+ PR rust/23650:
+ * gdb.rust/simple.exp: Add test for enum field access error.
+
+2018-09-13 Tom Tromey <tom@tromey.com>
+
PR rust/23626:
* gdb.rust/simple.rs (EmptyEnum): New type.
(main): Use it.
diff --git a/gdb/testsuite/gdb.rust/simple.exp b/gdb/testsuite/gdb.rust/simple.exp
index 07b2512..956a6ca 100644
--- a/gdb/testsuite/gdb.rust/simple.exp
+++ b/gdb/testsuite/gdb.rust/simple.exp
@@ -134,6 +134,8 @@ gdb_test "print univariant" " = simple::Univariant::Foo{a: 1}"
gdb_test "print univariant.a" " = 1"
gdb_test "print univariant_anon" " = simple::UnivariantAnon::Foo\\(1\\)"
gdb_test "print univariant_anon.0" " = 1"
+gdb_test "print univariant_anon.sss" \
+ "Attempting to access named field sss of tuple variant simple::UnivariantAnon::Foo, which has only anonymous fields"
gdb_test_sequence "ptype simple::Univariant" "" {
"type = enum simple::Univariant \\{"