clang 20.0.0git
Namespaces | Functions
SmartPointerAccessorCaching.h File Reference
#include <cassert>
#include "clang/AST/Decl.h"
#include "clang/AST/Expr.h"
#include "clang/AST/Stmt.h"
#include "clang/ASTMatchers/ASTMatchers.h"
#include "clang/Analysis/FlowSensitive/MatchSwitch.h"
#include "clang/Analysis/FlowSensitive/StorageLocation.h"
#include "clang/Analysis/FlowSensitive/Value.h"
#include "llvm/ADT/STLFunctionalExtras.h"

Go to the source code of this file.

Namespaces

namespace  clang
 The JSON file list parser is used to communicate input to InstallAPI.
 
namespace  clang::dataflow
 Dataflow Directional Tag Classes.
 

Functions

ast_matchers::StatementMatcher clang::dataflow::isSmartPointerLikeOperatorStar ()
 Matchers: For now, these match on any class with an operator* or operator-> where the return types have a similar shape as std::unique_ptr and std::optional.
 
ast_matchers::StatementMatcher clang::dataflow::isSmartPointerLikeOperatorArrow ()
 
ast_matchers::StatementMatcher clang::dataflow::isSmartPointerLikeValueMethodCall ()
 
ast_matchers::StatementMatcher clang::dataflow::isSmartPointerLikeGetMethodCall ()
 
const FunctionDecl * clang::dataflow::getCanonicalSmartPointerLikeOperatorCallee (const CallExpr *CE)
 Returns the "canonical" callee for smart pointer operators (* and ->) as a key for caching.
 
template<typename LatticeT >
void clang::dataflow::transferSmartPointerLikeCachedDeref (const CallExpr *DerefExpr, RecordStorageLocation *SmartPointerLoc, TransferState< LatticeT > &State, llvm::function_ref< void(StorageLocation &)> InitializeLoc)
 A transfer function for operator* (and value) calls that can be cached.
 
template<typename LatticeT >
void clang::dataflow::transferSmartPointerLikeCachedGet (const CallExpr *GetExpr, RecordStorageLocation *SmartPointerLoc, TransferState< LatticeT > &State, llvm::function_ref< void(StorageLocation &)> InitializeLoc)
 A transfer function for operator-> (and get) calls that can be cached.