13#ifndef LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_PROGRAMSTATE_H
14#define LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_PROGRAMSTATE_H
23#include "llvm/ADT/FoldingSet.h"
24#include "llvm/ADT/ImmutableMap.h"
25#include "llvm/Support/Allocator.h"
40class CallEventManager;
114 bool PosteriorlyOverconstrained =
false;
119 bool isPosteriorlyOverconstrained()
const {
120 return PosteriorlyOverconstrained;
130 void setStore(
const StoreRef &storeRef);
143 int64_t
getID()
const;
174 ID.AddPointer(
V->store);
176 ID.AddBoolean(
V->PosteriorlyOverconstrained);
220 bool assumption)
const;
227 [[nodiscard]] std::pair<ProgramStateRef, ProgramStateRef>
230 [[nodiscard]] std::pair<ProgramStateRef, ProgramStateRef>
245 const llvm::APSInt &From,
246 const llvm::APSInt &To,
247 bool assumption)
const;
254 [[nodiscard]] std::pair<ProgramStateRef, ProgramStateRef>
256 const llvm::APSInt &To)
const;
270 LLVM_ATTRIBUTE_RETURNS_NONNULL
281 bool Invalidate =
true)
const;
285 bool notifyChanges =
true)
const;
355 bool IsVirtual)
const;