[analyzer][StreamChecker] Don't make StreamTestChecker depend on StreamChecker for...
authorKirstóf Umann <dkszelethus@gmail.com>
Tue, 14 Apr 2020 14:53:09 +0000 (16:53 +0200)
committerKirstóf Umann <dkszelethus@gmail.com>
Wed, 13 May 2020 18:05:11 +0000 (20:05 +0200)
The comment in Checkers.td explains whats going on. As StreamChecker grows,
expect a need to have smaller checkers out of it, but let that be a worry for
later.

Differential Revision: https://reviews.llvm.org/D78120

clang/include/clang/StaticAnalyzer/Checkers/Checkers.td
clang/test/Analysis/stream-error.c

index 4315b09..c35f8b1 100644 (file)
@@ -1430,9 +1430,14 @@ def TaintTesterChecker : Checker<"TaintTest">,
   HelpText<"Mark tainted symbols as such.">,
   Documentation<NotDocumented>;
 
+// This checker *technically* depends on SteamChecker, but we don't allow
+// dependency checkers to emit diagnostics, and a debug checker isn't worth
+// the chore needed to create a modeling portion on its own. Since this checker
+// is for development purposes only anyways, make sure that StreamChecker is
+// also enabled, at least for the time being.
 def StreamTesterChecker : Checker<"StreamTester">,
-  HelpText<"Add test functions to StreamChecker for test and debugging purposes.">,
-  Dependencies<[StreamChecker]>,
+  HelpText<"Add test functions to StreamChecker for test and debugging "
+           "purposes.">,
   Documentation<NotDocumented>;
 
 def ExprInspectionChecker : Checker<"ExprInspection">,
index 2bd25ca..2302f3e 100644 (file)
@@ -1,4 +1,8 @@
-// RUN: %clang_analyze_cc1 -analyzer-checker=core -analyzer-checker=debug.StreamTester,debug.ExprInspection -analyzer-store region -verify %s
+// RUN: %clang_analyze_cc1 -verify %s \
+// RUN: -analyzer-checker=core \
+// RUN: -analyzer-checker=alpha.unix.Stream \
+// RUN: -analyzer-checker=debug.StreamTester \
+// RUN: -analyzer-checker=debug.ExprInspection
 
 #include "Inputs/system-header-simulator.h"