awk: temporarily fix for NaN() exceptions on 386
problem is NaN() produces a SNaN, not a QNaN... and on the 387, storing 80 bit SNaN in register to a 64-bit memory destination traps. SNaN/QNaN encoding is machine specific. mips has the qiet/signaling bit inverted. disabling fp exception in main() now, but that sucks. i think the best solution would be to not even call strtod() in is_number() but just write a regex or a little state machine that will only accept numbers without nan and ±inf. that might even make it faster and is more robust than relying on the os's strtod() details.
This commit is contained in:
parent
ce1edc3436
commit
974c4fc768
1 changed files with 2 additions and 0 deletions
|
@ -55,6 +55,8 @@ void main(int argc, char *argv[])
|
|||
char *fs = nil, *marg;
|
||||
int temp;
|
||||
|
||||
setfcr(getfcr() & ~FPINVAL);
|
||||
|
||||
Binit(&stdin, 0, OREAD);
|
||||
Binit(&stdout, 1, OWRITE);
|
||||
Binit(&stderr, 2, OWRITE);
|
||||
|
|
Loading…
Reference in a new issue