[clang] d061685 - [analyzer] Make NonNullParamChecker as dependency for StdCLibraryFunctionsChecker
Gabor Marton via cfe-commits
cfe-commits at lists.llvm.org
Thu May 14 06:32:13 PDT 2020
Author: Gabor Marton
Date: 2020-05-14T15:28:40+02:00
New Revision: d061685a8304eb0b6adacd24f8dd2c2ef6dfee39
URL: https://github.com/llvm/llvm-project/commit/d061685a8304eb0b6adacd24f8dd2c2ef6dfee39
DIFF: https://github.com/llvm/llvm-project/commit/d061685a8304eb0b6adacd24f8dd2c2ef6dfee39.diff
LOG: [analyzer] Make NonNullParamChecker as dependency for StdCLibraryFunctionsChecker
Summary:
If a given parameter in a FunctionDecl has a nonull attribute then the NonNull
constraint in StdCLibraryFunctionsChecker has the same effect as
NonNullParamChecker. I think it is better to emit diagnostics from the simpler
checker. By making NonNullParamChecker as a dependency, in these cases it will
be the first to emit a diagnostic and to stop the analysis on that path.
Reviewers: Szelethus, NoQ, baloghadamsoftware, balazske, steakhal
Subscribers: whisperity, xazax.hun, szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy, dkrupp, gamesh411, Charusso, ASDenysPetrov, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D79420
Added:
Modified:
clang/include/clang/StaticAnalyzer/Checkers/Checkers.td
clang/test/Analysis/analyzer-enabled-checkers.c
Removed:
################################################################################
diff --git a/clang/include/clang/StaticAnalyzer/Checkers/Checkers.td b/clang/include/clang/StaticAnalyzer/Checkers/Checkers.td
index c35f8b115f16..b4caaa0f18cb 100644
--- a/clang/include/clang/StaticAnalyzer/Checkers/Checkers.td
+++ b/clang/include/clang/StaticAnalyzer/Checkers/Checkers.td
@@ -293,13 +293,14 @@ let ParentPackage = APIModeling in {
def StdCLibraryFunctionsChecker : Checker<"StdCLibraryFunctions">,
HelpText<"Improve modeling of the C standard library functions">,
+ Dependencies<[NonNullParamChecker, CallAndMessageChecker]>,
Documentation<NotDocumented>;
def StdCLibraryFunctionArgsChecker : Checker<"StdCLibraryFunctionArgs">,
HelpText<"Check constraints of arguments of C standard library functions, "
"such as whether the parameter of isalpha is in the range [0, 255] "
"or is EOF.">,
- Dependencies<[StdCLibraryFunctionsChecker, CallAndMessageChecker]>,
+ Dependencies<[StdCLibraryFunctionsChecker]>,
Documentation<NotDocumented>;
def TrustNonnullChecker : Checker<"TrustNonnull">,
diff --git a/clang/test/Analysis/analyzer-enabled-checkers.c b/clang/test/Analysis/analyzer-enabled-checkers.c
index 6f719ec15d4f..0e44b1147f04 100644
--- a/clang/test/Analysis/analyzer-enabled-checkers.c
+++ b/clang/test/Analysis/analyzer-enabled-checkers.c
@@ -6,15 +6,15 @@
// CHECK: OVERVIEW: Clang Static Analyzer Enabled Checkers List
// CHECK-EMPTY:
-// CHECK-NEXT: apiModeling.StdCLibraryFunctions
+// CHECK-NEXT: core.NonNullParamChecker
// CHECK-NEXT: core.CallAndMessage
+// CHECK-NEXT: apiModeling.StdCLibraryFunctions
// CHECK-NEXT: apiModeling.StdCLibraryFunctionArgs
// CHECK-NEXT: apiModeling.TrustNonnull
// CHECK-NEXT: apiModeling.llvm.CastValue
// CHECK-NEXT: apiModeling.llvm.ReturnValue
// CHECK-NEXT: core.DivideZero
// CHECK-NEXT: core.DynamicTypePropagation
-// CHECK-NEXT: core.NonNullParamChecker
// CHECK-NEXT: core.NonnilStringConstants
// CHECK-NEXT: core.NullDereference
// CHECK-NEXT: core.StackAddrEscapeBase
More information about the cfe-commits
mailing list