svf-lib 1.0.1925 → 1.0.1927

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/SVF-linux/Release-build/bin/ae +0 -0
  2. package/SVF-linux/Release-build/bin/svf-ex +0 -0
  3. package/SVF-linux/Release-build/include/AE/Core/AbstractState.h +750 -0
  4. package/SVF-linux/Release-build/include/AE/Core/AbstractValue.h +514 -39
  5. package/SVF-linux/Release-build/include/AE/Core/AddressValue.h +32 -25
  6. package/SVF-linux/Release-build/include/AE/Core/ExeState.h +2 -2
  7. package/SVF-linux/Release-build/include/AE/Core/IntervalValue.h +9 -24
  8. package/SVF-linux/Release-build/include/AE/Core/RelationSolver.h +9 -9
  9. package/SVF-linux/Release-build/include/AE/Svfexe/{AbstractExecution.h → AbstractInterpretation.h} +24 -22
  10. package/SVF-linux/Release-build/include/AE/Svfexe/BufOverflowChecker.h +5 -5
  11. package/SVF-linux/Release-build/include/AE/Svfexe/SVFIR2ItvExeState.h +23 -25
  12. package/SVF-linux/Release-build/lib/libSvfCore.a +0 -0
  13. package/SVF-osx/Release-build/bin/ae +0 -0
  14. package/SVF-osx/Release-build/bin/svf-ex +0 -0
  15. package/SVF-osx/Release-build/include/AE/Core/AbstractState.h +2 -3
  16. package/SVF-osx/Release-build/include/AE/Core/IntervalValue.h +1 -0
  17. package/SVF-osx/Release-build/include/AE/Core/RelExeState.h +1 -1
  18. package/SVF-osx/Release-build/include/AE/Svfexe/AbstractInterpretation.h +3 -4
  19. package/SVF-osx/Release-build/include/AE/Svfexe/ICFGSimplification.h +1 -2
  20. package/SVF-osx/Release-build/include/AE/Svfexe/{SVFIR2ItvExeState.h → SVFIR2AbsState.h} +8 -9
  21. package/SVF-osx/Release-build/lib/libSvfCore.a +0 -0
  22. package/SVF-osx/Release-build/lib/libSvfLLVM.a +0 -0
  23. package/package.json +1 -1
  24. package/SVF-linux/Release-build/include/AE/Core/IntervalExeState.h +0 -650
  25. package/SVF-osx/Release-build/include/AE/Core/ConsExeState.h +0 -453
  26. package/SVF-osx/Release-build/include/AE/Core/ExeState.h +0 -304
  27. package/SVF-osx/Release-build/include/AE/Core/SingleAbsValue.h +0 -477
  28. package/SVF-osx/Release-build/include/AE/Core/SymState.h +0 -221
  29. package/SVF-osx/Release-build/include/AE/Svfexe/SVFIR2ConsExeState.h +0 -148
