clang 17.0.0git
Macros | Functions
FuchsiaHandleChecker.cpp File Reference
#include "clang/AST/Attr.h"
#include "clang/AST/Decl.h"
#include "clang/AST/Type.h"
#include "clang/StaticAnalyzer/Checkers/BuiltinCheckerRegistration.h"
#include "clang/StaticAnalyzer/Core/BugReporter/BugType.h"
#include "clang/StaticAnalyzer/Core/Checker.h"
#include "clang/StaticAnalyzer/Core/CheckerManager.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h"
#include "llvm/ADT/StringExtras.h"
#include <optional>
Include dependency graph for FuchsiaHandleChecker.cpp:

Go to the source code of this file.

Macros

#define CASE(ID)
 

Functions

static const ExplodedNodegetAcquireSite (const ExplodedNode *N, SymbolRef Sym, CheckerContext &Ctx)
 
static SmallVector< SymbolRef, 1024 > getFuchsiaHandleSymbols (QualType QT, SVal Arg, ProgramStateRef State)
 Returns the symbols extracted from the argument or empty vector if it cannot be found.
 

Macro Definition Documentation

◆ CASE

#define CASE (   ID)
Value:
case ID: \
OS << #ID; \
break;
@ OS
Indicates that the tracking object is a descendant of a referenced-counted OSObject,...

Function Documentation

◆ getAcquireSite()

static const ExplodedNode * getAcquireSite ( const ExplodedNode N,
SymbolRef  Sym,
CheckerContext Ctx 
)
static

◆ getFuchsiaHandleSymbols()

static SmallVector< SymbolRef, 1024 > getFuchsiaHandleSymbols ( QualType  QT,
SVal  Arg,
ProgramStateRef  State 
)
static

Returns the symbols extracted from the argument or empty vector if it cannot be found.

It is unlikely to have over 1024 symbols in one argument.

Definition at line 275 of file FuchsiaHandleChecker.cpp.

References clang::Type::getAs(), clang::ento::SVal::getAs(), clang::ento::SVal::getAsSymbol(), clang::Type::getPointeeType(), clang::Type::isAnyPointerType(), clang::Type::isReferenceType(), and clang::Type::isStructureType().