This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [tree-ssa] fix Bugs 15109, 15108, 14472 and most likely 14440
- From: Andrew Pinski <pinskia at physics dot uc dot edu>
- To: Steven Bosscher <stevenb at suse dot de>
- Cc: gcc-patches at gcc dot gnu dot org, Andrew Pinski <pinskia at physics dot uc dot edu>
- Date: Mon, 10 May 2004 00:41:58 -0400
- Subject: Re: [tree-ssa] fix Bugs 15109, 15108, 14472 and most likely 14440
- References: <200405070205.04265.stevenb@suse.de>
On May 6, 2004, at 20:05, Steven Bosscher wrote:
Hi,
* tree-tailcall.c (process_assignment): Look through NOP_EXPRs.
(find_tail_calls): Likewise.
Steven,
This is wrong for 32bit big endian targets and long long's.
This fails on powerpc-apple-darwin (and most likely every 32bit
big endian targets):
long long __attribute__((noinline)) t()
{
return 0xFF00;
}
int __attribute__((noinline)) f()
{
return t();
}
int main()
{
if (f() != 0xFF00)
abort();
return 0;
}
To fix it you most likely just have to check for to see if the return
type of the function
which is being sibcalled is greater than the size (precession) that is
returned.
Thanks,
Andrew Pinski