12#include "llvm/ADT/DenseSet.h"
27 if (CheckDecls.empty()) {
32 ParentClass->
getName() !=
"CheckError")
38 if (N ==
nullptr || !N->getDeclName().isIdentifier() ||
39 N->getName() !=
"logging")
43 if (N->getParent() ==
nullptr || !N->getParent()->isTranslationUnit())
47 if (M->getDeclName().isIdentifier() && M->getName().ends_with(
"Check"))
51 return CheckDecls.contains(&D);
58 auto Stmt = CS->getStmt();
59 if (
const auto *
Call = dyn_cast<CallExpr>(
Stmt)) {
61 dyn_cast_or_null<CXXMethodDecl>(
Call->getDirectCallee())) {
Defines the C++ Decl subclasses, other than those for templates (found in DeclTemplate....
Represents a top-level expression in a basic block.
std::optional< T > getAs() const
Convert to the specified CFGElement type, returning std::nullopt if this CFGElement is not of the des...
Represents a static or instance method of a struct/union/class.
const CXXRecordDecl * getParent() const
Return the parent of this method declaration, which is the class in which this method is defined.
Represents a C++ struct/union/class.
method_range methods() const
DeclContext * getDeclContext()
bool isIdentifier() const
Predicate functions for querying what type of name this is.
StringRef getName() const
Get the name of identifier for this declaration as a StringRef.
DeclarationName getDeclName() const
Get the actual, stored name of the declaration, which may be a special name.
Stmt - This represents one statement.
const Formula & makeLiteral(bool Value)
Returns a formula for a literal true/false.
bool transfer(const CFGElement &Element, Environment &Env) override
Return value indicates whether the model processed the Element.
Holds the state of the program (store and heap) at a given program point.
void assume(const Formula &)
Record a fact that must be true if this point in the program is reached.
Dataflow Directional Tag Classes.
static bool isCheckLikeMethod(llvm::SmallDenseSet< const CXXMethodDecl * > &CheckDecls, const CXXMethodDecl &D)
Determines whether D is one of the methods used to implement Chromium's CHECK macros.
The JSON file list parser is used to communicate input to InstallAPI.