svf-lib 1.0.2452 → 1.0.2454
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-aarch64/bin/ae +0 -0
- package/SVF-linux-aarch64/bin/cfl +0 -0
- package/SVF-linux-aarch64/bin/dvf +0 -0
- package/SVF-linux-aarch64/bin/llvm2svf +0 -0
- package/SVF-linux-aarch64/bin/mta +0 -0
- package/SVF-linux-aarch64/bin/saber +0 -0
- package/SVF-linux-aarch64/bin/svf-ex +0 -0
- package/SVF-linux-aarch64/bin/wpa +0 -0
- package/SVF-linux-aarch64/include/SVF-LLVM/BasicTypes.h +3 -1
- package/SVF-linux-aarch64/include/SVF-LLVM/BreakConstantExpr.h +24 -0
- package/SVF-linux-aarch64/lib/extapi.bc +19 -19
- package/SVF-linux-aarch64/lib/libSvfLLVM.so.3.2 +0 -0
- package/SVF-linux-x86_64/bin/ae +0 -0
- package/SVF-linux-x86_64/bin/cfl +0 -0
- package/SVF-linux-x86_64/bin/dvf +0 -0
- package/SVF-linux-x86_64/bin/mta +0 -0
- package/SVF-linux-x86_64/bin/saber +0 -0
- package/SVF-linux-x86_64/bin/svf-ex +0 -0
- package/SVF-linux-x86_64/bin/wpa +0 -0
- package/SVF-linux-x86_64/include/Graphs/BasicBlockG.h +18 -4
- package/SVF-linux-x86_64/include/Graphs/CHG.h +12 -0
- package/SVF-linux-x86_64/include/Graphs/CallGraph.h +14 -2
- package/SVF-linux-x86_64/include/Graphs/ICFG.h +24 -8
- package/SVF-linux-x86_64/include/Graphs/ICFGEdge.h +1 -0
- package/SVF-linux-x86_64/include/Graphs/ICFGNode.h +39 -6
- package/SVF-linux-x86_64/include/Graphs/IRGraph.h +12 -0
- package/SVF-linux-x86_64/include/MemoryModel/AccessPath.h +7 -1
- package/SVF-linux-x86_64/include/SVF-LLVM/ICFGBuilder.h +1 -1
- package/SVF-linux-x86_64/include/SVF-LLVM/SVFIRBuilder.h +1 -0
- package/SVF-linux-x86_64/include/SVFIR/ObjTypeInfo.h +5 -0
- package/SVF-linux-x86_64/include/SVFIR/SVFIR.h +61 -39
- package/SVF-linux-x86_64/include/SVFIR/SVFStatements.h +125 -10
- package/SVF-linux-x86_64/include/SVFIR/SVFType.h +97 -1
- package/SVF-linux-x86_64/include/SVFIR/SVFValue.h +1 -0
- package/SVF-linux-x86_64/include/SVFIR/SVFVariables.h +164 -4
- package/SVF-linux-x86_64/include/Util/ExtAPI.h +1 -0
- package/SVF-linux-x86_64/include/Util/NodeIDAllocator.h +11 -0
- package/SVF-linux-x86_64/include/Util/SVFLoopAndDomInfo.h +37 -0
- package/SVF-linux-x86_64/lib/libSvfCore.so.3.2 +0 -0
- package/SVF-linux-x86_64/lib/libSvfLLVM.so.3.2 +0 -0
- package/package.json +1 -1
package/SVF-linux-aarch64/bin/ae
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -72,8 +72,10 @@ typedef llvm::GlobalObject GlobalObject;
|
|
|
72
72
|
typedef llvm::Use Use;
|
|
73
73
|
typedef llvm::ModulePass ModulePass;
|
|
74
74
|
typedef llvm::IRBuilder<> IRBuilder;
|
|
75
|
-
#if LLVM_VERSION_MAJOR >= 12
|
|
75
|
+
#if LLVM_VERSION_MAJOR >= 12 && LLVM_VERSION_MAJOR <= 16
|
|
76
76
|
typedef llvm::UnifyFunctionExitNodesLegacyPass UnifyFunctionExitNodes;
|
|
77
|
+
#elif LLVM_VERSION_MAJOR > 16
|
|
78
|
+
typedef llvm::UnifyFunctionExitNodesPass UnifyFunctionExitNodes;
|
|
77
79
|
#else
|
|
78
80
|
typedef llvm::UnifyFunctionExitNodes UnifyFunctionExitNodes;
|
|
79
81
|
#endif
|
|
@@ -15,6 +15,10 @@
|
|
|
15
15
|
#ifndef BREAKCONSTANTGEPS_H
|
|
16
16
|
#define BREAKCONSTANTGEPS_H
|
|
17
17
|
|
|
18
|
+
#if LLVM_VERSION_MAJOR > 16
|
|
19
|
+
#include "llvm/Passes/PassBuilder.h"
|
|
20
|
+
#include "llvm/Transforms/Utils/UnifyFunctionExitNodes.h"
|
|
21
|
+
#endif
|
|
18
22
|
|
|
19
23
|
namespace SVF
|
|
20
24
|
{
|
|
@@ -77,6 +81,25 @@ public:
|
|
|
77
81
|
const Function& fun = *iter;
|
|
78
82
|
if(fun.isDeclaration())
|
|
79
83
|
continue;
|
|
84
|
+
#if LLVM_VERSION_MAJOR > 16
|
|
85
|
+
llvm::PassBuilder PB;
|
|
86
|
+
llvm::LoopAnalysisManager LAM;
|
|
87
|
+
llvm::FunctionAnalysisManager FAM;
|
|
88
|
+
llvm::CGSCCAnalysisManager CGAM;
|
|
89
|
+
llvm::ModuleAnalysisManager MAM;
|
|
90
|
+
|
|
91
|
+
PB.registerModuleAnalyses(MAM);
|
|
92
|
+
PB.registerCGSCCAnalyses(CGAM);
|
|
93
|
+
PB.registerFunctionAnalyses(FAM);
|
|
94
|
+
PB.registerLoopAnalyses(LAM);
|
|
95
|
+
PB.crossRegisterProxies(LAM, FAM, CGAM, MAM);
|
|
96
|
+
|
|
97
|
+
llvm::FunctionPassManager FPM;
|
|
98
|
+
FPM.addPass(llvm::UnifyFunctionExitNodesPass());
|
|
99
|
+
FPM.run(const_cast<llvm::Function&>(fun), FAM);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
#else
|
|
80
103
|
getUnifyExit(fun)->runOnFunction(const_cast<Function&>(fun));
|
|
81
104
|
}
|
|
82
105
|
}
|
|
@@ -86,6 +109,7 @@ public:
|
|
|
86
109
|
assert(!fn.isDeclaration() && "external function does not have DF");
|
|
87
110
|
return &getAnalysis<UnifyFunctionExitNodes>(const_cast<Function&>(fn));
|
|
88
111
|
}
|
|
112
|
+
#endif
|
|
89
113
|
};
|
|
90
114
|
|
|
91
115
|
} // End namespace SVF
|
|
@@ -3,23 +3,6 @@ source_filename = "/home/runner/work/SVF/SVF/svf-llvm/lib/extapi.c"
|
|
|
3
3
|
target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
|
|
4
4
|
target triple = "aarch64-unknown-linux-gnu"
|
|
5
5
|
|
|
6
|
-
@.str = private unnamed_addr constant [15 x i8] c"ALLOC_HEAP_RET\00", section "llvm.metadata"
|
|
7
|
-
@.str.1 = private unnamed_addr constant [48 x i8] c"/home/runner/work/SVF/SVF/svf-llvm/lib/extapi.c\00", section "llvm.metadata"
|
|
8
|
-
@.str.2 = private unnamed_addr constant [15 x i8] c"AllocSize:Arg0\00", section "llvm.metadata"
|
|
9
|
-
@.str.3 = private unnamed_addr constant [18 x i8] c"AllocSize:UNKNOWN\00", section "llvm.metadata"
|
|
10
|
-
@.str.4 = private unnamed_addr constant [20 x i8] c"AllocSize:Arg0*Arg1\00", section "llvm.metadata"
|
|
11
|
-
@.str.5 = private unnamed_addr constant [15 x i8] c"AllocSize:Arg1\00", section "llvm.metadata"
|
|
12
|
-
@.str.6 = private unnamed_addr constant [17 x i8] c"REALLOC_HEAP_RET\00", section "llvm.metadata"
|
|
13
|
-
@.str.7 = private unnamed_addr constant [20 x i8] c"AllocSize:Arg1*Arg2\00", section "llvm.metadata"
|
|
14
|
-
@.str.8 = private unnamed_addr constant [16 x i8] c"ALLOC_HEAP_ARG0\00", section "llvm.metadata"
|
|
15
|
-
@.str.9 = private unnamed_addr constant [15 x i8] c"AllocSize:Arg2\00", section "llvm.metadata"
|
|
16
|
-
@.str.10 = private unnamed_addr constant [16 x i8] c"ALLOC_HEAP_ARG1\00", section "llvm.metadata"
|
|
17
|
-
@.str.11 = private unnamed_addr constant [16 x i8] c"ALLOC_HEAP_ARG2\00", section "llvm.metadata"
|
|
18
|
-
@.str.12 = private unnamed_addr constant [7 x i8] c"MEMCPY\00", section "llvm.metadata"
|
|
19
|
-
@.str.13 = private unnamed_addr constant [7 x i8] c"MEMSET\00", section "llvm.metadata"
|
|
20
|
-
@.str.14 = private unnamed_addr constant [7 x i8] c"STRCPY\00", section "llvm.metadata"
|
|
21
|
-
@.str.15 = private unnamed_addr constant [7 x i8] c"STRCAT\00", section "llvm.metadata"
|
|
22
|
-
@.str.16 = private unnamed_addr constant [10 x i8] c"OVERWRITE\00", section "llvm.metadata"
|
|
23
6
|
@getenv_global = global [10 x i8] zeroinitializer, align 1
|
|
24
7
|
@ctype_b_loc_global = global [10 x i16] zeroinitializer, align 2
|
|
25
8
|
@ctype_tolower_loc_global = global [10 x i32] zeroinitializer, align 4
|
|
@@ -49,7 +32,24 @@ target triple = "aarch64-unknown-linux-gnu"
|
|
|
49
32
|
@tgoto_global = global [10 x i8] zeroinitializer, align 1
|
|
50
33
|
@tparm_global = global [10 x i8] zeroinitializer, align 1
|
|
51
34
|
@zError_global = global [10 x i8] zeroinitializer, align 1
|
|
52
|
-
@llvm.global.annotations = appending global [237 x { ptr, ptr, ptr, i32, ptr }] [{ ptr, ptr, ptr, i32, ptr } { ptr @malloc, ptr @.str, ptr @.str.1, i32 23, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @malloc, ptr @.str.2, ptr @.str.1, i32 23, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @fopen, ptr @.str, ptr @.str.1, i32 29, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @fopen, ptr @.str.3, ptr @.str.1, i32 29, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @fopen64, ptr @.str, ptr @.str.1, i32 35, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @fopen64, ptr @.str.3, ptr @.str.1, i32 35, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @fdopen, ptr @.str, ptr @.str.1, i32 41, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @fdopen, ptr @.str.3, ptr @.str.1, i32 41, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @readdir64, ptr @.str, ptr @.str.1, i32 47, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @readdir64, ptr @.str.3, ptr @.str.1, i32 47, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @tmpvoid64, ptr @.str, ptr @.str.1, i32 53, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @tmpvoid64, ptr @.str.3, ptr @.str.1, i32 53, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @calloc, ptr @.str, ptr @.str.1, i32 59, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @calloc, ptr @.str.4, ptr @.str.1, i32 59, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @zmalloc, ptr @.str, ptr @.str.1, i32 65, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @zmalloc, ptr @.str.2, ptr @.str.1, i32 65, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gzdopen, ptr @.str, ptr @.str.1, i32 71, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gzdopen, ptr @.str.3, ptr @.str.1, i32 71, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @iconv_open, ptr @.str, ptr @.str.1, i32 77, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @iconv_open, ptr @.str.3, ptr @.str.1, i32 77, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @lalloc, ptr @.str, ptr @.str.1, i32 83, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @lalloc, ptr @.str.2, ptr @.str.1, i32 83, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @lalloc_clear, ptr @.str, ptr @.str.1, i32 89, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @lalloc_clear, ptr @.str.2, ptr @.str.1, i32 89, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @nhalloc, ptr @.str, ptr @.str.1, i32 95, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @nhalloc, ptr @.str.3, ptr @.str.1, i32 95, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @oballoc, ptr @.str, ptr @.str.1, i32 101, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @oballoc, ptr @.str.2, ptr @.str.1, i32 101, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @popen, ptr @.str, ptr @.str.1, i32 107, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @popen, ptr @.str.3, ptr @.str.1, i32 107, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @pthread_getspecific, ptr @.str, ptr @.str.1, i32 113, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @pthread_getspecific, ptr @.str.3, ptr @.str.1, i32 113, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @readdir, ptr @.str, ptr @.str.1, i32 119, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @readdir, ptr @.str.3, ptr @.str.1, i32 119, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @safe_calloc, ptr @.str, ptr @.str.1, i32 125, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @safe_calloc, ptr @.str.4, ptr @.str.1, i32 125, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @safe_malloc, ptr @.str, ptr @.str.1, i32 131, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @safe_malloc, ptr @.str.2, ptr @.str.1, i32 131, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @safecalloc, ptr @.str, ptr @.str.1, i32 137, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @safecalloc, ptr @.str.4, ptr @.str.1, i32 137, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @safemalloc, ptr @.str, ptr @.str.1, i32 143, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @safemalloc, ptr @.str.2, ptr @.str.1, i32 143, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @setmntent, ptr @.str, ptr @.str.1, i32 149, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @setmntent, ptr @.str.3, ptr @.str.1, i32 149, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @shmat, ptr @.str, ptr @.str.1, i32 155, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @shmat, ptr @.str.3, ptr @.str.1, i32 155, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @__sysv_signal, ptr @.str, ptr @.str.1, i32 161, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @__sysv_signal, ptr @.str.3, ptr @.str.1, i32 161, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @signal, ptr @.str, ptr @.str.1, i32 167, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @signal, ptr @.str.3, ptr @.str.1, i32 167, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @tempnam, ptr @.str, ptr @.str.1, i32 173, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @tempnam, ptr @.str.3, ptr @.str.1, i32 173, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @tmpvoid, ptr @.str, ptr @.str.1, i32 179, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @tmpvoid, ptr @.str.3, ptr @.str.1, i32 179, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @xcalloc, ptr @.str, ptr @.str.1, i32 185, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @xcalloc, ptr @.str.3, ptr @.str.1, i32 185, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @xmalloc, ptr @.str, ptr @.str.1, i32 191, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @xmalloc, ptr @.str.2, ptr @.str.1, i32 191, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @__cxa_allocate_exception, ptr @.str, ptr @.str.1, i32 197, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @__cxa_allocate_exception, ptr @.str.2, ptr @.str.1, i32 197, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @aligned_alloc, ptr @.str, ptr @.str.1, i32 203, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @aligned_alloc, ptr @.str.5, ptr @.str.1, i32 203, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @memalign, ptr @.str, ptr @.str.1, i32 209, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @memalign, ptr @.str.5, ptr @.str.1, i32 209, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @valloc, ptr @.str, ptr @.str.1, i32 215, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @valloc, ptr @.str.2, ptr @.str.1, i32 215, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @pvalloc, ptr @.str, ptr @.str.1, i32 221, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @pvalloc, ptr @.str.2, ptr @.str.1, i32 221, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @mmap64, ptr @.str, ptr @.str.1, i32 227, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @mmap64, ptr @.str.5, ptr @.str.1, i32 227, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @XSetLocaleModifiers, ptr @.str, ptr @.str.1, i32 233, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @XSetLocaleModifiers, ptr @.str.3, ptr @.str.1, i32 233, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @__strdup, ptr @.str, ptr @.str.1, i32 239, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @__strdup, ptr @.str.3, ptr @.str.1, i32 239, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @crypt, ptr @.str, ptr @.str.1, i32 245, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @crypt, ptr @.str.3, ptr @.str.1, i32 245, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @dlerror, ptr @.str, ptr @.str.1, i32 251, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @dlerror, ptr @.str.3, ptr @.str.1, i32 251, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @dlopen, ptr @.str, ptr @.str.1, i32 257, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @dlopen, ptr @.str.3, ptr @.str.1, i32 257, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gai_strerror, ptr @.str, ptr @.str.1, i32 263, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gai_strerror, ptr @.str.3, ptr @.str.1, i32 263, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gcry_cipher_algo_name, ptr @.str, ptr @.str.1, i32 269, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gcry_cipher_algo_name, ptr @.str.3, ptr @.str.1, i32 269, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @svfgcry_md_algo_name_, ptr @.str, ptr @.str.1, i32 275, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @svfgcry_md_algo_name_, ptr @.str.3, ptr @.str.1, i32 275, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @getlogin, ptr @.str, ptr @.str.1, i32 281, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @getlogin, ptr @.str.3, ptr @.str.1, i32 281, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @getpass, ptr @.str, ptr @.str.1, i32 287, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @getpass, ptr @.str.3, ptr @.str.1, i32 287, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gnutls_strerror, ptr @.str, ptr @.str.1, i32 293, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gnutls_strerror, ptr @.str.3, ptr @.str.1, i32 293, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gpg_strerror, ptr @.str, ptr @.str.1, i32 299, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gpg_strerror, ptr @.str.3, ptr @.str.1, i32 299, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gzerror, ptr @.str, ptr @.str.1, i32 305, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gzerror, ptr @.str.3, ptr @.str.1, i32 305, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @inet_ntoa, ptr @.str, ptr @.str.1, i32 311, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @inet_ntoa, ptr @.str.3, ptr @.str.1, i32 311, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @initscr, ptr @.str, ptr @.str.1, i32 317, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @initscr, ptr @.str.3, ptr @.str.1, i32 317, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @llvm_stacksave, ptr @.str, ptr @.str.1, i32 323, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @llvm_stacksave, ptr @.str.3, ptr @.str.1, i32 323, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @mmap, ptr @.str, ptr @.str.1, i32 329, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @mmap, ptr @.str.5, ptr @.str.1, i32 329, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @newwin, ptr @.str, ptr @.str.1, i32 335, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @newwin, ptr @.str.3, ptr @.str.1, i32 335, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @nl_langinfo, ptr @.str, ptr @.str.1, i32 341, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @nl_langinfo, ptr @.str.3, ptr @.str.1, i32 341, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @opendir, ptr @.str, ptr @.str.1, i32 347, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @opendir, ptr @.str.3, ptr @.str.1, i32 347, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @sbrk, ptr @.str, ptr @.str.1, i32 353, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @sbrk, ptr @.str.3, ptr @.str.1, i32 353, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @strdup, ptr @.str, ptr @.str.1, i32 359, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @strdup, ptr @.str.3, ptr @.str.1, i32 359, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @strndup, ptr @.str, ptr @.str.1, i32 365, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @strndup, ptr @.str.3, ptr @.str.1, i32 365, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @strerror, ptr @.str, ptr @.str.1, i32 371, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @strerror, ptr @.str.3, ptr @.str.1, i32 371, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @strsignal, ptr @.str, ptr @.str.1, i32 377, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @strsignal, ptr @.str.3, ptr @.str.1, i32 377, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @textdomain, ptr @.str, ptr @.str.1, i32 383, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @textdomain, ptr @.str.3, ptr @.str.1, i32 383, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @tgetstr, ptr @.str, ptr @.str.1, i32 389, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @tgetstr, ptr @.str.3, ptr @.str.1, i32 389, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @tigetstr, ptr @.str, ptr @.str.1, i32 395, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @tigetstr, ptr @.str.3, ptr @.str.1, i32 395, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @tmpnam, ptr @.str, ptr @.str.1, i32 401, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @tmpnam, ptr @.str.3, ptr @.str.1, i32 401, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @ttyname, ptr @.str, ptr @.str.1, i32 407, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @ttyname, ptr @.str.3, ptr @.str.1, i32 407, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @getcwd, ptr @.str.6, ptr @.str.1, i32 413, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @getcwd, ptr @.str.3, ptr @.str.1, i32 413, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @mem_realloc, ptr @.str.6, ptr @.str.1, i32 419, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @mem_realloc, ptr @.str.5, ptr @.str.1, i32 419, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @realloc, ptr @.str.6, ptr @.str.1, i32 425, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @realloc, ptr @.str.5, ptr @.str.1, i32 425, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @reallocarray, ptr @.str.6, ptr @.str.1, i32 431, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @reallocarray, ptr @.str.7, ptr @.str.1, i32 431, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @safe_realloc, ptr @.str.6, ptr @.str.1, i32 437, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @safe_realloc, ptr @.str.5, ptr @.str.1, i32 437, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @saferealloc, ptr @.str.6, ptr @.str.1, i32 443, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @saferealloc, ptr @.str.7, ptr @.str.1, i32 443, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @safexrealloc, ptr @.str.6, ptr @.str.1, i32 449, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @safexrealloc, ptr @.str.3, ptr @.str.1, i32 449, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @xrealloc, ptr @.str.6, ptr @.str.1, i32 471, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @xrealloc, ptr @.str.5, ptr @.str.1, i32 471, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_Znwj, ptr @.str, ptr @.str.1, i32 478, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_Znwj, ptr @.str.2, ptr @.str.1, i32 478, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnwjRKSt9nothrow_t, ptr @.str, ptr @.str.1, i32 485, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnwjRKSt9nothrow_t, ptr @.str.2, ptr @.str.1, i32 485, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnwjSt11align_val_t, ptr @.str, ptr @.str.1, i32 492, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnwjSt11align_val_t, ptr @.str.2, ptr @.str.1, i32 492, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnwjSt11align_val_tRKSt9nothrow_t, ptr @.str, ptr @.str.1, i32 499, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnwjSt11align_val_tRKSt9nothrow_t, ptr @.str.2, ptr @.str.1, i32 499, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_Znaj, ptr @.str, ptr @.str.1, i32 506, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_Znaj, ptr @.str.2, ptr @.str.1, i32 506, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnajRKSt9nothrow_t, ptr @.str, ptr @.str.1, i32 513, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnajRKSt9nothrow_t, ptr @.str.2, ptr @.str.1, i32 513, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnajSt11align_val_t, ptr @.str, ptr @.str.1, i32 520, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnajSt11align_val_t, ptr @.str.2, ptr @.str.1, i32 520, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnajSt11align_val_tRKSt9nothrow_t, ptr @.str, ptr @.str.1, i32 527, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnajSt11align_val_tRKSt9nothrow_t, ptr @.str.2, ptr @.str.1, i32 527, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_Znwm, ptr @.str, ptr @.str.1, i32 534, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_Znwm, ptr @.str.2, ptr @.str.1, i32 534, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnwmRKSt9nothrow_t, ptr @.str, ptr @.str.1, i32 541, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnwmRKSt9nothrow_t, ptr @.str.2, ptr @.str.1, i32 541, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnwmSt11align_val_t, ptr @.str, ptr @.str.1, i32 548, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnwmSt11align_val_t, ptr @.str.2, ptr @.str.1, i32 548, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnwmSt11align_val_tRKSt9nothrow_t, ptr @.str, ptr @.str.1, i32 555, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnwmSt11align_val_tRKSt9nothrow_t, ptr @.str.2, ptr @.str.1, i32 555, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_Znam, ptr @.str, ptr @.str.1, i32 562, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_Znam, ptr @.str.2, ptr @.str.1, i32 562, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnamRKSt9nothrow_t, ptr @.str, ptr @.str.1, i32 569, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnamRKSt9nothrow_t, ptr @.str.2, ptr @.str.1, i32 569, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnamSt11align_val_t, ptr @.str, ptr @.str.1, i32 576, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnamSt11align_val_t, ptr @.str.2, ptr @.str.1, i32 576, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnamSt11align_val_tRKSt9nothrow_t, ptr @.str, ptr @.str.1, i32 583, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnamSt11align_val_tRKSt9nothrow_t, ptr @.str.2, ptr @.str.1, i32 583, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @asprintf, ptr @.str.8, ptr @.str.1, i32 589, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @asprintf, ptr @.str.3, ptr @.str.1, i32 589, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @vasprintf, ptr @.str.8, ptr @.str.1, i32 595, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @vasprintf, ptr @.str.3, ptr @.str.1, i32 595, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @db_create, ptr @.str.8, ptr @.str.1, i32 601, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @db_create, ptr @.str.3, ptr @.str.1, i32 601, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gnutls_pkcs12_bag_init, ptr @.str.8, ptr @.str.1, i32 607, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gnutls_pkcs12_bag_init, ptr @.str.3, ptr @.str.1, i32 607, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gnutls_pkcs12_init, ptr @.str.8, ptr @.str.1, i32 613, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gnutls_pkcs12_init, ptr @.str.3, ptr @.str.1, i32 613, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gnutls_x509_crt_init, ptr @.str.8, ptr @.str.1, i32 619, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gnutls_x509_crt_init, ptr @.str.3, ptr @.str.1, i32 619, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gnutls_x509_privkey_init, ptr @.str.8, ptr @.str.1, i32 625, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gnutls_x509_privkey_init, ptr @.str.3, ptr @.str.1, i32 625, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @posix_memalign, ptr @.str.8, ptr @.str.1, i32 631, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @posix_memalign, ptr @.str.9, ptr @.str.1, i32 631, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @scandir, ptr @.str.10, ptr @.str.1, i32 637, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @scandir, ptr @.str.3, ptr @.str.1, i32 637, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @XmbTextPropertyToTextList, ptr @.str.11, ptr @.str.1, i32 643, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @XmbTextPropertyToTextList, ptr @.str.3, ptr @.str.1, i32 643, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @llvm_memcpy_p0i8_p0i8_i64, ptr @.str.12, ptr @.str.1, i32 649, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @llvm_memcpy_p0_p0_i64, ptr @.str.12, ptr @.str.1, i32 652, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @llvm_memcpy_p0i8_p0i8_i32, ptr @.str.12, ptr @.str.1, i32 655, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @llvm_memcpy_p0_p0_i32, ptr @.str.12, ptr @.str.1, i32 658, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @llvm_memcpy, ptr @.str.12, ptr @.str.1, i32 661, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @llvm_memmove, ptr @.str.12, ptr @.str.1, i32 664, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @llvm_memmove_p0i8_p0i8_i64, ptr @.str.12, ptr @.str.1, i32 667, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @llvm_memmove_p0_p0_i64, ptr @.str.12, ptr @.str.1, i32 670, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @llvm_memmove_p0i8_p0i8_i32, ptr @.str.12, ptr @.str.1, i32 673, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @llvm_memmove_p0_p0_i32, ptr @.str.12, ptr @.str.1, i32 676, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @__memcpy_chk, ptr @.str.12, ptr @.str.1, i32 679, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @memmove, ptr @.str.12, ptr @.str.1, i32 682, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @bcopy, ptr @.str.12, ptr @.str.1, i32 688, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @memccpy, ptr @.str.12, ptr @.str.1, i32 691, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @__memmove_chk, ptr @.str.12, ptr @.str.1, i32 697, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @llvm_memset, ptr @.str.13, ptr @.str.1, i32 700, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @llvm_memset_p0i8_i32, ptr @.str.13, ptr @.str.1, i32 703, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @llvm_memset_p0_i32, ptr @.str.13, ptr @.str.1, i32 706, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @llvm_memset_p0i8_i64, ptr @.str.13, ptr @.str.1, i32 709, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @llvm_memset_p0_i64, ptr @.str.13, ptr @.str.1, i32 712, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @__memset_chk, ptr @.str.13, ptr @.str.1, i32 715, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @wmemset, ptr @.str.13, ptr @.str.1, i32 721, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @__strcpy_chk, ptr @.str.14, ptr @.str.1, i32 727, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @__strcat_chk, ptr @.str.15, ptr @.str.1, i32 733, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @__wcscat_chk, ptr @.str.15, ptr @.str.1, i32 739, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @stpcpy, ptr @.str.14, ptr @.str.1, i32 745, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @strcat, ptr @.str.15, ptr @.str.1, i32 751, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @wcscat, ptr @.str.15, ptr @.str.1, i32 757, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @strcpy, ptr @.str.14, ptr @.str.1, i32 764, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @strncat, ptr @.str.15, ptr @.str.1, i32 770, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @wcsncat, ptr @.str.15, ptr @.str.1, i32 776, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @__strncat_chk, ptr @.str.15, ptr @.str.1, i32 781, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @__wcsncat_chk, ptr @.str.15, ptr @.str.1, i32 787, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @strncpy, ptr @.str.12, ptr @.str.1, i32 792, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @wcscpy, ptr @.str.14, ptr @.str.1, i32 798, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @iconv, ptr @.str.12, ptr @.str.1, i32 803, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZNSt5arrayIPK1ALm2EE4backEv, ptr @.str.16, ptr @.str.1, i32 809, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @SyGetmem, ptr @.str, ptr @.str.1, i32 817, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @SyGetmem, ptr @.str.2, ptr @.str.1, i32 817, ptr null }], section "llvm.metadata"
|
|
35
|
+
@.str = private unnamed_addr constant [15 x i8] c"ALLOC_HEAP_RET\00", section "llvm.metadata"
|
|
36
|
+
@.str.1 = private unnamed_addr constant [48 x i8] c"/home/runner/work/SVF/SVF/svf-llvm/lib/extapi.c\00", section "llvm.metadata"
|
|
37
|
+
@.str.2 = private unnamed_addr constant [20 x i8] c"AllocSize:Arg0*Arg1\00", section "llvm.metadata"
|
|
38
|
+
@.str.3 = private unnamed_addr constant [18 x i8] c"AllocSize:UNKNOWN\00", section "llvm.metadata"
|
|
39
|
+
@.str.4 = private unnamed_addr constant [7 x i8] c"STRCAT\00", section "llvm.metadata"
|
|
40
|
+
@.str.5 = private unnamed_addr constant [7 x i8] c"MEMCPY\00", section "llvm.metadata"
|
|
41
|
+
@.str.6 = private unnamed_addr constant [15 x i8] c"AllocSize:Arg0\00", section "llvm.metadata"
|
|
42
|
+
@.str.7 = private unnamed_addr constant [16 x i8] c"ALLOC_HEAP_ARG2\00", section "llvm.metadata"
|
|
43
|
+
@.str.8 = private unnamed_addr constant [15 x i8] c"AllocSize:Arg1\00", section "llvm.metadata"
|
|
44
|
+
@.str.9 = private unnamed_addr constant [17 x i8] c"REALLOC_HEAP_RET\00", section "llvm.metadata"
|
|
45
|
+
@.str.10 = private unnamed_addr constant [7 x i8] c"STRCPY\00", section "llvm.metadata"
|
|
46
|
+
@.str.11 = private unnamed_addr constant [20 x i8] c"AllocSize:Arg1*Arg2\00", section "llvm.metadata"
|
|
47
|
+
@.str.12 = private unnamed_addr constant [7 x i8] c"MEMSET\00", section "llvm.metadata"
|
|
48
|
+
@.str.13 = private unnamed_addr constant [16 x i8] c"ALLOC_HEAP_ARG0\00", section "llvm.metadata"
|
|
49
|
+
@.str.14 = private unnamed_addr constant [10 x i8] c"OVERWRITE\00", section "llvm.metadata"
|
|
50
|
+
@.str.15 = private unnamed_addr constant [16 x i8] c"ALLOC_HEAP_ARG1\00", section "llvm.metadata"
|
|
51
|
+
@.str.16 = private unnamed_addr constant [15 x i8] c"AllocSize:Arg2\00", section "llvm.metadata"
|
|
52
|
+
@llvm.global.annotations = appending global [237 x { ptr, ptr, ptr, i32, ptr }] [{ ptr, ptr, ptr, i32, ptr } { ptr @safecalloc, ptr @.str, ptr @.str.1, i32 137, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @safecalloc, ptr @.str.2, ptr @.str.1, i32 137, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @xcalloc, ptr @.str, ptr @.str.1, i32 185, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @xcalloc, ptr @.str.3, ptr @.str.1, i32 185, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @__strcat_chk, ptr @.str.4, ptr @.str.1, i32 733, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @strdup, ptr @.str, ptr @.str.1, i32 359, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @strdup, ptr @.str.3, ptr @.str.1, i32 359, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @llvm_memcpy, ptr @.str.5, ptr @.str.1, i32 661, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnajRKSt9nothrow_t, ptr @.str, ptr @.str.1, i32 513, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnajRKSt9nothrow_t, ptr @.str.6, ptr @.str.1, i32 513, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @memccpy, ptr @.str.5, ptr @.str.1, i32 691, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @__sysv_signal, ptr @.str, ptr @.str.1, i32 161, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @__sysv_signal, ptr @.str.3, ptr @.str.1, i32 161, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @fdopen, ptr @.str, ptr @.str.1, i32 41, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @fdopen, ptr @.str.3, ptr @.str.1, i32 41, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @XmbTextPropertyToTextList, ptr @.str.7, ptr @.str.1, i32 643, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @XmbTextPropertyToTextList, ptr @.str.3, ptr @.str.1, i32 643, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @mmap64, ptr @.str, ptr @.str.1, i32 227, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @mmap64, ptr @.str.8, ptr @.str.1, i32 227, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @getlogin, ptr @.str, ptr @.str.1, i32 281, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @getlogin, ptr @.str.3, ptr @.str.1, i32 281, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @oballoc, ptr @.str, ptr @.str.1, i32 101, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @oballoc, ptr @.str.6, ptr @.str.1, i32 101, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @llvm_stacksave, ptr @.str, ptr @.str.1, i32 323, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @llvm_stacksave, ptr @.str.3, ptr @.str.1, i32 323, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @safe_malloc, ptr @.str, ptr @.str.1, i32 131, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @safe_malloc, ptr @.str.6, ptr @.str.1, i32 131, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnajSt11align_val_t, ptr @.str, ptr @.str.1, i32 520, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnajSt11align_val_t, ptr @.str.6, ptr @.str.1, i32 520, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @safe_realloc, ptr @.str.9, ptr @.str.1, i32 437, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @safe_realloc, ptr @.str.8, ptr @.str.1, i32 437, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_Znaj, ptr @.str, ptr @.str.1, i32 506, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_Znaj, ptr @.str.6, ptr @.str.1, i32 506, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @wcscpy, ptr @.str.10, ptr @.str.1, i32 798, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @safexrealloc, ptr @.str.9, ptr @.str.1, i32 449, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @safexrealloc, ptr @.str.3, ptr @.str.1, i32 449, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @llvm_memcpy_p0i8_p0i8_i32, ptr @.str.5, ptr @.str.1, i32 655, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @wcsncat, ptr @.str.4, ptr @.str.1, i32 776, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @__wcscat_chk, ptr @.str.4, ptr @.str.1, i32 739, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @malloc, ptr @.str, ptr @.str.1, i32 23, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @malloc, ptr @.str.6, ptr @.str.1, i32 23, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @svfgcry_md_algo_name_, ptr @.str, ptr @.str.1, i32 275, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @svfgcry_md_algo_name_, ptr @.str.3, ptr @.str.1, i32 275, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @llvm_memcpy_p0_p0_i32, ptr @.str.5, ptr @.str.1, i32 658, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @crypt, ptr @.str, ptr @.str.1, i32 245, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @crypt, ptr @.str.3, ptr @.str.1, i32 245, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @fopen64, ptr @.str, ptr @.str.1, i32 35, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @fopen64, ptr @.str.3, ptr @.str.1, i32 35, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @readdir64, ptr @.str, ptr @.str.1, i32 47, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @readdir64, ptr @.str.3, ptr @.str.1, i32 47, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @mem_realloc, ptr @.str.9, ptr @.str.1, i32 419, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @mem_realloc, ptr @.str.8, ptr @.str.1, i32 419, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @llvm_memmove_p0i8_p0i8_i64, ptr @.str.5, ptr @.str.1, i32 667, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @aligned_alloc, ptr @.str, ptr @.str.1, i32 203, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @aligned_alloc, ptr @.str.8, ptr @.str.1, i32 203, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @xmalloc, ptr @.str, ptr @.str.1, i32 191, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @xmalloc, ptr @.str.6, ptr @.str.1, i32 191, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @__memmove_chk, ptr @.str.5, ptr @.str.1, i32 697, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @reallocarray, ptr @.str.9, ptr @.str.1, i32 431, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @reallocarray, ptr @.str.11, ptr @.str.1, i32 431, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @strndup, ptr @.str, ptr @.str.1, i32 365, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @strndup, ptr @.str.3, ptr @.str.1, i32 365, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @__strdup, ptr @.str, ptr @.str.1, i32 239, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @__strdup, ptr @.str.3, ptr @.str.1, i32 239, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @__memset_chk, ptr @.str.12, ptr @.str.1, i32 715, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @strcat, ptr @.str.4, ptr @.str.1, i32 751, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gnutls_pkcs12_bag_init, ptr @.str.13, ptr @.str.1, i32 607, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gnutls_pkcs12_bag_init, ptr @.str.3, ptr @.str.1, i32 607, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @pvalloc, ptr @.str, ptr @.str.1, i32 221, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @pvalloc, ptr @.str.6, ptr @.str.1, i32 221, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnwmRKSt9nothrow_t, ptr @.str, ptr @.str.1, i32 541, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnwmRKSt9nothrow_t, ptr @.str.6, ptr @.str.1, i32 541, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @SyGetmem, ptr @.str, ptr @.str.1, i32 817, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @SyGetmem, ptr @.str.6, ptr @.str.1, i32 817, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @nhalloc, ptr @.str, ptr @.str.1, i32 95, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @nhalloc, ptr @.str.3, ptr @.str.1, i32 95, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @pthread_getspecific, ptr @.str, ptr @.str.1, i32 113, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @pthread_getspecific, ptr @.str.3, ptr @.str.1, i32 113, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @tmpnam, ptr @.str, ptr @.str.1, i32 401, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @tmpnam, ptr @.str.3, ptr @.str.1, i32 401, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @saferealloc, ptr @.str.9, ptr @.str.1, i32 443, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @saferealloc, ptr @.str.11, ptr @.str.1, i32 443, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @tempnam, ptr @.str, ptr @.str.1, i32 173, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @tempnam, ptr @.str.3, ptr @.str.1, i32 173, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @memmove, ptr @.str.5, ptr @.str.1, i32 682, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @__strcpy_chk, ptr @.str.10, ptr @.str.1, i32 727, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @wmemset, ptr @.str.12, ptr @.str.1, i32 721, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @llvm_memcpy_p0i8_p0i8_i64, ptr @.str.5, ptr @.str.1, i32 649, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @stpcpy, ptr @.str.10, ptr @.str.1, i32 745, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @__cxa_allocate_exception, ptr @.str, ptr @.str.1, i32 197, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @__cxa_allocate_exception, ptr @.str.6, ptr @.str.1, i32 197, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @memalign, ptr @.str, ptr @.str.1, i32 209, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @memalign, ptr @.str.8, ptr @.str.1, i32 209, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnamSt11align_val_t, ptr @.str, ptr @.str.1, i32 576, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnamSt11align_val_t, ptr @.str.6, ptr @.str.1, i32 576, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnwjRKSt9nothrow_t, ptr @.str, ptr @.str.1, i32 485, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnwjRKSt9nothrow_t, ptr @.str.6, ptr @.str.1, i32 485, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @__strncat_chk, ptr @.str.4, ptr @.str.1, i32 781, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnwjSt11align_val_tRKSt9nothrow_t, ptr @.str, ptr @.str.1, i32 499, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnwjSt11align_val_tRKSt9nothrow_t, ptr @.str.6, ptr @.str.1, i32 499, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @sbrk, ptr @.str, ptr @.str.1, i32 353, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @sbrk, ptr @.str.3, ptr @.str.1, i32 353, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnamRKSt9nothrow_t, ptr @.str, ptr @.str.1, i32 569, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnamRKSt9nothrow_t, ptr @.str.6, ptr @.str.1, i32 569, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @mmap, ptr @.str, ptr @.str.1, i32 329, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @mmap, ptr @.str.8, ptr @.str.1, i32 329, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @lalloc_clear, ptr @.str, ptr @.str.1, i32 89, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @lalloc_clear, ptr @.str.6, ptr @.str.1, i32 89, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @setmntent, ptr @.str, ptr @.str.1, i32 149, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @setmntent, ptr @.str.3, ptr @.str.1, i32 149, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @getpass, ptr @.str, ptr @.str.1, i32 287, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @getpass, ptr @.str.3, ptr @.str.1, i32 287, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @llvm_memmove_p0_p0_i64, ptr @.str.5, ptr @.str.1, i32 670, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @getcwd, ptr @.str.9, ptr @.str.1, i32 413, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @getcwd, ptr @.str.3, ptr @.str.1, i32 413, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @calloc, ptr @.str, ptr @.str.1, i32 59, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @calloc, ptr @.str.2, ptr @.str.1, i32 59, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZNSt5arrayIPK1ALm2EE4backEv, ptr @.str.14, ptr @.str.1, i32 809, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @signal, ptr @.str, ptr @.str.1, i32 167, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @signal, ptr @.str.3, ptr @.str.1, i32 167, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @__wcsncat_chk, ptr @.str.4, ptr @.str.1, i32 787, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnwmSt11align_val_tRKSt9nothrow_t, ptr @.str, ptr @.str.1, i32 555, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnwmSt11align_val_tRKSt9nothrow_t, ptr @.str.6, ptr @.str.1, i32 555, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @__memcpy_chk, ptr @.str.5, ptr @.str.1, i32 679, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @tmpvoid, ptr @.str, ptr @.str.1, i32 179, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @tmpvoid, ptr @.str.3, ptr @.str.1, i32 179, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @XSetLocaleModifiers, ptr @.str, ptr @.str.1, i32 233, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @XSetLocaleModifiers, ptr @.str.3, ptr @.str.1, i32 233, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gpg_strerror, ptr @.str, ptr @.str.1, i32 299, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gpg_strerror, ptr @.str.3, ptr @.str.1, i32 299, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @strsignal, ptr @.str, ptr @.str.1, i32 377, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @strsignal, ptr @.str.3, ptr @.str.1, i32 377, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnajSt11align_val_tRKSt9nothrow_t, ptr @.str, ptr @.str.1, i32 527, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnajSt11align_val_tRKSt9nothrow_t, ptr @.str.6, ptr @.str.1, i32 527, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @zmalloc, ptr @.str, ptr @.str.1, i32 65, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @zmalloc, ptr @.str.6, ptr @.str.1, i32 65, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnwmSt11align_val_t, ptr @.str, ptr @.str.1, i32 548, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnwmSt11align_val_t, ptr @.str.6, ptr @.str.1, i32 548, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnamSt11align_val_tRKSt9nothrow_t, ptr @.str, ptr @.str.1, i32 583, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnamSt11align_val_tRKSt9nothrow_t, ptr @.str.6, ptr @.str.1, i32 583, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @llvm_memcpy_p0_p0_i64, ptr @.str.5, ptr @.str.1, i32 652, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @llvm_memmove, ptr @.str.5, ptr @.str.1, i32 664, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @llvm_memmove_p0_p0_i32, ptr @.str.5, ptr @.str.1, i32 676, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnwjSt11align_val_t, ptr @.str, ptr @.str.1, i32 492, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_ZnwjSt11align_val_t, ptr @.str.6, ptr @.str.1, i32 492, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @initscr, ptr @.str, ptr @.str.1, i32 317, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @initscr, ptr @.str.3, ptr @.str.1, i32 317, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @ttyname, ptr @.str, ptr @.str.1, i32 407, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @ttyname, ptr @.str.3, ptr @.str.1, i32 407, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @newwin, ptr @.str, ptr @.str.1, i32 335, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @newwin, ptr @.str.3, ptr @.str.1, i32 335, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @scandir, ptr @.str.15, ptr @.str.1, i32 637, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @scandir, ptr @.str.3, ptr @.str.1, i32 637, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @bcopy, ptr @.str.5, ptr @.str.1, i32 688, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @llvm_memmove_p0i8_p0i8_i32, ptr @.str.5, ptr @.str.1, i32 673, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @strncat, ptr @.str.4, ptr @.str.1, i32 770, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @safe_calloc, ptr @.str, ptr @.str.1, i32 125, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @safe_calloc, ptr @.str.2, ptr @.str.1, i32 125, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_Znwj, ptr @.str, ptr @.str.1, i32 478, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_Znwj, ptr @.str.6, ptr @.str.1, i32 478, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @popen, ptr @.str, ptr @.str.1, i32 107, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @popen, ptr @.str.3, ptr @.str.1, i32 107, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gcry_cipher_algo_name, ptr @.str, ptr @.str.1, i32 269, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gcry_cipher_algo_name, ptr @.str.3, ptr @.str.1, i32 269, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @inet_ntoa, ptr @.str, ptr @.str.1, i32 311, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @inet_ntoa, ptr @.str.3, ptr @.str.1, i32 311, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_Znwm, ptr @.str, ptr @.str.1, i32 534, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_Znwm, ptr @.str.6, ptr @.str.1, i32 534, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @wcscat, ptr @.str.4, ptr @.str.1, i32 757, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @tmpvoid64, ptr @.str, ptr @.str.1, i32 53, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @tmpvoid64, ptr @.str.3, ptr @.str.1, i32 53, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @opendir, ptr @.str, ptr @.str.1, i32 347, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @opendir, ptr @.str.3, ptr @.str.1, i32 347, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @dlerror, ptr @.str, ptr @.str.1, i32 251, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @dlerror, ptr @.str.3, ptr @.str.1, i32 251, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @safemalloc, ptr @.str, ptr @.str.1, i32 143, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @safemalloc, ptr @.str.6, ptr @.str.1, i32 143, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @asprintf, ptr @.str.13, ptr @.str.1, i32 589, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @asprintf, ptr @.str.3, ptr @.str.1, i32 589, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @vasprintf, ptr @.str.13, ptr @.str.1, i32 595, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @vasprintf, ptr @.str.3, ptr @.str.1, i32 595, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @lalloc, ptr @.str, ptr @.str.1, i32 83, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @lalloc, ptr @.str.6, ptr @.str.1, i32 83, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gnutls_pkcs12_init, ptr @.str.13, ptr @.str.1, i32 613, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gnutls_pkcs12_init, ptr @.str.3, ptr @.str.1, i32 613, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gnutls_x509_crt_init, ptr @.str.13, ptr @.str.1, i32 619, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gnutls_x509_crt_init, ptr @.str.3, ptr @.str.1, i32 619, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @db_create, ptr @.str.13, ptr @.str.1, i32 601, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @db_create, ptr @.str.3, ptr @.str.1, i32 601, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @llvm_memset_p0i8_i64, ptr @.str.12, ptr @.str.1, i32 709, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @readdir, ptr @.str, ptr @.str.1, i32 119, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @readdir, ptr @.str.3, ptr @.str.1, i32 119, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @llvm_memset_p0_i64, ptr @.str.12, ptr @.str.1, i32 712, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @nl_langinfo, ptr @.str, ptr @.str.1, i32 341, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @nl_langinfo, ptr @.str.3, ptr @.str.1, i32 341, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @realloc, ptr @.str.9, ptr @.str.1, i32 425, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @realloc, ptr @.str.8, ptr @.str.1, i32 425, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @xrealloc, ptr @.str.9, ptr @.str.1, i32 471, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @xrealloc, ptr @.str.8, ptr @.str.1, i32 471, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @posix_memalign, ptr @.str.13, ptr @.str.1, i32 631, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @posix_memalign, ptr @.str.16, ptr @.str.1, i32 631, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @dlopen, ptr @.str, ptr @.str.1, i32 257, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @dlopen, ptr @.str.3, ptr @.str.1, i32 257, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @tgetstr, ptr @.str, ptr @.str.1, i32 389, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @tgetstr, ptr @.str.3, ptr @.str.1, i32 389, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @textdomain, ptr @.str, ptr @.str.1, i32 383, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @textdomain, ptr @.str.3, ptr @.str.1, i32 383, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @iconv_open, ptr @.str, ptr @.str.1, i32 77, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @iconv_open, ptr @.str.3, ptr @.str.1, i32 77, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @strerror, ptr @.str, ptr @.str.1, i32 371, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @strerror, ptr @.str.3, ptr @.str.1, i32 371, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @strcpy, ptr @.str.10, ptr @.str.1, i32 764, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @llvm_memset_p0i8_i32, ptr @.str.12, ptr @.str.1, i32 703, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @llvm_memset_p0_i32, ptr @.str.12, ptr @.str.1, i32 706, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gnutls_x509_privkey_init, ptr @.str.13, ptr @.str.1, i32 625, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gnutls_x509_privkey_init, ptr @.str.3, ptr @.str.1, i32 625, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @tigetstr, ptr @.str, ptr @.str.1, i32 395, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @tigetstr, ptr @.str.3, ptr @.str.1, i32 395, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gzerror, ptr @.str, ptr @.str.1, i32 305, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gzerror, ptr @.str.3, ptr @.str.1, i32 305, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @shmat, ptr @.str, ptr @.str.1, i32 155, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @shmat, ptr @.str.3, ptr @.str.1, i32 155, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @fopen, ptr @.str, ptr @.str.1, i32 29, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @fopen, ptr @.str.3, ptr @.str.1, i32 29, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gai_strerror, ptr @.str, ptr @.str.1, i32 263, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gai_strerror, ptr @.str.3, ptr @.str.1, i32 263, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_Znam, ptr @.str, ptr @.str.1, i32 562, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @_Znam, ptr @.str.6, ptr @.str.1, i32 562, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @iconv, ptr @.str.5, ptr @.str.1, i32 803, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @llvm_memset, ptr @.str.12, ptr @.str.1, i32 700, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gzdopen, ptr @.str, ptr @.str.1, i32 71, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gzdopen, ptr @.str.3, ptr @.str.1, i32 71, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @strncpy, ptr @.str.5, ptr @.str.1, i32 792, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @valloc, ptr @.str, ptr @.str.1, i32 215, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @valloc, ptr @.str.6, ptr @.str.1, i32 215, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gnutls_strerror, ptr @.str, ptr @.str.1, i32 293, ptr null }, { ptr, ptr, ptr, i32, ptr } { ptr @gnutls_strerror, ptr @.str.3, ptr @.str.1, i32 293, ptr null }], section "llvm.metadata"
|
|
53
53
|
|
|
54
54
|
; Function Attrs: noinline nounwind optnone allocsize(0) uwtable
|
|
55
55
|
define ptr @malloc(i64 noundef %0) #0 {
|
|
@@ -2381,4 +2381,4 @@ attributes #4 = { noinline nounwind optnone willreturn memory(read) uwtable "fra
|
|
|
2381
2381
|
!1 = !{i32 8, !"PIC Level", i32 2}
|
|
2382
2382
|
!2 = !{i32 7, !"uwtable", i32 2}
|
|
2383
2383
|
!3 = !{i32 7, !"frame-pointer", i32 1}
|
|
2384
|
-
!4 = !{!"clang version
|
|
2384
|
+
!4 = !{!"clang version 18.1.0rc (https://github.com/bjjwwang/LLVM-compile b16513e900b23646860d7078d919d3ed7d8b7329)"}
|
|
Binary file
|
package/SVF-linux-x86_64/bin/ae
CHANGED
|
Binary file
|
package/SVF-linux-x86_64/bin/cfl
CHANGED
|
Binary file
|
package/SVF-linux-x86_64/bin/dvf
CHANGED
|
Binary file
|
package/SVF-linux-x86_64/bin/mta
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/SVF-linux-x86_64/bin/wpa
CHANGED
|
Binary file
|
|
@@ -74,6 +74,7 @@ class SVFBasicBlock : public GenericBasicBlockNodeTy
|
|
|
74
74
|
friend class FunObjVar;
|
|
75
75
|
friend class ICFGBuilder;
|
|
76
76
|
friend class ICFG;
|
|
77
|
+
friend class GraphDBClient;
|
|
77
78
|
|
|
78
79
|
public:
|
|
79
80
|
typedef std::vector<const ICFGNode*>::const_iterator const_iterator;
|
|
@@ -98,6 +99,17 @@ protected:
|
|
|
98
99
|
|
|
99
100
|
/// @}
|
|
100
101
|
|
|
102
|
+
// Getters of predecessor and successor basic blocks, used for writing bb to DB
|
|
103
|
+
const std::vector<const SVFBasicBlock*> getSuccBBs() const
|
|
104
|
+
{
|
|
105
|
+
return succBBs;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
const std::vector<const SVFBasicBlock*> getPredBBs() const
|
|
109
|
+
{
|
|
110
|
+
return predBBs;
|
|
111
|
+
}
|
|
112
|
+
|
|
101
113
|
public:
|
|
102
114
|
/// Constructor without name
|
|
103
115
|
SVFBasicBlock(NodeID id, const FunObjVar* f): GenericBasicBlockNodeTy(id, BasicBlockKd), fun(f)
|
|
@@ -289,24 +301,26 @@ public:
|
|
|
289
301
|
typedef GenericGraph<SVFBasicBlock, BasicBlockEdge> GenericBasicBlockGraphTy;
|
|
290
302
|
class BasicBlockGraph: public GenericBasicBlockGraphTy
|
|
291
303
|
{
|
|
292
|
-
private:
|
|
293
|
-
NodeID id{0};
|
|
294
304
|
public:
|
|
305
|
+
NodeID id{0};
|
|
295
306
|
/// Constructor
|
|
296
|
-
BasicBlockGraph()
|
|
307
|
+
BasicBlockGraph(): GenericBasicBlockGraphTy()
|
|
297
308
|
{
|
|
298
309
|
|
|
299
310
|
}
|
|
300
311
|
|
|
312
|
+
|
|
301
313
|
SVFBasicBlock* addBasicBlock(const std::string& bbname)
|
|
302
314
|
{
|
|
303
315
|
id++;
|
|
304
316
|
SVFBasicBlock* bb = new SVFBasicBlock(id, nullptr);
|
|
305
|
-
addGNode(id, bb);
|
|
306
317
|
bb->setName(bbname);
|
|
318
|
+
addBasicBlock(bb);
|
|
307
319
|
return bb;
|
|
308
320
|
}
|
|
309
321
|
|
|
322
|
+
void addBasicBlock(SVFBasicBlock* bb);
|
|
323
|
+
|
|
310
324
|
};
|
|
311
325
|
}
|
|
312
326
|
|
|
@@ -105,6 +105,7 @@ private:
|
|
|
105
105
|
typedef GenericNode<CHNode, CHEdge> GenericCHNodeTy;
|
|
106
106
|
class CHNode: public GenericCHNodeTy
|
|
107
107
|
{
|
|
108
|
+
friend class GraphDBClient;
|
|
108
109
|
|
|
109
110
|
public:
|
|
110
111
|
typedef enum
|
|
@@ -222,6 +223,16 @@ private:
|
|
|
222
223
|
* virtualFunctionVectors = {{Af1, Af2, ...}, {Bg1, Bg2, ...}}
|
|
223
224
|
*/
|
|
224
225
|
std::vector<FuncVector> virtualFunctionVectors;
|
|
226
|
+
|
|
227
|
+
protected:
|
|
228
|
+
inline size_t getFlags() const
|
|
229
|
+
{
|
|
230
|
+
return flags;
|
|
231
|
+
}
|
|
232
|
+
inline void setFlags(size_t f)
|
|
233
|
+
{
|
|
234
|
+
flags = f;
|
|
235
|
+
}
|
|
225
236
|
};
|
|
226
237
|
|
|
227
238
|
/// class hierarchy graph
|
|
@@ -229,6 +240,7 @@ typedef GenericGraph<CHNode, CHEdge> GenericCHGraphTy;
|
|
|
229
240
|
class CHGraph: public CommonCHGraph, public GenericCHGraphTy
|
|
230
241
|
{
|
|
231
242
|
friend class CHGBuilder;
|
|
243
|
+
friend class GraphDBClient;
|
|
232
244
|
|
|
233
245
|
public:
|
|
234
246
|
typedef Set<const CHNode*> CHNodeSetTy;
|
|
@@ -224,6 +224,7 @@ public:
|
|
|
224
224
|
{
|
|
225
225
|
return node->getNodeKind() == CallNodeKd;
|
|
226
226
|
}
|
|
227
|
+
|
|
227
228
|
//@}
|
|
228
229
|
};
|
|
229
230
|
|
|
@@ -233,6 +234,8 @@ public:
|
|
|
233
234
|
typedef GenericGraph<CallGraphNode, CallGraphEdge> GenericPTACallGraphTy;
|
|
234
235
|
class CallGraph : public GenericPTACallGraphTy
|
|
235
236
|
{
|
|
237
|
+
friend class GraphDBClient;
|
|
238
|
+
|
|
236
239
|
|
|
237
240
|
public:
|
|
238
241
|
typedef CallGraphEdge::CallGraphEdgeSet CallGraphEdgeSet;
|
|
@@ -281,13 +284,14 @@ protected:
|
|
|
281
284
|
if(it == csToIdMap.end())
|
|
282
285
|
{
|
|
283
286
|
CallSiteID id = totalCallSiteNum++;
|
|
284
|
-
|
|
285
|
-
idToCSMap.insert(std::make_pair(id, newCS));
|
|
287
|
+
addCallSite(cs,callee,id, newCS);
|
|
286
288
|
return id;
|
|
287
289
|
}
|
|
288
290
|
return it->second;
|
|
289
291
|
}
|
|
290
292
|
|
|
293
|
+
CallSiteID addCallSite(const CallICFGNode* cs, const FunObjVar* callee, const CallSiteID csid, std::pair<const CallICFGNode*, const FunObjVar*> newCS);
|
|
294
|
+
|
|
291
295
|
/// Add call graph edge
|
|
292
296
|
inline void addEdge(CallGraphEdge* edge)
|
|
293
297
|
{
|
|
@@ -295,6 +299,14 @@ protected:
|
|
|
295
299
|
edge->getSrcNode()->addOutgoingEdge(edge);
|
|
296
300
|
}
|
|
297
301
|
|
|
302
|
+
/// add direct call graph edge from database [only used this function when loading cgEdges from db results]
|
|
303
|
+
void addDirectCallGraphEdge(CallGraphEdge* cgEdge);
|
|
304
|
+
|
|
305
|
+
/// add call graph node from database [only used this function when loading cgNodes from db results]
|
|
306
|
+
void addCallGraphNode(CallGraphNode* cgNode);
|
|
307
|
+
|
|
308
|
+
/// Whether we have already created this call graph edge
|
|
309
|
+
CallGraphEdge* hasGraphEdge(CallGraphEdge* cgEdge) const;
|
|
298
310
|
public:
|
|
299
311
|
/// Constructor
|
|
300
312
|
CallGraph(CGEK k = NormCallGraph);
|
|
@@ -34,6 +34,7 @@
|
|
|
34
34
|
#include "Graphs/ICFGEdge.h"
|
|
35
35
|
#include "Util/WorkList.h"
|
|
36
36
|
#include "MemoryModel/SVFLoop.h"
|
|
37
|
+
#include "SVFIR/SVFVariables.h"
|
|
37
38
|
|
|
38
39
|
namespace SVF
|
|
39
40
|
{
|
|
@@ -48,6 +49,7 @@ class ICFG : public GenericICFGTy
|
|
|
48
49
|
{
|
|
49
50
|
friend class ICFGBuilder;
|
|
50
51
|
friend class ICFGSimplification;
|
|
52
|
+
friend class GraphDBClient;
|
|
51
53
|
|
|
52
54
|
public:
|
|
53
55
|
|
|
@@ -198,23 +200,37 @@ protected:
|
|
|
198
200
|
virtual inline FunEntryICFGNode* addFunEntryICFGNode(const FunObjVar* svfFunc)
|
|
199
201
|
{
|
|
200
202
|
FunEntryICFGNode* sNode = new FunEntryICFGNode(totalICFGNode++,svfFunc);
|
|
201
|
-
|
|
202
|
-
return FunToFunEntryNodeMap[svfFunc] = sNode;
|
|
203
|
+
return addFunEntryICFGNode(sNode);
|
|
203
204
|
}
|
|
204
205
|
|
|
206
|
+
virtual inline FunEntryICFGNode* addFunEntryICFGNode(FunEntryICFGNode* funEntryICFGNode)
|
|
207
|
+
{
|
|
208
|
+
addICFGNode(funEntryICFGNode);
|
|
209
|
+
return FunToFunEntryNodeMap[funEntryICFGNode->getFun()] = funEntryICFGNode;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
virtual void addGlobalICFGNode(GlobalICFGNode* globalICFGNode);
|
|
213
|
+
|
|
205
214
|
virtual inline FunExitICFGNode* addFunExitICFGNode(const FunObjVar* svfFunc)
|
|
206
215
|
{
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
216
|
+
const SVFBasicBlock* bb = nullptr;
|
|
217
|
+
if (svfFunc->begin() != svfFunc->end())
|
|
218
|
+
{
|
|
219
|
+
bb = svfFunc->getExitBB();
|
|
220
|
+
}
|
|
221
|
+
FunExitICFGNode* sNode = new FunExitICFGNode(totalICFGNode++, svfFunc, bb);
|
|
222
|
+
return addFunExitICFGNode(sNode);
|
|
210
223
|
}
|
|
211
224
|
|
|
212
|
-
|
|
213
|
-
virtual inline void addICFGNode(ICFGNode* node)
|
|
225
|
+
virtual inline FunExitICFGNode* addFunExitICFGNode(FunExitICFGNode* funExitICFGNode)
|
|
214
226
|
{
|
|
215
|
-
|
|
227
|
+
addICFGNode(funExitICFGNode);
|
|
228
|
+
return FunToFunExitNodeMap[funExitICFGNode->getFun()] = funExitICFGNode;
|
|
216
229
|
}
|
|
217
230
|
|
|
231
|
+
/// Add a ICFG node
|
|
232
|
+
virtual void addICFGNode(ICFGNode* node);
|
|
233
|
+
|
|
218
234
|
public:
|
|
219
235
|
/// Get a basic block ICFGNode
|
|
220
236
|
/// TODO:: need to fix the assertions
|
|
@@ -140,8 +140,6 @@ public:
|
|
|
140
140
|
return isICFGNodeKinds(node->getNodeKind());
|
|
141
141
|
}
|
|
142
142
|
|
|
143
|
-
|
|
144
|
-
|
|
145
143
|
protected:
|
|
146
144
|
const FunObjVar* fun;
|
|
147
145
|
const SVFBasicBlock* bb;
|
|
@@ -192,6 +190,8 @@ public:
|
|
|
192
190
|
*/
|
|
193
191
|
class IntraICFGNode : public ICFGNode
|
|
194
192
|
{
|
|
193
|
+
friend class GraphDBClient;
|
|
194
|
+
|
|
195
195
|
private:
|
|
196
196
|
bool isRet;
|
|
197
197
|
|
|
@@ -270,6 +270,7 @@ public:
|
|
|
270
270
|
*/
|
|
271
271
|
class FunEntryICFGNode : public InterICFGNode
|
|
272
272
|
{
|
|
273
|
+
friend class GraphDBClient;
|
|
273
274
|
|
|
274
275
|
public:
|
|
275
276
|
typedef std::vector<const SVFVar *> FormalParmNodeVec;
|
|
@@ -335,12 +336,18 @@ public:
|
|
|
335
336
|
*/
|
|
336
337
|
class FunExitICFGNode : public InterICFGNode
|
|
337
338
|
{
|
|
339
|
+
friend class GraphDBClient;
|
|
338
340
|
|
|
339
341
|
private:
|
|
340
342
|
const SVFVar *formalRet;
|
|
341
343
|
|
|
342
344
|
public:
|
|
343
|
-
FunExitICFGNode(NodeID id, const FunObjVar* f)
|
|
345
|
+
FunExitICFGNode(NodeID id, const FunObjVar* f, const SVFBasicBlock* b)
|
|
346
|
+
: InterICFGNode(id, FunExitBlock), formalRet(nullptr)
|
|
347
|
+
{
|
|
348
|
+
this->fun = f;
|
|
349
|
+
this->bb = b;
|
|
350
|
+
}
|
|
344
351
|
|
|
345
352
|
/// Return function
|
|
346
353
|
inline const FunObjVar* getFun() const override
|
|
@@ -398,6 +405,7 @@ public:
|
|
|
398
405
|
*/
|
|
399
406
|
class CallICFGNode : public InterICFGNode
|
|
400
407
|
{
|
|
408
|
+
friend class GraphDBClient;
|
|
401
409
|
|
|
402
410
|
public:
|
|
403
411
|
typedef std::vector<const ValVar *> ActualParmNodeVec;
|
|
@@ -411,6 +419,8 @@ protected:
|
|
|
411
419
|
SVFVar* vtabPtr; /// virtual table pointer
|
|
412
420
|
s32_t virtualFunIdx; /// virtual function index of the virtual table(s) at a virtual call
|
|
413
421
|
std::string funNameOfVcall; /// the function name of this virtual call
|
|
422
|
+
const SVFVar* indFunPtr;
|
|
423
|
+
|
|
414
424
|
|
|
415
425
|
public:
|
|
416
426
|
CallICFGNode(NodeID id, const SVFBasicBlock* b, const SVFType* ty,
|
|
@@ -561,6 +571,18 @@ public:
|
|
|
561
571
|
{
|
|
562
572
|
return "CallICFGNode: " + ICFGNode::getSourceLoc();
|
|
563
573
|
}
|
|
574
|
+
|
|
575
|
+
inline void setIndFunPtr(const SVFVar* indFun)
|
|
576
|
+
{
|
|
577
|
+
assert(isIndirectCall() && "not a indirect call?");
|
|
578
|
+
indFunPtr = indFun;
|
|
579
|
+
}
|
|
580
|
+
|
|
581
|
+
inline const SVFVar* getIndFunPtr() const
|
|
582
|
+
{
|
|
583
|
+
assert(isIndirectCall() && "not a indirect call?");
|
|
584
|
+
return indFunPtr;
|
|
585
|
+
}
|
|
564
586
|
};
|
|
565
587
|
|
|
566
588
|
|
|
@@ -569,6 +591,14 @@ public:
|
|
|
569
591
|
*/
|
|
570
592
|
class RetICFGNode : public InterICFGNode
|
|
571
593
|
{
|
|
594
|
+
friend class GraphDBClient;
|
|
595
|
+
|
|
596
|
+
protected:
|
|
597
|
+
/// Add call block node from database for the new RetICFGNode [only used this function when loading from db results]
|
|
598
|
+
inline void setCallBlockNode(const CallICFGNode* cb)
|
|
599
|
+
{
|
|
600
|
+
callBlockNode = cb;
|
|
601
|
+
}
|
|
572
602
|
|
|
573
603
|
private:
|
|
574
604
|
const SVFVar *actualRet;
|
|
@@ -578,9 +608,12 @@ public:
|
|
|
578
608
|
RetICFGNode(NodeID id, CallICFGNode* cb) :
|
|
579
609
|
InterICFGNode(id, FunRetBlock), actualRet(nullptr), callBlockNode(cb)
|
|
580
610
|
{
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
611
|
+
if (nullptr != cb)
|
|
612
|
+
{
|
|
613
|
+
fun = cb->getFun();
|
|
614
|
+
bb = cb->getBB();
|
|
615
|
+
type = cb->getType();
|
|
616
|
+
}
|
|
584
617
|
}
|
|
585
618
|
|
|
586
619
|
inline const CallICFGNode* getCallICFGNode() const
|
|
@@ -52,6 +52,7 @@ class IRGraph : public GenericGraph<SVFVar, SVFStmt>
|
|
|
52
52
|
{
|
|
53
53
|
friend class SVFIRBuilder;
|
|
54
54
|
friend class SymbolTableBuilder;
|
|
55
|
+
friend class GraphDBClient;
|
|
55
56
|
|
|
56
57
|
public:
|
|
57
58
|
|
|
@@ -129,6 +130,7 @@ protected:
|
|
|
129
130
|
/// blocks, thus flags are needed to distinguish them
|
|
130
131
|
SVFStmt* hasLabeledEdge(SVFVar* src, SVFVar* dst, SVFStmt::PEDGEK kind,
|
|
131
132
|
const ICFGNode* cs);
|
|
133
|
+
SVFStmt* hasEdge(SVFStmt* edge, SVFStmt::PEDGEK kind);
|
|
132
134
|
/// Return MultiOpndStmt since it has more than one operands (we use operand
|
|
133
135
|
/// 2 here to make the flag)
|
|
134
136
|
SVFStmt* hasLabeledEdge(SVFVar* src, SVFVar* op1, SVFStmt::PEDGEK kind,
|
|
@@ -270,6 +272,15 @@ public:
|
|
|
270
272
|
return svfTypes;
|
|
271
273
|
}
|
|
272
274
|
|
|
275
|
+
inline const SVFType* getSVFType(u32_t id) const
|
|
276
|
+
{
|
|
277
|
+
for(const SVFType* type : svfTypes)
|
|
278
|
+
{
|
|
279
|
+
if(type->getId() == id)
|
|
280
|
+
return type;
|
|
281
|
+
}
|
|
282
|
+
return nullptr;
|
|
283
|
+
}
|
|
273
284
|
inline const Set<const StInfo*>& getStInfos() const
|
|
274
285
|
{
|
|
275
286
|
return stInfos;
|
|
@@ -360,6 +371,7 @@ public:
|
|
|
360
371
|
|
|
361
372
|
inline void addStInfo(StInfo* stInfo)
|
|
362
373
|
{
|
|
374
|
+
stInfo->setStinfoId(stInfos.size());
|
|
363
375
|
stInfos.insert(stInfo);
|
|
364
376
|
}
|
|
365
377
|
|
|
@@ -51,7 +51,7 @@ class SVFVar;
|
|
|
51
51
|
*/
|
|
52
52
|
class AccessPath
|
|
53
53
|
{
|
|
54
|
-
|
|
54
|
+
friend class GraphDBClient;
|
|
55
55
|
public:
|
|
56
56
|
enum LSRelation
|
|
57
57
|
{
|
|
@@ -161,6 +161,12 @@ public:
|
|
|
161
161
|
/// Dump location set
|
|
162
162
|
std::string dump() const;
|
|
163
163
|
|
|
164
|
+
protected:
|
|
165
|
+
inline void addIdxOperandPair(std::pair<const SVFVar*, const SVFType*> pair)
|
|
166
|
+
{
|
|
167
|
+
idxOperandPairs.push_back(pair);
|
|
168
|
+
}
|
|
169
|
+
|
|
164
170
|
private:
|
|
165
171
|
|
|
166
172
|
/// Check relations of two location sets
|