From: Andrew Dunstan Date: Sat, 17 Jun 2006 14:49:02 +0000 (+0000) Subject: backport workaround for OpenBSD compiler bug X-Git-Tag: REL8_1_5~78 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b243d3945647002321353d1c4360c1f684a07bf7;p=postgresql backport workaround for OpenBSD compiler bug --- diff --git a/contrib/seg/segparse.y b/contrib/seg/segparse.y index 8a3b0b0160..e847a37639 100644 --- a/contrib/seg/segparse.y +++ b/contrib/seg/segparse.y @@ -18,10 +18,9 @@ void seg_yyerror(const char *message); int seg_yyparse( void *result ); - float seg_atof( char *value ); + static float seg_atof(char *value); - long threshold; - char strbuf[25] = { + static char strbuf[25] = { '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', @@ -108,30 +107,39 @@ range: boundary: SEGFLOAT { + /* temp variable avoids a gcc 3.3.x bug on Sparc64 */ + float val = seg_atof($1); + $$.ext = '\0'; $$.sigd = significant_digits($1); - $$.val = seg_atof($1); + $$.val = val; } | EXTENSION SEGFLOAT { + /* temp variable avoids a gcc 3.3.x bug on Sparc64 */ + float val = seg_atof($2); + $$.ext = $1[0]; $$.sigd = significant_digits($2); - $$.val = seg_atof($2); + $$.val = val; } ; deviation: SEGFLOAT { + /* temp variable avoids a gcc 3.3.x bug on Sparc64 */ + float val = seg_atof($1); + $$.ext = '\0'; $$.sigd = significant_digits($1); - $$.val = seg_atof($1); + $$.val = val; } ; %% -float +static float seg_atof(char *value) { Datum datum;