https://gcc.gnu.org/g:a5bc8abef90874e81783e0fa34db133da71d1133
commit r13-8548-ga5bc8abef90874e81783e0fa34db133da71d1133 Author: Francois-Xavier Coudert <fxcoud...@gcc.gnu.org> Date: Sat Aug 19 23:22:06 2023 +0200 Testsuite: fix analyzer tests on Darwin On macOS, system headers redefine by default some macros (memcpy, memmove, etc) to checked versions, which defeats the analyzer. We want to turn this off. See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104042 gcc/testsuite/ChangeLog: PR analyzer/104042 * gcc.dg/analyzer/analyzer.exp: Pass -D_FORTIFY_SOURCE=0 on Darwin. * gcc.dg/analyzer/fd-bind.c: Add missing <string.h> header. * gcc.dg/analyzer/fd-datagram-socket.c: Likewise. * gcc.dg/analyzer/fd-listen.c: Likewise. * gcc.dg/analyzer/fd-socket-misuse.c: Likewise. * gcc.dg/analyzer/fd-stream-socket-active-open.c: Likewise. * gcc.dg/analyzer/fd-stream-socket-passive-open.c: Likewise. * gcc.dg/analyzer/fd-stream-socket.c: Likewise. * gcc.dg/analyzer/fd-symbolic-socket.c: Likewise. (cherry picked from commit ce33bbfcbc7dd3afc6c96fb48a19ed00f0c598ce) Diff: --- gcc/testsuite/gcc.dg/analyzer/analyzer.exp | 8 ++++++++ gcc/testsuite/gcc.dg/analyzer/fd-bind.c | 1 + gcc/testsuite/gcc.dg/analyzer/fd-datagram-socket.c | 1 + gcc/testsuite/gcc.dg/analyzer/fd-listen.c | 1 + gcc/testsuite/gcc.dg/analyzer/fd-socket-misuse.c | 1 + gcc/testsuite/gcc.dg/analyzer/fd-stream-socket-active-open.c | 1 + gcc/testsuite/gcc.dg/analyzer/fd-stream-socket-passive-open.c | 1 + gcc/testsuite/gcc.dg/analyzer/fd-stream-socket.c | 1 + gcc/testsuite/gcc.dg/analyzer/fd-symbolic-socket.c | 1 + 9 files changed, 16 insertions(+) diff --git a/gcc/testsuite/gcc.dg/analyzer/analyzer.exp b/gcc/testsuite/gcc.dg/analyzer/analyzer.exp index 76569267af0..af05c98fa16 100644 --- a/gcc/testsuite/gcc.dg/analyzer/analyzer.exp +++ b/gcc/testsuite/gcc.dg/analyzer/analyzer.exp @@ -32,6 +32,14 @@ if [info exists DEFAULT_CFLAGS] then { # If a testcase doesn't have special options, use these. set DEFAULT_CFLAGS "-fanalyzer -Wanalyzer-too-complex -fanalyzer-call-summaries" +if { [istarget "*-*-darwin*" ] } { + # On macOS, system headers redefine by default some macros (memcpy, + # memmove, etc) to checked versions, which defeats the analyzer. We + # want to turn this off. + # See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104042 + set DEFAULT_CFLAGS "$DEFAULT_CFLAGS -D_FORTIFY_SOURCE=0" +} + # Initialize `dg'. dg-init diff --git a/gcc/testsuite/gcc.dg/analyzer/fd-bind.c b/gcc/testsuite/gcc.dg/analyzer/fd-bind.c index 184a471f0b2..2a5cee58230 100644 --- a/gcc/testsuite/gcc.dg/analyzer/fd-bind.c +++ b/gcc/testsuite/gcc.dg/analyzer/fd-bind.c @@ -1,6 +1,7 @@ /* { dg-require-effective-target sockets } */ /* { dg-skip-if "" { powerpc*-*-aix* } } */ +#include <string.h> #include <sys/socket.h> #include <sys/un.h> #include <unistd.h> diff --git a/gcc/testsuite/gcc.dg/analyzer/fd-datagram-socket.c b/gcc/testsuite/gcc.dg/analyzer/fd-datagram-socket.c index 6546df1962c..59e80c831e3 100644 --- a/gcc/testsuite/gcc.dg/analyzer/fd-datagram-socket.c +++ b/gcc/testsuite/gcc.dg/analyzer/fd-datagram-socket.c @@ -1,6 +1,7 @@ /* { dg-require-effective-target sockets } */ /* { dg-skip-if "" { powerpc*-*-aix* } } */ +#include <string.h> #include <sys/socket.h> #include <sys/un.h> #include <unistd.h> diff --git a/gcc/testsuite/gcc.dg/analyzer/fd-listen.c b/gcc/testsuite/gcc.dg/analyzer/fd-listen.c index e47c3f628d1..3ac7a990042 100644 --- a/gcc/testsuite/gcc.dg/analyzer/fd-listen.c +++ b/gcc/testsuite/gcc.dg/analyzer/fd-listen.c @@ -1,6 +1,7 @@ /* { dg-require-effective-target sockets } */ /* { dg-skip-if "" { powerpc*-*-aix* } } */ +#include <string.h> #include <sys/socket.h> #include <sys/un.h> #include <unistd.h> diff --git a/gcc/testsuite/gcc.dg/analyzer/fd-socket-misuse.c b/gcc/testsuite/gcc.dg/analyzer/fd-socket-misuse.c index 4b427d69a78..87e8967ff21 100644 --- a/gcc/testsuite/gcc.dg/analyzer/fd-socket-misuse.c +++ b/gcc/testsuite/gcc.dg/analyzer/fd-socket-misuse.c @@ -3,6 +3,7 @@ /* { dg-require-effective-target sockets } */ /* { dg-skip-if "" { powerpc*-*-aix* } } */ +#include <string.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> diff --git a/gcc/testsuite/gcc.dg/analyzer/fd-stream-socket-active-open.c b/gcc/testsuite/gcc.dg/analyzer/fd-stream-socket-active-open.c index 4ec58217360..b39dbf85c3d 100644 --- a/gcc/testsuite/gcc.dg/analyzer/fd-stream-socket-active-open.c +++ b/gcc/testsuite/gcc.dg/analyzer/fd-stream-socket-active-open.c @@ -1,6 +1,7 @@ /* { dg-require-effective-target sockets } */ /* { dg-skip-if "" { powerpc*-*-aix* } } */ +#include <string.h> #include <sys/socket.h> #include <sys/un.h> #include <unistd.h> diff --git a/gcc/testsuite/gcc.dg/analyzer/fd-stream-socket-passive-open.c b/gcc/testsuite/gcc.dg/analyzer/fd-stream-socket-passive-open.c index 102e4350f45..e161098b96b 100644 --- a/gcc/testsuite/gcc.dg/analyzer/fd-stream-socket-passive-open.c +++ b/gcc/testsuite/gcc.dg/analyzer/fd-stream-socket-passive-open.c @@ -5,6 +5,7 @@ /* { dg-require-effective-target sockets } */ /* { dg-skip-if "" { powerpc*-*-aix* } } */ +#include <string.h> #include <sys/socket.h> #include <sys/un.h> #include <unistd.h> diff --git a/gcc/testsuite/gcc.dg/analyzer/fd-stream-socket.c b/gcc/testsuite/gcc.dg/analyzer/fd-stream-socket.c index d458708aea0..7e0e26ab40b 100644 --- a/gcc/testsuite/gcc.dg/analyzer/fd-stream-socket.c +++ b/gcc/testsuite/gcc.dg/analyzer/fd-stream-socket.c @@ -1,6 +1,7 @@ /* { dg-require-effective-target sockets } */ /* { dg-skip-if "" { powerpc*-*-aix* } } */ +#include <string.h> #include <sys/socket.h> #include <sys/un.h> #include <unistd.h> diff --git a/gcc/testsuite/gcc.dg/analyzer/fd-symbolic-socket.c b/gcc/testsuite/gcc.dg/analyzer/fd-symbolic-socket.c index 4479cc965ab..d7dc46a2d47 100644 --- a/gcc/testsuite/gcc.dg/analyzer/fd-symbolic-socket.c +++ b/gcc/testsuite/gcc.dg/analyzer/fd-symbolic-socket.c @@ -1,6 +1,7 @@ /* { dg-require-effective-target sockets } */ /* { dg-skip-if "" { powerpc*-*-aix* } } */ +#include <string.h> #include <sys/socket.h> #include <sys/un.h> #include <unistd.h>