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:

case SVal::Loc##Id##Kind: \

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.

REGION [1/2]

REGION [2/2]

SYMBOL [1/2]

SYMBOL [2/2]