diff options
author | David Malcolm <dmalcolm@redhat.com> | 2019-12-19 16:10:41 -0500 |
---|---|---|
committer | David Malcolm <dmalcolm@redhat.com> | 2020-01-14 21:10:45 -0500 |
commit | 24918a9b20c771984f41f90c3352c3ebee8b5e6f (patch) | |
tree | c43e7b6c06c3183bee103da0ff484e6846c7454c /gcc/testsuite/gcc.dg/analyzer/file-1.c | |
parent | d666ae9862a06cab12108607c516a8475b4fb766 (diff) | |
download | gcc-devel/analyzer.tar.gz |
analyzer: add -Wanalyzer-use-of-closed-filedevel/analyzer
gcc/analyzer/ChangeLog:
* analyzer.opt (Wanalyzer-use-of-closed-file): New option.
* sm-file.cc (class use_of_closed_file): New file_diagnostic subclass.
(find_file_param): New function.
(fileptr_state_machine::on_stmt): Complain about operations on
closed files.
gcc/ChangeLog:
* doc/invoke.texi (-Wanalyzer-use-of-closed-file): Document new
option.
gcc/testsuite/ChangeLog:
* gcc.dg/analyzer/file-1.c (test_5): New test.
Diffstat (limited to 'gcc/testsuite/gcc.dg/analyzer/file-1.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/analyzer/file-1.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/analyzer/file-1.c b/gcc/testsuite/gcc.dg/analyzer/file-1.c index ba516afc8af..8531fb0296c 100644 --- a/gcc/testsuite/gcc.dg/analyzer/file-1.c +++ b/gcc/testsuite/gcc.dg/analyzer/file-1.c @@ -47,3 +47,11 @@ test_4 (const char *path) return; /* { dg-warning "leak of FILE 'f'" } */ } + +void +test_5 (FILE *f, const char *msg) +{ + fclose (f); /* { dg-message "\\(1\\) file closed here" } */ + fprintf (f, "foo: %s", msg); /* { dg-warning "use of closed FILE 'f'" } */ + /* { dg-message "\\(2\\) use of closed FILE 'f'; closed at \\(1\\)" "" { target *-*-* } .-1 } */ +} |