/* { dg-additional-options "-fanalyzer-verbose-state-changes" } */ typedef struct FILE FILE; FILE* fopen (const char*, const char*); int fclose (FILE*); void test_1 (const char *path) { FILE *f = fopen (path, "r"); /* { dg-message "meaning: \\{verb: 'acquire', noun: 'resource'\\}" } */ if (!f) return; fclose (f); /* { dg-message "meaning: \\{verb: 'release', noun: 'resource'\\}" } */ fclose (f); /* { dg-warning "double 'fclose' of FILE 'f'" "warning" } */ }