13#ifndef LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_SYMEXPR_H
14#define LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_SYMEXPR_H
18#include "llvm/ADT/FoldingSet.h"
19#include "llvm/ADT/SmallVector.h"
29class SymExpr :
public llvm::FoldingSetNode {
30 virtual void anchor();
34#define SYMBOL(Id, Parent) Id##Kind,
35#define SYMBOL_RANGE(Id, First, Last) BEGIN_##Id = First, END_##Id = Last,
36#include "clang/StaticAnalyzer/Core/PathSensitive/Symbols.def"
58 virtual void dump()
const;
63 virtual void Profile(llvm::FoldingSetNodeID &profile) = 0;
120 void anchor()
override;
142 return k >= BEGIN_SYMBOLS && k <= END_SYMBOLS;
Forward-declares and imports various common LLVM datatypes that clang wants to use unqualified.
C Language Family Type Representation.
A (possibly-)qualified type.
bool isNull() const
Return true if this QualType doesn't point to a type yet.
MemRegion - The root abstract class for all memory regions.
Iterator over symbols that the current symbol depends on.
symbol_iterator()=default
bool operator!=(const symbol_iterator &X) const
symbol_iterator & operator++()
bool operator==(const symbol_iterator &X) const
const SymExpr * operator*()
virtual void dumpToStream(raw_ostream &os) const
static bool isValidTypeForSymbol(QualType T)
virtual void Profile(llvm::FoldingSetNodeID &profile)=0
virtual const MemRegion * getOriginRegion() const
Find the region from which this symbol originates.
static symbol_iterator symbol_end()
virtual QualType getType() const =0
virtual unsigned computeComplexity() const =0
virtual ~SymExpr()=default
virtual void dump() const
symbol_iterator symbol_begin() const
A symbol representing data which can be stored in a memory location (region).
SymbolID getSymbolID() const
virtual StringRef getKindStr() const =0
Get a string representation of the kind of the region.
unsigned computeComplexity() const override
~SymbolData() override=default
static bool classof(const SymExpr *SE)
SymbolData(Kind k, SymbolID sym)
raw_ostream & operator<<(raw_ostream &Out, const CheckerBase &Checker)
Dump checker name to stream.