Update.
authorUlrich Drepper <drepper@redhat.com>
Mon, 21 Aug 2000 23:31:38 +0000 (23:31 +0000)
committerUlrich Drepper <drepper@redhat.com>
Mon, 21 Aug 2000 23:31:38 +0000 (23:31 +0000)
* stdlib/random_r.c (__setstate_r): Correct offset when computing
new rptr and fptr.  Reported by Michael Fischer <fischer@cs.yale.edu>.

* posix/regex.h: Add macro definitions to allow compiling outside
glibc.

ChangeLog
posix/regex.h
stdlib/random_r.c

index 3d693fd..bcbcaa0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2000-08-21  Ulrich Drepper  <drepper@redhat.com>
 
+       * stdlib/random_r.c (__setstate_r): Correct offset when computing
+       new rptr and fptr.  Reported by Michael Fischer <fischer@cs.yale.edu>.
+
+       * posix/regex.h: Add macro definitions to allow compiling outside
+       glibc.
+
        * sysdeps/i370/Implies: Removed.
        * sysdeps/mvs/Implies: Removed.
 
index 8576fe6..47f4af7 100644 (file)
@@ -513,6 +513,22 @@ extern int re_exec _RE_ARGS ((const char *));
 # endif
 #endif
 
+/* GCC 2.95 and later have "__restrict"; C99 compilers have
+   "restrict", and "configure" may have defined "restrict".  */
+#ifndef __restrict
+# if ! (2 < __GNUC__ || (2 == __GNUC__ && 95 <= __GNUC_MINOR__))
+#  if defined restrict || 199901L <= __STDC_VERSION__
+#   define __restrict restrict
+#  else
+#   define __restrict
+#  endif
+# endif
+/* For now unconditionally define __restrict_arr to expand to nothing.
+   Ideally we would have a test for the compiler which allows defining
+   it to restrict.  */
+# define __restrict_arr
+#endif
+
 /* POSIX compatibility.  */
 extern int regcomp _RE_ARGS ((regex_t *__restrict __preg,
                              const char *__restrict __pattern,
index 27573b3..1d9e56f 100644 (file)
@@ -295,8 +295,8 @@ __setstate_r (arg_state, buf)
   if (type != TYPE_0)
     {
       int rear = new_state[0] / MAX_TYPES;
-      buf->rptr = &new_state[rear];
-      buf->fptr = &new_state[(rear + separation) % degree];
+      buf->rptr = &new_state[1 + rear];
+      buf->fptr = &new_state[1 + (rear + separation) % degree];
     }
   buf->state = &new_state[1];
   /* Set end_ptr too.  */