Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Jim Blandy <jimb@codesourcery.com>
To: gdb-patches@sourceware.org
Subject: Re: Now I know why we used to swap builtin_type_void.
Date: Wed, 06 Dec 2006 20:04:00 -0000	[thread overview]
Message-ID: <m33b7srds8.fsf@codesourcery.com> (raw)
In-Reply-To: <20061206195227.GA9228@nevyn.them.org> (Daniel Jacobowitz's message of "Wed, 6 Dec 2006 14:52:27 -0500")


Daniel Jacobowitz <drow@false.org> writes:
> (top-gdb) p *builtin_type_void_data_ptr
> $24 = {pointer_type = 0x0, reference_type = 0x0, chain = 0x7b50d0,
>   instance_flags = 0, length = 8, main_type = 0x7b5100}
> (top-gdb) p current_gdbarch.ptr_bit
> $25 = 32
>
> Because we didn't swap out "void", we followed the cached pointer link
> in builtin_type_void when we tried to create a pointer to void.  My
> initial default gdbarch was 64-bit, because I built a 64-bit GDB
> binary.  So the cached pointer type is 64-bit.
>
> This is a mess.  I think we may need to revert the builtin_type_void
> patch unless you have a better idea.

I see --- because types point to their pointer types, if we need to
swap pointer types, we must also swap target types.

Why doesn't the same logic apply to the other types created in
_initialize_gdbtypes?  I believe they're never referred to by debug
information, and the user has no way to refer to them from the command
line, so that keeps us out of trouble in those cases.  But if some
architecture-specific code ever calls lookup_pointer_type on them,
won't we have the same problem you've discovered above with void?

I'll revert the patch.  It was just a cleanup; I don't actually need
it for anything.


  reply	other threads:[~2006-12-06 20:04 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-12-06 19:52 Daniel Jacobowitz
2006-12-06 20:04 ` Jim Blandy [this message]
2006-12-06 20:07   ` Daniel Jacobowitz
2006-12-06 20:15 ` Jim Blandy

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=m33b7srds8.fsf@codesourcery.com \
    --to=jimb@codesourcery.com \
    --cc=gdb-patches@sourceware.org \
    /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