Update.
2004-03-09 Ulrich Drepper <drepper@redhat.com>
* stdlib/qsort.c (_quicksort): Initialize first stack element [BZ #16].
2004-03-05 Jakub Jelinek <jakub@redhat.com>
* posix/regexec.c (regexec): Return with error on unknown eflags.
Replace weak_alias with versioned_symbol.
(__compat_regexec): New.
* posix/Versions (libc): Add regexec@GLIBC_2.3.4.
+2004-03-09 Ulrich Drepper <drepper@redhat.com>
+
+ * stdlib/qsort.c (_quicksort): Initialize first stack element [BZ #16].
+
+2004-03-05 Jakub Jelinek <jakub@redhat.com>
+
+ * posix/regexec.c (regexec): Return with error on unknown eflags.
+ Replace weak_alias with versioned_symbol.
+ (__compat_regexec): New.
+ * posix/Versions (libc): Add regexec@GLIBC_2.3.4.
+
2004-03-09 Richard Henderson <rth@redhat.com>
* math/math.h (isgreater, isgreaterequal, isless, islessequal,
-2004-03-09 Richard Henderson <rth@redhat.com>
-
- * math/math.h (isgreater, isgreaterequal, isless, islessequal,
- islessgreater, isunordered): Use builtins if available.
- * sysdeps/i386/fpu/bits/mathinline.h: Don't define via builtins.
- * sysdeps/m68k/fpu/bits/mathinline.h: Likewise.
- * sysdeps/powerpc/fpu/bits/mathinline.h: Likewise.
- * sysdeps/sparc/fpu/bits/mathinline.h: Likewise.
- * sysdeps/x86_64/fpu/bits/mathinline.h: Likewise.
- * sysdeps/alpha/fpu/bits/mathinline.h (isgreater, isgreaterequal,
- isless, islessequal, islessgreater): Remove; use default.
- (isunordered): Convert inputs to double.
+2004-03-09 Jakub Jelinek <jakub@redhat.com>
+
+ * tst-cancel20.c (do_one_test): Clear in_sh_body first.
+ * tst-cancel21.c (do_one_test): Likewise.
+ Reported by Gordon Jin <gordon.jin@intel.com>.
2004-02-09 Jakub Jelinek <jakub@redhat.com>
GLIBC_2.3.3 {
sched_getaffinity; sched_setaffinity;
}
+ GLIBC_2.3.4 {
+ regexec;
+ }
GLIBC_PRIVATE {
# functions which have an additional interface since they are
# are cancelable.
{
reg_errcode_t err;
int start, length;
+
+ if (eflags & ~(REG_NOTBOL | REG_NOTEOL | REG_STARTEND))
+ return REG_BADPAT;
+
if (eflags & REG_STARTEND)
{
start = pmatch[0].rm_so;
length, nmatch, pmatch, eflags);
return err != REG_NOERROR;
}
+
#ifdef _LIBC
-weak_alias (__regexec, regexec)
+# include <shlib-compat.h>
+versioned_symbol (libc, __regexec, regexec, GLIBC_2_3_4);
+
+# if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)
+__typeof__ (__regexec) __compat_regexec;
+
+int
+__compat_regexec (const regex_t *__restrict preg,
+ const char *__restrict string, size_t nmatch,
+ regmatch_t pmatch[], int eflags)
+{
+ return regexec (preg, string, nmatch, pmatch,
+ eflags & (REG_NOTBOL | REG_NOTEOL));
+}
+compat_symbol (libc, __compat_regexec, regexec, GLIBC_2_0);
+# endif
#endif
/* Entry points for GNU code. */
-/* Copyright (C) 1991, 1992, 1996, 1997, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1991,1992,1996,1997,1999,2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Douglas C. Schmidt (schmidt@ics.uci.edu).
char *lo = base_ptr;
char *hi = &lo[size * (total_elems - 1)];
stack_node stack[STACK_SIZE];
- stack_node *top = stack + 1;
+ stack_node *top = stack;
+
+ PUSH (NULL, NULL);
while (STACK_NOT_EMPTY)
{