@@ -1,148 +0,0 @@
1
- //===- SVFIR2ConsExeState.h ----SVFIR2ConsExeState-------------------------//
2
- //
3
- // SVF: Static Value-Flow Analysis
4
- //
5
- // Copyright (C) <2013-2022> <Yulei Sui>
6
- //
7
-
8
- // This program is free software: you can redistribute it and/or modify
9
- // it under the terms of the GNU Affero General Public License as published by
10
- // the Free Software Foundation, either version 3 of the License, or
11
- // (at your option) any later version.
12
-
13
- // This program is distributed in the hope that it will be useful,
14
- // but WITHOUT ANY WARRANTY; without even the implied warranty of
15
- // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
- // GNU Affero General Public License for more details.
17
-
18
- // You should have received a copy of the GNU Affero General Public License
19
- // along with this program. If not, see <http://www.gnu.org/licenses/>.
20
- //
21
- //===----------------------------------------------------------------------===//
22
-
23
- //
24
- // Created by jiawei and xiao on 6/1/23.
25
- //
26
-
27
- #ifndef SVF_SVFIR2CONSEXESTATE_H
28
- #define SVF_SVFIR2CONSEXESTATE_H
29
-
30
- #include "AE/Core/ConsExeState.h"
31
- #include "SVFIR/SVFIR.h"
32
-
33
- namespace SVF
34
- {
35
- class SVFIR2ConsExeState
36
- {
37
- public:
38
- typedef ExeState::Addrs Addrs;
39
-
40
- SVFIR2ConsExeState() = default;
41
-
42
- void setEs(ConsExeState *es)
43
- {
44
- _es = es;
45
- }
46
-
47
- ConsExeState *getEs()
48
- {
49
- return _es;
50
- }
51
-
52
- virtual ~SVFIR2ConsExeState();
53
-
54
- /// Translator for llvm ir
55
- //{%
56
- /// https://llvm.org/docs/LangRef.html#alloca-instruction
57
- void translateAddr(const AddrStmt *addr);
58
-
59
- /// https://llvm.org/docs/LangRef.html#binary-operations
60
- void translateBinary(const BinaryOPStmt *binary);
61
-
62
- /// https://llvm.org/docs/LangRef.html#icmp-instruction
63
- void translateCmp(const CmpStmt *cmp);
64
-
65
- /// https://llvm.org/docs/LangRef.html#load-instruction
66
- void translateLoad(const LoadStmt *load);
67
-
68
- /// https://llvm.org/docs/LangRef.html#store-instruction
69
- void translateStore(const StoreStmt *store);
70
-
71
- /// https://llvm.org/docs/LangRef.html#conversion-operations
72
- void translateCopy(const CopyStmt *copy);
73
-
74
- /// https://llvm.org/docs/LangRef.html#call-instruction
75
- void translateCall(const CallPE *callPE);
76
-
77
- void translateRet(const RetPE *retPE);
78
-
79
- /// https://llvm.org/docs/LangRef.html#getelementptr-instruction
80
- void translateGep(const GepStmt *gep, bool isGlobal);
81
-
82
- /// https://llvm.org/docs/LangRef.html#select-instruction
83
- void translateSelect(const SelectStmt *select);
84
-
85
- /// https://llvm.org/docs/LangRef.html#i-phi
86
- void translatePhi(const PhiStmt *phi);
87
-
88
- //%}
89
- //%}
90
-
91
- /// Return the expr of gep object given a base and offset
92
- Addrs getGepObjAddress(u32_t base, s32_t offset);
93
-
94
- /// Return the offset expression of a GepStmt
95
- std::pair<s32_t, s32_t> getGepOffset(const GepStmt *gep);
96
-
97
- /// Init ConZ3Expr for ObjVar
98
- void initObjVar(const ObjVar *objVar, u32_t varId);
99
-
100
-
101
- void initSVFVar(u32_t varId);
102
-
103
- void moveToGlobal();
104
-
105
- /// The physical address starts with 0x7f...... + idx
106
- static inline u32_t getVirtualMemAddress(u32_t idx)
107
- {
108
- return ExeState::getVirtualMemAddress(idx);
109
- }
110
-
111
- /// Check bit value of val start with 0x7F000000, filter by 0xFF000000
112
- static inline bool isVirtualMemAddress(u32_t val)
113
- {
114
- return ExeState::isVirtualMemAddress(val);
115
- }
116
-
117
- /// Return the internal index if idx is an address otherwise return the value of idx
118
- static inline u32_t getInternalID(u32_t idx)
119
- {
120
- return ExeState::getInternalID(idx);
121
- }
122
-
123
- inline bool inVarToValTable(u32_t id) const
124
- {
125
- return _es->inVarToValTable(id);
126
- }
127
-
128
- inline bool inVarToAddrsTable(u32_t id) const
129
- {
130
- return _es->inVarToAddrsTable(id);
131
- }
132
-
133
- inline bool inLocToValTable(u32_t id) const
134
- {
135
- return _es->inLocToValTable(id);
136
- }
137
-
138
- inline bool inLocToAddrsTable(u32_t id) const
139
- {
140
- return _es->inLocToAddrsTable(id);
141
- }
142
-
143
- protected:
144
- ConsExeState *_es{nullptr};
145
- }; // end class SVFIR2ConsExeState
146
- } // end namespace SVF
147
-
148
- #endif // SVF_SVFIR2CONSEXESTATE_H