[committed] testsuite: Fix up pr98920.c on non-glibc or old glibc targets [PR98920]

Jakub Jelinek jakub@redhat.com
Tue Mar 9 13:16:53 GMT 2021


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  <jakub@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



More information about the Gcc-patches mailing list