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) { int i; for (i = 0; i < 2; ++i) { FILE *fp = fopen ("/tmp/test", "w"); fprintf (fp, "hello:%s ", "world"); fclose (fp); /* { dg-bogus "double 'fclose'" } */ } } void test_2 (void) { int i; for (i = 0; i < 2; ++i) { FILE *fp = fopen ("/tmp/test", "w"); fprintf (fp, "hello"); } } /* { dg-warning "leak of FILE 'fp'" } */ FILE *fp3; void test_3 (FILE **fpp) { int i; for (i = 0; i < 2; ++i) { *fpp = fopen ("/tmp/test", "w"); fprintf (*fpp, "hello"); fclose (*fpp); /* { dg-bogus "double 'fclose'" } */ *fpp = NULL; } }