From 3b8b5d1f22f2c5d8ae55709a92d02011dea056ca Mon Sep 17 00:00:00 2001 From: Rainer Orth Date: Wed, 17 Mar 2021 09:56:19 +0100 Subject: [PATCH] [sanitizer_common][test] Handle missing REG_STARTEND in Posix/regex_startend.cpp As reported in 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 --- .../sanitizer_common/TestCases/Posix/regex_startend.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/compiler-rt/test/sanitizer_common/TestCases/Posix/regex_startend.cpp b/compiler-rt/test/sanitizer_common/TestCases/Posix/regex_startend.cpp index 1a445783bcbe..e143c6c9b5e2 100644 --- a/compiler-rt/test/sanitizer_common/TestCases/Posix/regex_startend.cpp +++ b/compiler-rt/test/sanitizer_common/TestCases/Posix/regex_startend.cpp @@ -14,6 +14,8 @@ #include #include +/// 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