[PATCH] D78126: [analyzer][NFC] Don't allow dependency checkers to emit diagnostics
Kristóf Umann via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Apr 15 02:41:50 PDT 2020
Szelethus marked an inline comment as done.
Szelethus added inline comments.
================
Comment at: clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h:153
+#undef CHECKER_DEPENDENCY
+#undef GET_CHECKER_DEPENDENCIES
+ }
----------------
Szelethus wrote:
> balazske wrote:
> > Probably too much of assert here (but it works)? (There is not a way to get the dependency data "dynamically", like //"Checker->isDependentOn(OtherChecker)"//?)
> Wow, you're totally correct, I didn't even consider that. Indeed, this doesn't work with plugins (or checkers from unit tests), but it should be doable, since `CheckerManager` owns `CheckerRegistry` (D75360). This is kind of ironic, considering how much I tend to block patches based on this :^)
Oh, to actually answer your question. The checker dependency information is stored in `CheckerRegistry` in this small struct:
```lang=cpp
struct CheckerInfo {
enum class StateFromCmdLine {
// This checker wasn't explicitly enabled or disabled.
State_Unspecified,
// This checker was explicitly disabled.
State_Disabled,
// This checker was explicitly enabled.
State_Enabled
};
InitializationFunction Initialize = nullptr;
ShouldRegisterFunction ShouldRegister = nullptr;
StringRef FullName;
StringRef Desc;
StringRef DocumentationUri;
CmdLineOptionList CmdLineOptions;
bool IsHidden = false;
StateFromCmdLine State = StateFromCmdLine::State_Unspecified;
ConstCheckerInfoList Dependencies;
//...
};
```
So the nice solution should make this info a bit more visible.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D78126/new/
https://reviews.llvm.org/D78126
More information about the cfe-commits
mailing list