Re: [PATCH] Fix mi "-var-create" regression

Joel Brobecker
2012-10-14T17:18:13Z

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