------- Comment #10 from hjl dot tools at gmail dot com 2009-07-21 02:48
-------
[...@gnu-6 tmp]$ vi v.c
[...@gnu-6 tmp]$ cat v.c
#include <stdlib.h>
#define N 4
void
cvt_u4_f4(int n, unsigned int* u4, float* f4)
{
int j;
for (j=0; j<n; j++)
f4[j]=u4[j];
}
unsigned int u4[N] =
{ 4000000000, 4000000000, 4000000000, 4000000000 };
float f4[N];
int main()
{
int j;
cvt_u4_f4(N, u4, f4);
for (j=0; j<N; j++)
if (f4[j] != 4000000000.0)
abort ();
return 0;
}
[...@gnu-6 tmp]$ gcc -O3 v.c
[...@gnu-6 tmp]$ ./a.out
Aborted
[...@gnu-6 tmp]$
--
hjl dot tools at gmail dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|RESOLVED |REOPENED
Known to fail| |4.3.4 4.4.0
Known to work| |4.2.5 4.5.0
Resolution|FIXED |
Summary|[4.5 Regression] Failed SPEC|[4.3/4.4/4.5 Regression]
|CPU 2000 |wrong conversion from
| |unsigned int to float
Target Milestone|4.5.0 |4.3.5
Version|4.5.0 |4.3.4
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39943