From: Joel Brobecker <brobecker@adacore.com>
To: Yao Qi <yao@codesourcery.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH] Cast to uintptr_t when calling ptrace32 on aix
Date: Mon, 06 Jan 2014 15:57:00 -0000 [thread overview]
Message-ID: <20140106155717.GB3802@adacore.com> (raw)
In-Reply-To: <1388821701-8011-1-git-send-email-yao@codesourcery.com>
> The machine I used is gcc111 in gcc compile farm. Didn't run
> regression testing. Is it OK?
>
> gdb:
>
> 2014-01-04 Yao Qi <yao@codesourcery.com>
>
> * aix-thread.c (pdc_read_regs): Cast parameter to uintptr_t
> first.
> (pdc_write_regs): Likewise.
> (fetch_regs_kernel_thread): Likewise.
> (store_regs_kernel_thread): Likewise.
Thank you, Yao. I tested your patch with AdaCore's gdb testsuite,
and found no regression.
Some of the lines are now exceeding the hard limit (80 characters),
and need to be folded. Apart from David's suggestion, which we can
look at independently, the patch looks OK to me.
> ---
> gdb/aix-thread.c | 37 ++++++++++++++++++++++---------------
> 1 files changed, 22 insertions(+), 15 deletions(-)
>
> diff --git a/gdb/aix-thread.c b/gdb/aix-thread.c
> index 79adef0..a6333f9 100644
> --- a/gdb/aix-thread.c
> +++ b/gdb/aix-thread.c
> @@ -363,7 +363,8 @@ pdc_read_regs (pthdb_user_t user,
> }
> else
> {
> - if (!ptrace32 (PTT_READ_GPRS, tid, gprs32, 0, NULL))
> + if (!ptrace32 (PTT_READ_GPRS, tid, (addr_ptr) (uintptr_t) gprs32,
> + 0, NULL))
> memset (gprs32, 0, sizeof (gprs32));
> memcpy (context->gpr, gprs32, sizeof(gprs32));
> }
> @@ -372,7 +373,7 @@ pdc_read_regs (pthdb_user_t user,
> /* Floating-point registers. */
> if (flags & PTHDB_FLAG_FPRS)
> {
> - if (!ptrace32 (PTT_READ_FPRS, tid, (addr_ptr) fprs, 0, NULL))
> + if (!ptrace32 (PTT_READ_FPRS, tid, (addr_ptr) (uintptr_t) fprs, 0, NULL))
> memset (fprs, 0, sizeof (fprs));
> memcpy (context->fpr, fprs, sizeof(fprs));
> }
> @@ -389,7 +390,7 @@ pdc_read_regs (pthdb_user_t user,
> }
> else
> {
> - if (!ptrace32 (PTT_READ_SPRS, tid, (addr_ptr) &sprs32, 0, NULL))
> + if (!ptrace32 (PTT_READ_SPRS, tid, (addr_ptr) (uintptr_t) &sprs32, 0, NULL))
> memset (&sprs32, 0, sizeof (sprs32));
> memcpy (&context->msr, &sprs32, sizeof(sprs32));
> }
> @@ -424,13 +425,13 @@ pdc_write_regs (pthdb_user_t user,
> ptrace64aix (PTT_WRITE_GPRS, tid,
> (unsigned long) context->gpr, 0, NULL);
> else
> - ptrace32 (PTT_WRITE_GPRS, tid, (addr_ptr) context->gpr, 0, NULL);
> + ptrace32 (PTT_WRITE_GPRS, tid, (addr_ptr) (uintptr_t) context->gpr, 0, NULL);
> }
>
> /* Floating-point registers. */
> if (flags & PTHDB_FLAG_FPRS)
> {
> - ptrace32 (PTT_WRITE_FPRS, tid, (addr_ptr) context->fpr, 0, NULL);
> + ptrace32 (PTT_WRITE_FPRS, tid, (addr_ptr) (uintptr_t) context->fpr, 0, NULL);
> }
>
> /* Special-purpose registers. */
> @@ -443,7 +444,7 @@ pdc_write_regs (pthdb_user_t user,
> }
> else
> {
> - ptrace32 (PTT_WRITE_SPRS, tid, (addr_ptr) &context->msr, 0, NULL);
> + ptrace32 (PTT_WRITE_SPRS, tid, (addr_ptr) (uintptr_t) &context->msr, 0, NULL);
> }
> }
> return 0;
> @@ -1250,7 +1251,7 @@ fetch_regs_kernel_thread (struct regcache *regcache, int regno,
> }
> else
> {
> - if (!ptrace32 (PTT_READ_GPRS, tid, (addr_ptr) gprs32, 0, NULL))
> + if (!ptrace32 (PTT_READ_GPRS, tid, (addr_ptr) (uintptr_t) gprs32, 0, NULL))
> memset (gprs32, 0, sizeof (gprs32));
> for (i = 0; i < ppc_num_gprs; i++)
> supply_reg32 (regcache, tdep->ppc_gp0_regnum + i, gprs32[i]);
> @@ -1264,7 +1265,7 @@ fetch_regs_kernel_thread (struct regcache *regcache, int regno,
> || (regno >= tdep->ppc_fp0_regnum
> && regno < tdep->ppc_fp0_regnum + ppc_num_fprs)))
> {
> - if (!ptrace32 (PTT_READ_FPRS, tid, (addr_ptr) fprs, 0, NULL))
> + if (!ptrace32 (PTT_READ_FPRS, tid, (addr_ptr) (uintptr_t) fprs, 0, NULL))
> memset (fprs, 0, sizeof (fprs));
> supply_fprs (regcache, fprs);
> }
> @@ -1286,7 +1287,8 @@ fetch_regs_kernel_thread (struct regcache *regcache, int regno,
> {
> struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
>
> - if (!ptrace32 (PTT_READ_SPRS, tid, (addr_ptr) &sprs32, 0, NULL))
> + if (!ptrace32 (PTT_READ_SPRS, tid, (addr_ptr) (uintptr_t) &sprs32,
> + 0, NULL))
> memset (&sprs32, 0, sizeof (sprs32));
> supply_sprs32 (regcache, sprs32.pt_iar, sprs32.pt_msr, sprs32.pt_cr,
> sprs32.pt_lr, sprs32.pt_ctr, sprs32.pt_xer,
> @@ -1581,9 +1583,11 @@ store_regs_kernel_thread (const struct regcache *regcache, int regno,
> else
> {
> /* Pre-fetch: some regs may not be in the cache. */
> - ptrace32 (PTT_READ_GPRS, tid, (addr_ptr) gprs32, 0, NULL);
> + ptrace32 (PTT_READ_GPRS, tid, (addr_ptr) (uintptr_t) gprs32,
> + 0, NULL);
> fill_gprs32 (regcache, gprs32);
> - ptrace32 (PTT_WRITE_GPRS, tid, (addr_ptr) gprs32, 0, NULL);
> + ptrace32 (PTT_WRITE_GPRS, tid, (addr_ptr) (uintptr_t) gprs32,
> + 0, NULL);
> }
> }
>
> @@ -1595,9 +1599,10 @@ store_regs_kernel_thread (const struct regcache *regcache, int regno,
> && regno < tdep->ppc_fp0_regnum + ppc_num_fprs)))
> {
> /* Pre-fetch: some regs may not be in the cache. */
> - ptrace32 (PTT_READ_FPRS, tid, (addr_ptr) fprs, 0, NULL);
> + ptrace32 (PTT_READ_FPRS, tid, (addr_ptr) (uintptr_t) fprs,
> + 0, NULL);
> fill_fprs (regcache, fprs);
> - ptrace32 (PTT_WRITE_FPRS, tid, (addr_ptr) fprs, 0, NULL);
> + ptrace32 (PTT_WRITE_FPRS, tid, (addr_ptr) (uintptr_t) fprs, 0, NULL);
> }
>
> /* Special-purpose registers. */
> @@ -1629,7 +1634,8 @@ store_regs_kernel_thread (const struct regcache *regcache, int regno,
> gdb_assert (sizeof (sprs32.pt_iar) == 4);
>
> /* Pre-fetch: some registers won't be in the cache. */
> - ptrace32 (PTT_READ_SPRS, tid, (addr_ptr) &sprs32, 0, NULL);
> + ptrace32 (PTT_READ_SPRS, tid, (addr_ptr) (uintptr_t) &sprs32,
> + 0, NULL);
>
> fill_sprs32 (regcache, &tmp_iar, &tmp_msr, &tmp_cr, &tmp_lr,
> &tmp_ctr, &tmp_xer, &tmp_fpscr);
> @@ -1648,7 +1654,8 @@ store_regs_kernel_thread (const struct regcache *regcache, int regno,
> regcache_raw_collect (regcache, tdep->ppc_mq_regnum,
> &sprs32.pt_mq);
>
> - ptrace32 (PTT_WRITE_SPRS, tid, (addr_ptr) &sprs32, 0, NULL);
> + ptrace32 (PTT_WRITE_SPRS, tid, (addr_ptr) (uintptr_t) &sprs32,
> + 0, NULL);
> }
> }
> }
> --
> 1.7.7.6
--
Joel
next prev parent reply other threads:[~2014-01-06 15:57 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-04 7:50 Yao Qi
2014-01-06 15:57 ` Joel Brobecker [this message]
2014-01-06 16:11 ` Joel Brobecker
2014-01-07 10:32 ` Joel Brobecker
2014-01-07 13:07 ` Yao Qi
2014-01-05 16:22 David Edelsohn
2014-01-06 1:14 ` Yao Qi
2014-01-06 1:21 ` David Edelsohn
2014-01-06 16:48 ` Tom Tromey
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=20140106155717.GB3802@adacore.com \
--to=brobecker@adacore.com \
--cc=gdb-patches@sourceware.org \
--cc=yao@codesourcery.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