This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
RE: Tail recursion problem (ptr_mode != Pmode)
- From: "NASET,JEFFREY (HP-Richardson,ex1)" <jeffrey dot naset at hp dot com>
- To: 'Richard Henderson' <rth at redhat dot com>,Jeffrey Naset <jnaset at rsn dot hp dot com>
- Cc: gcc at gcc dot gnu dot org
- Date: Fri, 14 Mar 2003 18:22:21 -0500
- Subject: RE: Tail recursion problem (ptr_mode != Pmode)
I don't think it's fixed by that (the bootstrap failure doesn't involve a
struct return and does involve tail recursion), but I do believe it would be
fixed by this patch:
http://gcc.gnu.org/ml/gcc-patches/2003-03/msg01352.html
-- Jeff
> -----Original Message-----
> From: Richard Henderson [mailto:rth at redhat dot com]
> Sent: Friday, March 14, 2003 5:08 PM
> To: Jeffrey Naset
> Cc: gcc at gcc dot gnu dot org
> Subject: Re: Tail recursion problem (ptr_mode != Pmode)
>
>
> On Thu, Mar 13, 2003 at 03:52:07PM -0600, Jeffrey Naset wrote:
> > In this case, output_mangled_typename takes two args
> (both pointers),
> > and they are swizzled at the very top of the function
> (probably in the
> > prologue). Later, when a recursive call is made, the args
> are loaded
> > (unswizzled, per the calling conventions) and a branch is
> made, to a
> > point just after where the pointers are swizzled. Then the program
> > dies trying to reference memory location in a register that doesn't
> > have a valid 64-bit pointer value. (It is a valid 32-bit
> pointer)
> > [Pmode for the architecture is DImode, ptr_mode in this
> case is SImode]
>
> I don't suppose this is fixed by
>
> http://gcc.gnu.org/ml/gcc-patches/2003-03/msg01324.html
>
>
> r~
>