svf-lib 1.0.1220 → 1.0.1221
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.
- package/SVF-linux/Release-build/lib/libSvf.a +0 -0
- package/SVF-linux/include/DDA/ContextDDA.h +29 -0
- package/SVF-linux/include/DDA/DDAClient.h +23 -0
- package/SVF-linux/include/DDA/DDAPass.h +22 -0
- package/SVF-linux/include/DDA/DDAStat.h +22 -0
- package/SVF-linux/include/DDA/DDAVFSolver.h +22 -0
- package/SVF-linux/include/DDA/FlowDDA.h +29 -0
- package/SVF-linux/include/MSSA/MSSAMuChi.h +1 -1
- package/SVF-linux/include/MSSA/MemPartition.h +1 -1
- package/SVF-linux/include/MSSA/MemRegion.h +5 -1
- package/SVF-linux/include/MSSA/MemSSA.h +7 -1
- package/SVF-linux/include/MSSA/SVFGBuilder.h +1 -1
- package/SVF-linux/include/MTA/FSMPTA.h +26 -0
- package/SVF-linux/include/MTA/LockAnalysis.h +22 -0
- package/SVF-linux/include/MTA/MHP.h +22 -0
- package/SVF-linux/include/MTA/MTA.h +27 -1
- package/SVF-linux/include/MTA/MTAStat.h +22 -0
- package/SVF-linux/include/MTA/PCG.h +22 -0
- package/SVF-linux/include/MTA/TCT.h +22 -0
- package/SVF-linux/include/MemoryModel/AbstractPointsToDS.h +34 -0
- package/SVF-linux/include/MemoryModel/ConditionalPT.h +1 -1
- package/SVF-linux/include/MemoryModel/LocationSet.h +1 -1
- package/SVF-linux/include/MemoryModel/MutablePointsToDS.h +32 -0
- package/SVF-linux/include/MemoryModel/PAGBuilderFromFile.h +2 -2
- package/SVF-linux/include/MemoryModel/PersistentPointsToCache.h +3 -1
- package/SVF-linux/include/MemoryModel/PersistentPointsToDS.h +10 -0
- package/SVF-linux/include/MemoryModel/PointerAnalysis.h +1 -1
- package/SVF-linux/include/MemoryModel/PointerAnalysisImpl.h +1 -1
- package/SVF-linux/include/MemoryModel/SVFStatements.h +1 -1
- package/SVF-linux/include/SABER/DoubleFreeChecker.h +1 -1
- package/SVF-linux/include/SABER/FileChecker.h +1 -1
- package/SVF-linux/include/SABER/LeakChecker.h +1 -1
- package/SVF-linux/include/SABER/ProgSlice.h +8 -1
- package/SVF-linux/include/SABER/SaberAnnotator.h +1 -1
- package/SVF-linux/include/SABER/SaberCheckerAPI.h +1 -1
- package/SVF-linux/include/SABER/SaberCondAllocator.h +1 -1
- package/SVF-linux/include/SABER/SaberSVFGBuilder.h +1 -1
- package/SVF-linux/include/SABER/SrcSnkDDA.h +8 -1
- package/SVF-linux/include/SABER/SrcSnkSolver.h +1 -1
- package/SVF-linux/include/WPA/Andersen.h +5 -0
- package/SVF-linux/include/WPA/TypeAnalysis.h +1 -1
- package/SVF-linux/include/WPA/VersionedFlowSensitive.h +4 -0
- package/package.json +1 -1
|
Binary file
|
|
@@ -1,8 +1,37 @@
|
|
|
1
|
+
//===- ContextDDA.h -- Context-sensitive demand-driven analysis-------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-> <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 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 General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
1
23
|
/*
|
|
2
24
|
* ContextDDA.h
|
|
3
25
|
*
|
|
4
26
|
* Created on: Aug 17, 2014
|
|
5
27
|
* Author: Yulei Sui
|
|
28
|
+
*
|
|
29
|
+
* The implementation is based on
|
|
30
|
+
* (1) Yulei Sui and Jingling Xue. "On-Demand Strong Update Analysis via Value-Flow Refinement".
|
|
31
|
+
* ACM SIGSOFT International Symposium on the Foundation of Software Engineering (FSE'16)
|
|
32
|
+
*
|
|
33
|
+
* (2) Yulei Sui and Jingling Xue. "Value-Flow-Based Demand-Driven Pointer Analysis for C and C++".
|
|
34
|
+
* IEEE Transactions on Software Engineering (TSE'18)
|
|
6
35
|
*/
|
|
7
36
|
|
|
8
37
|
#ifndef ContextDDA_H_
|
|
@@ -1,3 +1,26 @@
|
|
|
1
|
+
//===- DDAClient.h -- Clients of demand-driven analysis-------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-> <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 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 General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
23
|
+
|
|
1
24
|
/*
|
|
2
25
|
* @file: DDAClient.h
|
|
3
26
|
* @author: yesen
|
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
//===- DDAPass.h -- Demand-driven analysis driver pass-------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-> <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 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 General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
1
23
|
/*
|
|
2
24
|
* @file: DDAPass.h
|
|
3
25
|
* @author: Yulei Sui
|
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
//===- DDAStat.h -- Statistics for demand-driven pass-------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-> <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 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 General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
1
23
|
/*
|
|
2
24
|
* DDAStat.h
|
|
3
25
|
*
|
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
//===- DDAVFSolver.h -- Demand-driven analysis value-flow solver------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-> <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 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 General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
1
23
|
/*
|
|
2
24
|
* DDAVFSolver.h
|
|
3
25
|
*
|
|
@@ -1,8 +1,37 @@
|
|
|
1
|
+
//===- FlowDDA.h -- Flow-sensitive demand-driven analysis -------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-> <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 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 General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
1
23
|
/*
|
|
2
24
|
* FlowDDA.h
|
|
3
25
|
*
|
|
4
26
|
* Created on: Jun 30, 2014
|
|
5
27
|
* Author: Yulei Sui, Sen Ye
|
|
28
|
+
*
|
|
29
|
+
* The implementation is based on
|
|
30
|
+
* (1) Yulei Sui and Jingling Xue. "On-Demand Strong Update Analysis via Value-Flow Refinement".
|
|
31
|
+
* ACM SIGSOFT International Symposium on the Foundation of Software Engineering (FSE'16)
|
|
32
|
+
*
|
|
33
|
+
* (2) Yulei Sui and Jingling Xue. "Value-Flow-Based Demand-Driven Pointer Analysis for C and C++".
|
|
34
|
+
* IEEE Transactions on Software Engineering (TSE'18)
|
|
6
35
|
*/
|
|
7
36
|
|
|
8
37
|
#ifndef FlowDDA_H_
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
//
|
|
3
3
|
// SVF: Static Value-Flow Analysis
|
|
4
4
|
//
|
|
5
|
-
// Copyright (C) <2013
|
|
5
|
+
// Copyright (C) <2013-> <Yulei Sui>
|
|
6
6
|
//
|
|
7
7
|
|
|
8
8
|
// This program is free software: you can redistribute it and/or modify
|
|
@@ -25,6 +25,10 @@
|
|
|
25
25
|
*
|
|
26
26
|
* Created on: Jul 14, 2013
|
|
27
27
|
* Author: Yulei Sui
|
|
28
|
+
* The implementation is based on
|
|
29
|
+
* Yulei Sui, Hua Yan, Yunpeng Zhang, Jingling Xue and Zheng Zheng.
|
|
30
|
+
* "Parallel Construction of Interprocedural Memory SSA Form".
|
|
31
|
+
* Journal of Systems and Software (JSS'16)
|
|
28
32
|
*/
|
|
29
33
|
|
|
30
34
|
#ifndef MEMORYREGION_H_
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
//
|
|
3
3
|
// SVF: Static Value-Flow Analysis
|
|
4
4
|
//
|
|
5
|
-
// Copyright (C) <2013
|
|
5
|
+
// Copyright (C) <2013-> <Yulei Sui>
|
|
6
6
|
//
|
|
7
7
|
|
|
8
8
|
// This program is free software: you can redistribute it and/or modify
|
|
@@ -25,8 +25,14 @@
|
|
|
25
25
|
*
|
|
26
26
|
* Created on: Jul 14, 2013
|
|
27
27
|
* Author: Yulei Sui
|
|
28
|
+
*
|
|
29
|
+
* The implementation is based on
|
|
30
|
+
* Yulei Sui, Hua Yan, Yunpeng Zhang, Jingling Xue and Zheng Zheng.
|
|
31
|
+
* "Parallel Construction of Interprocedural Memory SSA Form".
|
|
32
|
+
* Journal of Systems and Software (JSS'16), Algorithm 3 in the paper
|
|
28
33
|
*/
|
|
29
34
|
|
|
35
|
+
|
|
30
36
|
#ifndef MEMORYSSAPASS_H_
|
|
31
37
|
#define MEMORYSSAPASS_H_
|
|
32
38
|
|
|
@@ -1,8 +1,34 @@
|
|
|
1
|
+
//===- FSMPTA.h -- Flow-sensitive analysis of multithreaded programs-------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-> <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 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 General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
1
23
|
/*
|
|
2
24
|
* FSMPTA.h
|
|
3
25
|
*
|
|
4
26
|
* Created on: Jul 29, 2015
|
|
5
27
|
* Author: Yulei Sui, Peng Di
|
|
28
|
+
*
|
|
29
|
+
* The implementation is based on
|
|
30
|
+
* Yulei Sui, Peng Di, and Jingling Xue. "Sparse Flow-Sensitive Pointer Analysis for Multithreaded Programs".
|
|
31
|
+
* 2016 International Symposium on Code Generation and Optimization (CGO'16)
|
|
6
32
|
*/
|
|
7
33
|
|
|
8
34
|
#ifndef FSPTANALYSIS_H_
|
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
//===- LockAnalysis.h -- Analysis of locksets-------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-> <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 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 General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
1
23
|
/*
|
|
2
24
|
* LockAnalysis.h
|
|
3
25
|
*
|
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
//===- MHP.h -- May-happen-in-parallel analysis-------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-> <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 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 General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
1
23
|
/*
|
|
2
24
|
* MHP.h
|
|
3
25
|
*
|
|
@@ -1,8 +1,34 @@
|
|
|
1
|
+
//===- MTA.h -- Analysis of multithreaded programs-------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-> <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 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 General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
1
23
|
/*
|
|
2
|
-
*
|
|
24
|
+
* MTA.h
|
|
3
25
|
*
|
|
4
26
|
* Created on: May 14, 2014
|
|
5
27
|
* Author: Yulei Sui, Peng Di
|
|
28
|
+
*
|
|
29
|
+
* The implementation is based on
|
|
30
|
+
* Yulei Sui, Peng Di, and Jingling Xue. "Sparse Flow-Sensitive Pointer Analysis for Multithreaded Programs".
|
|
31
|
+
* 2016 International Symposium on Code Generation and Optimization (CGO'16)
|
|
6
32
|
*/
|
|
7
33
|
|
|
8
34
|
#ifndef MTA_H_
|
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
//===- MTAStat.h -- Statistics for MTA-------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-> <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 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 General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
1
23
|
/*
|
|
2
24
|
* MTAStat.h
|
|
3
25
|
*
|
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
//===- PCG.h -- Procedure creation graph-------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-> <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 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 General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
1
23
|
/*
|
|
2
24
|
* MHP.h
|
|
3
25
|
*
|
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
//===- TCT.h -- Thread creation tree-------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-> <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 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 General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
1
23
|
/*
|
|
2
24
|
* TCT.h
|
|
3
25
|
*
|
|
@@ -1,3 +1,26 @@
|
|
|
1
|
+
//===- AbstractPointsToDS.h -- Abstract points-to data structure-------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-> <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 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 General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
23
|
+
|
|
1
24
|
/// Contains abstract classes for:
|
|
2
25
|
/// PTData: basic points-to data structure derived by all others.
|
|
3
26
|
/// DiffPTData: PTData which only propagates new changes, not entire points-to sets.
|
|
@@ -16,6 +39,17 @@
|
|
|
16
39
|
/// |
|
|
17
40
|
/// MutableIncDFPTData
|
|
18
41
|
|
|
42
|
+
|
|
43
|
+
/*
|
|
44
|
+
* AbstractPointsToDS.h
|
|
45
|
+
*
|
|
46
|
+
* Authors: Mohamad Barbar and Yulei Sui
|
|
47
|
+
*
|
|
48
|
+
* The implementation is based on
|
|
49
|
+
* Mohamad Barbar and Yulei Sui. Hash Consed Points-To Sets.
|
|
50
|
+
* 28th Static Analysis Symposium (SAS'21)
|
|
51
|
+
*/
|
|
52
|
+
|
|
19
53
|
#ifndef ABSTRACT_POINTSTO_H_
|
|
20
54
|
#define ABSTRACT_POINTSTO_H_
|
|
21
55
|
|
|
@@ -1,6 +1,38 @@
|
|
|
1
|
+
//===- MutablePointsToDS.h -- Mutable points-to data structure-------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-> <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 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 General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
1
23
|
/// PTData (AbstractPointsToDS.h) implementations with a mutable backend.
|
|
2
24
|
/// Each Key is given a points-to set which is itself updated till the analysis terminates.
|
|
3
25
|
|
|
26
|
+
/*
|
|
27
|
+
* MutablePointsToDS.h
|
|
28
|
+
*
|
|
29
|
+
* Authors: Mohamad Barbar and Yulei Sui
|
|
30
|
+
*
|
|
31
|
+
* The implementation is based on
|
|
32
|
+
* Mohamad Barbar and Yulei Sui. Hash Consed Points-To Sets.
|
|
33
|
+
* 28th Static Analysis Symposium (SAS'21)
|
|
34
|
+
*/
|
|
35
|
+
|
|
4
36
|
#ifndef MUTABLE_POINTSTO_H_
|
|
5
37
|
#define MUTABLE_POINTSTO_H_
|
|
6
38
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
//
|
|
3
3
|
// SVF: Static Value-Flow Analysis
|
|
4
4
|
//
|
|
5
|
-
// Copyright (C) <2013
|
|
5
|
+
// Copyright (C) <2013-> <Yulei Sui>
|
|
6
6
|
//
|
|
7
7
|
|
|
8
8
|
// This program is free software: you can redistribute it and/or modify
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
* PAGBuilderFromFile.h
|
|
25
25
|
*
|
|
26
26
|
* Created on: 20 Sep. 2018
|
|
27
|
-
* Author:
|
|
27
|
+
* Author: Yulei Sui
|
|
28
28
|
*/
|
|
29
29
|
|
|
30
30
|
#ifndef INCLUDE_MEMORYMODEL_PAGBUILDERFROMFILE_H_
|
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
/*
|
|
4
4
|
* PersistentPointsToCache.h
|
|
5
5
|
*
|
|
6
|
-
*
|
|
6
|
+
* The implementation is based on
|
|
7
|
+
* Mohamad Barbar and Yulei Sui. Hash Consed Points-To Sets.
|
|
8
|
+
* 28th Static Analysis Symposium (SAS'21)
|
|
7
9
|
*
|
|
8
10
|
* Created on: Sep 28, 2020
|
|
9
11
|
* Author: Mohamad Barbar
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
/// PTData (AbstractPointsToDS.h) implementations with a persistent backend.
|
|
2
2
|
/// Each Key is given a cheap points-to ID which refers to some real points-to set.
|
|
3
3
|
|
|
4
|
+
/*
|
|
5
|
+
* PersistentPointsToDS.h
|
|
6
|
+
*
|
|
7
|
+
* Authors: Mohamad Barbar
|
|
8
|
+
*
|
|
9
|
+
* The implementation is based on
|
|
10
|
+
* Mohamad Barbar and Yulei Sui. Hash Consed Points-To Sets.
|
|
11
|
+
* 28th Static Analysis Symposium (SAS'21)
|
|
12
|
+
*/
|
|
13
|
+
|
|
4
14
|
#ifndef PERSISTENT_POINTSTO_H_
|
|
5
15
|
#define PERSISTENT_POINTSTO_H_
|
|
6
16
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
//
|
|
3
3
|
// SVF: Static Value-Flow Analysis
|
|
4
4
|
//
|
|
5
|
-
// Copyright (C) <2013
|
|
5
|
+
// Copyright (C) <2013-> <Yulei Sui>
|
|
6
6
|
//
|
|
7
7
|
|
|
8
8
|
// This program is free software: you can redistribute it and/or modify
|
|
@@ -25,6 +25,13 @@
|
|
|
25
25
|
*
|
|
26
26
|
* Created on: Apr 1, 2014
|
|
27
27
|
* Author: Yulei Sui
|
|
28
|
+
*
|
|
29
|
+
* The implementation is based on
|
|
30
|
+
* (1) Yulei Sui, Ding Ye, and Jingling Xue. "Static Memory Leak Detection Using Full-Sparse Value-Flow Analysis".
|
|
31
|
+
* 2012 International Symposium on Software Testing and Analysis (ISSTA'12)
|
|
32
|
+
*
|
|
33
|
+
* (2) Yulei Sui, Ding Ye, and Jingling Xue. "Detecting Memory Leaks Statically with Full-Sparse Value-Flow Analysis".
|
|
34
|
+
* IEEE Transactions on Software Engineering (TSE'14)
|
|
28
35
|
*/
|
|
29
36
|
|
|
30
37
|
#ifndef PROGSLICE_H_
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
//
|
|
3
3
|
// SVF: Static Value-Flow Analysis
|
|
4
4
|
//
|
|
5
|
-
// Copyright (C) <2013
|
|
5
|
+
// Copyright (C) <2013-> <Yulei Sui>
|
|
6
6
|
//
|
|
7
7
|
|
|
8
8
|
// This program is free software: you can redistribute it and/or modify
|
|
@@ -25,6 +25,13 @@
|
|
|
25
25
|
*
|
|
26
26
|
* Created on: Apr 1, 2014
|
|
27
27
|
* Author: Yulei Sui
|
|
28
|
+
*
|
|
29
|
+
* The implementation is based on
|
|
30
|
+
* (1) Yulei Sui, Ding Ye, and Jingling Xue. "Static Memory Leak Detection Using Full-Sparse Value-Flow Analysis".
|
|
31
|
+
* 2012 International Symposium on Software Testing and Analysis (ISSTA'12)
|
|
32
|
+
*
|
|
33
|
+
* (2) Yulei Sui, Ding Ye, and Jingling Xue. "Detecting Memory Leaks Statically with Full-Sparse Value-Flow Analysis".
|
|
34
|
+
* IEEE Transactions on Software Engineering (TSE'14)
|
|
28
35
|
*/
|
|
29
36
|
|
|
30
37
|
#ifndef SRCSNKANALYSIS_H_
|
|
@@ -25,6 +25,11 @@
|
|
|
25
25
|
*
|
|
26
26
|
* Created on: Nov 12, 2013
|
|
27
27
|
* Author: Yulei Sui
|
|
28
|
+
*
|
|
29
|
+
* The field-sensitive implementation is improved based on
|
|
30
|
+
*
|
|
31
|
+
* Yuxiang Lei and Yulei Sui. "Fast and Precise Handling of Positive Weight Cycles for Field-sensitive Pointer Analysis".
|
|
32
|
+
* 26th International Static Analysis Symposium (SAS'19)
|
|
28
33
|
*/
|
|
29
34
|
|
|
30
35
|
#ifndef INCLUDE_WPA_ANDERSEN_H_
|
|
@@ -5,6 +5,10 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Created on: Jun 26, 2020
|
|
7
7
|
* Author: Mohamad Barbar
|
|
8
|
+
*
|
|
9
|
+
* The implementation is based on
|
|
10
|
+
* Mohamad Barbar, Yulei Sui and Shiping Chen. "Object Versioning for Flow-Sensitive Pointer Analysis".
|
|
11
|
+
* International Symposium on Code Generation and Optimization (CGO'21)
|
|
8
12
|
*/
|
|
9
13
|
|
|
10
14
|
#ifndef VFS_H_
|