MI: fix base members in references

Vladimir Prus ghost@cs.msu.su
Sat Dec 9 22:10:00 GMT 2006


Nick Roberts wrote:

> >                                                   I guess we need to
> first > commit the primary references patch and then fix
> c_number_of_children. Not > that I find references to pointers very common
> thing, but better be correct.
> 
> The patch below seems to fix it for me.  Its a diff on 1.63 with your
> yet to be committed changes.

> *** /home/nickrob/src6/gdb/varobj.c~    2006-12-07 10:54:18.000000000
> +1300 --- /home/nickrob/src6/gdb/varobj.c     2006-12-07
> 23:11:34.000000000 +1300 *************** cplus_number_of_children (struct
> varobj *** 2179,2184 ****
> --- 2179,2186 ----
> if (!CPLUS_FAKE_CHILD (var))
> {
> type = get_type_deref (var);
> +       if (TYPE_CODE (type) == TYPE_CODE_PTR)
> +       type = get_target_type (type);


I must admit I have big troubles reading context diffs. Will it be a problem
for you to send diffs in unified format?

If I read the patch correctly, you add two lines of code? Given that
get_type_deref is defined like this:

static struct type *
get_type_deref (struct varobj *var)
{
  struct type *type;

  type = get_type (var);

  if (type != NULL && (TYPE_CODE (type) == TYPE_CODE_PTR
                       || TYPE_CODE (type) == TYPE_CODE_REF))
    type = get_target_type (type);

  return type;
}

does the code you've added ever does anything?

- Volodya




More information about the Gdb-patches mailing list