11 #ifndef IR_SEG_SEGCALLSITEPSEUDOINPUTNODE_H
12 #define IR_SEG_SEGCALLSITEPSEUDOINPUTNODE_H
14 #include <llvm/IR/BasicBlock.h>
15 #include <llvm/IR/CallSite.h>
16 #include <llvm/IR/Constants.h>
17 #include <llvm/IR/Function.h>
18 #include <llvm/IR/Instructions.h>
19 #include <llvm/IR/Value.h>
20 #include <llvm/Support/FileSystem.h>
21 #include <llvm/Support/Format.h>
22 #include <llvm/Support/raw_ostream.h>
24 #include "CBAccessPath.h"
25 #include "IR/SEG/SymbolicExprGraph.h"
33 Function *Callee =
nullptr;
38 :
SEGOperandNode(SEGOBJK_CallSitePseudoInput, Val, Ty, SEG, BB, fromDisk),
39 LLVMCS(CS), Callee(Callee), index(-1) {
40 access_path.reset(Val);
45 friend class SEGSerializer;
54 CallSite getCallSite()
const {
return LLVMCS; }
56 Function *getCallee()
const {
return Callee; }
58 virtual int64_t getIndex()
const {
return index; }
60 const CBAccessPath &getAccessPath()
const {
return access_path; }
66 return N->getKind() == SEGOBJK_CallSitePseudoInput;