Fix crash with "finish" in Rust
authorTom Tromey <tom@tromey.com>
Thu, 9 Feb 2023 19:12:42 +0000 (12:12 -0700)
committerTom Tromey <tom@tromey.com>
Mon, 27 Feb 2023 18:12:11 +0000 (11:12 -0700)
commitdebd0556e519c3d258299cf5f14a44cc01c795da
tree31de598b7d1f797a7813b74485c56db5379ef3c8
parent810fbe39b2712853d08df74469f373254b5f30cc
Fix crash with "finish" in Rust

PR rust/30090 points out that a certain "finish" in a Rust program
will cause gdb to crash.  This happens due to some confusion about
field indices in rust_language::print_enum.  The fix is to use
value_primitive_field so that the correct type can be passed; other
spots in rust-lang.c already do this.

Note that the enclosed test case comes with an xfail.  This is needed
because for this function, rustc doesn't follow the platform ABI.

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30090
gdb/rust-lang.c
gdb/testsuite/gdb.rust/finish.exp [new file with mode: 0644]
gdb/testsuite/gdb.rust/finish.rs [new file with mode: 0644]