public inbox for gdbadmin@sourceware.org
help / color / mirror / Atom feed
* [PATCH v3 00/50] Use methods for struct value
@ 2023-02-13 3:15 Tom Tromey
2023-02-13 3:15 ` [PATCH v3 01/50] Automatic date update in version.in Tom Tromey
0 siblings, 1 reply; 3+ messages in thread
From: Tom Tromey @ 2023-02-13 3:15 UTC (permalink / raw)
To: gdb-patches; +Cc: GDB Administrator, Simon Marchi
This is v3 of the struct value series. The original cover letter is
below.
This series changes many value-related functions to be methods. It
also moves the definition of struct value to value.h, so that callers
will benefit by inlining the smaller methods. The members of value
are all made private at the end of the series.
It's difficult to decide exactly which value functions ought to be
converted, because there are so many. In the end I chose a relatively
minimal approach -- only those that require direct access to the inner
workings of value.
It's possible, even easy, to convert more functions. If there are
some in particular that seem worthwhile, let me know.
I tacked on one small cleanup at the end of this series, but as it was
already fairly long, I didn't try to do all the possible cleanups.
For example, many things could use bool, some of the setter functions
could be removed in favor of specialized constructors, etc.
Regression tested on x86-64 Fedora 36.
Tom
---
Changes in v3:
- Rebased on top of some recent value changes
- ..l consequently added a couple of patches
- Link to v2: https://inbox.sourceware.org/gdb-patches/20230209-submit-value-fixups-2023-v2-0-b0b27fd97177@tromey.com
Changes in v2:
- Added operator-> patch as suggested by Simon
- Re-checked the test suite and fixed a couple of bugs it found
- Re-ran tests, this time including libstdc++ debug build
- Link to v1: https://inbox.sourceware.org/gdb-patches/20230209-submit-value-fixups-2023-v1-0-55dc2794dbb9@tromey.com
---
GDB Administrator (1):
Automatic date update in version.in
Tom Tromey (49):
Rename all fields of struct value
Move ~value body out-of-line
Move struct value to value.h
Turn value_type into method
Turn deprecated_set_value_type into a method
Turn value_arch into method
Turn value_bitsize into method
Turn value_bitpos into method
Turn value_parent into method
Turn value_offset into method
Turn deprecated_value_modifiable into method
Turn value_enclosing_type into method
Turn some value offset functions into method
Turn value_lazy and set_value_lazy functions into methods
Turn value_stack and set_value_stack functions into methods
Turn value_computed_closure and value_computed_funcs functions into methods
Convert value_lval_const and deprecated_lval_hack to methods
Turn value_initialized and set_value_initialized functions into methods
Turn value_address and set_value_address functions into methods
Turn more deprecated_* functions into methods
Turn allocate_value_lazy into a static "constructor"
Turn allocate_value into a static "constructor"
Turn allocate_computed_value into static "constructor"
Turn allocate_optimized_out_value into static "constructor"
Turn value_zero into static "constructor"
Turn some value_contents functions into methods
Turn value_fetch_lazy into a method
Turn allocate_value_contents into a method
Turn value_contents_eq into a method
Turn value_bits_synthetic_pointer into a method
Move value_ref_policy methods out-of-line
Turn value_incref and value_decref into methods
Turn remaining value_contents functions into methods
Fully qualify calls to copy in value.c
Turn value_copy into a method
Turn many optimized-out value functions into methods
Turn value_non_lval and value_force_lval into methods
Turn set_value_component_location into method
Change some code to use value methods
Turn some xmethod functions into methods
Turn preserve_one_value into method
Turn various value copying-related functions into methods
Add value::set_modifiable
Turn record_latest_value into a method
Make struct value data members private
Make ~value private
Introduce set_lval method on value
Remove deprecated_lval_hack
Rely on value_ref_ptr::operator->
bfd/version.h | 2 +-
gdb/aarch64-linux-tdep.c | 2 +-
gdb/aarch64-tdep.c | 36 +-
gdb/ada-exp.h | 4 +-
gdb/ada-exp.y | 4 +-
gdb/ada-lang.c | 566 +++++------
gdb/ada-tasks.c | 8 +-
gdb/ada-valprint.c | 60 +-
gdb/ada-varobj.c | 12 +-
gdb/alpha-tdep.c | 14 +-
gdb/amd64-tdep.c | 30 +-
gdb/amd64-windows-tdep.c | 20 +-
gdb/arc-tdep.c | 10 +-
gdb/arch-utils.c | 4 +-
gdb/arm-tdep.c | 16 +-
gdb/avr-tdep.c | 4 +-
gdb/ax-gdb.c | 8 +-
gdb/bfin-tdep.c | 6 +-
gdb/breakpoint.c | 55 +-
gdb/c-exp.h | 2 +-
gdb/c-lang.c | 16 +-
gdb/c-valprint.c | 46 +-
gdb/c-varobj.c | 8 +-
gdb/cli/cli-cmds.c | 6 +-
gdb/cli/cli-dump.c | 12 +-
gdb/cli/cli-utils.c | 4 +-
gdb/compile/compile-c-symbols.c | 4 +-
gdb/compile/compile-cplus-symbols.c | 4 +-
gdb/compile/compile-loc2c.c | 4 +-
gdb/compile/compile-object-load.c | 6 +-
gdb/cp-abi.c | 2 +-
gdb/cp-abi.h | 6 +-
gdb/cp-valprint.c | 40 +-
gdb/cris-tdep.c | 4 +-
gdb/csky-tdep.c | 4 +-
gdb/d-valprint.c | 15 +-
gdb/darwin-nat-info.c | 2 +-
gdb/dtrace-probe.c | 2 +-
gdb/dummy-frame.c | 4 +-
gdb/dwarf2/expr.c | 176 ++--
gdb/dwarf2/frame.c | 4 +-
gdb/dwarf2/loc.c | 58 +-
gdb/dwarf2/read.c | 4 +-
gdb/elfread.c | 14 +-
gdb/eval.c | 252 ++---
gdb/expop.h | 18 +-
gdb/f-lang.c | 184 ++--
gdb/f-valprint.c | 26 +-
gdb/findcmd.c | 4 +-
gdb/findvar.c | 52 +-
gdb/frame-unwind.c | 16 +-
gdb/frame.c | 56 +-
gdb/frv-tdep.c | 10 +-
gdb/gdbtypes.c | 14 +-
gdb/gdbtypes.h | 4 +-
gdb/gnu-v2-abi.c | 31 +-
gdb/gnu-v3-abi.c | 68 +-
gdb/go-valprint.c | 8 +-
gdb/guile/scm-math.c | 12 +-
gdb/guile/scm-pretty-print.c | 8 +-
gdb/guile/scm-value.c | 46 +-
gdb/h8300-tdep.c | 6 +-
gdb/hppa-tdep.c | 20 +-
gdb/i386-darwin-tdep.c | 6 +-
gdb/i386-tdep.c | 56 +-
gdb/i386-windows-tdep.c | 2 +-
gdb/i387-tdep.c | 4 +-
gdb/ia64-tdep.c | 32 +-
gdb/infcall.c | 18 +-
gdb/infcmd.c | 12 +-
gdb/infrun.c | 22 +-
gdb/iq2000-tdep.c | 6 +-
gdb/linespec.c | 2 +-
gdb/lm32-tdep.c | 4 +-
gdb/loongarch-tdep.c | 6 +-
gdb/m2-lang.c | 12 +-
gdb/m2-valprint.c | 14 +-
gdb/m32c-tdep.c | 6 +-
gdb/m32r-tdep.c | 10 +-
gdb/m68hc11-tdep.c | 8 +-
gdb/m68k-tdep.c | 4 +-
gdb/mep-tdep.c | 10 +-
gdb/mi/mi-cmd-stack.c | 9 +-
gdb/mi/mi-main.c | 10 +-
gdb/mips-tdep.c | 32 +-
gdb/mn10300-tdep.c | 12 +-
gdb/msp430-tdep.c | 8 +-
gdb/nds32-tdep.c | 8 +-
gdb/nios2-tdep.c | 6 +-
gdb/objc-lang.c | 2 +-
gdb/opencl-lang.c | 115 ++-
gdb/or1k-tdep.c | 18 +-
gdb/p-exp.y | 6 +-
gdb/p-valprint.c | 38 +-
gdb/ppc-linux-nat.c | 18 +-
gdb/ppc-linux-tdep.c | 4 +-
gdb/ppc-sysv-tdep.c | 20 +-
gdb/printcmd.c | 82 +-
gdb/python/py-framefilter.c | 8 +-
gdb/python/py-inferior.c | 4 +-
gdb/python/py-prettyprint.c | 10 +-
gdb/python/py-type.c | 2 +-
gdb/python/py-unwind.c | 14 +-
gdb/python/py-value.c | 62 +-
gdb/python/py-xmethods.c | 6 +-
gdb/regcache.c | 14 +-
gdb/riscv-tdep.c | 32 +-
gdb/rl78-tdep.c | 4 +-
gdb/rs6000-aix-tdep.c | 20 +-
gdb/rs6000-lynx178-tdep.c | 18 +-
gdb/rust-lang.c | 94 +-
gdb/rx-tdep.c | 8 +-
gdb/s390-tdep.c | 34 +-
gdb/sh-tdep.c | 20 +-
gdb/sparc-tdep.c | 12 +-
gdb/sparc64-tdep.c | 8 +-
gdb/stack.c | 64 +-
gdb/std-regs.c | 8 +-
gdb/testsuite/gdb.gdb/python-helper.exp | 6 +-
gdb/tic6x-tdep.c | 8 +-
gdb/tilegx-tdep.c | 8 +-
gdb/tracepoint.c | 8 +-
gdb/typeprint.c | 6 +-
gdb/v850-tdep.c | 14 +-
gdb/valarith.c | 220 ++---
gdb/valops.c | 525 +++++-----
gdb/valprint.c | 120 ++-
gdb/value.c | 1616 +++++++++++--------------------
gdb/value.h | 1149 ++++++++++++++--------
gdb/varobj.c | 32 +-
gdb/vax-tdep.c | 4 +-
gdb/windows-tdep.c | 8 +-
gdb/xstormy16-tdep.c | 8 +-
gdb/xtensa-tdep.c | 8 +-
134 files changed, 3399 insertions(+), 3548 deletions(-)
---
base-commit: 8282ad74c302a8e0db7a588e500ae117a1df68c5
change-id: 20230209-submit-value-fixups-2023-3e7d7c6750af
Best regards,
--
Tom Tromey <tom@tromey.com>
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH v3 01/50] Automatic date update in version.in
2023-02-13 3:15 [PATCH v3 00/50] Use methods for struct value Tom Tromey
@ 2023-02-13 3:15 ` Tom Tromey
2023-02-13 3:24 ` Tom Tromey
0 siblings, 1 reply; 3+ messages in thread
From: Tom Tromey @ 2023-02-13 3:15 UTC (permalink / raw)
To: gdb-patches; +Cc: GDB Administrator
From: GDB Administrator <gdbadmin@sourceware.org>
---
bfd/version.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/bfd/version.h b/bfd/version.h
index 1bd7dcedd38..151f1ab4e7d 100644
--- a/bfd/version.h
+++ b/bfd/version.h
@@ -16,7 +16,7 @@
In releases, the date is not included in either version strings or
sonames. */
-#define BFD_VERSION_DATE 20230212
+#define BFD_VERSION_DATE 20230213
#define BFD_VERSION @bfd_version@
#define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@
#define REPORT_BUGS_TO @report_bugs_to@
--
2.39.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v3 01/50] Automatic date update in version.in
2023-02-13 3:15 ` [PATCH v3 01/50] Automatic date update in version.in Tom Tromey
@ 2023-02-13 3:24 ` Tom Tromey
0 siblings, 0 replies; 3+ messages in thread
From: Tom Tromey @ 2023-02-13 3:24 UTC (permalink / raw)
To: Tom Tromey; +Cc: gdb-patches, GDB Administrator
>>>>> "Tom" == Tom Tromey <tom@tromey.com> writes:
Tom> From: GDB Administrator <gdbadmin@sourceware.org>
'b4' decided this was part of my series, but of course it isn't.
I'll file a b4 bug report.
Tom
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2023-02-13 3:26 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-13 3:15 [PATCH v3 00/50] Use methods for struct value Tom Tromey
2023-02-13 3:15 ` [PATCH v3 01/50] Automatic date update in version.in Tom Tromey
2023-02-13 3:24 ` Tom Tromey
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).