[sanitizer_common][test] Handle missing REG_STARTEND in Posix/regex_startend.cpp

As reported in D96348 <https://reviews.llvm.org/D96348>, the
`Posix/regex_startend.cpp` test `FAIL`s on Solaris because
`REG_STARTEND` isn't defined.  It's a BSD extension not present everywhere.
E.g. AIX doesn't have it, too.

Fixed by wrapping the test in `#ifdef REG_STARTEND`.

Tested on `amd64-pc-solaris2.11`, `sparcv9-sun-solaris2.11`, and
`x86_64-pc-linux-gnu`.

Differential Revision: https://reviews.llvm.org/D98425
This commit is contained in:
Rainer Orth 2021-03-17 09:56:19 +01:00
parent c86dacd1a4
commit 3b8b5d1f22
1 changed files with 7 additions and 0 deletions

View File

@ -14,6 +14,8 @@
#include <stdlib.h>
#include <string.h>
/// REG_STARTEND is a BSD extension not supported everywhere.
#ifdef REG_STARTEND
void test_matched(const regex_t *preg, const char *string, size_t start,
size_t end, const char *expected) {
regmatch_t match[1];
@ -59,3 +61,8 @@ int main(void) {
printf("Successful test\n");
return 0;
}
#else
int main(void) {
return 0;
}
#endif