From: Joel Teichroeb Date: Fri, 4 Feb 2022 16:35:08 +0000 (-0500) Subject: analyzer: Fix tests for glibc 2.35 [PR101081] X-Git-Tag: basepoints/gcc-13~1194 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e52a683170877d140eebc9782731eaf11897db71;p=thirdparty%2Fgcc.git analyzer: Fix tests for glibc 2.35 [PR101081] In recent versions of glibc fopen has __attribute__((malloc)). Since we can not detect wether this attribute is present or not, we avoid including stdio.h and instead forward declare what we need in each test. Signed-off-by: Joel Teichroeb gcc/testsuite/ChangeLog: PR analyzer/101081 * gcc.dg/analyzer/analyzer-verbosity-2a.c: Replace #include of stdio.h with declarations needed by the test. * gcc.dg/analyzer/analyzer-verbosity-3a.c: Likewise. * gcc.dg/analyzer/edges-1.c: Likewise. * gcc.dg/analyzer/file-1.c: Likewise. * gcc.dg/analyzer/file-2.c: Likewise. * gcc.dg/analyzer/file-paths-1.c: Likewise. * gcc.dg/analyzer/file-pr58237.c: Likewise. * gcc.dg/analyzer/pr99716-1.c: Likewise. Signed-off-by: David Malcolm --- diff --git a/gcc/testsuite/gcc.dg/analyzer/analyzer-verbosity-2a.c b/gcc/testsuite/gcc.dg/analyzer/analyzer-verbosity-2a.c index 9faf5da3a4fb..cf014b0a3c8f 100644 --- a/gcc/testsuite/gcc.dg/analyzer/analyzer-verbosity-2a.c +++ b/gcc/testsuite/gcc.dg/analyzer/analyzer-verbosity-2a.c @@ -1,6 +1,9 @@ /* { dg-additional-options "-fanalyzer-verbosity=2" } */ -#include +typedef struct FILE FILE; + +FILE* fopen (const char*, const char*); +int fclose (FILE*); extern int foo (); extern void bar (); diff --git a/gcc/testsuite/gcc.dg/analyzer/analyzer-verbosity-3a.c b/gcc/testsuite/gcc.dg/analyzer/analyzer-verbosity-3a.c index 1b2b79836249..b0ece203f56d 100644 --- a/gcc/testsuite/gcc.dg/analyzer/analyzer-verbosity-3a.c +++ b/gcc/testsuite/gcc.dg/analyzer/analyzer-verbosity-3a.c @@ -1,6 +1,9 @@ /* { dg-additional-options "-fanalyzer-verbosity=3" } */ -#include +typedef struct FILE FILE; + +FILE* fopen (const char*, const char*); +int fclose (FILE*); extern int foo (); extern void bar (); diff --git a/gcc/testsuite/gcc.dg/analyzer/edges-1.c b/gcc/testsuite/gcc.dg/analyzer/edges-1.c index 6b53ddddc057..f08a6143d59b 100644 --- a/gcc/testsuite/gcc.dg/analyzer/edges-1.c +++ b/gcc/testsuite/gcc.dg/analyzer/edges-1.c @@ -1,4 +1,7 @@ -#include +typedef struct FILE FILE; + +FILE* fopen (const char*, const char*); +int fclose (FILE*); extern int foo (); extern void bar (); diff --git a/gcc/testsuite/gcc.dg/analyzer/file-1.c b/gcc/testsuite/gcc.dg/analyzer/file-1.c index 0f4bc5aa7af1..e8d934331fd4 100644 --- a/gcc/testsuite/gcc.dg/analyzer/file-1.c +++ b/gcc/testsuite/gcc.dg/analyzer/file-1.c @@ -1,4 +1,9 @@ -#include +typedef struct FILE FILE; + +FILE* fopen (const char*, const char*); +int fclose (FILE*); +#define SEEK_SET 0 +int fseek (FILE *, long int, int); void test_1 (const char *path) diff --git a/gcc/testsuite/gcc.dg/analyzer/file-2.c b/gcc/testsuite/gcc.dg/analyzer/file-2.c index 8d34c7390841..9c58108a5312 100644 --- a/gcc/testsuite/gcc.dg/analyzer/file-2.c +++ b/gcc/testsuite/gcc.dg/analyzer/file-2.c @@ -1,4 +1,7 @@ -#include +typedef struct FILE FILE; + +FILE* fopen (const char*, const char*); +int fclose (FILE*); struct foo { diff --git a/gcc/testsuite/gcc.dg/analyzer/file-paths-1.c b/gcc/testsuite/gcc.dg/analyzer/file-paths-1.c index d346f7a7c9aa..f35017835d49 100644 --- a/gcc/testsuite/gcc.dg/analyzer/file-paths-1.c +++ b/gcc/testsuite/gcc.dg/analyzer/file-paths-1.c @@ -1,6 +1,13 @@ /* { dg-additional-options "-fanalyzer-verbosity=3" } */ -#include +typedef struct FILE FILE; + +FILE* fopen (const char*, const char*); +int fclose (FILE*); +char *fgets (char *, int, FILE *); + +#define NULL ((void *)0) + /* Verify that we correctly emit CFG events in the face of buffers being clobbered in these leak reports. */ diff --git a/gcc/testsuite/gcc.dg/analyzer/file-pr58237.c b/gcc/testsuite/gcc.dg/analyzer/file-pr58237.c index 68f49c25607a..ecc7144198b6 100644 --- a/gcc/testsuite/gcc.dg/analyzer/file-pr58237.c +++ b/gcc/testsuite/gcc.dg/analyzer/file-pr58237.c @@ -1,4 +1,10 @@ -#include +typedef struct FILE FILE; + +FILE* fopen (const char*, const char*); +int fclose (FILE*); +char *fgets (char *, int, FILE *); + +#define NULL ((void *)0) void f0(const char *str) { diff --git a/gcc/testsuite/gcc.dg/analyzer/pr99716-1.c b/gcc/testsuite/gcc.dg/analyzer/pr99716-1.c index 6720c3c198b9..2ccdcc73a5c2 100644 --- a/gcc/testsuite/gcc.dg/analyzer/pr99716-1.c +++ b/gcc/testsuite/gcc.dg/analyzer/pr99716-1.c @@ -1,5 +1,10 @@ -#include -#include +typedef struct FILE FILE; + +FILE* fopen (const char*, const char*); +int fclose (FILE*); +int fprintf (FILE *, const char *, ...); + +#define NULL ((void *)0) void test_1 (void)