martong added inline comments.
================ Comment at: clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h:153 +#undef CHECKER_DEPENDENCY +#undef GET_CHECKER_DEPENDENCIES + } ---------------- Szelethus wrote: > 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. I have no serious bad feelings with the macro solution, but if you can come up with a better structure then that would be so cool! :) Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D78126/new/ https://reviews.llvm.org/D78126 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits