[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug in GCC 4.4 on sparc64 (was: Re: GNU PSPP 0.6.2pre3 now available)
From: |
Ben Pfaff |
Subject: |
bug in GCC 4.4 on sparc64 (was: Re: GNU PSPP 0.6.2pre3 now available) |
Date: |
Mon, 06 Jul 2009 22:59:50 -0700 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/22.3 (gnu/linux) |
Ben Pfaff <address@hidden> writes:
> I now suspect that this is a problem caused by changes in
> optimization, since float-format.c does some things that should
> be OK but I can imagine a compiler getting wrong (and maybe there
> is some technicality that I have missed so far). Can you try
> building with "-O0" instead of the default "-O2"?
I found out where GCC 4.4 was installed on the GCC compile farm
and managed to isolate the problem, which indeed appears to be a
bug in GCC. When the following test program is built with "gcc
-O2 -m64" or "gcc -O3 -fno-inline -m64" using GCC 4.4.0 on
sparc64, it prints 0, but it should print 12345678.
I have filed this in GCC Bugzilla:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40668
----------------------------------------------------------------------
#include <stdint.h>
#include <stdio.h>
#include <string.h>
/* Stores 32-bit unsigned integer X at P,
which need not be aligned. */
static void
put_uint32 (uint32_t x, void *p)
{
memcpy (p, &x, sizeof x);
}
void
store_12345678 (int type, void *number)
{
switch (type)
{
case 1:
printf ("got here\n");
put_uint32 (0x12345678, number);
break;
case 7:
put_uint32 (0, number);
break;
case 8:
put_uint32 (0, number);
break;
case 9:
put_uint32 (0, number);
break;
}
}
int
main (void)
{
uint32_t x;
store_12345678 (1, &x);
printf ("%x\n", (unsigned int) x);
return 0;
}
--
Ben Pfaff
http://benpfaff.org
- GNU PSPP 0.6.2pre2 now available, Ben Pfaff, 2009/07/03
- GNU PSPP 0.6.2pre3 now available, Ben Pfaff, 2009/07/03
- Re: GNU PSPP 0.6.2pre3 now available, michel, 2009/07/03
- Re: GNU PSPP 0.6.2pre3 now available, michel, 2009/07/03
- Re: GNU PSPP 0.6.2pre3 now available, Matej Cepl, 2009/07/04
- Re: GNU PSPP 0.6.2pre3 now available, Matej Cepl, 2009/07/05
- Re: GNU PSPP 0.6.2pre3 now available, Ben Pfaff, 2009/07/05
- Re: GNU PSPP 0.6.2pre3 now available, Ben Pfaff, 2009/07/06
- Re: GNU PSPP 0.6.2pre3 now available, Matěj Cepl, 2009/07/06
- Re: GNU PSPP 0.6.2pre3 now available, Ben Pfaff, 2009/07/06
- bug in GCC 4.4 on sparc64 (was: Re: GNU PSPP 0.6.2pre3 now available),
Ben Pfaff <=
- Re: bug in GCC 4.4 on sparc64 (was: Re: GNU PSPP 0.6.2pre3 now available), Matej Cepl, 2009/07/07
- Re: GNU PSPP 0.6.2pre3 now available, Ben Pfaff, 2009/07/08
Re: GNU PSPP 0.6.2pre3 now available, John Darrington, 2009/07/07
Re: GNU PSPP 0.6.2pre3 now available, Ben Pfaff, 2009/07/07