Handle member pointers directly in generic_value_print
authorTom Tromey <tom@tromey.com>
Wed, 16 Sep 2020 00:44:37 +0000 (18:44 -0600)
committerTom Tromey <tom@tromey.com>
Wed, 16 Sep 2020 00:44:37 +0000 (18:44 -0600)
commit6b5a7bc768570edc15532759969cd9bff3f02c28
tree59a29752067c8019fb858be4bc89a44e6c310be9
parentce0e8d978314a2d7e45be442fa0bc76412110ad4
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.
gdb/ChangeLog
gdb/c-valprint.c
gdb/rust-lang.c
gdb/valprint.c