summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog19
-rw-r--r--elf/link.h3
-rw-r--r--math/bits/mathcalls.h3
-rw-r--r--math/math.h52
-rw-r--r--sysdeps/generic/stdint.h4
-rw-r--r--wcsmbs/wchar.h4
-rw-r--r--wctype/wctype.h15
7 files changed, 54 insertions, 46 deletions
diff --git a/ChangeLog b/ChangeLog
index b44e29dbd8..241fa41da3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,22 @@
+1999-09-10 Ulrich Drepper <drepper@cygnus.com>
+
+ * wcsmbs/wchar.h (WCHAR_MIN, WCHAR_MAX): Use all-numeric values.
+
+ * sysdeps/generic/stdint.h: Correct WCHAR_MIN, WCHAR_MAX, and
+ WINT_MAX values.
+
+ * wctype/wctype.h: Remove incorrect towlower/towupper optimizations.
+
+1999-09-09 Andreas Schwab <schwab@suse.de>
+
+ * elf/link.h: Fix comment.
+
+1999-09-10 Ulrich Drepper <drepper@cygnus.com>
+
+ * math/bits/mathcalls.h: Add __isnan declaration [PR libc/1294].
+
+ * math/math.h: Pretty print.
+
1999-09-10 Andreas Schwab <schwab@suse.de>
* sysdeps/generic/getenv.c (getenv): Fix lookup for single
diff --git a/elf/link.h b/elf/link.h
index 9b6e9df7e6..e8203596ff 100644
--- a/elf/link.h
+++ b/elf/link.h
@@ -70,7 +70,8 @@ extern struct r_debug _r_debug;
of whatever module refers to `_DYNAMIC'. So, to find its own
`struct r_debug', a program could do:
for (dyn = _DYNAMIC; dyn->d_tag != DT_NULL)
- if (dyn->d_tag == DT_DEBUG) r_debug = (struct r_debug) dyn->d_un.d_ptr;
+ if (dyn->d_tag == DT_DEBUG)
+ r_debug = (struct r_debug *) dyn->d_un.d_ptr;
*/
extern ElfW(Dyn) _DYNAMIC[];
diff --git a/math/bits/mathcalls.h b/math/bits/mathcalls.h
index 7f41ef9711..0a4f3eaab4 100644
--- a/math/bits/mathcalls.h
+++ b/math/bits/mathcalls.h
@@ -210,6 +210,9 @@ __MATHCALLX (nan,, (__const char *__tagb), (__const__));
#endif
+/* Return nonzero if VALUE is not a number. */
+__MATHDECLX (int,__isnan,, (_Mdouble_ __value), (__const__));
+
#if defined __USE_MISC || defined __USE_XOPEN
/* Return nonzero if VALUE is not a number. */
__MATHDECLX (int,isnan,, (_Mdouble_ __value), (__const__));
diff --git a/math/math.h b/math/math.h
index 291fb0e5d3..0e2b4e7e5e 100644
--- a/math/math.h
+++ b/math/math.h
@@ -1,5 +1,5 @@
/* Declarations for math functions.
- Copyright (C) 1991, 92, 93, 95, 96, 97, 98 Free Software Foundation, Inc.
+ Copyright (C) 1991,92,93,95,96,97,98,99 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -166,68 +166,68 @@ enum
};
/* Return number of classification appropriate for X. */
-#ifdef __NO_LONG_DOUBLE_MATH
-# define fpclassify(x) \
+# ifdef __NO_LONG_DOUBLE_MATH
+# define fpclassify(x) \
(sizeof (x) == sizeof (float) ? __fpclassifyf (x) : __fpclassify (x))
-#else
-# define fpclassify(x) \
+# else
+# define fpclassify(x) \
(sizeof (x) == sizeof (float) ? \
__fpclassifyf (x) \
: sizeof (x) == sizeof (double) ? \
__fpclassify (x) : __fpclassifyl (x))
-#endif
+# endif
/* Return nonzero value if sign of X is negative. */
-#ifdef __NO_LONG_DOUBLE_MATH
-# define signbit(x) \
+# ifdef __NO_LONG_DOUBLE_MATH
+# define signbit(x) \
(sizeof (x) == sizeof (float) ? __signbitf (x) : __signbit (x))
-#else
-# define signbit(x) \
+# else
+# define signbit(x) \
(sizeof (x) == sizeof (float) ? \
__signbitf (x) \
: sizeof (x) == sizeof (double) ? \
__signbit (x) : __signbitl (x))
-#endif
+# endif
/* Return nonzero value if X is not +-Inf or NaN. */
-#ifdef __NO_LONG_DOUBLE_MATH
-# define isfinite(x) \
+# ifdef __NO_LONG_DOUBLE_MATH
+# define isfinite(x) \
(sizeof (x) == sizeof (float) ? __finitef (x) : __finite (x))
-#else
-# define isfinite(x) \
+# else
+# define isfinite(x) \
(sizeof (x) == sizeof (float) ? \
__finitef (x) \
: sizeof (x) == sizeof (double) ? \
__finite (x) : __finitel (x))
-#endif
+# endif
/* Return nonzero value if X is neither zero, subnormal, Inf, nor NaN. */
# define isnormal(x) (fpclassify (x) == FP_NORMAL)
/* Return nonzero value if X is a NaN. We could use `fpclassify' but
we already have this functions `__isnan' and it is faster. */
-#ifdef __NO_LONG_DOUBLE_MATH
-# define isnan(x) \
+# ifdef __NO_LONG_DOUBLE_MATH
+# define isnan(x) \
(sizeof (x) == sizeof (float) ? __isnanf (x) : __isnan (x))
-#else
-# define isnan(x) \
+# else
+# define isnan(x) \
(sizeof (x) == sizeof (float) ? \
__isnanf (x) \
: sizeof (x) == sizeof (double) ? \
__isnan (x) : __isnanl (x))
-#endif
+# endif
/* Return nonzero value is X is positive or negative infinity. */
-#ifdef __NO_LONG_DOUBLE_MATH
-# define isinf(x) \
+# ifdef __NO_LONG_DOUBLE_MATH
+# define isinf(x) \
(sizeof (x) == sizeof (float) ? __isinff (x) : __isinf (x))
-#else
-# define isinf(x) \
+# else
+# define isinf(x) \
(sizeof (x) == sizeof (float) ? \
__isinff (x) \
: sizeof (x) == sizeof (double) ? \
__isinf (x) : __isinfl (x))
-#endif
+# endif
#endif /* Use ISO C 9X. */
diff --git a/sysdeps/generic/stdint.h b/sysdeps/generic/stdint.h
index a0d1c64901..9713d52348 100644
--- a/sysdeps/generic/stdint.h
+++ b/sysdeps/generic/stdint.h
@@ -269,13 +269,13 @@ typedef unsigned long long int uintmax_t;
/* Limits of `wchar_t'. */
# ifndef WCHAR_MIN
/* These constants might also be defined in <wchar.h>. */
-# define WCHAR_MIN (-2147483647-1)
+# define WCHAR_MIN (0)
# define WCHAR_MAX (2147483647)
# endif
/* Limits of `wint_t'. */
# define WINT_MIN (0)
-# define WINT_MAX (4294967295U)
+# define WINT_MAX (2147483647)
#endif /* C++ && limit macros */
diff --git a/wcsmbs/wchar.h b/wcsmbs/wchar.h
index be27dbc622..19e6d877be 100644
--- a/wcsmbs/wchar.h
+++ b/wcsmbs/wchar.h
@@ -77,8 +77,8 @@ typedef __mbstate_t mbstate_t;
#ifndef WCHAR_MIN
/* These constants might also be defined in <inttypes.h>. */
-# define WCHAR_MIN ((wchar_t) 0)
-# define WCHAR_MAX (~WCHAR_MIN)
+# define WCHAR_MIN (0)
+# define WCHAR_MAX (0x7fffffff)
#endif
#ifndef WEOF
diff --git a/wctype/wctype.h b/wctype/wctype.h
index 2ecd33a711..521fcca76e 100644
--- a/wctype/wctype.h
+++ b/wctype/wctype.h
@@ -235,21 +235,6 @@ extern wint_t towupper __P ((wint_t __wc));
/* Map the wide character WC using the mapping described by DESC. */
extern wint_t __towctrans __P ((wint_t __wc, wctrans_t __desc));
-#if __GNUC__ >= 2 && defined __OPTIMIZE__
-/* The tables are always organized in a way which allows direct access
- for single byte characters. */
-extern __const __int32_t *__ctype_tolower; /* Case conversions. */
-extern __const __int32_t *__ctype_toupper; /* Case conversions. */
-
-# define towlower(wc) \
- (__builtin_constant_p (wc) && (wc) >= L'\0' && (wc) <= L'\xff' \
- ? (wint_t) __ctype_tolower[wc] : towlower (wc))
-# define towuppert(wc) \
- (__builtin_constant_p (wc) && (wc) >= L'\0' && (wc) <= L'\xff' \
- ? (wint_t) __ctype_toupper[wc] : towupper (wc))
-
-#endif /* gcc && optimizing */
-
__END_DECLS
#endif /* need iswxxx. */