Hi!

Not all OSes have regex.h and not all OSes that do have REG_STARTEND macro 
support.
Conditionalize the test on that.

Tested on x86_64-linux without/with Martin's libsanitizer fix, committed to
trunk as obvious.

2021-03-09  Jakub Jelinek  <ja...@redhat.com>

        PR sanitizer/98920
        * c-c++-common/asan/pr98920.c: Only include regex.h if the header
        exists.  If REG_STARTEND macro isn't defined, just return 0 from main
        instead of the actual test.

--- gcc/testsuite/c-c++-common/asan/pr98920.c.jj        2021-03-08 
23:40:33.935447429 +0100
+++ gcc/testsuite/c-c++-common/asan/pr98920.c   2021-03-09 12:15:28.904809967 
+0100
@@ -3,10 +3,13 @@
 
 #include <stdio.h>
 #include <sys/types.h>
+#if __has_include(<regex.h>)
 #include <regex.h>
+#endif
 
 int main(void)
 {
+#ifdef REG_STARTEND
     regex_t r;
     const char s[] = "ban\0ana";
     regmatch_t pmatch[10];
@@ -20,5 +23,6 @@ int main(void)
         return 3;
     }
     regfree(&r);
+#endif
     return 0;
 }

        Jakub

Reply via email to