同步操作将从 Gitee 极速下载/Cppcheck 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#ifndef GUARD_PROGRAMMEMORY_H#define GUARD_PROGRAMMEMORY_H#include "config.h"#include "utils.h"#include "valueflow.h" // needed for alias#include "mathlib.h"#include <map>#include <unordered_map>class Token;struct ProgramMemory {using Map = std::unordered_map<nonneg int, ValueFlow::Value>;Map values;void setValue(nonneg int varid, const ValueFlow::Value &value);bool getIntValue(nonneg int varid, MathLib::bigint* result) const;void setIntValue(nonneg int varid, MathLib::bigint value);void setUnknown(nonneg int varid);bool getTokValue(nonneg int varid, const Token** result) const;bool hasValue(nonneg int varid);void swap(ProgramMemory &pm);void clear();bool empty() const;void replace(const ProgramMemory &pm);void insert(const ProgramMemory &pm);};struct ProgramMemoryState {ProgramMemory state;std::map<nonneg int, const Token*> origins;void insert(const ProgramMemory &pm, const Token* origin = nullptr);void replace(const ProgramMemory &pm, const Token* origin = nullptr);void addState(const Token* tok, const ProgramMemory::Map& vars);void assume(const Token* tok, bool b);void removeModifiedVars(const Token* tok);ProgramMemory get(const Token *tok, const ProgramMemory::Map& vars) const;};void execute(const Token *expr,ProgramMemory * const programMemory,MathLib::bigint *result,bool *error);/*** Is condition always false when variable has given value?* \param condition top ast token in condition* \param programMemory program memory*/bool conditionIsFalse(const Token *condition, const ProgramMemory &programMemory);/*** Is condition always true when variable has given value?* \param condition top ast token in condition* \param programMemory program memory*/bool conditionIsTrue(const Token *condition, const ProgramMemory &programMemory);/*** Get program memory by looking backwards from given token.*/ProgramMemory getProgramMemory(const Token *tok, nonneg int varid, const ValueFlow::Value &value);ProgramMemory getProgramMemory(const Token *tok, const ProgramMemory::Map& vars);#endif
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。