=> Bootstrap dependency digest>=20010302: found digest-20210928 WARNING: [license.mk] Every package should define a LICENSE. ===> Skipping vulnerability checks. WARNING: No /usr/pkg/pkgdb/pkg-vulnerabilities file found. WARNING: To fix run: `/usr/sbin/pkg_admin -K /usr/pkg/pkgdb fetch-pkg-vulnerabilities'. ===> Building for squirm-1.0betaB gcc -O3 -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -I. -I. -c regex.c regex.c: In function 're_match_2': regex.c:3765:31: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] if ((int) old_regend[r] >= (int) regstart[r]) ^ regex.c:3765:54: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] if ((int) old_regend[r] >= (int) regstart[r]) ^ regex.c:2328:42: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] fail_stack.stack[fail_stack.avail++] = (fail_stack_elt_t) item ^ regex.c:2407:5: note: in expansion of macro 'PUSH_FAILURE_ITEM' PUSH_FAILURE_ITEM (lowest_active_reg); \ ^~~~~~~~~~~~~~~~~ regex.c:3771:19: note: in expansion of macro 'PUSH_FAILURE_POINT' PUSH_FAILURE_POINT (p1 + mcnt, d, -2); ^~~~~~~~~~~~~~~~~~ regex.c:2328:42: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] fail_stack.stack[fail_stack.avail++] = (fail_stack_elt_t) item ^ regex.c:2410:5: note: in expansion of macro 'PUSH_FAILURE_ITEM' PUSH_FAILURE_ITEM (highest_active_reg); \ ^~~~~~~~~~~~~~~~~ regex.c:3771:19: note: in expansion of macro 'PUSH_FAILURE_POINT' PUSH_FAILURE_POINT (p1 + mcnt, d, -2); ^~~~~~~~~~~~~~~~~~ regex.c:2328:42: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] fail_stack.stack[fail_stack.avail++] = (fail_stack_elt_t) item ^ regex.c:2407:5: note: in expansion of macro 'PUSH_FAILURE_ITEM' PUSH_FAILURE_ITEM (lowest_active_reg); \ ^~~~~~~~~~~~~~~~~ regex.c:3918:11: note: in expansion of macro 'PUSH_FAILURE_POINT' PUSH_FAILURE_POINT (p + mcnt, NULL, -2); ^~~~~~~~~~~~~~~~~~ regex.c:2328:42: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] fail_stack.stack[fail_stack.avail++] = (fail_stack_elt_t) item ^ regex.c:2410:5: note: in expansion of macro 'PUSH_FAILURE_ITEM' PUSH_FAILURE_ITEM (highest_active_reg); \ ^~~~~~~~~~~~~~~~~ regex.c:3918:11: note: in expansion of macro 'PUSH_FAILURE_POINT' PUSH_FAILURE_POINT (p + mcnt, NULL, -2); ^~~~~~~~~~~~~~~~~~ regex.c:2328:42: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] fail_stack.stack[fail_stack.avail++] = (fail_stack_elt_t) item ^ regex.c:2407:5: note: in expansion of macro 'PUSH_FAILURE_ITEM' PUSH_FAILURE_ITEM (lowest_active_reg); \ ^~~~~~~~~~~~~~~~~ regex.c:3971:11: note: in expansion of macro 'PUSH_FAILURE_POINT' PUSH_FAILURE_POINT (p + mcnt, d, -2); ^~~~~~~~~~~~~~~~~~ regex.c:2328:42: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] fail_stack.stack[fail_stack.avail++] = (fail_stack_elt_t) item ^ regex.c:2410:5: note: in expansion of macro 'PUSH_FAILURE_ITEM' PUSH_FAILURE_ITEM (highest_active_reg); \ ^~~~~~~~~~~~~~~~~ regex.c:3971:11: note: in expansion of macro 'PUSH_FAILURE_POINT' PUSH_FAILURE_POINT (p + mcnt, d, -2); ^~~~~~~~~~~~~~~~~~ regex.c:2495:14: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] high_reg = (unsigned) POP_FAILURE_ITEM (); \ ^ regex.c:4077:13: note: in expansion of macro 'POP_FAILURE_POINT' POP_FAILURE_POINT (sdummy, pdummy, ^~~~~~~~~~~~~~~~~ regex.c:2498:13: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] low_reg = (unsigned) POP_FAILURE_ITEM (); \ ^ regex.c:4077:13: note: in expansion of macro 'POP_FAILURE_POINT' POP_FAILURE_POINT (sdummy, pdummy, ^~~~~~~~~~~~~~~~~ regex.c:2328:42: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] fail_stack.stack[fail_stack.avail++] = (fail_stack_elt_t) item ^ regex.c:2407:5: note: in expansion of macro 'PUSH_FAILURE_ITEM' PUSH_FAILURE_ITEM (lowest_active_reg); \ ^~~~~~~~~~~~~~~~~ regex.c:4110:11: note: in expansion of macro 'PUSH_FAILURE_POINT' PUSH_FAILURE_POINT (0, 0, -2); ^~~~~~~~~~~~~~~~~~ regex.c:2328:42: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] fail_stack.stack[fail_stack.avail++] = (fail_stack_elt_t) item ^ regex.c:2410:5: note: in expansion of macro 'PUSH_FAILURE_ITEM' PUSH_FAILURE_ITEM (highest_active_reg); \ ^~~~~~~~~~~~~~~~~ regex.c:4110:11: note: in expansion of macro 'PUSH_FAILURE_POINT' PUSH_FAILURE_POINT (0, 0, -2); ^~~~~~~~~~~~~~~~~~ regex.c:2328:42: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] fail_stack.stack[fail_stack.avail++] = (fail_stack_elt_t) item ^ regex.c:2407:5: note: in expansion of macro 'PUSH_FAILURE_ITEM' PUSH_FAILURE_ITEM (lowest_active_reg); \ ^~~~~~~~~~~~~~~~~ regex.c:4123:11: note: in expansion of macro 'PUSH_FAILURE_POINT' PUSH_FAILURE_POINT (0, 0, -2); ^~~~~~~~~~~~~~~~~~ regex.c:2328:42: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] fail_stack.stack[fail_stack.avail++] = (fail_stack_elt_t) item ^ regex.c:2410:5: note: in expansion of macro 'PUSH_FAILURE_ITEM' PUSH_FAILURE_ITEM (highest_active_reg); \ ^~~~~~~~~~~~~~~~~ regex.c:4123:11: note: in expansion of macro 'PUSH_FAILURE_POINT' PUSH_FAILURE_POINT (0, 0, -2); ^~~~~~~~~~~~~~~~~~ regex.c:2495:14: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] high_reg = (unsigned) POP_FAILURE_ITEM (); \ ^ regex.c:4291:11: note: in expansion of macro 'POP_FAILURE_POINT' POP_FAILURE_POINT (d, p, ^~~~~~~~~~~~~~~~~ regex.c:2498:13: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] low_reg = (unsigned) POP_FAILURE_ITEM (); \ ^ regex.c:4291:11: note: in expansion of macro 'POP_FAILURE_POINT' POP_FAILURE_POINT (d, p, ^~~~~~~~~~~~~~~~~ for d in test; do (cd $d; /usr/pkg/bin/gmake -j4 --jobserver-auth=5,6 CPPFLAGS='' CFLAGS='-O3' CC='gcc' DEFS='-DSTDC_HEADERS=1 -DHAVE_STRING_H=1' LDFLAGS='' LOADLIBES='' all); done gmake[1]: warning: -j4 forced in submake: resetting jobserver mode. gmake[1]: Entering directory '/tmp/www/squirm/work/squirm-1.0betaB/regex-0.12/test' rm -f dregex.o gcc -I. -I. -I../. -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DDEBUG -O3 -c printchar.c gcc -I. -I. -I../. -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DDEBUG -O3 -c upcase.c gcc -I. -I. -I../. -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DDEBUG -O3 -c xmalloc.c gcc -I. -I. -I../. -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DDEBUG -O3 -c .././regex.c printchar.c: In function 'printchar': printchar.c:7:7: warning: implicit declaration of function 'putchar' [-Wimplicit-function-declaration] putchar ('\\'); ^~~~~~~ xmalloc.c:2:14: warning: conflicting types for built-in function 'malloc' [-Wbuiltin-declaration-mismatch] extern char *malloc (); ^~~~~~ xmalloc.c: In function 'xmalloc': xmalloc.c:17:7: warning: implicit declaration of function 'abort' [-Wimplicit-function-declaration] abort (); ^~~~~ xmalloc.c:17:7: warning: incompatible implicit declaration of built-in function 'abort' xmalloc.c:17:7: note: include '' or provide a declaration of 'abort' gcc -I. -I. -I../. -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DDEBUG -O3 -c test.c gcc -I. -I. -I../. -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DDEBUG -O3 -c bsd-interf.c gcc -I. -I. -I../. -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DDEBUG -O3 -c other.c test.c:19:0: warning: "bcopy" redefined #define bcopy(from, to, len) memcpy ((to), (from), (len)) In file included from /usr/include/strings.h:72:0, from /usr/include/string.h:98, from test.c:15: /usr/include/ssp/strings.h:38:0: note: this is the location of the previous definition #define bcopy(src, dst, len) \ test.c:20:0: warning: "bzero" redefined #define bzero(s, len) memset ((s), 0, (len)) In file included from /usr/include/strings.h:72:0, from /usr/include/string.h:98, from test.c:15: /usr/include/ssp/strings.h:42:0: note: this is the location of the previous definition #define bzero(dst, len) \ .././regex.c: In function 're_match_2': .././regex.c:3765:31: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] if ((int) old_regend[r] >= (int) regstart[r]) ^ .././regex.c:3765:54: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] if ((int) old_regend[r] >= (int) regstart[r]) ^ .././regex.c:2328:42: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] fail_stack.stack[fail_stack.avail++] = (fail_stack_elt_t) item ^ .././regex.c:2407:5: note: in expansion of macro 'PUSH_FAILURE_ITEM' PUSH_FAILURE_ITEM (lowest_active_reg); \ ^~~~~~~~~~~~~~~~~ .././regex.c:3771:19: note: in expansion of macro 'PUSH_FAILURE_POINT' PUSH_FAILURE_POINT (p1 + mcnt, d, -2); ^~~~~~~~~~~~~~~~~~ .././regex.c:2328:42: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] fail_stack.stack[fail_stack.avail++] = (fail_stack_elt_t) item ^ .././regex.c:2410:5: note: in expansion of macro 'PUSH_FAILURE_ITEM' PUSH_FAILURE_ITEM (highest_active_reg); \ ^~~~~~~~~~~~~~~~~ .././regex.c:3771:19: note: in expansion of macro 'PUSH_FAILURE_POINT' PUSH_FAILURE_POINT (p1 + mcnt, d, -2); ^~~~~~~~~~~~~~~~~~ .././regex.c:2328:42: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] fail_stack.stack[fail_stack.avail++] = (fail_stack_elt_t) item ^ .././regex.c:2335:20: note: in expansion of macro 'PUSH_FAILURE_ITEM' #define DEBUG_PUSH PUSH_FAILURE_ITEM ^~~~~~~~~~~~~~~~~ .././regex.c:2423:5: note: in expansion of macro 'DEBUG_PUSH' DEBUG_PUSH (failure_id); \ ^~~~~~~~~~ .././regex.c:3771:19: note: in expansion of macro 'PUSH_FAILURE_POINT' PUSH_FAILURE_POINT (p1 + mcnt, d, -2); ^~~~~~~~~~~~~~~~~~ .././regex.c:2328:42: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] fail_stack.stack[fail_stack.avail++] = (fail_stack_elt_t) item ^ .././regex.c:2407:5: note: in expansion of macro 'PUSH_FAILURE_ITEM' PUSH_FAILURE_ITEM (lowest_active_reg); \ ^~~~~~~~~~~~~~~~~ .././regex.c:3918:11: note: in expansion of macro 'PUSH_FAILURE_POINT' PUSH_FAILURE_POINT (p + mcnt, NULL, -2); ^~~~~~~~~~~~~~~~~~ .././regex.c:2328:42: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] fail_stack.stack[fail_stack.avail++] = (fail_stack_elt_t) item ^ .././regex.c:2410:5: note: in expansion of macro 'PUSH_FAILURE_ITEM' PUSH_FAILURE_ITEM (highest_active_reg); \ ^~~~~~~~~~~~~~~~~ .././regex.c:3918:11: note: in expansion of macro 'PUSH_FAILURE_POINT' PUSH_FAILURE_POINT (p + mcnt, NULL, -2); ^~~~~~~~~~~~~~~~~~ test.c: In function 'general_test': .././regex.c:2328:42: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] fail_stack.stack[fail_stack.avail++] = (fail_stack_elt_t) item ^ .././regex.c:2335:20: note: in expansion of macro 'PUSH_FAILURE_ITEM' #define DEBUG_PUSH PUSH_FAILURE_ITEM ^~~~~~~~~~~~~~~~~ .././regex.c:2423:5: note: in expansion of macro 'DEBUG_PUSH' DEBUG_PUSH (failure_id); \ ^~~~~~~~~~ .././regex.c:3918:11: note: in expansion of macro 'PUSH_FAILURE_POINT' PUSH_FAILURE_POINT (p + mcnt, NULL, -2); ^~~~~~~~~~~~~~~~~~ test.c:356:15: warning: implicit declaration of function 'print_fastmap'; did you mean 'test_fastmap'? [-Wimplicit-function-declaration] print_fastmap (correct_fastmap); ^~~~~~~~~~~~~ test_fastmap test.c: In function 'test_search_return': test.c:417:10: warning: type defaults to 'int' in declaration of 'num_times_called' [-Wimplicit-int] static num_times_called = 0; ^~~~~~~~~~~~~~~~ .././regex.c:2328:42: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] fail_stack.stack[fail_stack.avail++] = (fail_stack_elt_t) item ^ .././regex.c:2407:5: note: in expansion of macro 'PUSH_FAILURE_ITEM' PUSH_FAILURE_ITEM (lowest_active_reg); \ ^~~~~~~~~~~~~~~~~ .././regex.c:3971:11: note: in expansion of macro 'PUSH_FAILURE_POINT' PUSH_FAILURE_POINT (p + mcnt, d, -2); ^~~~~~~~~~~~~~~~~~ bsd-interf.c: In function 'test_berk_search': .././regex.c:2328:42: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] fail_stack.stack[fail_stack.avail++] = (fail_stack_elt_t) item ^ .././regex.c:2410:5: note: in expansion of macro 'PUSH_FAILURE_ITEM' PUSH_FAILURE_ITEM (highest_active_reg); \ ^~~~~~~~~~~~~~~~~ .././regex.c:3971:11: note: in expansion of macro 'PUSH_FAILURE_POINT' PUSH_FAILURE_POINT (p + mcnt, d, -2); ^~~~~~~~~~~~~~~~~~ bsd-interf.c:20:50: warning: implicit declaration of function 'strlen' [-Wimplicit-function-declaration] if (test_should_match && re_exec (string) != strlen (string)) ^~~~~~ bsd-interf.c:20:50: warning: incompatible implicit declaration of built-in function 'strlen' .././regex.c:2328:42: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] fail_stack.stack[fail_stack.avail++] = (fail_stack_elt_t) item ^ .././regex.c:2335:20: note: in expansion of macro 'PUSH_FAILURE_ITEM' #define DEBUG_PUSH PUSH_FAILURE_ITEM ^~~~~~~~~~~~~~~~~ .././regex.c:2423:5: note: in expansion of macro 'DEBUG_PUSH' DEBUG_PUSH (failure_id); \ ^~~~~~~~~~ .././regex.c:3971:11: note: in expansion of macro 'PUSH_FAILURE_POINT' PUSH_FAILURE_POINT (p + mcnt, d, -2); ^~~~~~~~~~~~~~~~~~ bsd-interf.c:20:50: note: include '' or provide a declaration of 'strlen' .././regex.c:2495:14: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] high_reg = (unsigned) POP_FAILURE_ITEM (); \ ^ .././regex.c:4077:13: note: in expansion of macro 'POP_FAILURE_POINT' POP_FAILURE_POINT (sdummy, pdummy, ^~~~~~~~~~~~~~~~~ .././regex.c:2498:13: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] low_reg = (unsigned) POP_FAILURE_ITEM (); \ ^ .././regex.c:4077:13: note: in expansion of macro 'POP_FAILURE_POINT' POP_FAILURE_POINT (sdummy, pdummy, ^~~~~~~~~~~~~~~~~ .././regex.c:2328:42: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] fail_stack.stack[fail_stack.avail++] = (fail_stack_elt_t) item ^ .././regex.c:2407:5: note: in expansion of macro 'PUSH_FAILURE_ITEM' PUSH_FAILURE_ITEM (lowest_active_reg); \ ^~~~~~~~~~~~~~~~~ .././regex.c:4110:11: note: in expansion of macro 'PUSH_FAILURE_POINT' PUSH_FAILURE_POINT (0, 0, -2); ^~~~~~~~~~~~~~~~~~ .././regex.c:2328:42: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] fail_stack.stack[fail_stack.avail++] = (fail_stack_elt_t) item ^ .././regex.c:2410:5: note: in expansion of macro 'PUSH_FAILURE_ITEM' PUSH_FAILURE_ITEM (highest_active_reg); \ ^~~~~~~~~~~~~~~~~ .././regex.c:4110:11: note: in expansion of macro 'PUSH_FAILURE_POINT' PUSH_FAILURE_POINT (0, 0, -2); ^~~~~~~~~~~~~~~~~~ .././regex.c:2328:42: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] fail_stack.stack[fail_stack.avail++] = (fail_stack_elt_t) item ^ .././regex.c:2335:20: note: in expansion of macro 'PUSH_FAILURE_ITEM' #define DEBUG_PUSH PUSH_FAILURE_ITEM ^~~~~~~~~~~~~~~~~ .././regex.c:2423:5: note: in expansion of macro 'DEBUG_PUSH' DEBUG_PUSH (failure_id); \ ^~~~~~~~~~ .././regex.c:4110:11: note: in expansion of macro 'PUSH_FAILURE_POINT' PUSH_FAILURE_POINT (0, 0, -2); ^~~~~~~~~~~~~~~~~~ .././regex.c:2328:42: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] fail_stack.stack[fail_stack.avail++] = (fail_stack_elt_t) item ^ .././regex.c:2407:5: note: in expansion of macro 'PUSH_FAILURE_ITEM' PUSH_FAILURE_ITEM (lowest_active_reg); \ ^~~~~~~~~~~~~~~~~ .././regex.c:4123:11: note: in expansion of macro 'PUSH_FAILURE_POINT' PUSH_FAILURE_POINT (0, 0, -2); ^~~~~~~~~~~~~~~~~~ .././regex.c:2328:42: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] fail_stack.stack[fail_stack.avail++] = (fail_stack_elt_t) item ^ .././regex.c:2410:5: note: in expansion of macro 'PUSH_FAILURE_ITEM' PUSH_FAILURE_ITEM (highest_active_reg); \ ^~~~~~~~~~~~~~~~~ .././regex.c:4123:11: note: in expansion of macro 'PUSH_FAILURE_POINT' PUSH_FAILURE_POINT (0, 0, -2); ^~~~~~~~~~~~~~~~~~ .././regex.c:2328:42: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] fail_stack.stack[fail_stack.avail++] = (fail_stack_elt_t) item ^ .././regex.c:2335:20: note: in expansion of macro 'PUSH_FAILURE_ITEM' #define DEBUG_PUSH PUSH_FAILURE_ITEM ^~~~~~~~~~~~~~~~~ .././regex.c:2423:5: note: in expansion of macro 'DEBUG_PUSH' DEBUG_PUSH (failure_id); \ ^~~~~~~~~~ .././regex.c:4123:11: note: in expansion of macro 'PUSH_FAILURE_POINT' PUSH_FAILURE_POINT (0, 0, -2); ^~~~~~~~~~~~~~~~~~ .././regex.c:2495:14: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] high_reg = (unsigned) POP_FAILURE_ITEM (); \ ^ .././regex.c:4291:11: note: in expansion of macro 'POP_FAILURE_POINT' POP_FAILURE_POINT (d, p, ^~~~~~~~~~~~~~~~~ .././regex.c:2498:13: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] low_reg = (unsigned) POP_FAILURE_ITEM (); \ ^ .././regex.c:4291:11: note: in expansion of macro 'POP_FAILURE_POINT' POP_FAILURE_POINT (d, p, ^~~~~~~~~~~~~~~~~ In file included from other.c:3:0: other.c: In function 'test_others': test.h:14:42: warning: implicit declaration of function 'strlen' [-Wimplicit-function-declaration] #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:86:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^a", "b\na", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:86:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^a", "b\na", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:86:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^a", "b\na", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:87:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("b$", "b\na", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:87:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("b$", "b\na", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:152:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("a|$", "xa", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:152:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("a|$", "xa", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:153:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("a|$", "x", 0, 1); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:153:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("a|$", "x", 0, 1); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:154:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|b", "x", 0, 1); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:154:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|b", "x", 0, 1); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:155:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|b", "xb", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:155:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|b", "xb", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:156:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c(a|$)", "xca", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:156:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c(a|$)", "xca", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:157:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c(a|$)", "xc", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:157:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c(a|$)", "xc", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:158:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c($|b)", "xcb", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:158:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c($|b)", "xcb", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:159:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c($|b)", "xc", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:159:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c($|b)", "xc", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:160:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c($|b$)", "xcb", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:160:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c($|b$)", "xcb", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:161:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c($|b$)", "xc", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:161:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c($|b$)", "xc", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:162:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c(a$|$)", "xca", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:162:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c(a$|$)", "xca", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:163:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c(a$|$)", "xc", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:163:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c(a$|$)", "xc", 0, 2); ^~~~~~~~~~~ gcc -I. -I. -I../. -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DDEBUG -O3 -c tregress.c test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:164:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a$|b$)|$", "x", 0, 1); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:164:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a$|b$)|$", "x", 0, 1); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:165:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a$|b$)|$", "xa", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:165:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a$|b$)|$", "xa", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:166:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a$|b$)|$", "xb", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:166:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a$|b$)|$", "xb", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:167:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a$|$)|c$", "x", 0, 1); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:167:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a$|$)|c$", "x", 0, 1); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:168:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a$|$)|c$", "xa", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:168:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a$|$)|c$", "xa", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:169:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a$|$)|c$", "xc", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:169:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a$|$)|c$", "xc", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:170:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("($|b$)|c$", "x", 0, 1); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:170:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("($|b$)|c$", "x", 0, 1); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:171:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("($|b$)|c$", "xb", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:171:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("($|b$)|c$", "xb", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:172:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("($|b$)|c$", "xc", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:172:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("($|b$)|c$", "xc", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:173:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c$|(a$|$)", "x", 0, 1); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:173:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c$|(a$|$)", "x", 0, 1); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:174:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c$|(a$|$)", "xa", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:174:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c$|(a$|$)", "xa", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:175:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c$|(a$|$)", "xc", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:175:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c$|(a$|$)", "xc", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:176:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c$|($|b$)", "x", 0, 1); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:176:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c$|($|b$)", "x", 0, 1); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:177:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c$|($|b$)", "xb", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:177:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c$|($|b$)", "xb", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:178:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c$|($|b$)", "xc", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:178:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c$|($|b$)", "xc", 0, 2); ^~~~~~~~~~~ tregress.c: In function 'simple_fail': test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:179:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|(a$|b$)", "x", 0, 1); ^~~~~~~~~~~ tregress.c:31:3: warning: implicit declaration of function 'print_compiled_pattern'; did you mean 're_compile_pattern'? [-Wimplicit-function-declaration] print_compiled_pattern (buf); ^~~~~~~~~~~~~~~~~~~~~~ re_compile_pattern test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:179:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|(a$|b$)", "x", 0, 1); ^~~~~~~~~~~ tregress.c: In function 'simple_compile': tregress.c:48:46: warning: implicit declaration of function 'strlen' [-Wimplicit-function-declaration] const char *ret = re_compile_pattern (pat, strlen (pat), buf); ^~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:180:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|(a$|b$)", "xa", 0, 2); ^~~~~~~~~~~ tregress.c:48:46: warning: incompatible implicit declaration of built-in function 'strlen' test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:180:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|(a$|b$)", "xa", 0, 2); ^~~~~~~~~~~ tregress.c:48:46: note: include '' or provide a declaration of 'strlen' test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:181:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|(a$|b$)", "xb", 0, 2); ^~~~~~~~~~~ tregress.c: In function 'do_match': test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:181:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|(a$|b$)", "xb", 0, 2); ^~~~~~~~~~~ tregress.c:91:9: warning: incompatible implicit declaration of built-in function 'strlen' len = strlen (str); ^~~~~~ tregress.c:91:9: note: include '' or provide a declaration of 'strlen' test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:182:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c(a$|b$)|$", "x", 0, 1); ^~~~~~~~~~~ tregress.c: In function 'simple_search': test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:182:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c(a$|b$)|$", "x", 0, 1); ^~~~~~~~~~~ tregress.c:113:9: warning: incompatible implicit declaration of built-in function 'strlen' len = strlen (str); ^~~~~~ tregress.c:113:9: note: include '' or provide a declaration of 'strlen' test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:183:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c(a$|b$)|$", "xca", 0, 3); ^~~~~~~~~~~ tregress.c: In function 'test_regress': test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:183:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c(a$|b$)|$", "xca", 0, 3); ^~~~~~~~~~~ tregress.c:74:52: warning: incompatible implicit declaration of built-in function 'strlen' #define SIMPLE_MATCH(pat, str) do_match (pat, str, strlen (str)) ^ tregress.c:146:3: note: in expansion of macro 'SIMPLE_MATCH' SIMPLE_MATCH ("[A-[]", "A"); ^~~~~~~~~~~~ tregress.c:74:52: note: include '' or provide a declaration of 'strlen' #define SIMPLE_MATCH(pat, str) do_match (pat, str, strlen (str)) ^ tregress.c:146:3: note: in expansion of macro 'SIMPLE_MATCH' SIMPLE_MATCH ("[A-[]", "A"); ^~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:184:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c(a$|b$)|$", "xcb", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:184:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c(a$|b$)|$", "xcb", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:185:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c(a$|$)|d$", "xc", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:185:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c(a$|$)|d$", "xc", 0, 2); ^~~~~~~~~~~ tregress.c:277:3: warning: implicit declaration of function 'free' [-Wimplicit-function-declaration] free (buf.fastmap); ^~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:186:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c(a$|$)|d$", "xca", 0, 3); ^~~~~~~~~~~ tregress.c:277:3: warning: incompatible implicit declaration of built-in function 'free' test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:186:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c(a$|$)|d$", "xca", 0, 3); ^~~~~~~~~~~ tregress.c:277:3: note: include '' or provide a declaration of 'free' test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:187:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c(a$|$)|d$", "xd", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:187:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c(a$|$)|d$", "xd", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:188:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c($|b$)|d$", "xc", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:188:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c($|b$)|d$", "xc", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:189:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c($|b$)|d$", "xcb", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:189:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c($|b$)|d$", "xcb", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:190:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c($|b$)|d$", "xd", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:190:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c($|b$)|d$", "xd", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:191:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d(c$|e((a$|$)))", "xdc", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:191:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d(c$|e((a$|$)))", "xdc", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:192:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d(c$|e((a$|$)))", "xde", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:192:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d(c$|e((a$|$)))", "xde", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:193:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d(c$|e((a$|$)))", "xdea", 0, 4); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:193:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d(c$|e((a$|$)))", "xdea", 0, 4); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:194:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d(c$|e(($|b$)))", "xdc", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:194:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d(c$|e(($|b$)))", "xdc", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:195:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d(c$|e(($|b$)))", "xde", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:195:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d(c$|e(($|b$)))", "xde", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:196:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d(c$|e(($|b$)))", "xdeb", 0, 4); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:196:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d(c$|e(($|b$)))", "xdeb", 0, 4); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:197:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d($|e((a$|b$)))", "xd", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:197:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d($|e((a$|b$)))", "xd", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:198:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d($|e((a$|b$)))", "xdea", 0, 4); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:198:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d($|e((a$|b$)))", "xdea", 0, 4); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:199:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d($|e((a$|b$)))", "xdeb", 0, 4); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:199:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d($|e((a$|b$)))", "xdeb", 0, 4); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:200:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("a(b$|c$)|$", "x", 0, 1); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:200:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("a(b$|c$)|$", "x", 0, 1); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:201:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("a(b$|c$)|$", "xab", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:201:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("a(b$|c$)|$", "xab", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:202:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("a(b$|c$)|$", "xac", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:202:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("a(b$|c$)|$", "xac", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:203:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("a(b$|$)|d$", "xa", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:203:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("a(b$|$)|d$", "xa", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:204:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("a(b$|$)|d$", "xab", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:204:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("a(b$|$)|d$", "xab", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:205:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("a(b$|$)|d$", "xd", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:205:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("a(b$|$)|d$", "xd", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:206:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("a($|c$)|d$", "xa", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:206:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("a($|c$)|d$", "xa", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:207:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("a($|c$)|d$", "xac", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:207:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("a($|c$)|d$", "xac", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:208:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("a($|c$)|d$", "xd", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:208:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("a($|c$)|d$", "xd", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:209:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|a(b$|$)", "xd", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:209:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|a(b$|$)", "xd", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:210:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|a(b$|$)", "xa", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:210:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|a(b$|$)", "xa", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:211:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|a(b$|$)", "xab", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:211:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|a(b$|$)", "xab", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:212:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|a($|c$)", "xd", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:212:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|a($|c$)", "xd", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:213:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|a($|c$)", "xa", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:213:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|a($|c$)", "xa", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:214:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|a($|c$)", "xac", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:214:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|a($|c$)", "xac", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:215:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|a(b$|c$)", "x", 0, 1); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:215:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|a(b$|c$)", "x", 0, 1); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:216:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|a(b$|c$)", "xab", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:216:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|a(b$|c$)", "xab", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:217:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|a(b$|c$)", "xac", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:217:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|a(b$|c$)", "xac", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:218:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a)(b$|c$)|d$", "xab", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:218:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a)(b$|c$)|d$", "xab", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:219:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a)(b$|c$)|d$", "xac", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:219:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a)(b$|c$)|d$", "xac", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:220:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a)(b$|c$)|d$", "xd", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:220:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a)(b$|c$)|d$", "xd", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:221:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a)(b$|$)|d$", "xa", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:221:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a)(b$|$)|d$", "xa", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:222:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a)(b$|$)|d$", "xab", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:222:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a)(b$|$)|d$", "xab", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:223:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a)(b$|$)|d$", "xd", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:223:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a)(b$|$)|d$", "xd", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:224:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a)($|c$)|d$", "xa", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:224:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a)($|c$)|d$", "xa", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:225:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a)($|c$)|d$", "xac", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:225:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a)($|c$)|d$", "xac", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:226:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a)($|c$)|d$", "xd", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:226:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a)($|c$)|d$", "xd", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:227:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(a)(b$|$)", "xd", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:227:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(a)(b$|$)", "xd", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:228:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(a)(b$|$)", "xa", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:228:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(a)(b$|$)", "xa", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:229:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(a)(b$|$)", "xab", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:229:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(a)(b$|$)", "xab", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:230:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(a)($|c$)", "xd", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:230:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(a)($|c$)", "xd", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:231:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(a)($|c$)", "xa", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:231:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(a)($|c$)", "xa", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:232:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(a)($|c$)", "xac", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:232:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(a)($|c$)", "xac", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:233:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|(a)(b$|c$)", "x", 0, 1); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:233:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|(a)(b$|c$)", "x", 0, 1); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:234:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|(a)(b$|c$)", "xab", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:234:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|(a)(b$|c$)", "xab", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:235:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|(a)(b$|c$)", "xac", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:235:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|(a)(b$|c$)", "xac", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:236:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|(a$|$))", "x", 0, 1); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:236:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|(a$|$))", "x", 0, 1); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:237:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|(a$|$))", "xd", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:237:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|(a$|$))", "xd", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:238:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|(a$|$))", "xc", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:238:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|(a$|$))", "xc", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:239:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|(a$|$))", "xa", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:239:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|(a$|$))", "xa", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:240:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|($|b$))", "x", 0, 1); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:240:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|($|b$))", "x", 0, 1); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:241:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|($|b$))", "xd", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:241:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|($|b$))", "xd", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:242:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|($|b$))", "xc", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:242:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|($|b$))", "xc", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:243:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|($|b$))", "xb", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:243:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|($|b$))", "xb", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:244:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|($|(a$|b$))", "x", 0, 1); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:244:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|($|(a$|b$))", "x", 0, 1); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:245:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|($|(a$|b$))", "xd", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:245:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|($|(a$|b$))", "xd", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:246:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|($|(a$|b$))", "xa", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:246:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|($|(a$|b$))", "xa", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:247:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|($|(a$|b$))", "xb", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:247:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|($|(a$|b$))", "xb", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:248:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|(c$|(a$|b$))", "x", 0, 1); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:248:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|(c$|(a$|b$))", "x", 0, 1); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:249:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|(c$|(a$|b$))", "xc", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:249:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|(c$|(a$|b$))", "xc", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:250:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|(c$|(a$|b$))", "xa", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:250:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|(c$|(a$|b$))", "xa", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:251:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|(c$|(a$|b$))", "xb", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:251:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|(c$|(a$|b$))", "xb", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:252:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|c(a$|$)", "xd", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:252:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|c(a$|$)", "xd", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:253:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|c(a$|$)", "xc", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:253:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|c(a$|$)", "xc", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:254:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|c(a$|$)", "xca", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:254:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|c(a$|$)", "xca", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:255:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|c($|b$)", "xd", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:255:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|c($|b$)", "xd", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:256:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|c($|b$)", "xc", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:256:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|c($|b$)", "xc", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:257:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|c($|b$)", "xcb", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:257:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|c($|b$)", "xcb", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:258:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|c(a$|b$)", "x", 0, 1); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:258:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|c(a$|b$)", "x", 0, 1); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:259:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|c(a$|b$)", "xca", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:259:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|c(a$|b$)", "xca", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:260:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|c(a$|b$)", "xcb", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:260:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|c(a$|b$)", "xcb", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:261:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e(d$|c((a$|$)))", "xed", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:261:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e(d$|c((a$|$)))", "xed", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:262:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e(d$|c((a$|$)))", "xec", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:262:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e(d$|c((a$|$)))", "xec", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:263:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e(d$|c((a$|$)))", "xeca", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:263:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e(d$|c((a$|$)))", "xeca", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:264:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e(d$|c(($|b$)))", "xed", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:264:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e(d$|c(($|b$)))", "xed", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:265:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e(d$|c(($|b$)))", "xec", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:265:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e(d$|c(($|b$)))", "xec", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:266:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e(d$|c(($|b$)))", "xecb", 0, 4); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:266:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e(d$|c(($|b$)))", "xecb", 0, 4); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:267:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e($|c((a$|b$)))", "xe", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:267:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e($|c((a$|b$)))", "xe", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:268:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e($|c((a$|b$)))", "xeca", 0, 4); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:268:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e($|c((a$|b$)))", "xeca", 0, 4); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:269:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e($|c((a$|b$)))", "xecb", 0, 4); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:269:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e($|c((a$|b$)))", "xecb", 0, 4); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:270:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ed$|(c((a$|$)))", "xed", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:270:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ed$|(c((a$|$)))", "xed", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:271:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ed$|(c((a$|$)))", "xc", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:271:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ed$|(c((a$|$)))", "xc", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:272:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ed$|(c((a$|$)))", "xca", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:272:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ed$|(c((a$|$)))", "xca", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:273:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ed$|(c(($|b$)))", "xed", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:273:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ed$|(c(($|b$)))", "xed", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:274:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ed$|(c(($|b$)))", "xc", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:274:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ed$|(c(($|b$)))", "xc", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:275:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ed$|(c(($|b$)))", "xcb", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:275:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ed$|(c(($|b$)))", "xcb", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:276:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|(c((a$|b$)))", "x", 0, 1); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:276:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|(c((a$|b$)))", "x", 0, 1); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:277:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|(c((a$|b$)))", "xca", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:277:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|(c((a$|b$)))", "xca", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:278:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|(c((a$|b$)))", "xcb", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:278:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|(c((a$|b$)))", "xcb", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:279:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|($|(a|b)$)", "x", 0, 1); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:279:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|($|(a|b)$)", "x", 0, 1); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:280:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|($|(a|b)$)", "xa", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:280:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|($|(a|b)$)", "xa", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:281:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|($|(a|b)$)", "xb", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:281:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|($|(a|b)$)", "xb", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:282:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|(c$|(a|b)$)", "x", 0, 1); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:282:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|(c$|(a|b)$)", "x", 0, 1); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:283:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|(c$|(a|b)$)", "xc", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:283:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|(c$|(a|b)$)", "xc", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:284:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|(c$|(a|b)$)", "xa", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:284:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|(c$|(a|b)$)", "xa", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:285:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|(c$|(a|b)$)", "xb", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:285:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("$|(c$|(a|b)$)", "xb", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:291:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^a", "b\na", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:291:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^a", "b\na", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:292:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("b$", "b\na", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:292:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("b$", "b\na", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:319:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^(^a)", "ab", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:319:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^(^a)", "ab", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:320:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a$)$", "ba", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ other.c:320:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a$)$", "ba", 0, 2); ^~~~~~~~~~~ gcc -I. -I. -I../. -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DDEBUG -O3 -c psx-basic.c In file included from psx-basic.c:3:0: psx-basic.c: In function 'test_posix_basic': test.h:108:42: warning: implicit declaration of function 'delimiters_to_ops'; did you mean 'delimiter_to_ops'? [-Wimplicit-function-declaration] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-basic.c:25:32: note: in expansion of macro 'PARENS_TO_OPS' invalid_pattern (REG_EPAREN, PARENS_TO_OPS ("a)")); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-basic.c:25:32: note: in expansion of macro 'PARENS_TO_OPS' invalid_pattern (REG_EPAREN, PARENS_TO_OPS ("a)")); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-basic.c:185:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(.*).*\\1"), "abcabc"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-basic.c:190:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(ac*)c*d[ac]*\\1"), "acdacaaa"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-basic.c:191:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(ac*)c*d[ac]*\\1"), "acdacaaa", ^~~~~~~~~~~~~~ psx-basic.c:191:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(ac*)c*d[ac]*\\1"), "acdacaaa", ^~~~~~~~~~~~~ test.h:14:42: warning: implicit declaration of function 'strlen' [-Wimplicit-function-declaration] #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-basic.c:204:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^$*", "$$", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-basic.c:204:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^$*", "$$", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-basic.c:204:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^$*", "$$", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-basic.c:205:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^$\\{0,\\}", "$$", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-basic.c:205:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^$\\{0,\\}", "$$", 0, 2); ^~~~~~~~~~~ gcc -I. -I. -I../. -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DDEBUG -O3 -c psx-extend.c In file included from psx-extend.c:3:0: psx-extend.c: In function 'test_posix_extended': test.h:14:42: warning: implicit declaration of function 'strlen' [-Wimplicit-function-declaration] #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:127:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("a|b", "cb", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:127:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("a|b", "cb", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:127:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("a|b", "cb", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:128:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("a|b", "cb", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:128:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("a|b", "cb", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:883:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(^a|^b)c", "ac", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:883:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(^a|^b)c", "ac", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:884:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(^a|^b)c", "bc", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:884:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(^a|^b)c", "bc", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:885:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c(a$|b$)", "ca", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:885:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c(a$|b$)", "ca", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:886:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c(a$|b$)", "cb", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:886:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c(a$|b$)", "cb", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:887:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^(a|b)|^c", "ad", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:887:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^(a|b)|^c", "ad", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:888:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^(a|b)|^c", "bd", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:888:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^(a|b)|^c", "bd", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:889:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a|b)$|c$", "da", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:889:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a|b)$|c$", "da", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:890:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a|b)$|c$", "db", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:890:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a|b)$|c$", "db", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:891:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a|b)$|c$", "dc", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:891:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a|b)$|c$", "dc", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:892:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(^a|^b)|^c", "ad", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:892:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(^a|^b)|^c", "ad", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:893:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(^a|^b)|^c", "bd", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:893:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(^a|^b)|^c", "bd", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:894:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(^a|^b)|^c", "cd", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:894:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(^a|^b)|^c", "cd", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:895:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a$|b$)|c$", "da", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:895:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a$|b$)|c$", "da", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:896:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a$|b$)|c$", "db", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:896:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a$|b$)|c$", "db", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:897:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a$|b$)|c$", "dc", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:897:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a$|b$)|c$", "dc", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:898:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^c|(^a|^b)", "ad", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:898:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^c|(^a|^b)", "ad", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:899:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^c|(^a|^b)", "bd", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:899:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^c|(^a|^b)", "bd", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:900:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^c|(^a|^b)", "cd", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:900:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^c|(^a|^b)", "cd", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:901:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c$|(a$|b$)", "da", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:901:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c$|(a$|b$)", "da", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:902:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c$|(a$|b$)", "db", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:902:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c$|(a$|b$)", "db", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:903:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c$|(a$|b$)", "dc", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:903:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c$|(a$|b$)", "dc", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:904:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^c|^(a|b)", "ad", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:904:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^c|^(a|b)", "ad", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:905:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^c|^(a|b)", "bd", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:905:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^c|^(a|b)", "bd", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:906:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^c|^(a|b)", "cd", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:906:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^c|^(a|b)", "cd", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:907:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c$|(a|b)$", "da", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:907:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c$|(a|b)$", "da", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:908:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c$|(a|b)$", "db", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:908:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c$|(a|b)$", "db", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:909:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c$|(a|b)$", "dc", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:909:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c$|(a|b)$", "dc", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:910:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(^a|^b)c|^d", "ace", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:910:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(^a|^b)c|^d", "ace", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:911:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(^a|^b)c|^d", "bce", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:911:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(^a|^b)c|^d", "bce", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:912:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(^a|^b)c|^d", "de", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:912:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(^a|^b)c|^d", "de", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:913:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a|b)c$|d$", "eac", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:913:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a|b)c$|d$", "eac", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:914:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a|b)c$|d$", "ebc", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:914:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a|b)c$|d$", "ebc", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:915:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a|b)c$|d$", "ed", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:915:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a|b)c$|d$", "ed", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:916:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^d|^c(a|b)", "cae", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:916:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^d|^c(a|b)", "cae", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:917:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^d|^c(a|b)", "cbe", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:917:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^d|^c(a|b)", "cbe", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:918:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^d|^c(a|b)", "de", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:918:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^d|^c(a|b)", "de", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:919:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|c(a$|b$)", "eca", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:919:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|c(a$|b$)", "eca", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:920:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|c(a$|b$)", "ecb", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:920:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|c(a$|b$)", "ecb", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:921:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|c(a$|b$)", "ed", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:921:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|c(a$|b$)", "ed", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:923:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(((^a|^b))c|^d)e", "acef", 0, 4); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:923:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(((^a|^b))c|^d)e", "acef", 0, 4); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:924:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(((^a|^b))c|^d)e", "bcef", 0, 4); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:924:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(((^a|^b))c|^d)e", "bcef", 0, 4); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:925:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(((^a|^b))c|^d)e", "def", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:925:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(((^a|^b))c|^d)e", "def", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:927:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("((^(a|b))c|^d)e", "acef", 0, 4); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:927:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("((^(a|b))c|^d)e", "acef", 0, 4); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:928:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("((^(a|b))c|^d)e", "bcef", 0, 4); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:928:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("((^(a|b))c|^d)e", "bcef", 0, 4); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:929:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("((^(a|b))c|^d)e", "def", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:929:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("((^(a|b))c|^d)e", "def", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:931:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(^((a|b))c|^d)e", "acef", 0, 4); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:931:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(^((a|b))c|^d)e", "acef", 0, 4); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:932:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(^((a|b))c|^d)e", "bcef", 0, 4); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:932:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(^((a|b))c|^d)e", "bcef", 0, 4); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:933:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(^((a|b))c|^d)e", "def", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:933:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(^((a|b))c|^d)e", "def", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:935:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(((a|b))c|d)e$", "face", 0, 4); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:935:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(((a|b))c|d)e$", "face", 0, 4); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:936:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(((a|b))c|d)e$", "fbce", 0, 4); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:936:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(((a|b))c|d)e$", "fbce", 0, 4); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:937:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(((a|b))c|d)e$", "fde", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:937:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(((a|b))c|d)e$", "fde", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:939:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^e(d|c((a|b)))", "edf", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:939:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^e(d|c((a|b)))", "edf", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:940:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^e(d|c((a|b)))", "ecaf", 0, 4); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:940:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^e(d|c((a|b)))", "ecaf", 0, 4); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:941:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^e(d|c((a|b)))", "ecbf", 0, 4); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:941:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^e(d|c((a|b)))", "ecbf", 0, 4); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:943:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e(d$|c((a$|b$)))", "fed", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:943:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e(d$|c((a$|b$)))", "fed", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:944:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e(d$|c((a$|b$)))", "feca", 0, 4); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:944:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e(d$|c((a$|b$)))", "feca", 0, 4); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:945:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e(d$|c((a$|b$)))", "fecb", 0, 4); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:945:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e(d$|c((a$|b$)))", "fecb", 0, 4); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:947:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e(d$|c((a|b)$))", "fed", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:947:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e(d$|c((a|b)$))", "fed", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:948:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e(d$|c((a|b)$))", "feca", 0, 4); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:948:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e(d$|c((a|b)$))", "feca", 0, 4); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:949:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e(d$|c((a|b)$))", "fecb", 0, 4); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:949:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e(d$|c((a|b)$))", "fecb", 0, 4); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:951:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e(d$|c((a|b))$)", "fed", 0, 3); ^~~~~~~~~~~ gcc -I. -I. -I../. -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DDEBUG -O3 -c psx-generic.c test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:951:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e(d$|c((a|b))$)", "fed", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:952:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e(d$|c((a|b))$)", "feca", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:952:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e(d$|c((a|b))$)", "feca", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:953:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e(d$|c((a|b))$)", "fecb", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:953:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e(d$|c((a|b))$)", "fecb", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:955:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e(d$|c((a|b)))$", "fed", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:955:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e(d$|c((a|b)))$", "fed", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:956:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e(d$|c((a|b)))$", "feca", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:956:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e(d$|c((a|b)))$", "feca", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:957:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e(d$|c((a|b)))$", "fecb", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:957:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("e(d$|c((a|b)))$", "fecb", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:959:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(((^a|^b))c)|^de", "acf", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:959:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(((^a|^b))c)|^de", "acf", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:960:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(((^a|^b))c)|^de", "bcf", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:960:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(((^a|^b))c)|^de", "bcf", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:961:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(((^a|^b))c)|^de", "def", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:961:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(((^a|^b))c)|^de", "def", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:963:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(((a|b))c$)|de$", "fac", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:963:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(((a|b))c$)|de$", "fac", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:964:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(((a|b))c$)|de$", "fbc", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:964:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(((a|b))c$)|de$", "fbc", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:965:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(((a|b))c$)|de$", "fde", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:965:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(((a|b))c$)|de$", "fde", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:967:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(((a|b))c)$|de$", "fac", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:967:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(((a|b))c)$|de$", "fac", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:968:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(((a|b))c)$|de$", "fbc", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:968:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(((a|b))c)$|de$", "fbc", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:969:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(((a|b))c)$|de$", "fde", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:969:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(((a|b))c)$|de$", "fde", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:971:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^ed|^(c((a|b)))", "edf", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:971:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^ed|^(c((a|b)))", "edf", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:972:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^ed|^(c((a|b)))", "caf", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:972:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^ed|^(c((a|b)))", "caf", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:973:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^ed|^(c((a|b)))", "cbf", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:973:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^ed|^(c((a|b)))", "cbf", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:975:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^ed|(^c((a|b)))", "edf", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:975:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^ed|(^c((a|b)))", "edf", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:976:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^ed|(^c((a|b)))", "caf", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:976:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^ed|(^c((a|b)))", "caf", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:977:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^ed|(^c((a|b)))", "cbf", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:977:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^ed|(^c((a|b)))", "cbf", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:979:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ed$|(c((a|b)))$", "fed", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:979:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ed$|(c((a|b)))$", "fed", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:980:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ed$|(c((a|b)))$", "fca", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:980:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ed$|(c((a|b)))$", "fca", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:981:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ed$|(c((a|b)))$", "fcb", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:981:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ed$|(c((a|b)))$", "fcb", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:983:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ed$|(c((a|b))$)", "fed", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:983:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ed$|(c((a|b))$)", "fed", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:984:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ed$|(c((a|b))$)", "fca", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:984:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ed$|(c((a|b))$)", "fca", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:985:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ed$|(c((a|b))$)", "fcb", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:985:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ed$|(c((a|b))$)", "fcb", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:987:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ed$|(c((a|b)$))", "fed", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:987:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ed$|(c((a|b)$))", "fed", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:988:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ed$|(c((a|b)$))", "fca", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:988:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ed$|(c((a|b)$))", "fca", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:989:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ed$|(c((a|b)$))", "fcb", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:989:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ed$|(c((a|b)$))", "fcb", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:991:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ed$|(c((a$|b$)))", "fed", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:991:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ed$|(c((a$|b$)))", "fed", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:992:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ed$|(c((a$|b$)))", "fca", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:992:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ed$|(c((a$|b$)))", "fca", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:993:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ed$|(c((a$|b$)))", "fcb", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:993:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ed$|(c((a$|b$)))", "fcb", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:995:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^a(b|c)|^d", "abe", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:995:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^a(b|c)|^d", "abe", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:996:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^a(b|c)|^d", "ace", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:996:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^a(b|c)|^d", "ace", 0, 3); ^~~~~~~~~~~ psx-generic.c: In function 'test_posix_generic': test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:997:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^a(b|c)|^d", "df", 0, 2); ^~~~~~~~~~~ psx-generic.c:20:3: warning: implicit declaration of function 'test_intervals'; did you mean 'test_case_fold'? [-Wimplicit-function-declaration] test_intervals (); ^~~~~~~~~~~~~~ test_case_fold test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:997:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^a(b|c)|^d", "df", 0, 2); ^~~~~~~~~~~ In file included from psx-generic.c:4:0: test.h:14:42: warning: implicit declaration of function 'strlen' [-Wimplicit-function-declaration] #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-generic.c:30:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("", "", 0, 0); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:999:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("a(b$|c$)|d$", "fab", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-generic.c:30:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("", "", 0, 0); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:999:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("a(b$|c$)|d$", "fab", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-generic.c:30:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("", "", 0, 0); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1000:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("a(b$|c$)|d$", "fac", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-generic.c:41:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("a", "ab", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1000:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("a(b$|c$)|d$", "fac", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-generic.c:41:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("a", "ab", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1001:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("a(b$|c$)|d$", "fd", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-generic.c:42:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("b", "ab", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1001:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("a(b$|c$)|d$", "fd", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-generic.c:42:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("b", "ab", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1003:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^(a)(b|c)|^d", "abe", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-generic.c:43:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("a", "ab", 1, -2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1003:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^(a)(b|c)|^d", "abe", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-generic.c:43:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("a", "ab", 1, -2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1004:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^(a)(b|c)|^d", "ace", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-generic.c:53:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("b", "baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", 236, -237); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1004:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^(a)(b|c)|^d", "ace", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-generic.c:53:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("b", "baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", 236, -237); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1005:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^(a)(b|c)|^d", "df", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1005:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^(a)(b|c)|^d", "df", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1007:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(^a)(b|c)|^d", "abe", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1007:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(^a)(b|c)|^d", "abe", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1008:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(^a)(b|c)|^d", "ace", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1008:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(^a)(b|c)|^d", "ace", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1009:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(^a)(b|c)|^d", "df", 0, 2); ^~~~~~~~~~~ gcc -I. -I. -I../. -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DDEBUG -O3 -c psx-group.c test.h:108:42: warning: implicit declaration of function 'delimiters_to_ops'; did you mean 'delimiter_to_ops'? [-Wimplicit-function-declaration] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:124:23: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~ psx-generic.c:216:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH (PARENS_TO_OPS ("(^a)"), "ab", 0, 2); ^~~~~~~~~~~ psx-generic.c:216:16: note: in expansion of macro 'PARENS_TO_OPS' TEST_SEARCH (PARENS_TO_OPS ("(^a)"), "ab", 0, 2); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1009:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(^a)(b|c)|^d", "df", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:124:23: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~ psx-generic.c:216:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH (PARENS_TO_OPS ("(^a)"), "ab", 0, 2); ^~~~~~~~~~~ psx-generic.c:216:16: note: in expansion of macro 'PARENS_TO_OPS' TEST_SEARCH (PARENS_TO_OPS ("(^a)"), "ab", 0, 2); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1011:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a)(b|c)$|d$", "fab", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-generic.c:216:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH (PARENS_TO_OPS ("(^a)"), "ab", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1011:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a)(b|c)$|d$", "fab", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-generic.c:216:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH (PARENS_TO_OPS ("(^a)"), "ab", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1012:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a)(b|c)$|d$", "fac", 0, 3); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:124:23: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~ psx-generic.c:216:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH (PARENS_TO_OPS ("(^a)"), "ab", 0, 2); ^~~~~~~~~~~ psx-generic.c:216:16: note: in expansion of macro 'PARENS_TO_OPS' TEST_SEARCH (PARENS_TO_OPS ("(^a)"), "ab", 0, 2); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1012:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a)(b|c)$|d$", "fac", 0, 3); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:124:23: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~ psx-generic.c:217:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH (PARENS_TO_OPS ("(a$)"), "ba", 0, 2); ^~~~~~~~~~~ psx-generic.c:217:16: note: in expansion of macro 'PARENS_TO_OPS' TEST_SEARCH (PARENS_TO_OPS ("(a$)"), "ba", 0, 2); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1013:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a)(b|c)$|d$", "fd", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-generic.c:217:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH (PARENS_TO_OPS ("(a$)"), "ba", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1013:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a)(b|c)$|d$", "fd", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-generic.c:217:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH (PARENS_TO_OPS ("(a$)"), "ba", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1015:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(b|c)(a)$|d$", "fba", 0, 3); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:124:23: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~ psx-generic.c:217:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH (PARENS_TO_OPS ("(a$)"), "ba", 0, 2); ^~~~~~~~~~~ psx-generic.c:217:16: note: in expansion of macro 'PARENS_TO_OPS' TEST_SEARCH (PARENS_TO_OPS ("(a$)"), "ba", 0, 2); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1015:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(b|c)(a)$|d$", "fba", 0, 3); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:124:23: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~ psx-generic.c:218:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH (PARENS_TO_OPS ("^(^a)"), "ab", 0, 2); ^~~~~~~~~~~ psx-generic.c:218:16: note: in expansion of macro 'PARENS_TO_OPS' TEST_SEARCH (PARENS_TO_OPS ("^(^a)"), "ab", 0, 2); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1016:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(b|c)(a)$|d$", "fca", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-generic.c:218:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH (PARENS_TO_OPS ("^(^a)"), "ab", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1016:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(b|c)(a)$|d$", "fca", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-generic.c:218:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH (PARENS_TO_OPS ("^(^a)"), "ab", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1017:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(b|c)(a)$|d$", "fd", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:124:23: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~ psx-generic.c:218:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH (PARENS_TO_OPS ("^(^a)"), "ab", 0, 2); ^~~~~~~~~~~ psx-generic.c:218:16: note: in expansion of macro 'PARENS_TO_OPS' TEST_SEARCH (PARENS_TO_OPS ("^(^a)"), "ab", 0, 2); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1017:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(b|c)(a)$|d$", "fd", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:124:23: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~ psx-generic.c:219:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH (PARENS_TO_OPS ("(a$)$"), "ba", 0, 2); ^~~~~~~~~~~ psx-generic.c:219:16: note: in expansion of macro 'PARENS_TO_OPS' TEST_SEARCH (PARENS_TO_OPS ("(a$)$"), "ba", 0, 2); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1019:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(b|c)(a$)|d$", "fba", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-generic.c:219:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH (PARENS_TO_OPS ("(a$)$"), "ba", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1019:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(b|c)(a$)|d$", "fba", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-generic.c:219:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH (PARENS_TO_OPS ("(a$)$"), "ba", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1020:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(b|c)(a$)|d$", "fca", 0, 3); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:124:23: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~ psx-generic.c:219:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH (PARENS_TO_OPS ("(a$)$"), "ba", 0, 2); ^~~~~~~~~~~ psx-generic.c:219:16: note: in expansion of macro 'PARENS_TO_OPS' TEST_SEARCH (PARENS_TO_OPS ("(a$)$"), "ba", 0, 2); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1020:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(b|c)(a$)|d$", "fca", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:117:49: note: in expansion of macro 'SAFE_STRLEN' general_test (1, 0, pat, str, NULL, start, 1, SAFE_STRLEN (str), \ ^~~~~~~~~~~ psx-generic.c:229:3: note: in expansion of macro 'TEST_POSITIONED_MATCH' TEST_POSITIONED_MATCH ("b", "ab", 1); ^~~~~~~~~~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:117:49: note: in expansion of macro 'SAFE_STRLEN' general_test (1, 0, pat, str, NULL, start, 1, SAFE_STRLEN (str), \ ^~~~~~~~~~~ psx-generic.c:229:3: note: in expansion of macro 'TEST_POSITIONED_MATCH' TEST_POSITIONED_MATCH ("b", "ab", 1); ^~~~~~~~~~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1021:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(b|c)(a$)|d$", "fd", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1021:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(b|c)(a$)|d$", "fd", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1023:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a)(b$|c$)|d$", "fab", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1023:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a)(b$|c$)|d$", "fab", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1024:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a)(b$|c$)|d$", "fac", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1024:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a)(b$|c$)|d$", "fac", 0, 3); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:124:23: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~ psx-generic.c:320:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH (PARENS_TO_OPS ("(^a)"), "ba", 0, 2); ^~~~~~~~~~~ psx-generic.c:320:16: note: in expansion of macro 'PARENS_TO_OPS' TEST_SEARCH (PARENS_TO_OPS ("(^a)"), "ba", 0, 2); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1025:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a)(b$|c$)|d$", "fd", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:124:23: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~ psx-generic.c:320:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH (PARENS_TO_OPS ("(^a)"), "ba", 0, 2); ^~~~~~~~~~~ psx-generic.c:320:16: note: in expansion of macro 'PARENS_TO_OPS' TEST_SEARCH (PARENS_TO_OPS ("(^a)"), "ba", 0, 2); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1025:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a)(b$|c$)|d$", "fd", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:124:23: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~ psx-generic.c:321:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH (PARENS_TO_OPS ("(a$)"), "ab", 0, 2); ^~~~~~~~~~~ psx-generic.c:321:16: note: in expansion of macro 'PARENS_TO_OPS' TEST_SEARCH (PARENS_TO_OPS ("(a$)"), "ab", 0, 2); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1027:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^d|^(b|c)(a)", "df", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:124:23: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~ psx-generic.c:321:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH (PARENS_TO_OPS ("(a$)"), "ab", 0, 2); ^~~~~~~~~~~ psx-generic.c:321:16: note: in expansion of macro 'PARENS_TO_OPS' TEST_SEARCH (PARENS_TO_OPS ("(a$)"), "ab", 0, 2); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1027:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^d|^(b|c)(a)", "df", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:124:23: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~ psx-generic.c:322:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH (PARENS_TO_OPS ("^(^a)"), "ba", 0, 2); ^~~~~~~~~~~ psx-generic.c:322:16: note: in expansion of macro 'PARENS_TO_OPS' TEST_SEARCH (PARENS_TO_OPS ("^(^a)"), "ba", 0, 2); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1028:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^d|^(b|c)(a)", "baf", 0, 3); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:124:23: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~ psx-generic.c:322:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH (PARENS_TO_OPS ("^(^a)"), "ba", 0, 2); ^~~~~~~~~~~ psx-generic.c:322:16: note: in expansion of macro 'PARENS_TO_OPS' TEST_SEARCH (PARENS_TO_OPS ("^(^a)"), "ba", 0, 2); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1028:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^d|^(b|c)(a)", "baf", 0, 3); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:124:23: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~ psx-generic.c:323:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH (PARENS_TO_OPS ("(a$)$"), "ab", 0, 2); ^~~~~~~~~~~ psx-generic.c:323:16: note: in expansion of macro 'PARENS_TO_OPS' TEST_SEARCH (PARENS_TO_OPS ("(a$)$"), "ab", 0, 2); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1029:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^d|^(b|c)(a)", "caf", 0, 3); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:124:23: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~ psx-generic.c:323:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH (PARENS_TO_OPS ("(a$)$"), "ab", 0, 2); ^~~~~~~~~~~ psx-generic.c:323:16: note: in expansion of macro 'PARENS_TO_OPS' TEST_SEARCH (PARENS_TO_OPS ("(a$)$"), "ab", 0, 2); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1029:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^d|^(b|c)(a)", "caf", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1031:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^d|(^b|^c)(a)", "df", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1031:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^d|(^b|^c)(a)", "df", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1032:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^d|(^b|^c)(a)", "baf", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1032:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^d|(^b|^c)(a)", "baf", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1033:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^d|(^b|^c)(a)", "caf", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1033:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^d|(^b|^c)(a)", "caf", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1035:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(b|c)(a$)", "fd", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1035:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(b|c)(a$)", "fd", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1036:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(b|c)(a$)", "fba", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1036:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(b|c)(a$)", "fba", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1037:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(b|c)(a$)", "fca", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1037:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(b|c)(a$)", "fca", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1039:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(b|c)(a)$", "fd", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1039:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(b|c)(a)$", "fd", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1040:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(b|c)(a)$", "fba", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1040:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(b|c)(a)$", "fba", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1041:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(b|c)(a)$", "fca", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1041:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(b|c)(a)$", "fca", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1043:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(b|c)(a$)", "fd", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1043:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(b|c)(a$)", "fd", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1044:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(b|c)(a$)", "fba", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1044:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(b|c)(a$)", "fba", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1045:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(b|c)(a$)", "fca", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1045:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(b|c)(a$)", "fca", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1047:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^d|^(a)(b|c)", "df", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1047:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^d|^(a)(b|c)", "df", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1048:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^d|^(a)(b|c)", "abf", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1048:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^d|^(a)(b|c)", "abf", 0, 3); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1049:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^d|^(a)(b|c)", "acf", 0, 3); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1049:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^d|^(a)(b|c)", "acf", 0, 3); ^~~~~~~~~~~ In file included from psx-group.c:3:0: psx-group.c: In function 'test_grouping': test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1051:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^d|(^a)(b|c)", "df", 0, 2); ^~~~~~~~~~~ test.h:108:42: warning: implicit declaration of function 'delimiters_to_ops'; did you mean 'delimiter_to_ops'? [-Wimplicit-function-declaration] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:13:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("(a)"), "a", 0, 0); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1051:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^d|(^a)(b|c)", "df", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:13:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("(a)"), "a", 0, 0); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1052:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^d|(^a)(b|c)", "abf", 0, 3); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:14:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a)"), "a"); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1052:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^d|(^a)(b|c)", "abf", 0, 3); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:15:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a)"), "a", 0, 1, 0, 1, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:15:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a)"), "a", 0, 1, 0, 1, -1, -1); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1053:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^d|(^a)(b|c)", "acf", 0, 3); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:16:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a)"), "xax", 1, 2, 1, 2, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:16:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a)"), "xax", 1, 2, 1, 2, -1, -1); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1053:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^d|(^a)(b|c)", "acf", 0, 3); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:18:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((a))"), "a"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:19:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("((a))"), "a", 0, 0); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1055:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(a)(b$|c$)", "fd", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:20:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("((a))"), "a", 0, 1, 0, 1, 0, 1); ^~~~~~~~~~~~~~ psx-group.c:20:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("((a))"), "a", 0, 1, 0, 1, 0, 1); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1055:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(a)(b$|c$)", "fd", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:21:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("((a))"), "xax", 1, 2, 1, 2, 1, 2); ^~~~~~~~~~~~~~ psx-group.c:21:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("((a))"), "xax", 1, 2, 1, 2, 1, 2); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1056:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(a)(b$|c$)", "fab", 0, 3); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:23:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("(a)(b)"), "a", 0, 0); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1056:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(a)(b$|c$)", "fab", 0, 3); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:24:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a)(b)"), "ab"); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1057:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(a)(b$|c$)", "fac", 0, 3); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:25:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a)(b)"), "ab", 0, 2, 0, 1, 1, 2); ^~~~~~~~~~~~~~ psx-group.c:25:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a)(b)"), "ab", 0, 2, 0, 1, 1, 2); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1057:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(a)(b$|c$)", "fac", 0, 3); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:27:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a)(b)"), "xabx", 1, 3, 1, 2, 2, 3); ^~~~~~~~~~~~~~ psx-group.c:27:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a)(b)"), "xabx", 1, 3, 1, 2, 2, 3); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1059:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(a)(b|c)$", "fd", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:29:23: note: in expansion of macro 'PARENS_TO_OPS' test_all_registers (PARENS_TO_OPS ("((a)(b))"), "ab", "", 0, 2, 0, 2, 0, 1, ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1059:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(a)(b|c)$", "fd", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:34:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((a))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))"), "a"); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1060:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(a)(b|c)$", "fab", 0, 3); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:39:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("(a)*"), "a", 0, 0); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1060:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(a)(b|c)$", "fab", 0, 3); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:40:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a)*"), ""); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1061:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(a)(b|c)$", "fac", 0, 3); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:41:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a)*"), "", 0, 0, -1, -1, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:41:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a)*"), "", 0, 0, -1, -1, -1, -1); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1061:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(a)(b|c)$", "fac", 0, 3); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:42:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a)*"), "aa", 0, 2, 1, 2, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:42:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a)*"), "aa", 0, 2, 1, 2, -1, -1); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1063:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("((^a|^b)|^c)|^d", "ae", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:44:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("(a*)"), "a", 0, 0); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1063:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("((^a|^b)|^c)|^d", "ae", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:45:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*)"), ""); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1064:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("((^a|^b)|^c)|^d", "be", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:46:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)"), "", 0, 0, 0, 0, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:46:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)"), "", 0, 0, 0, 0, -1, -1); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1064:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("((^a|^b)|^c)|^d", "be", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:48:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("(a*)"), "a", 0, 0); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1065:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("((^a|^b)|^c)|^d", "ce", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:49:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*)"), "a"); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1065:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("((^a|^b)|^c)|^d", "ce", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:50:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)"), "a", 0, 1, 0, 1, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:50:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)"), "a", 0, 1, 0, 1, -1, -1); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1066:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("((^a|^b)|^c)|^d", "de", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:52:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("(a*)b"), "ab", 0, 0); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1066:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("((^a|^b)|^c)|^d", "de", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:53:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*)b"), "b"); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1068:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("((a|b)|c)|d$", "ed", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:54:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)b"), "b", 0, 1, 0, 0, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:54:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)b"), "b", 0, 1, 0, 0, -1, -1); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1068:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("((a|b)|c)|d$", "ed", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:56:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*)b"), "ab"); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1069:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("((a|b)|c)|d$", "ea", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:57:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)b"), "ab", 0, 2, 0, 1, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:57:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)b"), "ab", 0, 2, 0, 1, -1, -1); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1069:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("((a|b)|c)|d$", "ea", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:59:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("((a*)b)*"), "ab", 0, 0); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1070:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("((a|b)|c)|d$", "eb", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:60:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((a*)b)*"), ""); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1070:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("((a|b)|c)|d$", "eb", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:61:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("((a*)b)*"), "", 0, 0, -1, -1, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:61:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("((a*)b)*"), "", 0, 0, -1, -1, -1, -1); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1071:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("((a|b)|c)|d$", "ec", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:63:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((a*)b)*"), "ab"); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1071:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("((a|b)|c)|d$", "ec", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:64:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("((a*)b)*"), "ab", 0, 2, 0, 2, 0, 1); ^~~~~~~~~~~~~~ psx-group.c:64:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("((a*)b)*"), "ab", 0, 2, 0, 2, 0, 1); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1073:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^d|(c|(a|b))", "de", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:66:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((a*)b)*"), "abb"); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1073:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^d|(c|(a|b))", "de", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:67:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("((a*)b)*"), "abb", 0, 3, 2, 3, 2, 2); ^~~~~~~~~~~~~~ psx-group.c:67:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("((a*)b)*"), "abb", 0, 3, 2, 3, 2, 2); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1075:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|(a$|b$))", "ed", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:69:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((a*)b)*"), "aabab"); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1075:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|(a$|b$))", "ed", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:70:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("((a*)b)*"), "aabab", 0, 5, 3, 5, 3, 4); ^~~~~~~~~~~~~~ psx-group.c:70:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("((a*)b)*"), "aabab", 0, 5, 3, 5, 3, 4); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1076:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|(a$|b$))", "ec", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:72:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((a*)b)*"), "abbab"); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1076:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|(a$|b$))", "ec", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:73:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("((a*)b)*"), "abbab", 0, 5, 3, 5, 3, 4); ^~~~~~~~~~~~~~ psx-group.c:73:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("((a*)b)*"), "abbab", 0, 5, 3, 5, 3, 4); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1077:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|(a$|b$))", "ea", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:75:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("((a*)b)*"), "xabbabx", 0, 0, -1, -1, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:75:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("((a*)b)*"), "xabbabx", 0, 0, -1, -1, -1, -1); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1077:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|(a$|b$))", "ea", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:77:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((a*)b)*"), "abaabaaaab"); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1078:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|(a$|b$))", "eb", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:78:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("((a*)b)*"), "abaabaaab", 0, 9, 5, 9, 5, 8); ^~~~~~~~~~~~~~ psx-group.c:78:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("((a*)b)*"), "abaabaaab", 0, 9, 5, 9, 5, 8); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1078:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|(a$|b$))", "eb", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:80:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("(ab)*"), "a", 0, 0); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1080:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|(a|b)$)", "ed", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:81:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(ab)*"), ""); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1080:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|(a|b)$)", "ed", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:82:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(ab)*"), "", 0, 0, -1, -1, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:82:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(ab)*"), "", 0, 0, -1, -1, -1, -1); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1081:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|(a|b)$)", "ec", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:84:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(ab)*"), "abab"); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1081:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|(a|b)$)", "ec", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:85:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(ab)*"), "abab", 0, 4, 2, 4, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:85:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(ab)*"), "abab", 0, 4, 2, 4, -1, -1); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1082:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|(a|b)$)", "ea", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:88:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(ab)*"), "xababx", 0, 0, -1, -1, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:88:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(ab)*"), "xababx", 0, 0, -1, -1, -1, -1); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1082:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|(a|b)$)", "ea", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:91:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("a(b*)c"), "ac", 0, 2, 1, 1, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:91:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("a(b*)c"), "ac", 0, 2, 1, 1, -1, -1); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1083:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|(a|b)$)", "eb", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:93:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("(a)*b"), "ab", 0, 0); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1083:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|(a|b)$)", "eb", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:94:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a)*b"), "b"); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1085:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|(a|b))$", "ed", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:95:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a)*b"), "b", 0, 1, -1, -1, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:95:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a)*b"), "b", 0, 1, -1, -1, -1, -1); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1085:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|(a|b))$", "ed", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:97:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a)*b"), "ab"); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1086:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|(a|b))$", "ec", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:98:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a)*b"), "ab", 0, 2, 0, 1, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:98:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a)*b"), "ab", 0, 2, 0, 1, -1, -1); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1086:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|(a|b))$", "ec", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:100:17: note: in expansion of macro 'PARENS_TO_OPS' test_match_2 (PARENS_TO_OPS ("(a)*b"), "a", "ab"); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1087:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|(a|b))$", "ea", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:101:21: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS_2 (PARENS_TO_OPS ("(a)*b"), "a", "ab", 0, 3, 1, 2, -1, -1); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1087:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|(a|b))$", "ea", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:103:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a)*b"), "aab"); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1088:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|(a|b))$", "eb", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:104:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a)*b"), "aab", 0, 3, 1, 2, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:104:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a)*b"), "aab", 0, 3, 1, 2, -1, -1); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1088:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("d$|(c$|(a|b))$", "eb", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:106:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("(a)*a"), "a", 0, 0); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1096:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c|^ab", "aba", 0, 3); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:107:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a)*a"), "a"); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1096:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c|^ab", "aba", 0, 3); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:108:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a)*a"), "a", 0, 1, -1, -1, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:108:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a)*a"), "a", 0, 1, -1, -1, -1, -1); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1097:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c|ba$", "aba", 0, 3); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:110:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)*"), "", 0, 0, 0, 0, 0, 0); ^~~~~~~~~~~~~~ psx-group.c:110:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)*"), "", 0, 0, 0, 0, 0, 0); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1097:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c|ba$", "aba", 0, 3); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:112:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((a*))*"), ""); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1098:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^ab|c", "aba", 0, 3); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:113:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("((a*))*"), "", 0, 0, 0, 0, 0, 0); ^~~~~~~~~~~~~~ psx-group.c:113:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("((a*))*"), "", 0, 0, 0, 0, 0, 0); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1098:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^ab|c", "aba", 0, 3); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:114:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((a*))*"), "aa"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:116:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("(a*)*b"), "ab", 0, 0); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1099:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ba$|c", "aba", 0, 3); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:117:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*)*b"), "b"); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1099:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ba$|c", "aba", 0, 3); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:118:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)*b"), "b", 0, 1, 0, 0, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:118:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)*b"), "b", 0, 1, 0, 0, -1, -1); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1100:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(^a)", "ab", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:120:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)*b"), "xbx", 1, 2, 1, 1, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:120:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)*b"), "xbx", 1, 2, 1, 1, -1, -1); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1100:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(^a)", "ab", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:122:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*)*b"), "ab"); /* Per rms. */ ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1101:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a$)", "ba", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:123:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)*b"), "ab", 0, 2, 0, 1, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:123:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)*b"), "ab", 0, 2, 0, 1, -1, -1); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1101:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(a$)", "ba", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:125:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)*b"), "xabx", 1, 3, 1, 2, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:125:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)*b"), "xabx", 1, 3, 1, 2, -1, -1); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1103:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(^a$)", "a", 0, 1); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:128:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*)*b"), "aab"); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1103:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(^a$)", "a", 0, 1); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:129:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)*b"), "aab", 0, 3, 0, 2, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:129:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)*b"), "aab", 0, 3, 0, 2, -1, -1); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1104:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(^a)", "ab", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:131:21: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS_2 (PARENS_TO_OPS ("(a*)*b"), "a", "ab", 0, 3, 0, 2, -1, -1); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1104:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(^a)", "ab", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:134:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("(a*)a"), "a", 0, 0); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1105:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(b$)", "ab", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:135:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*)a"), "a"); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1105:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(b$)", "ab", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:136:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)a"), "a", 0, 1, 0, 0, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:136:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)a"), "a", 0, 1, 0, 0, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:138:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*)a"), "aa"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:139:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)a"), "aa", 0, 2, 0, 1, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:139:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)a"), "aa", 0, 2, 0, 1, -1, -1); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1225:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c|^ba", "aba", 0, 3); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:143:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*)*a"), "aa"); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1225:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c|^ba", "aba", 0, 3); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:145:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)*a"), "a", 0, 1, 0, 0, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:145:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)*a"), "a", 0, 1, 0, 0, -1, -1); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1226:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c|ab$", "aba", 0, 3); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:146:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)*a"), "xax", 1, 2, 1, 1, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:146:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)*a"), "xax", 1, 2, 1, 1, -1, -1); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1226:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("c|ab$", "aba", 0, 3); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:147:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)*a"), "aa", 0, 2, 0, 1, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:147:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)*a"), "aa", 0, 2, 0, 1, -1, -1); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1227:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^ba|c", "aba", 0, 3); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:148:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)*a"), "xaax", 1, 3, 1, 2, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:148:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)*a"), "xaax", 1, 3, 1, 2, -1, -1); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1227:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("^ba|c", "aba", 0, 3); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:150:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("(a)*ab"), "a", 0 , 0); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1228:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ab$|c", "aba", 0, 3); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:151:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a)*ab"), "ab"); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1228:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("ab$|c", "aba", 0, 3); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:152:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a)*ab"), "ab", 0, 2, -1, -1, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:152:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a)*ab"), "ab", 0, 2, -1, -1, -1, -1); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1230:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(^a)", "ba", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:154:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a)*ab"), "aab"); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1230:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(^a)", "ba", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:155:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a)*ab"), "aab", 0, 3, 0, 1, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:155:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a)*ab"), "aab", 0, 3, 0, 1, -1, -1); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1231:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(b$)", "ba", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:157:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS("(a)*ab"), "xaabx", 1, 4, 1, 2, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:157:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS("(a)*ab"), "xaabx", 1, 4, 1, 2, -1, -1); ^~~~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-extend.c:1231:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH ("(b$)", "ba", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:159:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("(a*)ab"), "a", 0 , 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:160:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*)ab"), "ab"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:161:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)ab"), "ab", 0, 2, 0, 0, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:161:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)ab"), "ab", 0, 2, 0, 0, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:163:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*)ab"), "aab"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:164:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)ab"), "aab", 0, 3, 0, 1, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:164:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)ab"), "aab", 0, 3, 0, 1, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:166:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)ab"), "xaabx", 1, 4, 1, 2, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:166:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)ab"), "xaabx", 1, 4, 1, 2, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:168:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("(a*)*ab"), "a", 0 , 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:169:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*)*ab"), "ab"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:170:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)*ab"), "ab", 0, 2, 0, 0, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:170:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)*ab"), "ab", 0, 2, 0, 0, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:172:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*)*ab"), "aab"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:173:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)*ab"), "aab", 0, 3, 0, 1, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:173:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)*ab"), "aab", 0, 3, 0, 1, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:175:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS("(a*)*ab"), "xaabx", 1, 4, 1, 2, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:175:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS("(a*)*ab"), "xaabx", 1, 4, 1, 2, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:177:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("(a*)*b*c"), "abc", 0, 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:178:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*)*b*c"), "c"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:179:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)*b*c"), "c", 0, 1, 0, 0, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:179:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)*b*c"), "c", 0, 1, 0, 0, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:181:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("(a)*(ab)*"), "a", 0, 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:182:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a)*(ab)*"), "ab"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:185:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a)*(ab)*"), "ab", 0, 2, -1, -1, 0, 2); ^~~~~~~~~~~~~~ psx-group.c:185:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a)*(ab)*"), "ab", 0, 2, -1, -1, 0, 2); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:187:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*)*(ab)*"), "ab"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:188:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)*(ab)*"), "ab", 0, 2, 0, 0, 0, 2); ^~~~~~~~~~~~~~ psx-group.c:188:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)*(ab)*"), "ab", 0, 2, 0, 0, 0, 2); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:190:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("(a*b)*"), "ab", 0, 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:191:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*b)*"), ""); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:192:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*b)*"), "", 0, 0, -1, -1, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:192:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*b)*"), "", 0, 0, -1, -1, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:194:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*b)*"), "b"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:195:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*b)*"), "b", 0, 1, 0, 1, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:195:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*b)*"), "b", 0, 1, 0, 1, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:197:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*b)*"), "baab"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:198:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*b)*"), "baab", 0, 4, 1, 4, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:198:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*b)*"), "baab", 0, 4, 1, 4, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:200:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("(a*b*)*"), "ab", 0, 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:201:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*b*)*"), ""); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:202:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*b*)*"), "", 0, 0, 0, 0, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:202:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*b*)*"), "", 0, 0, 0, 0, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:204:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*b*)*"), "a"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:205:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*b*)*"), "a", 0, 1, 0, 1, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:205:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*b*)*"), "a", 0, 1, 0, 1, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:207:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*b*)*"), "ba"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:208:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*b*)*"), "ba", 0, 2, 1, 2, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:208:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*b*)*"), "ba", 0, 2, 1, 2, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:210:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*b*)*"), "ab"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:211:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*b*)*"), "ab", 0, 2, 0, 2, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:211:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*b*)*"), "ab", 0, 2, 0, 2, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:213:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*b*)*"), "aa"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:214:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*b*)*"), "aa", 0, 2, 0, 2, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:214:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*b*)*"), "aa", 0, 2, 0, 2, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:216:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*b*)*"), "bb"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:217:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*b*)*"), "bb", 0, 2, 0, 2, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:217:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*b*)*"), "bb", 0, 2, 0, 2, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:219:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*b*)*"), "aba"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:220:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*b*)*"), "aba", 0, 3, 2, 3, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:220:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*b*)*"), "aba", 0, 3, 2, 3, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:222:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*b*)b"), "b"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:223:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*b*)b"), "b", 0, 1, 0, 0, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:223:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*b*)b"), "b", 0, 1, 0, 0, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:225:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("((a*)*(b*)*)*"), "ab", 0, 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:226:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((a*)*(b*)*)*"), ""); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:227:23: note: in expansion of macro 'PARENS_TO_OPS' test_all_registers (PARENS_TO_OPS ("((a*)*(b*)*)*"), "", "", 0, 0, 0, 0, ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:230:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((a*)*(b*)*)*"), "aba"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:233:23: note: in expansion of macro 'PARENS_TO_OPS' test_all_registers (PARENS_TO_OPS ("((a*)*(b*)*)*"), "aba", "", 0, 3, 2, 3, ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:236:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("((a*)(b*))*"), "ab", 0, 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:237:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((a*)(b*))*"), ""); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:239:23: note: in expansion of macro 'PARENS_TO_OPS' test_all_registers (PARENS_TO_OPS ("((a*)(b*))*"), "", "", 0, 0, 0, 0, ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:242:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(c(c(a)*(b)*)*)*"), ""); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:244:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((a*)(b*))*"), "aba"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:245:23: note: in expansion of macro 'PARENS_TO_OPS' test_all_registers (PARENS_TO_OPS ("((a*)(b*))*"), "aba", "", 0, 3, 2, 3, ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:248:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("((a)*(b)*)*"), "ab", 0, 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:249:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((a)*(b)*)*"), ""); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:250:23: note: in expansion of macro 'PARENS_TO_OPS' test_all_registers (PARENS_TO_OPS ("((a)*(b)*)*"), "", "", 0, 0, 0, 0, ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:253:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((a)*(b)*)*"), "aba"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:255:23: note: in expansion of macro 'PARENS_TO_OPS' test_all_registers (PARENS_TO_OPS ("((a)*(b)*)*"), "aba", "", 0, 3, 2, 3, ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:258:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("(c(a)*(b)*)*"), "c", 0, 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:259:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(c(a)*(b)*)*"), ""); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:260:23: note: in expansion of macro 'PARENS_TO_OPS' test_all_registers (PARENS_TO_OPS ("(c(a)*(b)*)*"), "", "", 0, 0, -1, -1, ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:263:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(c(a)*(b)*)*"), "c"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:264:23: note: in expansion of macro 'PARENS_TO_OPS' test_all_registers (PARENS_TO_OPS ("(c(a)*(b)*)*"), "c", "", 0, 1, 0, 1, ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:267:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("c((a)*(b)*)*"), "c", 0, 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:268:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("c((a)*(b)*)*"), "c"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:269:23: note: in expansion of macro 'PARENS_TO_OPS' test_all_registers (PARENS_TO_OPS ("c((a)*(b)*)*"), "c", "", 0, 1, 1, 1, ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:272:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("(((a)*(b)*)*)*"), "ab", 0, 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:273:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(((a)*(b)*)*)*"), ""); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:274:23: note: in expansion of macro 'PARENS_TO_OPS' test_all_registers (PARENS_TO_OPS ("(((a)*(b)*)*)*"), "", "", 0, 0, 0, 0, ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:277:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(c(c(a)*(b)*)*)*"), ""); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:278:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("(c(c(a)*(b)*)*)*"), "c", 0, 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:280:23: note: in expansion of macro 'PARENS_TO_OPS' test_all_registers (PARENS_TO_OPS ("(c(c(a)*(b)*)*)*"), "", "", 0, 0, -1, -1, ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:283:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("((a)*b)*"), "ab", 0, 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:284:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((a)*b)*"), ""); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:286:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((a)*b)*"), ""); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:287:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("((a)*b)*"), "", 0, 0, -1, -1, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:287:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("((a)*b)*"), "", 0, 0, -1, -1, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:289:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((a)*b)*"), "abb"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:290:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("((a)*b)*"), "abb", 0, 3, 2, 3, 0, 1); /*zz*/ ^~~~~~~~~~~~~~ psx-group.c:290:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("((a)*b)*"), "abb", 0, 3, 2, 3, 0, 1); /*zz*/ ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:292:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((a)*b)*"), "abbab"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:293:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("((a)*b)*"), "abbab", 0, 5, 3, 5, 3, 4); ^~~~~~~~~~~~~~ psx-group.c:293:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("((a)*b)*"), "abbab", 0, 5, 3, 5, 3, 4); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:296:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("((a)*b)*"), "xabbabx", 0, 0, -1, -1, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:296:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("((a)*b)*"), "xabbabx", 0, 0, -1, -1, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:298:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("(a*)*"), "a", 0, 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:299:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*)*"), ""); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:300:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)*"), "", 0, 0, 0, 0, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:300:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)*"), "", 0, 0, 0, 0, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:302:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*)*"), "aa"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:303:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)*"), "aa", 0, 2, 0, 2, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:303:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*)*"), "aa", 0, 2, 0, 2, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:305:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("((a*)*)*"), "a", 0, 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:306:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((a*)*)*"), ""); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:307:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("((a*)*)*"), "", 0, 0, 0, 0, 0, 0); ^~~~~~~~~~~~~~ psx-group.c:307:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("((a*)*)*"), "", 0, 0, 0, 0, 0, 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:309:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((a*)*)*"), "a"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:310:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("((a*)*)*"), "a", 0, 1, 0, 1, 0, 1); ^~~~~~~~~~~~~~ psx-group.c:310:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("((a*)*)*"), "a", 0, 1, 0, 1, 0, 1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:312:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("(ab*)*"), "a", 0, 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:313:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(ab*)*"), ""); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:314:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(ab*)*"), "", 0, 0, -1, -1, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:314:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(ab*)*"), "", 0, 0, -1, -1, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:316:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(ab*)*"), "aa"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:317:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(ab*)*"), "aa", 0, 2, 1, 2, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:317:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(ab*)*"), "aa", 0, 2, 1, 2, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:319:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("(ab*)*c"), "ac", 0, 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:320:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(ab*)*c"), "c"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:321:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(ab*)*c"), "c", 0, 1, -1, -1, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:321:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(ab*)*c"), "c", 0, 1, -1, -1, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:323:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(ab*)*c"), "abbac"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:324:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(ab*)*c"), "abbac", 0, 5, 3, 4, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:324:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(ab*)*c"), "abbac", 0, 5, 3, 4, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:326:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(ab*)*c"), "abac"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:327:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(ab*)*c"), "abac", 0, 4, 2, 3, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:327:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(ab*)*c"), "abac", 0, 4, 2, 3, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:329:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("(a*b)*c"), "abc", 0, 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:330:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*b)*c"), "c"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:331:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*b)*c"), "c", 0, 1, -1, -1, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:331:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*b)*c"), "c", 0, 1, -1, -1, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:333:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*b)*c"), "bbc"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:334:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*b)*c"), "bbc", 0, 3, 1, 2, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:334:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*b)*c"), "bbc", 0, 3, 1, 2, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:336:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*b)*c"), "aababc"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:337:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*b)*c"), "aababc", 0, 6, 3, 5, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:337:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*b)*c"), "aababc", 0, 6, 3, 5, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:339:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*b)*c"), "aabaabc"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:340:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*b)*c"), "aabaabc", 0, 7, 3, 6, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:340:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*b)*c"), "aabaabc", 0, 7, 3, 6, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:342:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("((a*)b*)"), "ab", 0, 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:343:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((a*)b*)"), ""); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:344:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("((a*)b*)"), "", 0, 0, 0, 0, 0, 0); ^~~~~~~~~~~~~~ psx-group.c:344:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("((a*)b*)"), "", 0, 0, 0, 0, 0, 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:346:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((a*)b*)"), "a"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:347:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("((a*)b*)"), "a", 0, 1, 0, 1, 0, 1); ^~~~~~~~~~~~~~ psx-group.c:347:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("((a*)b*)"), "a", 0, 1, 0, 1, 0, 1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:349:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((a*)b*)"), "b"); ^~~~~~~~~~~~~ gcc -I. -I. -I../. -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DDEBUG -O3 -c psx-interf.c test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:350:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("((a*)b*)"), "b", 0, 1, 0, 1, 0, 0); ^~~~~~~~~~~~~~ psx-group.c:350:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("((a*)b*)"), "b", 0, 1, 0, 1, 0, 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:352:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("((a)*b*)"), "ab", 0, 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:353:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((a)*b*)"), ""); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:354:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("((a)*b*)"), "", 0, 0, 0, 0, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:354:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("((a)*b*)"), "", 0, 0, 0, 0, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:356:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((a)*b*)"), "a"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:357:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("((a)*b*)"), "a", 0, 1, 0, 1, 0, 1); ^~~~~~~~~~~~~~ psx-group.c:357:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("((a)*b*)"), "a", 0, 1, 0, 1, 0, 1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:359:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((a)*b*)"), "b"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:360:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("((a)*b*)"), "b", 0, 1, 0, 1, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:360:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("((a)*b*)"), "b", 0, 1, 0, 1, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:362:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((a)*b*)"), "ab"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:363:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("((a)*b*)"), "ab", 0, 2, 0, 2, 0, 1); ^~~~~~~~~~~~~~ psx-group.c:363:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("((a)*b*)"), "ab", 0, 2, 0, 2, 0, 1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:365:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("((a*)b*)c"), "abc", 0, 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:366:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((a*)b*)c"), "c"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:367:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("((a*)b*)c"), "c", 0, 1, 0, 0, 0, 0); ^~~~~~~~~~~~~~ psx-group.c:367:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("((a*)b*)c"), "c", 0, 1, 0, 0, 0, 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:369:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("((a)*b*)c"), "abc", 0, 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:370:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((a)*b*)c"), "c"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:371:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("((a)*b*)c"), "c", 0, 1, 0, 0, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:371:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("((a)*b*)c"), "c", 0, 1, 0, 0, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:373:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("(a*b*)*"), "ab", 0, 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:374:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*b*)*"), ""); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:375:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("(a*b*)*"), "", 0, 0, 0, 0, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:375:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("(a*b*)*"), "", 0, 0, 0, 0, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:377:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("(((a*))((b*)))*"), "ab", 0, 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:378:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(((a*))((b*)))*"), ""); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:379:23: note: in expansion of macro 'PARENS_TO_OPS' test_all_registers (PARENS_TO_OPS ("(((a*))((b*)))*"), "", "", 0, 0, ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:382:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("(c*((a*))d*((b*))e*)*"), "abcde", 0, 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:383:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(c*((a*))d*((b*))e*)*"), ""); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:384:23: note: in expansion of macro 'PARENS_TO_OPS' test_all_registers (PARENS_TO_OPS ("(c*((a*))d*((b*))e*)*"), "", "", 0, 0, ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:387:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("((a)*b)*c"), "abc", 0, 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:388:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((a)*b)*c"), "c"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-group.c:389:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (PARENS_TO_OPS ("((a)*b)*c"), "c", 0, 1, -1, -1, -1, -1); ^~~~~~~~~~~~~~ psx-group.c:389:19: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (PARENS_TO_OPS ("((a)*b)*c"), "c", 0, 1, -1, -1, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:391:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(ab)*"), ""); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:392:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((ab)*)"), ""); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:393:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(((ab)*))"), ""); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:394:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((((ab)*)))"), ""); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:395:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(((((ab)*))))"), ""); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:396:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((((((ab)*)))))"), ""); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:397:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(((((((ab)*))))))"), ""); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:398:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((((((((ab)*)))))))"), ""); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:399:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(((((((((ab)*))))))))"), ""); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:402:17: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (PARENS_TO_OPS ("(((((((((ab)*))))))))"), "a", 0, 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:403:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((((((((((ab)*)))))))))"), ""); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:404:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(((((((((ab)*))))))))"), ""); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:405:23: note: in expansion of macro 'PARENS_TO_OPS' test_all_registers (PARENS_TO_OPS ("(((((((((ab)*))))))))"), "", NULL, ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:408:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(((((((((ab)*))))))))"), "abab"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:409:23: note: in expansion of macro 'PARENS_TO_OPS' test_all_registers (PARENS_TO_OPS ("(((((((((ab)*))))))))"), "abab", NULL, ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:415:32: note: in expansion of macro 'PARENS_TO_OPS' invalid_pattern (REG_EPAREN, PARENS_TO_OPS ("(a")); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:417:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a)"), ""); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:418:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((a))"), "b"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:419:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a)(b)"), "ac"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:420:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(ab)*"), "acab"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:421:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*)*b"), "c"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:422:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*b)*"), "baa"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:423:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*b)*"), "baabc"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:424:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*b*)*"), "c"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:425:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((a*)*(b*)*)*"), "c"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:426:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*)*"), "ab"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:427:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((a*)*)*"), "ab"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:428:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((a*)*)*"), "b"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:429:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(ab*)*"), "abc"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:430:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(ab*)*c"), "abbad"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:431:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*c)*b"), "aacaacd"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:432:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("(a*)"), "b"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ psx-group.c:433:15: note: in expansion of macro 'PARENS_TO_OPS' test_match (PARENS_TO_OPS ("((a*)b*)"), "c"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:124:23: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~ psx-group.c:436:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH (PARENS_TO_OPS ("(^b)"), "ab", 0, 2); ^~~~~~~~~~~ psx-group.c:436:16: note: in expansion of macro 'PARENS_TO_OPS' TEST_SEARCH (PARENS_TO_OPS ("(^b)"), "ab", 0, 2); ^~~~~~~~~~~~~ test.h:14:42: warning: implicit declaration of function 'strlen' [-Wimplicit-function-declaration] #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-group.c:436:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH (PARENS_TO_OPS ("(^b)"), "ab", 0, 2); ^~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-group.c:436:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH (PARENS_TO_OPS ("(^b)"), "ab", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-group.c:436:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH (PARENS_TO_OPS ("(^b)"), "ab", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:124:23: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~ psx-group.c:436:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH (PARENS_TO_OPS ("(^b)"), "ab", 0, 2); ^~~~~~~~~~~ psx-group.c:436:16: note: in expansion of macro 'PARENS_TO_OPS' TEST_SEARCH (PARENS_TO_OPS ("(^b)"), "ab", 0, 2); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:124:23: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~ psx-group.c:437:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH (PARENS_TO_OPS ("(a$)"), "ab", 0, 2); ^~~~~~~~~~~ psx-group.c:437:16: note: in expansion of macro 'PARENS_TO_OPS' TEST_SEARCH (PARENS_TO_OPS ("(a$)"), "ab", 0, 2); ^~~~~~~~~~~~~ test.h:14:42: warning: incompatible implicit declaration of built-in function 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-group.c:437:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH (PARENS_TO_OPS ("(a$)"), "ab", 0, 2); ^~~~~~~~~~~ test.h:14:42: note: include '' or provide a declaration of 'strlen' #define SAFE_STRLEN(s) (s == NULL ? 0 : strlen (s)) ^ test.h:124:54: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~~~~~~~~~~ test.h:129:50: note: in expansion of macro 'SAFE_STRLEN' TEST_SEARCH_2 (pat, str, NULL, start, range, SAFE_STRLEN (str)); \ ^~~~~~~~~~~ psx-group.c:437:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH (PARENS_TO_OPS ("(a$)"), "ab", 0, 2); ^~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:124:23: note: in definition of macro 'TEST_SEARCH_2' general_test (1, 0, pat, str1, str2, start, range, one_past_end, \ ^~~ psx-group.c:437:3: note: in expansion of macro 'TEST_SEARCH' TEST_SEARCH (PARENS_TO_OPS ("(a$)"), "ab", 0, 2); ^~~~~~~~~~~ psx-group.c:437:16: note: in expansion of macro 'PARENS_TO_OPS' TEST_SEARCH (PARENS_TO_OPS ("(a$)"), "ab", 0, 2); ^~~~~~~~~~~~~ gcc -I. -I. -I../. -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DDEBUG -O3 -c psx-interv.c In file included from psx-interv.c:3:0: psx-interv.c: In function 'test_intervals': test.h:107:42: warning: implicit declaration of function 'delimiters_to_ops'; did you mean 'delimiter_to_ops'? [-Wimplicit-function-declaration] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:12:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS (PARENS_TO_OPS ("(a{1,2}b)*")), "abaab"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:107:61: note: in definition of macro 'BRACES_TO_OPS' #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^~~~~~ psx-interv.c:12:30: note: in expansion of macro 'PARENS_TO_OPS' test_match (BRACES_TO_OPS (PARENS_TO_OPS ("(a{1,2}b)*")), "abaab"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:12:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS (PARENS_TO_OPS ("(a{1,2}b)*")), "abaab"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:107:61: note: in definition of macro 'BRACES_TO_OPS' #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^~~~~~ psx-interv.c:13:32: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (BRACES_TO_OPS (PARENS_TO_OPS ("(a{1,2}b)*")), "a", 0, 0); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:13:17: note: in expansion of macro 'BRACES_TO_OPS' test_fastmap (BRACES_TO_OPS (PARENS_TO_OPS ("(a{1,2}b)*")), "a", 0, 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-interv.c:14:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a{1,2}b)*")), ^~~~~~~~~~~~~~ psx-interv.c:14:19: note: in expansion of macro 'BRACES_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a{1,2}b)*")), ^~~~~~~~~~~~~ psx-interv.c:14:34: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a{1,2}b)*")), ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-interv.c:14:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a{1,2}b)*")), ^~~~~~~~~~~~~~ psx-interv.c:14:19: note: in expansion of macro 'BRACES_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a{1,2}b)*")), ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:17:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{0}"), ""); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:18:17: note: in expansion of macro 'BRACES_TO_OPS' test_fastmap (BRACES_TO_OPS ("a{0}"), "", 0, 0); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-interv.c:19:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (BRACES_TO_OPS ("a{0}"), "", 0, 0, -1, -1, -1, -1); ^~~~~~~~~~~~~~ psx-interv.c:19:19: note: in expansion of macro 'BRACES_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS ("a{0}"), "", 0, 0, -1, -1, -1, -1); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-interv.c:20:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (BRACES_TO_OPS ("a{0}"), "x", 0, 0, -1, -1, -1, -1); ^~~~~~~~~~~~~~ psx-interv.c:20:19: note: in expansion of macro 'BRACES_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS ("a{0}"), "x", 0, 0, -1, -1, -1, -1); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:22:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{0,}"), ""); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:23:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{0,}"), "a"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:24:17: note: in expansion of macro 'BRACES_TO_OPS' test_fastmap (BRACES_TO_OPS ("a{0,}"), "a", 0, 0); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-interv.c:25:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (BRACES_TO_OPS ("a{0,}"), "a", 0, 1, -1, -1, -1, -1); ^~~~~~~~~~~~~~ psx-interv.c:25:19: note: in expansion of macro 'BRACES_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS ("a{0,}"), "a", 0, 1, -1, -1, -1, -1); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-interv.c:26:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (BRACES_TO_OPS ("a{0,}"), "xax", 0, 0, -1, -1, -1, -1); ^~~~~~~~~~~~~~ psx-interv.c:26:19: note: in expansion of macro 'BRACES_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS ("a{0,}"), "xax", 0, 0, -1, -1, -1, -1); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:28:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{1}"), "a"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:29:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{1,}"), "a"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:30:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{1,}"), "aa"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:31:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{0,0}"), ""); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:32:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{0,1}"), ""); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:33:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{0,1}"), "a"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:34:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{1,3}"), "a"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:35:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{1,3}"), "aa"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:36:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{1,3}"), "aaa"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-interv.c:37:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (BRACES_TO_OPS ("a{1,3}"), "aaa", 0, 3, -1, -1, -1, -1); ^~~~~~~~~~~~~~ psx-interv.c:37:19: note: in expansion of macro 'BRACES_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS ("a{1,3}"), "aaa", 0, 3, -1, -1, -1, -1); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-interv.c:38:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (BRACES_TO_OPS ("a{1,3}"), "xaaax", 1, 4, -1, -1, -1, -1); ^~~~~~~~~~~~~~ psx-interv.c:38:19: note: in expansion of macro 'BRACES_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS ("a{1,3}"), "xaaax", 1, 4, -1, -1, -1, -1); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:40:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{0,3}b"), "b"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:41:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{0,3}b"), "aaab"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:42:17: note: in expansion of macro 'BRACES_TO_OPS' test_fastmap (BRACES_TO_OPS ("a{0,3}b"), "ab", 0, 0); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-interv.c:43:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (BRACES_TO_OPS ("a{0,3}b"), "b", 0, 1, -1, -1, -1, -1); ^~~~~~~~~~~~~~ psx-interv.c:43:19: note: in expansion of macro 'BRACES_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS ("a{0,3}b"), "b", 0, 1, -1, -1, -1, -1); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-interv.c:44:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (BRACES_TO_OPS ("a{0,3}b"), "xbx", 1, 2, -1, -1, -1, -1); ^~~~~~~~~~~~~~ psx-interv.c:44:19: note: in expansion of macro 'BRACES_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS ("a{0,3}b"), "xbx", 1, 2, -1, -1, -1, -1); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:46:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{1,3}b"), "ab"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:47:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{1,3}b"), "aaab"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:48:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("ab{1,3}c"), "abbbc"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:107:61: note: in definition of macro 'BRACES_TO_OPS' #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^~~~~~ psx-interv.c:50:30: note: in expansion of macro 'PARENS_TO_OPS' test_match (BRACES_TO_OPS (PARENS_TO_OPS ("(a){0,3}b")), "b"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:50:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS (PARENS_TO_OPS ("(a){0,3}b")), "b"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:107:61: note: in definition of macro 'BRACES_TO_OPS' #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^~~~~~ psx-interv.c:51:32: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (BRACES_TO_OPS (PARENS_TO_OPS ("(a){0,3}b")), "ab", 0, 0); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:51:17: note: in expansion of macro 'BRACES_TO_OPS' test_fastmap (BRACES_TO_OPS (PARENS_TO_OPS ("(a){0,3}b")), "ab", 0, 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-interv.c:52:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a){0,3}b")), "b", 0, 1, -1, -1, -1, -1); ^~~~~~~~~~~~~~ psx-interv.c:52:19: note: in expansion of macro 'BRACES_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a){0,3}b")), "b", 0, 1, -1, -1, -1, -1); ^~~~~~~~~~~~~ psx-interv.c:52:34: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a){0,3}b")), "b", 0, 1, -1, -1, -1, -1); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-interv.c:52:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a){0,3}b")), "b", 0, 1, -1, -1, -1, -1); ^~~~~~~~~~~~~~ psx-interv.c:52:19: note: in expansion of macro 'BRACES_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a){0,3}b")), "b", 0, 1, -1, -1, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-interv.c:53:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a){0,3}b")), "ab", 0, 2, 0, 1, -1, -1); ^~~~~~~~~~~~~~ psx-interv.c:53:19: note: in expansion of macro 'BRACES_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a){0,3}b")), "ab", 0, 2, 0, 1, -1, -1); ^~~~~~~~~~~~~ psx-interv.c:53:34: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a){0,3}b")), "ab", 0, 2, 0, 1, -1, -1); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-interv.c:53:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a){0,3}b")), "ab", 0, 2, 0, 1, -1, -1); ^~~~~~~~~~~~~~ psx-interv.c:53:19: note: in expansion of macro 'BRACES_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a){0,3}b")), "ab", 0, 2, 0, 1, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-interv.c:54:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a){0,3}b")), "xabx", 1, 3, 1, 2, -1, -1); ^~~~~~~~~~~~~~ psx-interv.c:54:19: note: in expansion of macro 'BRACES_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a){0,3}b")), "xabx", 1, 3, 1, 2, -1, -1); ^~~~~~~~~~~~~ psx-interv.c:54:34: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a){0,3}b")), "xabx", 1, 3, 1, 2, -1, -1); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-interv.c:54:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a){0,3}b")), "xabx", 1, 3, 1, 2, -1, -1); ^~~~~~~~~~~~~~ psx-interv.c:54:19: note: in expansion of macro 'BRACES_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a){0,3}b")), "xabx", 1, 3, 1, 2, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:107:61: note: in definition of macro 'BRACES_TO_OPS' #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^~~~~~ psx-interv.c:56:30: note: in expansion of macro 'PARENS_TO_OPS' test_match (BRACES_TO_OPS (PARENS_TO_OPS ("(a){1,3}b")), "ab"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:56:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS (PARENS_TO_OPS ("(a){1,3}b")), "ab"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:107:61: note: in definition of macro 'BRACES_TO_OPS' #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^~~~~~ psx-interv.c:57:30: note: in expansion of macro 'PARENS_TO_OPS' test_match (BRACES_TO_OPS (PARENS_TO_OPS ("(a){1,3}b")), "aaab"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:57:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS (PARENS_TO_OPS ("(a){1,3}b")), "aaab"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-interv.c:58:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a){1,3}b")), "aaab", 0, 4, 2, 3, -1, -1); ^~~~~~~~~~~~~~ psx-interv.c:58:19: note: in expansion of macro 'BRACES_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a){1,3}b")), "aaab", 0, 4, 2, 3, -1, -1); ^~~~~~~~~~~~~ psx-interv.c:58:34: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a){1,3}b")), "aaab", 0, 4, 2, 3, -1, -1); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-interv.c:58:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a){1,3}b")), "aaab", 0, 4, 2, 3, -1, -1); ^~~~~~~~~~~~~~ psx-interv.c:58:19: note: in expansion of macro 'BRACES_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a){1,3}b")), "aaab", 0, 4, 2, 3, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-interv.c:59:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a){1,3}b")), "xaaabx", 1, 5, 3, 4, -1, -1); ^~~~~~~~~~~~~~ psx-interv.c:59:19: note: in expansion of macro 'BRACES_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a){1,3}b")), "xaaabx", 1, 5, 3, 4, -1, -1); ^~~~~~~~~~~~~ psx-interv.c:59:34: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a){1,3}b")), "xaaabx", 1, 5, 3, 4, -1, -1); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-interv.c:59:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a){1,3}b")), "xaaabx", 1, 5, 3, 4, -1, -1); ^~~~~~~~~~~~~~ psx-interv.c:59:19: note: in expansion of macro 'BRACES_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a){1,3}b")), "xaaabx", 1, 5, 3, 4, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:107:61: note: in definition of macro 'BRACES_TO_OPS' #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^~~~~~ psx-interv.c:61:30: note: in expansion of macro 'PARENS_TO_OPS' test_match (BRACES_TO_OPS (PARENS_TO_OPS ("(a*){0,3}b")), "aaaab"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:61:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS (PARENS_TO_OPS ("(a*){0,3}b")), "aaaab"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:107:61: note: in definition of macro 'BRACES_TO_OPS' #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^~~~~~ psx-interv.c:62:32: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (BRACES_TO_OPS (PARENS_TO_OPS ("(a*){0,3}b")), "ab", 0, 0); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:62:17: note: in expansion of macro 'BRACES_TO_OPS' test_fastmap (BRACES_TO_OPS (PARENS_TO_OPS ("(a*){0,3}b")), "ab", 0, 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-interv.c:63:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a*){0,3}b")), "aaaab", 0, 5, 4, 4, -1, -1); ^~~~~~~~~~~~~~ psx-interv.c:63:19: note: in expansion of macro 'BRACES_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a*){0,3}b")), "aaaab", 0, 5, 4, 4, -1, -1); ^~~~~~~~~~~~~ psx-interv.c:63:34: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a*){0,3}b")), "aaaab", 0, 5, 4, 4, -1, -1); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-interv.c:63:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a*){0,3}b")), "aaaab", 0, 5, 4, 4, -1, -1); ^~~~~~~~~~~~~~ psx-interv.c:63:19: note: in expansion of macro 'BRACES_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a*){0,3}b")), "aaaab", 0, 5, 4, 4, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:107:61: note: in definition of macro 'BRACES_TO_OPS' #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^~~~~~ psx-interv.c:65:30: note: in expansion of macro 'PARENS_TO_OPS' test_match (BRACES_TO_OPS (PARENS_TO_OPS ("(a*){1,3}b")), "b"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:65:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS (PARENS_TO_OPS ("(a*){1,3}b")), "b"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:107:61: note: in definition of macro 'BRACES_TO_OPS' #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^~~~~~ psx-interv.c:66:30: note: in expansion of macro 'PARENS_TO_OPS' test_match (BRACES_TO_OPS (PARENS_TO_OPS ("(a*){1,3}b")), "aaab"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:66:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS (PARENS_TO_OPS ("(a*){1,3}b")), "aaab"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:107:61: note: in definition of macro 'BRACES_TO_OPS' #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^~~~~~ psx-interv.c:67:32: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (BRACES_TO_OPS (PARENS_TO_OPS ("(a*){1,3}b")), "ab", 0, 0); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:67:17: note: in expansion of macro 'BRACES_TO_OPS' test_fastmap (BRACES_TO_OPS (PARENS_TO_OPS ("(a*){1,3}b")), "ab", 0, 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:107:61: note: in definition of macro 'BRACES_TO_OPS' #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^~~~~~ psx-interv.c:69:30: note: in expansion of macro 'PARENS_TO_OPS' test_match (BRACES_TO_OPS (PARENS_TO_OPS ("(a*){1,1}ab")), "aaaab"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:69:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS (PARENS_TO_OPS ("(a*){1,1}ab")), "aaaab"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-interv.c:70:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a*){1,1}ab")), "aaaab", 0, 5, 0, 3, -1, -1); ^~~~~~~~~~~~~~ psx-interv.c:70:19: note: in expansion of macro 'BRACES_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a*){1,1}ab")), "aaaab", 0, 5, 0, 3, -1, -1); ^~~~~~~~~~~~~ psx-interv.c:70:34: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a*){1,1}ab")), "aaaab", 0, 5, 0, 3, -1, -1); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-interv.c:70:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a*){1,1}ab")), "aaaab", 0, 5, 0, 3, -1, -1); ^~~~~~~~~~~~~~ psx-interv.c:70:19: note: in expansion of macro 'BRACES_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a*){1,1}ab")), "aaaab", 0, 5, 0, 3, -1, -1); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:72:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS (".{0,3}b"), "b"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:73:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS (".{0,3}b"), "ab"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:75:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("[a]{0,3}b"), "b"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:76:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("[a]{0,3}b"), "aaab"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:77:17: note: in expansion of macro 'BRACES_TO_OPS' test_fastmap (BRACES_TO_OPS ("[a]{0,3}b"), "ab", 0, 0); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:78:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("[^a]{0,3}b"), "bcdb"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:79:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("ab{0,3}c"), "abbbc"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:80:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("[[:digit:]]{0,3}d"), "123d"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:81:17: note: in expansion of macro 'BRACES_TO_OPS' test_fastmap (BRACES_TO_OPS ("[[:digit:]]{0,3}d"), "0123456789d", 0, 0); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:83:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("\\*{0,3}a"), "***a"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:84:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS (".{0,3}b"), "aaab"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:85:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{0,3}a"), "aaa"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:107:61: note: in definition of macro 'BRACES_TO_OPS' #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^~~~~~ psx-interv.c:87:32: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (BRACES_TO_OPS (PARENS_TO_OPS ("(a{1,})*a")), "a", 0, 0); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:87:17: note: in expansion of macro 'BRACES_TO_OPS' test_fastmap (BRACES_TO_OPS (PARENS_TO_OPS ("(a{1,})*a")), "a", 0, 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:107:61: note: in definition of macro 'BRACES_TO_OPS' #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^~~~~~ psx-interv.c:88:30: note: in expansion of macro 'PARENS_TO_OPS' test_match (BRACES_TO_OPS (PARENS_TO_OPS ("(a{1,})*a")), "a"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:88:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS (PARENS_TO_OPS ("(a{1,})*a")), "a"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-interv.c:89:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a{1,})*a")), "a", 0, 1, -1, -1, -1, -1); ^~~~~~~~~~~~~~ psx-interv.c:89:19: note: in expansion of macro 'BRACES_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a{1,})*a")), "a", 0, 1, -1, -1, -1, -1); ^~~~~~~~~~~~~ psx-interv.c:89:34: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a{1,})*a")), "a", 0, 1, -1, -1, -1, -1); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-interv.c:89:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a{1,})*a")), "a", 0, 1, -1, -1, -1, -1); ^~~~~~~~~~~~~~ psx-interv.c:89:19: note: in expansion of macro 'BRACES_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a{1,})*a")), "a", 0, 1, -1, -1, -1, -1); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:107:61: note: in definition of macro 'BRACES_TO_OPS' #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^~~~~~ psx-interv.c:91:32: note: in expansion of macro 'PARENS_TO_OPS' test_fastmap (BRACES_TO_OPS (PARENS_TO_OPS ("(a{2,})*aa")), "aa", 0, 0); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:91:17: note: in expansion of macro 'BRACES_TO_OPS' test_fastmap (BRACES_TO_OPS (PARENS_TO_OPS ("(a{2,})*aa")), "aa", 0, 0); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:107:61: note: in definition of macro 'BRACES_TO_OPS' #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^~~~~~ psx-interv.c:92:30: note: in expansion of macro 'PARENS_TO_OPS' test_match (BRACES_TO_OPS (PARENS_TO_OPS ("(a{2,})*aa")), "aa"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:92:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS (PARENS_TO_OPS ("(a{2,})*aa")), "aa"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-interv.c:93:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a{2,})*aa")), "aa", 0, 2, -1, -1, -1, -1); ^~~~~~~~~~~~~~ psx-interv.c:93:19: note: in expansion of macro 'BRACES_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a{2,})*aa")), "aa", 0, 2, -1, -1, -1, -1); ^~~~~~~~~~~~~ psx-interv.c:93:34: note: in expansion of macro 'PARENS_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a{2,})*aa")), "aa", 0, 2, -1, -1, -1, -1); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ test.h:99:25: note: in definition of macro 'TEST_REGISTERS_2' test_all_registers (pat, str1, str2, start0, end0, start1, end1, \ ^~~ psx-interv.c:93:3: note: in expansion of macro 'TEST_REGISTERS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a{2,})*aa")), "aa", 0, 2, -1, -1, -1, -1); ^~~~~~~~~~~~~~ psx-interv.c:93:19: note: in expansion of macro 'BRACES_TO_OPS' TEST_REGISTERS (BRACES_TO_OPS (PARENS_TO_OPS ("(a{2,})*aa")), "aa", 0, 2, -1, -1, -1, -1); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:95:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{2}*"), ""); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:96:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{2}*"), "aa"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:98:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{1}*"), ""); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:99:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{1}*"), "a"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:100:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{1}*"), "aa"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:102:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{1}{1}"), "a"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:104:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{1}{1}{1}"), "a"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:105:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{1}{1}{2}"), "aa"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:107:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{1}{1}*"), ""); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:108:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{1}{1}*"), "a"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:109:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{1}{1}*"), "aa"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:110:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{1}{1}*"), "aaa"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:112:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{1}{2}"), "aa"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:113:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{2}{1}"), "aa"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:118:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{0}"), "a"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:119:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{0,}"), "b"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:120:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{1}"), ""); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:121:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{1}"), "aa"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:122:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{1,}"), ""); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:123:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{1,}"), "b"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:124:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{0,0}"), "a"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:125:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{0,1}"), "aa"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:126:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{0,1}"), "b"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:127:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{1,3}"), ""); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:128:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{1,3}"), "aaaa"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:129:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("a{1,3}"), "b"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:107:61: note: in definition of macro 'BRACES_TO_OPS' #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^~~~~~ psx-interv.c:130:30: note: in expansion of macro 'PARENS_TO_OPS' test_match (BRACES_TO_OPS (PARENS_TO_OPS ("(a){1,3}b")), "aaaab"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:130:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS (PARENS_TO_OPS ("(a){1,3}b")), "aaaab"); ^~~~~~~~~~~~~ test.h:108:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define PARENS_TO_OPS(string) ((char *) delimiters_to_ops (string, '(', ')')) ^ test.h:107:61: note: in definition of macro 'BRACES_TO_OPS' #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^~~~~~ psx-interv.c:131:30: note: in expansion of macro 'PARENS_TO_OPS' test_match (BRACES_TO_OPS (PARENS_TO_OPS ("(a*){1,3}b")), "bb"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:131:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS (PARENS_TO_OPS ("(a*){1,3}b")), "bb"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:132:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("[a]{0,3}"), "aaaa"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:133:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("[^a]{0,3}b"), "ab"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:134:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("ab{0,3}c"), "abababc"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:135:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("[:alpha:]{0,3}d"), "123d"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:136:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS ("\\^{1,3}a"), "a"); ^~~~~~~~~~~~~ test.h:107:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define BRACES_TO_OPS(string) ((char *) delimiters_to_ops (string, '{', '}')) ^ psx-interv.c:137:15: note: in expansion of macro 'BRACES_TO_OPS' test_match (BRACES_TO_OPS (".{0,3}b"), "aaaab"); ^~~~~~~~~~~~~ gcc -I. -I. -I../. -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DDEBUG -O3 -c main.c sed -n 1,/RE_SYNTAX_EMACS/p .././regex.h \ | grep "#define RE_.*1" \ | sed 's/^#define \(RE_[A-Z_]*\) .*/ TEST_BIT (\1);/' > bits sed '/\[\[\[replace.*\]\]\]/r bits' syntax.skel > syntax.c gcc -I. -I. -I../. -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DDEBUG -O3 -c syntax.c main.c: In function 'main': main.c:17:5: warning: implicit declaration of function 'test_regress' [-Wimplicit-function-declaration] test_regress (); ^~~~~~~~~~~~ main.c:18:5: warning: implicit declaration of function 'test_others' [-Wimplicit-function-declaration] test_others (); ^~~~~~~~~~~ main.c:19:5: warning: implicit declaration of function 'test_posix_basic'; did you mean 'test_posix_generic'? [-Wimplicit-function-declaration] test_posix_basic (); ^~~~~~~~~~~~~~~~ test_posix_generic main.c:20:5: warning: implicit declaration of function 'test_posix_extended'; did you mean 'test_posix_generic'? [-Wimplicit-function-declaration] test_posix_extended (); ^~~~~~~~~~~~~~~~~~~ test_posix_generic main.c:21:5: warning: implicit declaration of function 'test_posix_interface'; did you mean 'test_posix_generic'? [-Wimplicit-function-declaration] test_posix_interface (); ^~~~~~~~~~~~~~~~~~~~ test_posix_generic syntax.c: In function 'test_bit': syntax.c:25:29: warning: implicit declaration of function 'strlen' [-Wimplicit-function-declaration] padding_count = longest - strlen (test_str); ^~~~~~ syntax.c:25:29: warning: incompatible implicit declaration of built-in function 'strlen' syntax.c:25:29: note: include '' or provide a declaration of 'strlen' syntax.c: In function 'main': syntax.c:57:7: warning: implicit declaration of function 'strcpy' [-Wimplicit-function-declaration] strcpy (syntax_str, argv[1]); ^~~~~~ syntax.c:57:7: warning: incompatible implicit declaration of built-in function 'strcpy' syntax.c:57:7: note: include '' or provide a declaration of 'strcpy' syntax.c:62:7: warning: implicit declaration of function 'exit' [-Wimplicit-function-declaration] exit (1); ^~~~ syntax.c:62:7: warning: incompatible implicit declaration of built-in function 'exit' syntax.c:62:7: note: include '' or provide a declaration of 'exit' syntax.c:69:13: warning: incompatible implicit declaration of built-in function 'strlen' longest = strlen (test_str); ^~~~~~ syntax.c:69:13: note: include '' or provide a declaration of 'strlen' gcc -O3 -o syntax syntax.o mv regex.o dregex.o gcc -o regex dregex.o printchar.o upcase.o xmalloc.o test.o bsd-interf.o other.o tregress.o psx-basic.o psx-extend.o psx-generic.o psx-group.o psx-interf.o psx-interv.o main.o gmake[1]: Leaving directory '/tmp/www/squirm/work/squirm-1.0betaB/regex-0.12/test' gcc -c squirm.c -O2 -fPIC -D_FORTIFY_SOURCE=2 gcc -c main.c -O2 -fPIC -D_FORTIFY_SOURCE=2 gcc -c config.c -O2 -fPIC -D_FORTIFY_SOURCE=2 gcc -c log.c -O2 -fPIC -D_FORTIFY_SOURCE=2 In file included from squirm.c:38:0: log.h:35:6: warning: conflicting types for built-in function 'log' [-Wbuiltin-declaration-mismatch] void log(char *, char *, ...) __attribute__ ((format (printf, 2, 3))); ^~~ In file included from main.c:39:0: log.h:35:6: warning: conflicting types for built-in function 'log' [-Wbuiltin-declaration-mismatch] void log(char *, char *, ...) __attribute__ ((format (printf, 2, 3))); ^~~ In file included from config.c:29:0: log.h:35:6: warning: conflicting types for built-in function 'log' [-Wbuiltin-declaration-mismatch] void log(char *, char *, ...) __attribute__ ((format (printf, 2, 3))); ^~~ In file included from log.c:30:0: log.h:35:6: warning: conflicting types for built-in function 'log' [-Wbuiltin-declaration-mismatch] void log(char *, char *, ...) __attribute__ ((format (printf, 2, 3))); ^~~ gcc -c lists.c -O2 -fPIC -D_FORTIFY_SOURCE=2 In file included from lists.c:30:0: log.h:35:6: warning: conflicting types for built-in function 'log' [-Wbuiltin-declaration-mismatch] void log(char *, char *, ...) __attribute__ ((format (printf, 2, 3))); ^~~ gcc -o squirm squirm.o main.o config.o log.o lists.o regex-0.12/regex.o