Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Pedro Alves <palves@redhat.com>
To: Tom Tromey <tom@tromey.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [RFA v2 10/17] C++ify mi_parse
Date: Thu, 13 Apr 2017 02:36:00 -0000	[thread overview]
Message-ID: <396349bf-423d-da66-8b14-95dd86b6b148@redhat.com> (raw)
In-Reply-To: <87pogh5sxs.fsf@tromey.com>

On 04/12/2017 08:25 PM, Tom Tromey wrote:
>>>>>> "Pedro" == Pedro Alves <palves@redhat.com> writes:
> 
> Pedro> FYI, I just now tried the hack below against master, and
> Pedro> that caught a few other cases that shouldn't have been
> Pedro> using memset for initialization.
> [...]
> Pedro> I wonder how bad would it be to put this hack in master.  Guess
> Pedro> we could always add it behind an #if 0 at least, to make it easy
> Pedro> to enable for quick checking?
> 
> I think it would be helpful if the compiler could warn about missing
> member initializations in a constructor.

Yeah, that would be nice.  In principle, -Wuninitialized would catch
those too, and be quiet if you have some field that you do want to
be left uninitialized in the ctor (e.g., some big array lazily
filled in).  (And for OOL ctors, there's -flto.)
There are unfortunately a number of bugs with it, though.
The last I ran into was:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79658

> That would make something like
> the mi_parse change more robust, which I think is the reason for the
> memsets in the first place.

Yeah.  The memsets become invalid as soon as your ctor
does something non-trivial though, we really need to zap them
sooner than later.  My current thinking is that in-class initialization
helps by making it easier to check whether all fields have default
initialization.

I've posted a series fixing the issues the hack caught, and some more,
along with a better version of the hack, here:

 https://sourceware.org/ml/gdb-patches/2017-04/msg00378.html

Thanks,
Pedro Alves


  reply	other threads:[~2017-04-13  2:36 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-11 15:02 [RFA v2 00/17] miscellaneous C++-ification Tom Tromey
2017-04-11 15:01 ` [RFA v2 12/17] Use std::vector in reread_symbols Tom Tromey
2017-04-11 15:01 ` [RFA v2 05/17] Change increment_reading_symtab to return a scoped_restore Tom Tromey
2017-04-12 11:16   ` Pedro Alves
2017-04-12 14:31     ` Tom Tromey
2017-04-11 15:01 ` [RFA v2 02/17] Introduce command_line_up Tom Tromey
2017-04-11 15:01 ` [RFA v2 17/17] Change linespec_result::location to be an event_location_up Tom Tromey
2017-04-12  2:39   ` Simon Marchi
2017-04-11 15:01 ` [RFA v2 04/17] Introduce gdb_dlhandle_up Tom Tromey
2017-04-11 15:01 ` [RFA v2 16/17] Add a constructor and destructor to linespec_result Tom Tromey
2017-04-12  2:25   ` Simon Marchi
2017-04-12 14:30     ` Tom Tromey
2017-04-11 15:01 ` [RFA v2 09/17] Remove some cleanups from location.c Tom Tromey
2017-04-11 15:01 ` [RFA v2 11/17] Use scoped_restore in more places Tom Tromey
2017-04-11 15:01 ` [RFA v2 01/17] Introduce event_location_up Tom Tromey
2017-04-11 15:01 ` [RFA v2 10/17] C++ify mi_parse Tom Tromey
2017-04-12 11:26   ` Pedro Alves
2017-04-12 16:15     ` Tom Tromey
2017-04-12 16:19       ` Pedro Alves
2017-04-12 18:05         ` Tom Tromey
2017-04-12 18:37           ` Pedro Alves
2017-04-12 19:25             ` Tom Tromey
2017-04-13  2:36               ` Pedro Alves [this message]
2017-04-13 13:44                 ` Tom Tromey
2017-04-11 15:02 ` [RFA v2 13/17] Use std::vector in find_instruction_backward Tom Tromey
2017-04-11 15:02 ` [RFA v2 07/17] Fix up wchar_iterator comment Tom Tromey
2017-04-11 15:02 ` [RFA v2 08/17] Remove some cleanups from gnu-v3-abi.c Tom Tromey
2017-04-11 15:21 ` [RFA v2 06/17] Remove cleanup_iconv Tom Tromey
2017-04-12 11:19   ` Pedro Alves
2017-04-12 15:05     ` Tom Tromey
2017-04-11 15:21 ` [RFA v2 03/17] Change find_pcs_for_symtab_line to return a std::vector Tom Tromey
2017-04-11 15:22 ` [RFA v2 14/17] Use std::vector in compile-loc2c.c Tom Tromey
2017-04-11 15:23 ` [RFA v2 15/17] Change breakpoint event locations to event_location_up Tom Tromey
2017-04-12  2:25   ` Simon Marchi
2017-04-12  2:49 ` [RFA v2 00/17] miscellaneous C++-ification Simon Marchi
2017-04-12 11:38   ` Pedro Alves

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=396349bf-423d-da66-8b14-95dd86b6b148@redhat.com \
    --to=palves@redhat.com \
    --cc=gdb-patches@sourceware.org \
    --cc=tom@tromey.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