9 #ifndef IR_SEG_SEGCALLSITEOUTPUTNODE_H
10 #define IR_SEG_SEGCALLSITEOUTPUTNODE_H
12 #include <llvm/IR/BasicBlock.h>
14 #include "CBAccessPath.h"
15 #include "IR/SEG/SymbolicExprGraph.h"
21 friend class SEGSerializer;
37 virtual Instruction *getLLVMDbgInstruction()
const override;
39 const SEGCallSite *getCallSite()
const {
return SEGCS; }
41 virtual int64_t getIndex()
const = 0;
45 return N->getKind() >= SEGOBJK_CallSiteOutputBegin &&
46 N->getKind() <= SEGOBJK_CallSiteOutputEnd;
53 BasicBlock *BB,
bool fromDisk);
60 friend class SEGSerializer;
65 virtual int64_t getIndex()
const {
72 return N->getKind() == SEGOBJK_CallSiteCommonOutput;
88 Function *Callee =
nullptr;
92 friend class SEGSerializer;
97 virtual int64_t getIndex()
const {
return Index; }
103 Function *getCallee()
const {
return Callee; }
106 static bool classof(
const SEGObject *N) {
107 return N->getKind() == SEGOBJK_CallSitePseudoOutput;