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

Rainer Orth via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 11 07:03:51 PST 2021


ro created this revision.
ro added reviewers: arichardson, vitalybuka.
ro added a project: Sanitizers.
Herald added subscribers: pengfei, fedor.sergeev, jyknight.
ro requested review of this revision.
Herald added a subscriber: Sanitizers.

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`.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D98425

Files:
  compiler-rt/test/sanitizer_common/TestCases/Posix/regex_startend.cpp


Index: compiler-rt/test/sanitizer_common/TestCases/Posix/regex_startend.cpp
===================================================================
--- compiler-rt/test/sanitizer_common/TestCases/Posix/regex_startend.cpp
+++ compiler-rt/test/sanitizer_common/TestCases/Posix/regex_startend.cpp
@@ -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 @@
   printf("Successful test\n");
   return 0;
 }
+#else
+int main(void) {
+  return 0;
+}
+#endif


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D98425.329959.patch
Type: text/x-patch
Size: 704 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210311/31f0fa3f/attachment.bin>


More information about the llvm-commits mailing list