clang 8.0.0

Classes | Namespaces | Macros
SValVisitor.h File Reference
`#include "clang/StaticAnalyzer/Core/PathSensitive/SVals.h"`
`#include "clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h"`
`#include "clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h"`
`#include "clang/StaticAnalyzer/Core/PathSensitive/SVals.def"`
`#include "clang/StaticAnalyzer/Core/PathSensitive/Symbols.def"`
`#include "clang/StaticAnalyzer/Core/PathSensitive/Regions.def"`
Include dependency graph for SValVisitor.h:
This graph shows which files directly or indirectly include this file:

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
| clang
| Dataflow Directional Tag Classes.
| clang::ento

## Macros
#define | DISPATCH(NAME, CLASS) return static_cast<ImplClass *>(this)->Visit ## NAME(V.castAs<CLASS>())
#define | BASIC_SVAL(Id, Parent) case SVal::Id ## Kind: DISPATCH(Id, Id);
#define | LOC_SVAL(Id, Parent) case loc::Id ## Kind: DISPATCH(Loc ## Id, loc :: Id);
#define | NONLOC_SVAL(Id, Parent) case nonloc::Id ## Kind: DISPATCH(NonLoc ## Id, nonloc :: Id);
#define | BASIC_SVAL(Id, Parent) RetTy Visit ## Id(Id V) { DISPATCH(Parent, Id); }
#define | ABSTRACT_SVAL(Id, Parent) BASIC_SVAL(Id, Parent)
#define | LOC_SVAL(Id, Parent) RetTy VisitLoc ## Id(loc::Id V) { DISPATCH(Parent, Parent); }
#define | NONLOC_SVAL(Id, Parent) RetTy VisitNonLoc ## Id(nonloc::Id V) { DISPATCH(Parent, Parent); }
#define | DISPATCH(CLASS) return static_cast<ImplClass *>(this)->Visit ## CLASS(cast<CLASS>(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<CLASS>(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)

## Macro Definition Documentation

## ◆ ABSTRACT_REGION

#define ABSTRACT_REGION | ( |  | Id,
|  |  | Parent
| ) |  | REGION(Id, Parent)

Definition at line 125 of file SValVisitor.h.

## ◆ ABSTRACT_SVAL

#define ABSTRACT_SVAL | ( |  | Id,
|  |  | Parent
| ) |  | BASIC_SVAL(Id, Parent)

Definition at line 60 of file SValVisitor.h.

## ◆ ABSTRACT_SYMBOL

#define ABSTRACT_SYMBOL | ( |  | Id,
|  |  | Parent
| ) |  | SYMBOL(Id, Parent)

Definition at line 95 of file SValVisitor.h.

## ◆ BASIC_SVAL [1/2]

#define BASIC_SVAL | ( |  | Id,
|  |  | Parent
| ) |  | case SVal::Id ## Kind: DISPATCH(Id, Id);

Definition at line 58 of file SValVisitor.h.

## ◆ BASIC_SVAL [2/2]

#define BASIC_SVAL | ( |  | Id,
|  |  | Parent
| ) |  | RetTy Visit ## Id(Id V) { DISPATCH(Parent, Id); }

Definition at line 58 of file SValVisitor.h.

## ◆ DISPATCH [1/3]

#define DISPATCH | ( |  | NAME,
|  |  | CLASS
| ) |  | return static_cast<ImplClass *>(this)->Visit ## NAME(V.castAs<CLASS>())

Definition at line 109 of file SValVisitor.h.

## ◆ DISPATCH [2/3]

#define DISPATCH | ( |  | CLASS | ) | return static_cast<ImplClass *>(this)->Visit ## CLASS(cast<CLASS>(S))

Definition at line 109 of file SValVisitor.h.

## ◆ DISPATCH [3/3]

#define DISPATCH | ( |  | CLASS | ) | return static_cast<ImplClass *>(this)->Visit ## CLASS(cast<CLASS>(R))

Definition at line 109 of file SValVisitor.h.

## ◆ LOC_SVAL [1/2]

#define LOC_SVAL | ( |  | Id,
|  |  | Parent
| ) |  | case loc::Id ## Kind: DISPATCH(Loc ## Id, loc :: Id);

Definition at line 62 of file SValVisitor.h.

## ◆ LOC_SVAL [2/2]

#define LOC_SVAL | ( |  | Id,
|  |  | Parent
| ) |  | RetTy VisitLoc ## Id(loc::Id V) { DISPATCH(Parent, Parent); }

Definition at line 62 of file SValVisitor.h.

## ◆ NONLOC_SVAL [1/2]

#define NONLOC_SVAL | ( |  | Id,
|  |  | Parent
| ) |  | case nonloc::Id ## Kind: DISPATCH(NonLoc ## Id, nonloc :: Id);

Definition at line 64 of file SValVisitor.h.

## ◆ NONLOC_SVAL [2/2]

#define NONLOC_SVAL | ( |  | Id,
|  |  | Parent
| ) |  | RetTy VisitNonLoc ## Id(nonloc::Id V) { DISPATCH(Parent, Parent); }

Definition at line 64 of file SValVisitor.h.

## ◆ REGION [1/2]

#define REGION | ( |  | Id,
|  |  | Parent
| ) |  | case MemRegion::Id ## Kind: DISPATCH(Id);

Definition at line 123 of file SValVisitor.h.

## ◆ REGION [2/2]

#define REGION | ( |  | Id,
|  |  | Parent
| ) |  | RetTy Visit ## Id(const Id *R) { DISPATCH(Parent); }

Definition at line 123 of file SValVisitor.h.

## ◆ SYMBOL [1/2]

#define SYMBOL | ( |  | Id,
|  |  | Parent
| ) |  | case SymExpr::Id ## Kind: DISPATCH(Id);

Definition at line 94 of file SValVisitor.h.

## ◆ SYMBOL [2/2]

#define SYMBOL | ( |  | Id,
|  |  | Parent
| ) |  | RetTy Visit ## Id(const Id *S) { DISPATCH(Parent); }

Definition at line 94 of file SValVisitor.h.