clang 20.0.0git
Classes | Namespaces | Macros | Functions
SVals.h File Reference
#include "clang/AST/Expr.h"
#include "clang/AST/Type.h"
#include "clang/Basic/LLVM.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h"
#include "llvm/ADT/APSInt.h"
#include "llvm/ADT/FoldingSet.h"
#include "llvm/ADT/ImmutableList.h"
#include "llvm/ADT/PointerUnion.h"
#include "llvm/ADT/STLForwardCompat.h"
#include "llvm/ADT/iterator_range.h"
#include "llvm/Support/Casting.h"
#include <cassert>
#include <cstdint>
#include <optional>
#include <utility>
#include "clang/StaticAnalyzer/Core/PathSensitive/SVals.def"

Go to the source code of this file.

Classes

class  clang::ento::SVal
 SVal - This represents a symbolic expression, which can be either an L-value or an R-value. More...
 
class  clang::ento::UndefinedVal
 
class  clang::ento::DefinedOrUnknownSVal
 
class  clang::ento::UnknownVal
 
class  clang::ento::DefinedSVal
 
class  clang::ento::NonLoc
 
class  clang::ento::Loc
 
class  clang::ento::nonloc::SymbolVal
 Represents symbolic expression that isn't a location. More...
 
class  clang::ento::nonloc::ConcreteInt
 Value representing integer constant. More...
 
class  clang::ento::nonloc::LocAsInteger
 
class  clang::ento::nonloc::CompoundVal
 The simplest example of a concrete compound value is nonloc::CompoundVal, which represents a concrete r-value of an initializer-list or a string. More...
 
class  clang::ento::nonloc::LazyCompoundVal
 While nonloc::CompoundVal covers a few simple use cases, nonloc::LazyCompoundVal is a more performant and flexible way to represent an rvalue of record type, so it shows up much more frequently during analysis. More...
 
class  clang::ento::nonloc::PointerToMember
 Value representing pointer-to-member. More...
 
class  clang::ento::loc::GotoLabel
 
class  clang::ento::loc::MemRegionVal
 
class  clang::ento::loc::ConcreteInt
 
struct  llvm::CastInfo< To, From, std::enable_if_t< std::is_base_of<::clang::ento::SVal, From >::value > >
 

Namespaces

namespace  clang
 The JSON file list parser is used to communicate input to InstallAPI.
 
namespace  clang::ento
 
namespace  clang::ento::nonloc
 
namespace  clang::ento::loc
 
namespace  llvm
 Diagnostic wrappers for TextAPI types for error reporting.
 

Macros

#define BASIC_SVAL(Id, Parent)   Id##Kind,
 
#define LOC_SVAL(Id, Parent)   Loc##Id##Kind,
 Sub-kinds for Loc values.
 
#define NONLOC_SVAL(Id, Parent)   NonLoc##Id##Kind,
 Sub-kinds for NonLoc values.
 
#define SVAL_RANGE(Id, First, Last)    BEGIN_##Id = Id##First##Kind, END_##Id = Id##Last##Kind,
 
#define NONLOC_SVAL(Id, Parent)    inline constexpr auto Id##Kind = SVal::SValKind::NonLoc##Id##Kind;
 Sub-kinds for NonLoc values.
 
#define LOC_SVAL(Id, Parent)    inline constexpr auto Id##Kind = SVal::SValKind::Loc##Id##Kind;
 Sub-kinds for Loc values.
 

Functions

raw_ostream & clang::ento::operator<< (raw_ostream &os, clang::ento::SVal V)
 

Macro Definition Documentation

◆ BASIC_SVAL

#define BASIC_SVAL (   Id,
  Parent 
)    Id##Kind,

Definition at line 58 of file SVals.h.

◆ LOC_SVAL [1/2]

#define LOC_SVAL (   Id,
  Parent 
)    Loc##Id##Kind,

Sub-kinds for Loc values.

Definition at line 188 of file SVals.h.

◆ LOC_SVAL [2/2]

#define LOC_SVAL (   Id,
  Parent 
)     inline constexpr auto Id##Kind = SVal::SValKind::Loc##Id##Kind;

Sub-kinds for Loc values.

Definition at line 188 of file SVals.h.

◆ NONLOC_SVAL [1/2]

#define NONLOC_SVAL (   Id,
  Parent 
)    NonLoc##Id##Kind,

Sub-kinds for NonLoc values.

Definition at line 181 of file SVals.h.

◆ NONLOC_SVAL [2/2]

#define NONLOC_SVAL (   Id,
  Parent 
)     inline constexpr auto Id##Kind = SVal::SValKind::NonLoc##Id##Kind;

Sub-kinds for NonLoc values.

Definition at line 181 of file SVals.h.

◆ SVAL_RANGE

#define SVAL_RANGE (   Id,
  First,
  Last 
)     BEGIN_##Id = Id##First##Kind, END_##Id = Id##Last##Kind,

Definition at line 61 of file SVals.h.