rust/25535 Apply embedded offset to enum variant calculation

Hopefully straightforward (and I didn't miss anything ...).

gdb/ChangeLog
2020-02-19  Doug Evans  <dje@google.com>

	PR rust/25535
	* rust-lang.c (rust_print_enum): Apply embedded_offset to
	rust_enum_variant calculation.

gdb/testsuite/ChangeLog
2020-02-19  Doug Evans  <dje@google.com>

	PR rust/25535
	* gdb.rust/simple.exp: Add test.
	* gdb.rust/simple.rs: Add test.
This commit is contained in:
Doug Evans
2020-02-19 13:54:59 -07:00
committed by Tom Tromey
parent 623563f79d
commit 084104828c
5 changed files with 24 additions and 1 deletions

View File

@ -481,7 +481,8 @@ rust_print_enum (struct type *type, int embedded_offset,
}
const gdb_byte *valaddr = value_contents_for_printing (val);
struct field *variant_field = rust_enum_variant (type, valaddr);
struct field *variant_field = rust_enum_variant (type,
valaddr + embedded_offset);
embedded_offset += FIELD_BITPOS (*variant_field) / 8;
struct type *variant_type = FIELD_TYPE (*variant_field);