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]