Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: "Pierre Muller" <muller@ics.u-strasbg.fr>
To: <gdb-patches@sourceware.org>
Subject: RE: [RFC/RFA] Allow cygwin native to compile with 	--enable-64-bit-bfd
Date: Mon, 26 Nov 2007 09:12:00 -0000	[thread overview]
Message-ID: <000001c8300c$8446c370$8cd44a50$@u-strasbg.fr> (raw)
In-Reply-To: <20071125221238.GB10356@ednor.casa.cgf.cx>

> -----Original Message-----
> From: gdb-patches-owner@sourceware.org [mailto:gdb-patches-
> owner@sourceware.org] On Behalf Of Christopher Faylor
> Sent: Sunday, November 25, 2007 11:13 PM
> To: gdb-patches@sourceware.org
> Subject: Re: [RFC/RFA] Allow cygwin native to compile with --enable-64-
> bit-bfd
> 
> On Sun, Nov 25, 2007 at 02:08:23PM -0500, Daniel Jacobowitz wrote:
> >On Sun, Nov 25, 2007 at 12:32:08PM -0500, Christopher Faylor wrote:
> >> On Sat, Nov 24, 2007 at 05:47:27PM -0500, Daniel Jacobowitz wrote:
> >> >On Sat, Nov 24, 2007 at 04:07:08PM -0500, Christopher Faylor wrote:
> >> >> >   if (!target_read_string
> >> >> >-    ((CORE_ADDR) current_event.u.DebugString.lpDebugStringData,
> &s, 1024,
> >> >> >0)
> >> >> >+    ((CORE_ADDR) addr, &s, 1024, 0)
> >> >>
> >> >> How can coercing something to uintptr_t and then to CORE_ADDR
> achieve
> >> >> anything?  How does the double coercion help?
> >> >
> >> >Just the warning.  CORE_ADDR will be long long,
> >> >current_event.u.DebugString.lpDebugStringData will apparently be a
> pointer.
> >>
> >> And the warning is?
> >
> >Cast from pointer to integer of different size.  Casts are the way
> >we've handled it elsewhere in GDB, but I wouldn't complain about a
> >wrapper; casting host pointers to CORE_ADDRs is an action we try to
> >keep to a minimum anyway.
> 
> I wouldn't mind a double cast either, if there is precedent for that.

  I didn't find many double typecast in gdb directory:
grep "([a-zA-Z0-9 ]*) *([a-zA-Z0-9 ]*)" *nat* 
only found one occurrence:
spu-linux-nat.c:  return (ULONGEST) (unsigned long) res;
and this does not even seem to be a pointer<->integer cast...

  Please remember that my C knowledge is mainly limited to
the gdb sources themselves...
  so if I have a CORE_ADDR that could be 64 bit
and I want to cast it to a pointer, I should use
  (LPVOID) (uintptr_t) core_addr
and if I have a win32 API pointer that I want to
convert to a CORE_ADDR, I should use
  (CORE_ADDR) (uintptr_t) pointer_var.

  My patch contained two conversions of the first type and
four of the second type (all with the same memaddr variable)
are macros really useful? Maybe to avoid future
similar problems...

  If we go for macros, I have no idea how to name those.
  
#define CORE_ADDR_TO_POINTER (LPVOID) (uintptr_t)
and
#define POINTER_TO_CORE_ADDR (CORE_ADDR) (uintptr_t)

I don't know if more braces are needed or not...

  It's probably best to still use uintptr_t as 
Pedro was talking about trying to support win64, no?

Pierre




  reply	other threads:[~2007-11-26  9:12 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-11-23  8:50 Pierre Muller
2007-11-24 21:07 ` Christopher Faylor
2007-11-24 22:47   ` Daniel Jacobowitz
2007-11-25 17:32     ` Christopher Faylor
2007-11-25 19:08       ` Daniel Jacobowitz
2007-11-25 22:12         ` Christopher Faylor
2007-11-26  9:12           ` Pierre Muller [this message]
2007-11-26 15:18             ` Ulrich Weigand
2007-11-29 10:11           ` [RFA v2] " Pierre Muller
2007-12-02  2:43             ` Christopher Faylor
2007-12-02  4:00               ` Daniel Jacobowitz
2007-12-03 15:18                 ` [RFA v3] " Pierre Muller
2007-12-06  9:23                   ` Christopher Faylor
2007-12-06 14:06                     ` Pierre Muller

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='000001c8300c$8446c370$8cd44a50$@u-strasbg.fr' \
    --to=muller@ics.u-strasbg.fr \
    --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