diff --git a/ChangeLog b/ChangeLog index 3d693fdf26..bcbcaa0d31 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2000-08-21 Ulrich Drepper + * stdlib/random_r.c (__setstate_r): Correct offset when computing + new rptr and fptr. Reported by Michael Fischer . + + * posix/regex.h: Add macro definitions to allow compiling outside + glibc. + * sysdeps/i370/Implies: Removed. * sysdeps/mvs/Implies: Removed. diff --git a/posix/regex.h b/posix/regex.h index 8576fe68fa..47f4af7b55 100644 --- a/posix/regex.h +++ b/posix/regex.h @@ -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, diff --git a/stdlib/random_r.c b/stdlib/random_r.c index 27573b3b05..1d9e56f19b 100644 --- a/stdlib/random_r.c +++ b/stdlib/random_r.c @@ -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. */