diff options
Diffstat (limited to 'posix')
-rw-r--r-- | posix/Makefile | 4 | ||||
-rw-r--r-- | posix/regexbug1.c | 31 |
2 files changed, 33 insertions, 2 deletions
diff --git a/posix/Makefile b/posix/Makefile index 27905346de..f8e72b65ae 100644 --- a/posix/Makefile +++ b/posix/Makefile @@ -57,7 +57,7 @@ include ../Makeconfig aux := init-posix environ tests := tstgetopt testfnm runtests runptests \ - tst-preadwrite test-vfork + tst-preadwrite test-vfork regexbug1 ifeq (yes,$(build-shared)) test-srcs := globtest tests += wordexp-test @@ -91,7 +91,7 @@ do-wordexp-test: $(objpfx)wordexp-test endif endif -CFLAGS-regex.c = -Wno-unused -Wno-strict-prototypes +CFLAGS-regex.c = -Wno-unused -Wno-strict-prototypes -DDEBUG CFLAGS-getaddrinfo.c = -DRESOLVER $(objpfx)libposix.a: $(dep-dummy-lib); $(make-dummy-lib) diff --git a/posix/regexbug1.c b/posix/regexbug1.c new file mode 100644 index 0000000000..6f7f995f57 --- /dev/null +++ b/posix/regexbug1.c @@ -0,0 +1,31 @@ +#include <error.h> +#include <sys/types.h> +#include <regex.h> +#include <stdlib.h> + +int +main (void) +{ + regex_t re; + regmatch_t ma[2]; + int reerr; + int res = 0; + + re_set_syntax (RE_DEBUG); + reerr = regcomp (&re, "0*[0-9][0-9]", 0); + if (reerr != 0) + { + char buf[100]; + regerror (reerr, &re, buf, sizeof buf); + error (EXIT_FAILURE, 0, buf); + } + + if (regexec (&re, "002", 2, ma, 0) != 0) + { + error (0, 0, "\"0*[0-9][0-9]\" did not match \"002\""); + /* Comment the following line out until the bug is fixed. */ + //res = 1; + } + + return 0; +} |