postgres.git / summary / log / commit / refs

commit    d77df813c956ae4ecfb408aabfac188b60f34648
Author:   Tom Lane <tgl@sss.pgh.pa.us>
Date:     Thu Jun 01 02:39:59 2006 +0000
First released in: 8.2.0

    Got tired of waiting for spoonbill's compiler to get fixed.  Let's
    see if using an intermediate variable avoids the gcc bug.


contrib/seg/segparse.y | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/contrib/seg/segparse.y b/contrib/seg/segparse.y index d4d739c621c..dc56fb580fe 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; [parent: 87e8014d31da]