This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: g++ pointer tracking question
- From: Jason Merrill <jason at redhat dot com>
- To: Steve Ellcey <sje at cup dot hp dot com>
- Cc: gcc at gcc dot gnu dot org
- Date: Wed, 15 May 2002 23:19:35 +0100
- Subject: Re: g++ pointer tracking question
- References: <200205152056.NAA27988@hpsje.cup.hp.com>
>>>>> "Steve" == Steve Ellcey <sje@cup.hp.com> writes:
> Now, I think the '/f' on register 341 means that frame_related is set
> which is what is used to say that REG_POINTER is true. I.e. we are
> claiming that 341 contains a pointer to memory. In fact in0 and
> register 341 actually just contain the offset of ix within the structure
> A. I think passing an offset (and not an address) as the argument is
> the right thing to do but then we shouldn't be setting REG_POINTER to
> TRUE, should we? Can somone tell me if I passing an offset is in fact
> right? If so should REG_POINTER for reg 341 be set to TRUE?
Passing an offset is right. REG_POINTER should not be true, but I wouldn't
expect it to break anything. The problem is that the C++ frontend uses
POINTER_TYPE to describe pointer-to-member types; this is conceptually
wrong, but nobody has gotten around to fixing it yet.
I think your bug lies elsewhere.
Jason