clang: include/clang/StaticAnalyzer/Core/PathSensitive/SValVisitor.h File Reference (original) (raw)
#include "[clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h](MemRegion%5F8h%5Fsource.html)"
#include "[clang/StaticAnalyzer/Core/PathSensitive/SVals.h](SVals%5F8h%5Fsource.html)"
#include "[clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h](SymbolManager%5F8h%5Fsource.html)"
#include "clang/StaticAnalyzer/Core/PathSensitive/SVals.def"
#include "clang/StaticAnalyzer/Core/PathSensitive/Symbols.def"
#include "clang/StaticAnalyzer/Core/PathSensitive/Regions.def"
Go to the source code of this file.
Classes | |
---|---|
class | clang::ento::SValVisitor< ImplClass, RetTy > |
SValVisitor - this class implements a simple visitor for SVal subclasses. More... | |
class | clang::ento::SymExprVisitor< ImplClass, RetTy > |
SymExprVisitor - this class implements a simple visitor for SymExpr subclasses. More... | |
class | clang::ento::MemRegionVisitor< ImplClass, RetTy > |
MemRegionVisitor - this class implements a simple visitor for MemRegion subclasses. More... | |
class | clang::ento::FullSValVisitor< ImplClass, RetTy > |
FullSValVisitor - a convenient mixed visitor for all three: SVal, SymExpr and MemRegion subclasses. More... | |
Namespaces | |
---|---|
namespace | clang |
The JSON file list parser is used to communicate input to InstallAPI. | |
namespace | clang::ento |
Macros | |
---|---|
#define | BASIC_SVAL(Id, Parent) |
#define | LOC_SVAL(Id, Parent) |
#define | NONLOC_SVAL(Id, Parent) |
#define | BASIC_SVAL(Id, Parent) RetTy Visit##Id(Id V) { return derived().Visit##Parent(V.castAs<Id>()); } |
#define | ABSTRACT_SVAL(Id, Parent) BASIC_SVAL(Id, Parent) |
#define | LOC_SVAL(Id, Parent) RetTy Visit##Id(loc::Id V) { return derived().VisitLoc(V.castAs<Loc>()); } |
#define | NONLOC_SVAL(Id, Parent) |
#define | DISPATCH(CLASS) return static_cast<ImplClass *>(this)->Visit ## CLASS(cast(S)) |
#define | SYMBOL(Id, Parent) case SymExpr::Id ## Kind: DISPATCH(Id); |
#define | SYMBOL(Id, Parent) RetTy Visit ## Id(const Id *S) { DISPATCH(Parent); } |
#define | ABSTRACT_SYMBOL(Id, Parent) SYMBOL(Id, Parent) |
#define | DISPATCH(CLASS) return static_cast<ImplClass *>(this)->Visit ## CLASS(cast(R)) |
#define | REGION(Id, Parent) case MemRegion::Id ## Kind: DISPATCH(Id); |
#define | REGION(Id, Parent) RetTy Visit ## Id(const Id *R) { DISPATCH(Parent); } |
#define | ABSTRACT_REGION(Id, Parent) REGION(Id, Parent) |
◆ ABSTRACT_REGION
◆ ABSTRACT_SVAL
◆ ABSTRACT_SYMBOL
◆ BASIC_SVAL [1/2]
Value:
case SVal::Id##Kind: \
return derived().Visit##Id(V.castAs<Id>());
enum clang::sema::@1727::IndirectLocalPathEntry::EntryKind Kind
Definition at line 49 of file SValVisitor.h.
◆ BASIC_SVAL [2/2]
◆ DISPATCH [1/2]
| #define DISPATCH | ( | | CLASS | ) | return static_cast<ImplClass *>(this)->Visit ## CLASS(cast(S)) | | ---------------- | - | | ----- | - | ------------------------------------------------------------------------------------------------------------------------------------ |
◆ DISPATCH [2/2]
| #define DISPATCH | ( | | CLASS | ) | return static_cast<ImplClass *>(this)->Visit ## CLASS(cast(R)) | | ---------------- | - | | ----- | - | ------------------------------------------------------------------------------------------------------------------------------------ |
◆ LOC_SVAL [1/2]
Value:
return derived().Visit##Id(V.castAsloc::Id());
Definition at line 52 of file SValVisitor.h.
◆ LOC_SVAL [2/2]
◆ NONLOC_SVAL [1/2]
Value:
case SVal::NonLoc##Id##Kind: \
return derived().Visit##Id(V.castAsnonloc::Id());
Definition at line 54 of file SValVisitor.h.
◆ NONLOC_SVAL [2/2]
Value:
RetTy Visit##Id(nonloc::Id V) { \
return derived().VisitNonLoc(V.castAs()); \
}
Definition at line 54 of file SValVisitor.h.