|
11 | 11 |
|
12 | 12 | externintseg_yylex(void);
|
13 | 13 |
|
14 |
| -externintsignificant_digits(char *str );/* defined in seg.c*/ |
| 14 | +externintsignificant_digits(char *str);/* defined in seg.c*/ |
15 | 15 |
|
16 | 16 | voidseg_yyerror(constchar *message);
|
17 | 17 | intseg_yyparse(void *result);
|
18 | 18 |
|
19 |
| -floatseg_atof(char *value); |
| 19 | +staticfloatseg_atof(char *value); |
20 | 20 |
|
21 |
| -long threshold; |
22 |
| -char strbuf[25] = { |
| 21 | +staticchar strbuf[25] = { |
23 | 22 | '0','0','0','0','0',
|
24 | 23 | '0','0','0','0','0',
|
25 | 24 | '0','0','0','0','0',
|
@@ -108,30 +107,39 @@ range:
|
108 | 107 |
|
109 | 108 | boundary:
|
110 | 109 | SEGFLOAT {
|
111 |
| -$$.ext ='\0'; |
112 |
| -$$.sigd = significant_digits($1); |
113 |
| -$$.val = seg_atof($1); |
| 110 | +/* temp variable avoids a gcc 3.3.x bug on Sparc64*/ |
| 111 | +float val = seg_atof($1); |
| 112 | + |
| 113 | +$$.ext ='\0'; |
| 114 | +$$.sigd = significant_digits($1); |
| 115 | +$$.val = val; |
114 | 116 | }
|
115 | 117 | |
|
116 | 118 | EXTENSIONSEGFLOAT {
|
117 |
| -$$.ext =$1[0]; |
118 |
| -$$.sigd = significant_digits($2); |
119 |
| -$$.val = seg_atof($2); |
| 119 | +/* temp variable avoids a gcc 3.3.x bug on Sparc64*/ |
| 120 | +float val = seg_atof($2); |
| 121 | + |
| 122 | +$$.ext =$1[0]; |
| 123 | +$$.sigd = significant_digits($2); |
| 124 | +$$.val = val; |
120 | 125 | }
|
121 | 126 | ;
|
122 | 127 |
|
123 | 128 | deviation:
|
124 | 129 | SEGFLOAT {
|
125 |
| -$$.ext ='\0'; |
126 |
| -$$.sigd = significant_digits($1); |
127 |
| -$$.val = seg_atof($1); |
| 130 | +/* temp variable avoids a gcc 3.3.x bug on Sparc64*/ |
| 131 | +float val = seg_atof($1); |
| 132 | + |
| 133 | +$$.ext ='\0'; |
| 134 | +$$.sigd = significant_digits($1); |
| 135 | +$$.val = val; |
128 | 136 | }
|
129 | 137 | ;
|
130 | 138 |
|
131 | 139 | %%
|
132 | 140 |
|
133 | 141 |
|
134 |
| -float |
| 142 | +staticfloat |
135 | 143 | seg_atof(char *value)
|
136 | 144 | {
|
137 | 145 | Datum datum;
|
|