Skip site navigation (1) Skip section navigation (2)

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search archives
  Advanced Search

Re: OpenBSD/Sparc status


  • From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
  • To: Stefan Kaltenbrunner <stefan(at)kaltenbrunner(dot)cc>
  • Cc: Andrew Dunstan <andrew(at)dunslane(dot)net>, pgsql-hackers(at)postgreSQL(dot)org
  • Subject: Re: OpenBSD/Sparc status
  • Date: Fri, 19 Nov 2004 13:55:33 -0500
  • Message-id: <7361.1100890533@sss.pgh.pa.us> <text/plain>

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 <stdio.h>

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;
}



Home | Main Index | Thread Index

Privacy Policy | About PostgreSQL
Copyright © 1996 – 2012 PostgreSQL Global Development Group