This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: g++ pointer tracking question


>>>>> "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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]