diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lread.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/lread.c b/src/lread.c index 0d7238ddf35..3df769115f4 100644 --- a/src/lread.c +++ b/src/lread.c | |||
| @@ -1916,6 +1916,7 @@ read1 (readcharfun, pch, first_in_list) | |||
| 1916 | #ifdef LISP_FLOAT_TYPE | 1916 | #ifdef LISP_FLOAT_TYPE |
| 1917 | if (isfloat_string (read_buffer)) | 1917 | if (isfloat_string (read_buffer)) |
| 1918 | { | 1918 | { |
| 1919 | double zero = 0.0; | ||
| 1919 | double value = atof (read_buffer); | 1920 | double value = atof (read_buffer); |
| 1920 | if (read_buffer[0] == '-' && value == 0.0) | 1921 | if (read_buffer[0] == '-' && value == 0.0) |
| 1921 | value *= -1.0; | 1922 | value *= -1.0; |
| @@ -1924,11 +1925,11 @@ read1 (readcharfun, pch, first_in_list) | |||
| 1924 | if (p[-1] == 'F' || p[-1] == 'N') | 1925 | if (p[-1] == 'F' || p[-1] == 'N') |
| 1925 | { | 1926 | { |
| 1926 | if (p[-1] == 'N') | 1927 | if (p[-1] == 'N') |
| 1927 | value = 0.0 / 0.0; | 1928 | value = zero / zero; |
| 1928 | else if (read_buffer[0] == '-') | 1929 | else if (read_buffer[0] == '-') |
| 1929 | value = -1.0e999; | 1930 | value = - 1.0 / zero; |
| 1930 | else | 1931 | else |
| 1931 | value = 1.0e999; | 1932 | value = 1.0 / zero; |
| 1932 | } | 1933 | } |
| 1933 | return make_float (value); | 1934 | return make_float (value); |
| 1934 | } | 1935 | } |