From: Nick Roberts <nickrob@snap.net.nz>
To: Vladimir Prus <ghost@cs.msu.su>
Cc: Daniel Jacobowitz <drow@false.org>, gdb-patches@sources.redhat.com
Subject: Re: MI: fix base members in references
Date: Mon, 11 Dec 2006 08:03:00 -0000 [thread overview]
Message-ID: <17789.4026.692612.610695@kahikatea.snap.net.nz> (raw)
In-Reply-To: <200612111021.24255.ghost@cs.msu.su>
> > All my patch does is add an extra level of dereferencing to the relevant
> > cplus_* functions. Presumably you could also have references to
> > references to
>
> Fortnately, references to references do no exist.
>
> > pointers, pointers to references to pointers etc
>
> Likewise, pointers to references do not exist either.
OK, thats good. It keeps things simple.
> > so maybe the change should
> > look something like:
> >
> > while (TYPE_CODE (type) == TYPE_CODE_PTR)
> > || TYPE_CODE (type) == TYPE_CODE_REF)
> > type = get_target_type (type);
> >
> > but I suspect the business of fake children would make this awkward.
>
> Then, if you have a pointer to pointer to pointer to struct, you'll collapse
> the inner pointers, which might not be good idea.
But as you point out, its not necessary anyway.
> I think the best short time fix might be to modify get_type_deref to first
> check for reference, and after that check for pointer.
That would do what my patch already does, but putting it all once in
get_type_deref would be cleaner, of course.
> But what irks me most is that we have four functions that encapsulate
> knowledge of number of children and how to get to them:
>
> *_number_of_children
> *_name_of_child
> *_value_of_child
> *_type_of_child
>
> and all those functions are present for C and for C++. I'm thinking we can
> collapse the last three functions into one, seriously cutting down on code
> duplication.
Yes but this is a separate issue and IMO should be a separate patch.
--
Nick http://www.inet.net.nz/~nickrob
next prev parent reply other threads:[~2006-12-11 8:03 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-12-09 21:27 Nick Roberts
2006-12-09 21:38 ` Vladimir Prus
2006-12-09 21:50 ` Nick Roberts
2006-12-09 22:15 ` Vladimir Prus
2006-12-10 4:19 ` Nick Roberts
2006-12-10 11:24 ` Vladimir Prus
2006-12-10 20:09 ` Nick Roberts
2006-12-10 20:42 ` Daniel Jacobowitz
2006-12-10 21:20 ` Nick Roberts
2006-12-11 2:35 ` Daniel Jacobowitz
2006-12-11 5:58 ` Nick Roberts
2006-12-11 7:22 ` Vladimir Prus
2006-12-11 8:03 ` Nick Roberts [this message]
-- strict thread matches above, loose matches on Subject: below --
2006-11-29 12:56 Vladimir Prus
2006-12-05 13:23 ` Vladimir Prus
2006-12-05 21:32 ` Jim Blandy
2006-12-05 20:59 ` Nick Roberts
2006-12-05 21:12 ` Daniel Jacobowitz
2006-12-05 21:25 ` Nick Roberts
2006-12-05 21:47 ` Daniel Jacobowitz
2006-12-05 22:27 ` Jim Blandy
2006-12-06 8:44 ` Vladimir Prus
2006-12-07 2:22 ` Nick Roberts
2006-12-07 5:24 ` Nick Roberts
2006-12-07 6:22 ` Vladimir Prus
2006-12-07 6:53 ` Vladimir Prus
2006-12-07 10:36 ` Nick Roberts
2006-12-08 12:53 ` Vladimir Prus
2006-12-09 22:10 ` Vladimir Prus
2006-12-05 20:45 ` Daniel Jacobowitz
2006-12-06 9:04 ` Vladimir Prus
2006-12-06 20:29 ` Joel Brobecker
2006-12-06 20:33 ` Vladimir Prus
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=17789.4026.692612.610695@kahikatea.snap.net.nz \
--to=nickrob@snap.net.nz \
--cc=drow@false.org \
--cc=gdb-patches@sources.redhat.com \
--cc=ghost@cs.msu.su \
/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