From: "Ulrich Weigand" <uweigand@de.ibm.com>
To: jan.kratochvil@redhat.com (Jan Kratochvil)
Cc: tromey@redhat.com (Tom Tromey), gdb-patches@sourceware.org
Subject: Re: [patch] [3/5] Types reference counting [make_function_type-objfile]
Date: Fri, 26 Jun 2009 17:12:00 -0000 [thread overview]
Message-ID: <200906261712.n5QHCXOh026222@d12av02.megacenter.de.ibm.com> (raw)
In-Reply-To: <20090626163927.GA14063@host0.dyn.jankratochvil.net> from "Jan Kratochvil" at Jun 26, 2009 06:39:27 PM
Jan Kratochvil wrote:
> > Also, I think the implementation is broken in the "type smashing" case:
> > if there is an incoming type allocated in objfile A, but the argument to
> > make_function_type specifies objfile B,
>
> I do not think it can happen. So far always type A referencing -> type
> B either had the same TYPE_OBJFILE or TYPE_OBJFILE(B) was NULL. Using such
> assertion-checks without facing problems.
>
> As there cannot be a DWARF reference across objfiles (there can be one just
> across CUs) cross-file type references use TYPE_IS_OPAQUE and they get
> resolved each time on dereferencing such reference by calling check_typedef.
Yes, there is no current usage of the make_function_type interface that
does this, and it would indeed be broken. I guess was I was trying to
say is that the new interface that allows to specify an objfile independently
of the target type may appear to invite such incorrect usage ...
But in either case, I agree this should be prevented by assertion checks.
> > Therefore, I'd prefer to fix the two problems mentioned above, and then
> > revert your patch.
>
> If the current rule:
> # So far always type A referencing -> type B had either the same TYPE_OBJFILE
> # or TYPE_OBJFILE(B) was NULL.
>
> will be changed to:
> # Type A referencing -> type B had the same TYPE_OBJFILE.
Mostly. We still can have the case were TYPE_OBJFILE(A) is NULL but
TYPE_OBJFILE(B) is non-NULL, for example where A is a temporary array
and B the element type.
The way I see the invariant is
If Type A references Type B *and* A is objfile-associated
*then* B must be associated to the same objfile
> I only welcome it and sure I agree with reverting my patch afterwards.
Thanks,
Ulrich
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
Ulrich.Weigand@de.ibm.com
next prev parent reply other threads:[~2009-06-26 17:12 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-11 10:22 Jan Kratochvil
2009-04-16 21:43 ` Tom Tromey
2009-05-01 14:44 ` Jan Kratochvil
2009-06-26 13:23 ` Ulrich Weigand
2009-06-26 13:26 ` [rfc] Always use per-objfile types in symbol readers Ulrich Weigand
2009-06-26 13:29 ` [rfc] Fix Java type allocation and revert make_function_type change Ulrich Weigand
2009-06-26 16:12 ` [patch] [3/5] Types reference counting [make_function_type-objfile] Tom Tromey
2009-06-26 17:06 ` Ulrich Weigand
2009-06-26 16:40 ` Jan Kratochvil
2009-06-26 17:12 ` Ulrich Weigand [this message]
2009-06-26 17:24 ` Tom Tromey
2009-06-26 17:36 ` Ulrich Weigand
2009-06-26 18:04 ` Tom Tromey
2009-06-29 13:25 ` Ulrich Weigand
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=200906261712.n5QHCXOh026222@d12av02.megacenter.de.ibm.com \
--to=uweigand@de.ibm.com \
--cc=gdb-patches@sourceware.org \
--cc=jan.kratochvil@redhat.com \
--cc=tromey@redhat.com \
/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