From: Pedro Alves <palves@redhat.com>
To: Simon Marchi <simon.marchi@ericsson.com>, gdb-patches@sourceware.org
Subject: Re: [PATCH] Add casts for legitimate integer to enum conversions
Date: Fri, 07 Aug 2015 02:37:00 -0000 [thread overview]
Message-ID: <55C3B9B0.5080202@redhat.com> (raw)
In-Reply-To: <1438889665-25655-1-git-send-email-simon.marchi@ericsson.com>
On 08/06/2015 08:34 PM, Simon Marchi wrote:
> This patch is mostly extracted from Pedro's C++ branch.
Thanks a lot again for doing this. While patches are in the branch,
you're doing a lot of work to clean them up, split/merge them, writing
rationales, etc. Much appreciated. And when you reach the same
conclusions I did, makes me much more confident to march ahead with
the patches quickly.
> It adds explicit
> casts from integer to enum types, where it is really the intention to do
> so. This could be because we are ...
>
> * iterating on enum values (we need to iterate on an equivalent integer)
> * converting from a value read from bytes (dwarf attribute, agent
> expression opcode) to the equivalent enum
> * reading the equivalent integer value from another language (Python/Guile)
>
> An exception to that is the casts in regcache.c. It seems to me like
> struct regcache's register_status field could be a pointer to an array of
> enum register_status. Doing so would waste a bit of memory (4 bytes
> used by the enum vs 1 byte used by the current signed char, for each
> register). If we switch to C++11 one day, we can define the underlying
> type of an enum type, so we could have the best of both worlds.
Yeah, I had similar thoughts, and had decided to leave it be until
we have C++11.
>
> gdb/ChangeLog:
>
> * arm-tdep.c (set_fp_model_sfunc): Add cast from integer to enum.
> (arm_set_abi): Likewise.
> * ax-general.c (ax_print): Likewise.
> * c-exp.y (exp : string_exp): Likewise.
> * compile/compile-loc2c.c (compute_stack_depth_worker): Likewise.
> (do_compile_dwarf_expr_to_c): Likewise.
> * cp-name-parser.y (demangler_special : DEMANGLER_SPECIAL start):
> Likewise.
> * dwarf2expr.c (execute_stack_op): Likewise.
> * dwarf2loc.c (dwarf2_compile_expr_to_ax): Likewise.
> (disassemble_dwarf_expression): Likewise.
> * dwarf2read.c (dwarf2_add_member_fn): Likewise.
> (read_array_order): Likewise.
> (abbrev_table_read_table): Likewise.
> (read_attribute_value): Likewise.
> (skip_unknown_opcode): Likewise.
> (dwarf_decode_macro_bytes): Likewise.
> (dwarf_decode_macros): Likewise.
> * eval.c (value_f90_subarray): Likewise.
> * guile/scm-param.c (gdbscm_make_parameter): Likewise.
> * i386-linux-tdep.c (i386_canonicalize_syscall): Likewise.
> * infrun.c (handle_command): Likewise.
> * memory-map.c (memory_map_start_memory): Likewise.
> * osabi.c (set_osabi): Likewise.
> * parse.c (operator_length_standard): Likewise.
> * ppc-linux-tdep.c (ppc_canonicalize_syscall): Likewise, and use
> single return point.
> * python/py-frame.c (gdbpy_frame_stop_reason_string): Likewise.
> * python/py-symbol.c (gdbpy_lookup_symbol): Likewise.
> (gdbpy_lookup_global_symbol): Likewise.
> * record-full.c (record_full_restore): Likewise.
> * regcache.c (regcache_register_status): Likewise.
> (regcache_raw_read): Likewise.
> (regcache_cooked_read): Likewise.
> * rs6000-tdep.c (powerpc_set_vector_abi): Likewise.
> * symtab.c (initialize_ordinary_address_classes): Likewise.
> * target-debug.h (target_debug_print_signals): Likewise.
> * utils.c (do_restore_current_language): Likewise.
LGTM.
Thanks,
Pedro Alves
prev parent reply other threads:[~2015-08-07 2:37 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-06 19:34 Simon Marchi
2015-08-06 21:25 ` Simon Marchi
2015-08-07 2:37 ` Pedro Alves [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=55C3B9B0.5080202@redhat.com \
--to=palves@redhat.com \
--cc=gdb-patches@sourceware.org \
--cc=simon.marchi@ericsson.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox