* RFA: correctly compute addresses of embedded objects
@ 2001-05-18 17:29 Jim Blandy
2001-05-18 18:10 ` Daniel Berlin
0 siblings, 1 reply; 3+ messages in thread
From: Jim Blandy @ 2001-05-18 17:29 UTC (permalink / raw)
To: gdb-patches
2001-05-17 Jim Blandy <jimb@redhat.com>
* valops.c (value_addr): Don't include VALUE_EMBEDDED_OFFSET in
the pointer value we return. It should point at the embedded
object ARG1 represents, not at the enclosing object ARG1 might
also be holding.
*** gdb/valops.c.base~ Tue Apr 24 13:50:06 2001
--- gdb/valops.c Thu May 17 14:58:14 2001
***************
*** 960,967 ****
/* Get target memory address */
arg2 = value_from_pointer (lookup_pointer_type (VALUE_TYPE (arg1)),
(VALUE_ADDRESS (arg1)
! + VALUE_OFFSET (arg1)
! + VALUE_EMBEDDED_OFFSET (arg1)));
/* This may be a pointer to a base subobject; so remember the
full derived object's type ... */
--- 960,966 ----
/* Get target memory address */
arg2 = value_from_pointer (lookup_pointer_type (VALUE_TYPE (arg1)),
(VALUE_ADDRESS (arg1)
! + VALUE_OFFSET (arg1)));
/* This may be a pointer to a base subobject; so remember the
full derived object's type ... */
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: RFA: correctly compute addresses of embedded objects
2001-05-18 17:29 RFA: correctly compute addresses of embedded objects Jim Blandy
@ 2001-05-18 18:10 ` Daniel Berlin
2001-05-20 13:06 ` Jim Blandy
0 siblings, 1 reply; 3+ messages in thread
From: Daniel Berlin @ 2001-05-18 18:10 UTC (permalink / raw)
To: Jim Blandy; +Cc: gdb-patches
Jim Blandy <jimb@zwingli.cygnus.com> writes:
> 2001-05-17 Jim Blandy <jimb@redhat.com>
>
> * valops.c (value_addr): Don't include VALUE_EMBEDDED_OFFSET in
> the pointer value we return. It should point at the embedded
> object ARG1 represents, not at the enclosing object ARG1 might
> also be holding.
Errr, value_addr gives back something for which arg1 is the contents.
We then set the VALUE_POINTED_TO_OFFSET to the VALUE_EMBEDDED_OFFSET of
arg1, to keep track of the relative location of the subobject in the
full object.
In other words, the embedded object is at the address of the enclosing
object + the embedded offset .
So the actual pointer *should* include the embedded offset, because
this is where the embedded object really is.
Otherwise, you've not only made it not point to the embedded object,
you've screwed the POINTED_TO_OFFSET calculation as well.
I'm not quite sure of what problem you are trying to fix, maybe if you
could throw me a testcase?
--
"I owed my friend George $25. For about three weeks I owed it to
him. The whole time I had the money on me -- he didn't know it.
Walking through New York City, 2:30 in the morning and got held
up. He said, "Gimme all your money." I said, "Wait a minute."
I said, "George, here's the 25 dollars I owe you." The the
thief took a thousand dollars out of his own money and he gave
it to George. At gunpoint made me borrow a thousand dollars
from George.
"-Steven Wright
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: RFA: correctly compute addresses of embedded objects
2001-05-18 18:10 ` Daniel Berlin
@ 2001-05-20 13:06 ` Jim Blandy
0 siblings, 0 replies; 3+ messages in thread
From: Jim Blandy @ 2001-05-20 13:06 UTC (permalink / raw)
To: Daniel Berlin; +Cc: gdb-patches
Dan's correct --- this patch is wrong. I withdraw it.
Daniel Berlin <dan@cgsoftware.com> writes:
> Jim Blandy <jimb@zwingli.cygnus.com> writes:
> > 2001-05-17 Jim Blandy <jimb@redhat.com>
> >
> > * valops.c (value_addr): Don't include VALUE_EMBEDDED_OFFSET in
> > the pointer value we return. It should point at the embedded
> > object ARG1 represents, not at the enclosing object ARG1 might
> > also be holding.
>
> Errr, value_addr gives back something for which arg1 is the
> contents.
>
> We then set the VALUE_POINTED_TO_OFFSET to the VALUE_EMBEDDED_OFFSET of
> arg1, to keep track of the relative location of the subobject in the
> full object.
> In other words, the embedded object is at the address of the enclosing
> object + the embedded offset .
> So the actual pointer *should* include the embedded offset, because
> this is where the embedded object really is.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2001-05-20 13:06 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-05-18 17:29 RFA: correctly compute addresses of embedded objects Jim Blandy
2001-05-18 18:10 ` Daniel Berlin
2001-05-20 13:06 ` Jim Blandy
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox