From: Tom Lane Date: Thu, 1 Jun 2006 02:39:59 +0000 (+0000) Subject: Got tired of waiting for spoonbill's compiler to get fixed. Let's X-Git-Tag: REL9_0_0~7830 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=d77df813c956ae4ecfb408aabfac188b60f34648;p=pg-rex%2Fsyncrep.git Got tired of waiting for spoonbill's compiler to get fixed. Let's see if using an intermediate variable avoids the gcc bug. --- diff --git a/contrib/seg/segparse.y b/contrib/seg/segparse.y index d4d739c621..dc56fb580f 100644 --- a/contrib/seg/segparse.y +++ b/contrib/seg/segparse.y @@ -11,15 +11,14 @@ extern int seg_yylex(void); - extern int significant_digits( char *str ); /* defined in seg.c */ + extern int significant_digits(char *str); /* defined in seg.c */ 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 { - $$.ext = '\0'; - $$.sigd = significant_digits($1); - $$.val = seg_atof($1); + /* temp variable avoids a gcc 3.3.x bug on Sparc64 */ + float val = seg_atof($1); + + $$.ext = '\0'; + $$.sigd = significant_digits($1); + $$.val = val; } | EXTENSION SEGFLOAT { - $$.ext = $1[0]; - $$.sigd = significant_digits($2); - $$.val = seg_atof($2); + /* temp variable avoids a gcc 3.3.x bug on Sparc64 */ + float val = seg_atof($2); + + $$.ext = $1[0]; + $$.sigd = significant_digits($2); + $$.val = val; } ; deviation: SEGFLOAT { - $$.ext = '\0'; - $$.sigd = significant_digits($1); - $$.val = seg_atof($1); + /* temp variable avoids a gcc 3.3.x bug on Sparc64 */ + float val = seg_atof($1); + + $$.ext = '\0'; + $$.sigd = significant_digits($1); + $$.val = val; } ; %% -float +static float seg_atof(char *value) { Datum datum;