9#ifndef LLVM_CLANG_ANALYZER_WEBKIT_ASTUTILS_H
10#define LLVM_CLANG_ANALYZER_WEBKIT_ASTUTILS_H
13#include "llvm/ADT/APInt.h"
14#include "llvm/Support/Casting.h"
57 std::function<
bool(
const clang::Expr *,
bool)> callback);
73 using CacheTy = llvm::DenseMap<const FunctionDecl *, bool>;
74 mutable CacheTy
Cache{};
82 const auto *
const ND = llvm::dyn_cast_or_null<clang::NamedDecl>(ASTNode);
88 if (!ND->getDeclName().isIdentifier())
91 return ND->getName().str();
bool isACallToEnsureFn(const Expr *E) const
This represents one expression.
The JSON file list parser is used to communicate input to InstallAPI.
bool isASafeCallArg(const Expr *E)
For E referring to a ref-countable/-counted pointer/reference we return whether it's a safe call argu...
const FunctionProtoType * T
bool tryToFindPtrOrigin(const Expr *E, bool StopAtFirstRefCountedObj, std::function< bool(const clang::Expr *, bool)> callback)
This function de-facto defines a set of transformations that we consider safe (in heuristical sense).
std::string safeGetName(const T *ASTNode)
bool isConstOwnerPtrMemberExpr(const clang::Expr *E)