Re: OpenBSD/Sparc status

Поиск
Список
Период
Сортировка
Искать
От
Tom Lane
Тема
Re: OpenBSD/Sparc status
Дата
Msg-id
7361.1100890533@sss.pgh.pa.us
Список
Дерево обсуждения
Re: OpenBSD/Sparc status Tom Lane <tgl@sss.pgh.pa.us>
Re: OpenBSD/Sparc status Darcy Buskermolen <darcy@wavefire.com>
Re: OpenBSD/Sparc status Michael Fuhr <mike@fuhr.org>
Re: OpenBSD/Sparc status Michael Fuhr <mike@fuhr.org>
Re: OpenBSD/Sparc status Stefan Kaltenbrunner <stefan@kaltenbrunner.cc>
Re: OpenBSD/Sparc status jseymour@linxnet.com (Jim Seymour)
Re: OpenBSD/Sparc status Darcy Buskermolen <darcy@wavefire.com>
Re: OpenBSD/Sparc status Michael Fuhr <mike@fuhr.org>
Re: OpenBSD/Sparc status Darcy Buskermolen <darcy@wavefire.com>
Re: OpenBSD/Sparc status Stefan Kaltenbrunner <stefan@kaltenbrunner.cc>
Re: OpenBSD/Sparc status Andrew Dunstan <andrew@dunslane.net>
Re: OpenBSD/Sparc status Tom Lane <tgl@sss.pgh.pa.us>
Re: OpenBSD/Sparc status Stefan Kaltenbrunner <stefan@kaltenbrunner.cc>
Re: OpenBSD/Sparc status "Andrew Dunstan" <andrew@dunslane.net>
Re: OpenBSD/Sparc status Tom Lane <tgl@sss.pgh.pa.us>
The answer is: it's a gcc bug.  The attached program should print
x = 12.3
y = 12.3

but if compiled with -O or -O2 on Stefan's machine, I get garbage:

$ gcc -O  ftest.c
$ ./a.out
x = 12.3
y = 1.47203e-39
$ gcc -v
Reading specs from /usr/lib/gcc-lib/sparc64-unknown-openbsd3.6/3.3.2/specs
Configured with:
Thread model: single
gcc version 3.3.2 (propolice)
$
		regards, tom lane


#include 

float
returnfloat(float *x)
{return *x;
}

int
main()
{float x = 12.3;union {	float f;	char *t;} y;
y.f = returnfloat(&x);
printf("x = %g\n", x);printf("y = %g\n", y.f);
return 0;
}

В списке pgsql-hackers по дате отправления
От: Andreas Pflug
Дата:
От: Joshua D. Drake
Дата:
FAQ