diff options
| author | Balázs Kéri <1.int32@gmail.com> | 2023-02-15 08:54:20 +0100 |
|---|---|---|
| committer | Balázs Kéri <1.int32@gmail.com> | 2023-02-15 09:22:48 +0100 |
| commit | ddc5d40dd285d6422dc66b9aa25064502af3218b (patch) | |
| tree | 69dfcfa29545e2f3922e5bbd794b04219d6b01d4 /clang/test/Analysis/stream-stdlibraryfunctionargs.c | |
| parent | c1eb3db780b7d6e2aea89de1e71664fa8b69ef39 (diff) | |
[clang][analyzer] Make messages of StdCLibraryFunctionsChecker user-friendly
Warnings and notes of checker alpha.unix.StdLibraryFunctionArgs are
improved. Previously one warning and one note was emitted for every
finding, now one warning is emitted only that contains a detailed
description of the found issue.
Reviewed By: Szelethus
Differential Revision: https://reviews.llvm.org/D143194
Diffstat (limited to 'clang/test/Analysis/stream-stdlibraryfunctionargs.c')
| -rw-r--r-- | clang/test/Analysis/stream-stdlibraryfunctionargs.c | 48 |
1 files changed, 16 insertions, 32 deletions
diff --git a/clang/test/Analysis/stream-stdlibraryfunctionargs.c b/clang/test/Analysis/stream-stdlibraryfunctionargs.c index 469d40b45691..9d1b9244f0f2 100644 --- a/clang/test/Analysis/stream-stdlibraryfunctionargs.c +++ b/clang/test/Analysis/stream-stdlibraryfunctionargs.c @@ -18,37 +18,31 @@ size_t n; void test_fopen(void) { FILE *fp = fopen("path", "r"); clang_analyzer_eval(fp != NULL); // any-warning{{TRUE}} any-warning{{FALSE}} - fclose(fp); // stdargs-warning{{Function argument constraint is not satisfied}} \ - // stdargs-note{{The 1st argument should not be NULL}} + fclose(fp); // stdargs-warning{{should not be NULL}} } void test_tmpfile(void) { FILE *fp = tmpfile(); clang_analyzer_eval(fp != NULL); // any-warning{{TRUE}} any-warning{{FALSE}} - fclose(fp); // stdargs-warning{{Function argument constraint is not satisfied}} \ - // stdargs-note{{The 1st argument should not be NULL}} + fclose(fp); // stdargs-warning{{should not be NULL}} } void test_fclose(void) { FILE *fp = tmpfile(); - fclose(fp); // stdargs-warning{{Function argument constraint is not satisfied}} \ - // stdargs-note{{The 1st argument should not be NULL}} + fclose(fp); // stdargs-warning{{should not be NULL}} clang_analyzer_eval(fp != NULL); // any-warning{{TRUE}} } void test_freopen(void) { FILE *fp = tmpfile(); - fp = freopen("file", "w", fp); // stdargs-warning{{Function argument constraint is not satisfied}} \ - // stdargs-note{{The 3rd argument should not be NULL}} - fclose(fp); // stdargs-warning{{Function argument constraint is not satisfied}} \ - // stdargs-note{{The 1st argument should not be NULL}} + fp = freopen("file", "w", fp); // stdargs-warning{{should not be NULL}} + fclose(fp); // stdargs-warning{{should not be NULL}} clang_analyzer_eval(fp != NULL); // any-warning{{TRUE}} } void test_fread(void) { FILE *fp = tmpfile(); - size_t ret = fread(buf, size, n, fp); // stdargs-warning{{Function argument constraint is not satisfied}} \ - // stdargs-note{{The 4th argument should not be NULL}} + size_t ret = fread(buf, size, n, fp); // stdargs-warning{{The 4th argument to 'fread' should not be NULL}} clang_analyzer_eval(fp != NULL); // any-warning{{TRUE}} clang_analyzer_eval(ret <= n); // any-warning{{TRUE}} clang_analyzer_eval(ret == n); // any-warning{{TRUE}} any-warning{{FALSE}} @@ -58,8 +52,7 @@ void test_fread(void) { void test_fwrite(void) { FILE *fp = tmpfile(); - size_t ret = fwrite(buf, size, n, fp); // stdargs-warning{{Function argument constraint is not satisfied}} \ - // stdargs-note{{The 4th argument should not be NULL}} + size_t ret = fwrite(buf, size, n, fp); // stdargs-warning{{The 4th argument to 'fwrite' should not be NULL}} clang_analyzer_eval(fp != NULL); // any-warning{{TRUE}} clang_analyzer_eval(ret <= n); // any-warning{{TRUE}} clang_analyzer_eval(ret == n); // any-warning{{TRUE}} any-warning{{FALSE}} @@ -69,24 +62,21 @@ void test_fwrite(void) { void test_fseek(void) { FILE *fp = tmpfile(); - fseek(fp, 0, 0); // stdargs-warning{{Function argument constraint is not satisfied}} \ - // stdargs-note{{The 1st argument should not be NULL}} + fseek(fp, 0, 0); // stdargs-warning{{should not be NULL}} clang_analyzer_eval(fp != NULL); // any-warning{{TRUE}} fclose(fp); } void test_ftell(void) { FILE *fp = tmpfile(); - ftell(fp); // stdargs-warning{{Function argument constraint is not satisfied}} \ - // stdargs-note{{The 1st argument should not be NULL}} + ftell(fp); // stdargs-warning{{should not be NULL}} clang_analyzer_eval(fp != NULL); // any-warning{{TRUE}} fclose(fp); } void test_rewind(void) { FILE *fp = tmpfile(); - rewind(fp); // stdargs-warning{{Function argument constraint is not satisfied}} \ - // stdargs-note{{The 1st argument should not be NULL}} + rewind(fp); // stdargs-warning{{should not be NULL}} clang_analyzer_eval(fp != NULL); // any-warning{{TRUE}} fclose(fp); } @@ -94,8 +84,7 @@ void test_rewind(void) { void test_fgetpos(void) { FILE *fp = tmpfile(); fpos_t pos; - fgetpos(fp, &pos); // stdargs-warning{{Function argument constraint is not satisfied}} \ - // stdargs-note{{The 1st argument should not be NULL}} + fgetpos(fp, &pos); // stdargs-warning{{should not be NULL}} clang_analyzer_eval(fp != NULL); // any-warning{{TRUE}} fclose(fp); } @@ -103,40 +92,35 @@ void test_fgetpos(void) { void test_fsetpos(void) { FILE *fp = tmpfile(); fpos_t pos; - fsetpos(fp, &pos); // stdargs-warning{{Function argument constraint is not satisfied}} \ - // stdargs-note{{The 1st argument should not be NULL}} + fsetpos(fp, &pos); // stdargs-warning{{should not be NULL}} clang_analyzer_eval(fp != NULL); // any-warning{{TRUE}} fclose(fp); } void test_clearerr(void) { FILE *fp = tmpfile(); - clearerr(fp); // stdargs-warning{{Function argument constraint is not satisfied}} \ - // stdargs-note{{The 1st argument should not be NULL}} + clearerr(fp); // stdargs-warning{{should not be NULL}} clang_analyzer_eval(fp != NULL); // any-warning{{TRUE}} fclose(fp); } void test_feof(void) { FILE *fp = tmpfile(); - feof(fp); // stdargs-warning{{Function argument constraint is not satisfied}} \ - // stdargs-note{{The 1st argument should not be NULL}} + feof(fp); // stdargs-warning{{should not be NULL}} clang_analyzer_eval(fp != NULL); // any-warning{{TRUE}} fclose(fp); } void test_ferror(void) { FILE *fp = tmpfile(); - ferror(fp); // stdargs-warning{{Function argument constraint is not satisfied}} \ - // stdargs-note{{The 1st argument should not be NULL}} + ferror(fp); // stdargs-warning{{should not be NULL}} clang_analyzer_eval(fp != NULL); // any-warning{{TRUE}} fclose(fp); } void test_fileno(void) { FILE *fp = tmpfile(); - fileno(fp); // stdargs-warning{{Function argument constraint is not satisfied}} \ - // stdargs-note{{The 1st argument should not be NULL}} + fileno(fp); // stdargs-warning{{should not be NULL}} clang_analyzer_eval(fp != NULL); // any-warning{{TRUE}} fclose(fp); } |
