This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] Fix mi "-var-create" regression
- From: Joel Brobecker <brobecker at adacore dot com>
- To: Luis Gustavo <luis_gustavo at mentor dot com>
- Cc: gdb-patches at sourceware dot org
- Date: Sun, 14 Oct 2012 10:18:05 -0700
- Subject: Re: [PATCH] Fix mi "-var-create" regression
- References: <5075D4FD.9050900@mentor.com>
Hi Luis,
> 2012-10-10 Luis Machado <lgustavo@codesourcery.com>
>
> * value.c (value_actual_type): Check for TYPE_CODE_VOID
> target types.
I don't feel entirely comfortable approving this patch, not because
I think it's iffy, but just because I don't have a good knowledge
of what is going on for you (RTTI is C++, and I don't follow C++
support). If no one else has the time to officially review your patch
within the next week or so, I will take a deeper look. It does look
reasonable.
I did notice a couple of things (besides the unnecessary parens):
> - if (TYPE_CODE (result) == TYPE_CODE_PTR
> + /* If result's target type is TYPE_CODE_VOID, do not try fetching its rtti
> + type. GDB will try to dereference the void pointer and will throw an
> + error when trying to do so. */
Can you reformat the comment to fit within 70 characters. That's the
soft line limit...
> + if ((TYPE_CODE (result) == TYPE_CODE_PTR
> || TYPE_CODE (result) == TYPE_CODE_REF)
> + && ((TYPE_TARGET_TYPE (result) != NULL)
> + && TYPE_CODE (TYPE_TARGET_TYPE (result)) != TYPE_CODE_VOID))
I don't think that you need to test for the TYPE_TARGET_TYPE, since
you already know that it's either a PTR or REF type, which always
have a TARGET_TYPE.
--
Joel