diff options
author | midipix <writeonce@midipix.org> | 2015-03-15 21:08:54 -0400 |
---|---|---|
committer | midipix <writeonce@midipix.org> | 2015-03-15 21:08:54 -0400 |
commit | 18bc92cb83fdf0f0472432fb7c30914a9cd4df01 (patch) | |
tree | 2d11f8c8d084e113cae1ef6175fc2e888e570f58 /libiberty/strtod.c | |
parent | cf7e0e7656729af8bd8f3bb86c4d51f1089a0c37 (diff) | |
download | cbb-gcc-4.6.4-18bc92cb83fdf0f0472432fb7c30914a9cd4df01.tar.bz2 cbb-gcc-4.6.4-18bc92cb83fdf0f0472432fb7c30914a9cd4df01.tar.xz |
libiberty: remove source files that either duplicate functionality
already present in all modern libc implementations, or are
incompatible with modern development environments, or both.
Diffstat (limited to 'libiberty/strtod.c')
-rw-r--r-- | libiberty/strtod.c | 137 |
1 files changed, 0 insertions, 137 deletions
diff --git a/libiberty/strtod.c b/libiberty/strtod.c deleted file mode 100644 index e4da2113f..000000000 --- a/libiberty/strtod.c +++ /dev/null @@ -1,137 +0,0 @@ -/* Implementation of strtod for systems with atof. - Copyright (C) 1991, 1995, 2002, 2011 Free Software Foundation, Inc. - -This file is part of the libiberty library. This library is free -software; you can redistribute it and/or modify it under the -terms of the GNU General Public License as published by the -Free Software Foundation; either version 2, or (at your option) -any later version. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. - -As a special exception, if you link this library with files -compiled with a GNU compiler to produce an executable, this does not cause -the resulting executable to be covered by the GNU General Public License. -This exception does not however invalidate any other reasons why -the executable file might be covered by the GNU General Public License. */ - -/* - -@deftypefn Supplemental double strtod (const char *@var{string}, @ - char **@var{endptr}) - -This ISO C function converts the initial portion of @var{string} to a -@code{double}. If @var{endptr} is not @code{NULL}, a pointer to the -character after the last character used in the conversion is stored in -the location referenced by @var{endptr}. If no conversion is -performed, zero is returned and the value of @var{string} is stored in -the location referenced by @var{endptr}. - -@end deftypefn - -*/ - -#include "ansidecl.h" -#include "safe-ctype.h" - -extern double atof (const char *); - -/* Disclaimer: this is currently just used by CHILL in GDB and therefore - has not been tested well. It may have been tested for nothing except - that it compiles. */ - -double -strtod (char *str, char **ptr) -{ - char *p; - - if (ptr == (char **)0) - return atof (str); - - p = str; - - while (ISSPACE (*p)) - ++p; - - if (*p == '+' || *p == '-') - ++p; - - /* INF or INFINITY. */ - if ((p[0] == 'i' || p[0] == 'I') - && (p[1] == 'n' || p[1] == 'N') - && (p[2] == 'f' || p[2] == 'F')) - { - if ((p[3] == 'i' || p[3] == 'I') - && (p[4] == 'n' || p[4] == 'N') - && (p[5] == 'i' || p[5] == 'I') - && (p[6] == 't' || p[6] == 'T') - && (p[7] == 'y' || p[7] == 'Y')) - { - *ptr = p + 8; - return atof (str); - } - else - { - *ptr = p + 3; - return atof (str); - } - } - - /* NAN or NAN(foo). */ - if ((p[0] == 'n' || p[0] == 'N') - && (p[1] == 'a' || p[1] == 'A') - && (p[2] == 'n' || p[2] == 'N')) - { - p += 3; - if (*p == '(') - { - ++p; - while (*p != '\0' && *p != ')') - ++p; - if (*p == ')') - ++p; - } - *ptr = p; - return atof (str); - } - - /* digits, with 0 or 1 periods in it. */ - if (ISDIGIT (*p) || *p == '.') - { - int got_dot = 0; - while (ISDIGIT (*p) || (!got_dot && *p == '.')) - { - if (*p == '.') - got_dot = 1; - ++p; - } - - /* Exponent. */ - if (*p == 'e' || *p == 'E') - { - int i; - i = 1; - if (p[i] == '+' || p[i] == '-') - ++i; - if (ISDIGIT (p[i])) - { - while (ISDIGIT (p[i])) - ++i; - *ptr = p + i; - return atof (str); - } - } - *ptr = p; - return atof (str); - } - /* Didn't find any digits. Doesn't look like a number. */ - *ptr = str; - return 0.0; -} |