Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/newlib
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2008-05-02 18:52:56 +0400
committerMark Mitchell <mark@codesourcery.com>2008-05-02 18:52:56 +0400
commitdf93e6f193fbf8a746d43d785af2260211961f01 (patch)
tree3011992b98fe9a76c9da4b0320a5c2eb82526be4 /newlib
parentcce741c409bbd77b7a648dcf9bed8f7fba169352 (diff)
* libc/include/stdint.h (SIZE_MIN): Remove.
(SIZE_MAX): Define. * testsuite/newlib.stdlib/stdlib.exp: New. * testsuite/newlib.stdlib/size_max.c: Likewise.
Diffstat (limited to 'newlib')
-rw-r--r--newlib/ChangeLog7
-rw-r--r--newlib/libc/include/stdint.h3
-rw-r--r--newlib/testsuite/newlib.stdlib/size_max.c18
-rw-r--r--newlib/testsuite/newlib.stdlib/stdlib.exp10
4 files changed, 36 insertions, 2 deletions
diff --git a/newlib/ChangeLog b/newlib/ChangeLog
index 296222d0c..e45b8ddea 100644
--- a/newlib/ChangeLog
+++ b/newlib/ChangeLog
@@ -1,3 +1,10 @@
+2008-04-26 Mark Mitchell <mark@codesourcery.com>
+
+ * libc/include/stdint.h (SIZE_MIN): Remove.
+ (SIZE_MAX): Define.
+ * testsuite/newlib.stdlib/stdlib.exp: New.
+ * testsuite/newlib.stdlib/size_max.c: Likewise.
+
2008-04-29 Eric Blake <ebb9@byu.net>
Fix 2008-04-14 regression in asprintf(ptr,"").
diff --git a/newlib/libc/include/stdint.h b/newlib/libc/include/stdint.h
index 1fa36517a..821462d8a 100644
--- a/newlib/libc/include/stdint.h
+++ b/newlib/libc/include/stdint.h
@@ -348,8 +348,7 @@ typedef unsigned long uintptr_t;
#endif
/* This must match size_t in stddef.h, currently long unsigned int */
-#define SIZE_MIN (-__STDINT_EXP(LONG_MAX) - 1L)
-#define SIZE_MAX __STDINT_EXP(LONG_MAX)
+#define SIZE_MAX (__STDINT_EXP(LONG_MAX) * 2UL + 1)
/* This must match sig_atomic_t in <signal.h> (currently int) */
#define SIG_ATOMIC_MIN (-__STDINT_EXP(INT_MAX) - 1)
diff --git a/newlib/testsuite/newlib.stdlib/size_max.c b/newlib/testsuite/newlib.stdlib/size_max.c
new file mode 100644
index 000000000..d163e27d1
--- /dev/null
+++ b/newlib/testsuite/newlib.stdlib/size_max.c
@@ -0,0 +1,18 @@
+#include <stddef.h>
+#include <stdint.h>
+#include <stdlib.h>
+
+int main () {
+ size_t s;
+
+ s = SIZE_MAX;
+ /* If SIZE_MAX is truncated when assigning to "s", then SIZE_MAX is
+ too big. */
+ if (s != SIZE_MAX)
+ abort ();
+ /* If SIZE_MAX + 1 is not zero, then SIZE_MAX is not big enough. */
+ if (++s != 0)
+ abort ();
+
+ return 0;
+}
diff --git a/newlib/testsuite/newlib.stdlib/stdlib.exp b/newlib/testsuite/newlib.stdlib/stdlib.exp
new file mode 100644
index 000000000..670d21e7e
--- /dev/null
+++ b/newlib/testsuite/newlib.stdlib/stdlib.exp
@@ -0,0 +1,10 @@
+# Copyright (C) 2008 by CodeSourcery, Inc. All rights reserved.
+#
+# Permission to use, copy, modify, and distribute this software
+# is freely granted, provided that this notice is preserved.
+
+load_lib passfail.exp
+
+set exclude_list [list "atexit.c"]
+
+newlib_pass_fail_all -x $exclude_list