Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
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


      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