This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]