diff options
author | Tom Tromey <tom@tromey.com> | 2020-09-15 18:44:37 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2020-09-15 18:44:37 -0600 |
commit | 6b5a7bc768570edc15532759969cd9bff3f02c28 (patch) | |
tree | 59a29752067c8019fb858be4bc89a44e6c310be9 /gdb/rust-lang.c | |
parent | ce0e8d978314a2d7e45be442fa0bc76412110ad4 (diff) | |
download | gdb-6b5a7bc768570edc15532759969cd9bff3f02c28.zip gdb-6b5a7bc768570edc15532759969cd9bff3f02c28.tar.gz gdb-6b5a7bc768570edc15532759969cd9bff3f02c28.tar.bz2 |
Handle member pointers directly in generic_value_print
TYPE_CODE_MEMBERPTR and TYPE_CODE_METHODPTR are only used for C++, so
it seems to me that the generic value-printing code ought to handle
these cases -- that way, printing these objects will work even when
the current language is not C++. This patch implements this idea.
gdb/ChangeLog
2020-09-15 Tom Tromey <tom@tromey.com>
* rust-lang.c (rust_value_print_inner): Remove TYPE_CODE_MEMBERPTR
and TYPE_CODE_METHODPTR cases.
* c-valprint.c (c_value_print_memberptr): Move to valprint.c.
(c_value_print_inner): Update.
* valprint.c (generic_value_print_memberptr): New function, from
c_value_print_memberptr.
(generic_value_print): Use it. Call cplus_print_method_ptr.
Diffstat (limited to 'gdb/rust-lang.c')
-rw-r--r-- | gdb/rust-lang.c | 5 |
1 files changed, 0 insertions, 5 deletions
diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c index 0bc65eb..fa02b18 100644 --- a/gdb/rust-lang.c +++ b/gdb/rust-lang.c @@ -535,11 +535,6 @@ rust_value_print_inner (struct value *val, struct ui_file *stream, } goto generic_print; - case TYPE_CODE_METHODPTR: - case TYPE_CODE_MEMBERPTR: - c_value_print_inner (val, stream, recurse, &opts); - break; - case TYPE_CODE_INT: /* Recognize the unit type. */ if (type->is_unsigned () && TYPE_LENGTH (type) == 0 |