clang 22.0.0git
SVals.h File Reference
#include "clang/AST/Expr.h"
#include "clang/AST/Type.h"
#include "clang/Basic/LLVM.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/APSIntPtr.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)
#define LOC_SVAL(Id, Parent)
 Sub-kinds for Loc values.
#define NONLOC_SVAL(Id, Parent)
 Sub-kinds for NonLoc values.
#define SVAL_RANGE(Id, First, Last)
#define NONLOC_SVAL(Id, Parent)
 Sub-kinds for NonLoc values.
#define LOC_SVAL(Id, Parent)
 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 )
Value:
Id##Kind,

Definition at line 59 of file SVals.h.

◆ LOC_SVAL [1/2]

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

Sub-kinds for Loc values.

Definition at line 60 of file SVals.h.

◆ LOC_SVAL [2/2]

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

Sub-kinds for Loc values.

Definition at line 60 of file SVals.h.

◆ NONLOC_SVAL [1/2]

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

Sub-kinds for NonLoc values.

Definition at line 61 of file SVals.h.

◆ NONLOC_SVAL [2/2]

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

Sub-kinds for NonLoc values.

Definition at line 61 of file SVals.h.

◆ SVAL_RANGE

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

Definition at line 62 of file SVals.h.