#include "clang/StaticAnalyzer/Core/PathSensitive/DynamicExtent.h"
#include "clang/AST/Expr.h"
#include "clang/Basic/LLVM.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/SVals.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h"
REGISTER_MAP_WITH_PROGRAMSTATE(…) …
namespace clang {
namespace ento {
DefinedOrUnknownSVal getDynamicExtent(ProgramStateRef State,
const MemRegion *MR, SValBuilder &SVB) { … }
DefinedOrUnknownSVal getElementExtent(QualType Ty, SValBuilder &SVB) { … }
static DefinedOrUnknownSVal getConstantArrayElementCount(SValBuilder &SVB,
const MemRegion *MR) { … }
static DefinedOrUnknownSVal
getDynamicElementCount(ProgramStateRef State, SVal Size,
DefinedOrUnknownSVal ElementSize) { … }
DefinedOrUnknownSVal getDynamicElementCount(ProgramStateRef State,
const MemRegion *MR,
SValBuilder &SVB,
QualType ElementTy) { … }
SVal getDynamicExtentWithOffset(ProgramStateRef State, SVal BufV) { … }
DefinedOrUnknownSVal getDynamicElementCountWithOffset(ProgramStateRef State,
SVal BufV,
QualType ElementTy) { … }
ProgramStateRef setDynamicExtent(ProgramStateRef State, const MemRegion *MR,
DefinedOrUnknownSVal Size, SValBuilder &SVB) { … }
}
}