Lines Matching defs:Environment
9 // This file defines an Environment class that is used by dataflow analyses
97 const Environment &Env1, Value &Val2,
98 const Environment &Env2,
99 Environment::ValueModel &Model) {
122 const Environment &Env1, Value &Val2,
123 const Environment &Env2,
124 Environment &JoinedEnv,
125 Environment::ValueModel &Model) {
162 const Environment &PrevEnv,
163 Value &Current, Environment &CurrentEnv,
164 Environment::ValueModel &Model) {
209 const Environment &Env1, const Environment &Env2,
210 Environment::ValueModel &Model) {
236 const Environment &Env1, const Environment &Env2,
237 Environment &JoinedEnv, Environment::ValueModel &Model) {
251 if (Value *JoinedVal = Environment::joinValues(
266 Environment &CurEnv, const Environment &PrevEnv,
267 Environment::ValueModel &Model, LatticeEffect &Effect) {
492 void Environment::initialize() {
568 void Environment::initFieldsGlobalsAndFuncs(const ReferencedDecls &Referenced) {
593 Environment Environment::fork() const {
594 Environment Copy(*this);
599 bool Environment::canDescend(unsigned MaxDepth,
604 Environment Environment::pushCall(const CallExpr *Call) const {
605 Environment Env(*this);
626 Environment Environment::pushCall(const CXXConstructExpr *Call) const {
627 Environment Env(*this);
638 void Environment::pushCallInternal(const FunctionDecl *FuncDecl,
665 void Environment::popCall(const CallExpr *Call, const Environment &CalleeEnv) {
685 void Environment::popCall(const CXXConstructExpr *Call,
686 const Environment &CalleeEnv) {
687 // See also comment in `popCall(const CallExpr *, const Environment &)` above.
692 bool Environment::equivalentTo(const Environment &Other,
693 Environment::ValueModel &Model) const {
723 LatticeEffect Environment::widen(const Environment &PrevEnv,
724 Environment::ValueModel &Model) {
761 Environment Environment::join(const Environment &EnvA, const Environment &EnvB,
762 Environment::ValueModel &Model,
772 Environment JoinedEnv(*EnvA.DACtx);
813 Value *Environment::joinValues(QualType Ty, Value *Val1,
814 const Environment &Env1, Value *Val2,
815 const Environment &Env2, Environment &JoinedEnv,
816 Environment::ValueModel &Model) {
831 StorageLocation &Environment::createStorageLocation(QualType Type) {
835 StorageLocation &Environment::createStorageLocation(const ValueDecl &D) {
842 StorageLocation &Environment::createStorageLocation(const Expr &E) {
849 void Environment::setStorageLocation(const ValueDecl &D, StorageLocation &Loc) {
860 StorageLocation *Environment::getStorageLocation(const ValueDecl &D) const {
870 void Environment::removeDecl(const ValueDecl &D) { DeclToLoc.erase(&D); }
872 void Environment::setStorageLocation(const Expr &E, StorageLocation &Loc) {
883 StorageLocation *Environment::getStorageLocation(const Expr &E) const {
892 Environment::getResultObjectLocation(const Expr &RecordPRValue) const {
907 PointerValue &Environment::getOrCreateNullPointerValue(QualType PointeeType) {
911 void Environment::initializeFieldsWithValues(RecordStorageLocation &Loc,
922 void Environment::setValue(const StorageLocation &Loc, Value &Val) {
928 void Environment::setValue(const Expr &E, Value &Val) {
937 Value *Environment::getValue(const StorageLocation &Loc) const {
943 Value *Environment::getValue(const ValueDecl &D) const {
950 Value *Environment::getValue(const Expr &E) const {
965 Value *Environment::createValue(QualType Type) {
977 Value *Environment::createValueUnlessSelfReferential(
1015 Environment::createLocAndMaybeValue(QualType Ty,
1040 void Environment::initializeFieldsWithValues(RecordStorageLocation &Loc,
1084 StorageLocation &Environment::createObjectInternal(const ValueDecl *D,
1136 void Environment::assume(const Formula &F) {
1140 bool Environment::proves(const Formula &F) const {
1144 bool Environment::allows(const Formula &F) const {
1148 void Environment::dump(raw_ostream &OS) const {
1201 void Environment::dump() const { dump(llvm::dbgs()); }
1203 Environment::PrValueToResultObject Environment::buildResultObjectMap(
1219 Environment::PrValueToResultObject Environment::buildResultObjectMap(
1230 const Environment &Env) {
1244 const Environment &Env) {