ClearBlue
SEGSimpleOperandNode.h
1 /*
2  * SEGSimpleOperandNode.h
3  *
4  * Qingkai
5  *
6  * This node is to model simple operand.
7  */
8 
9 #ifndef IR_SEG_SEGSIMPLEOPERANDNODE_H
10 #define IR_SEG_SEGSIMPLEOPERANDNODE_H
11 
12 #include <llvm/IR/BasicBlock.h>
13 #include <llvm/IR/Value.h>
14 
15 #include "IR/SEG/SymbolicExprGraph.h"
16 
17 using namespace llvm;
18 
20 private:
21  SEGSimpleOperandNode(Type *Ty, SymbolicExprGraph *SEG, BasicBlock *BB,
22  bool fromDisk)
23  : SEGOperandNode(SEGOBJK_SimpleOperand, Ty, SEG, BB, fromDisk) {}
24 
25  SEGSimpleOperandNode(Value *Val, Type *Ty, SymbolicExprGraph *SEG,
26  BasicBlock *BB, bool fromDisk)
27  : SEGOperandNode(SEGOBJK_SimpleOperand, Val, Ty, SEG, BB, fromDisk) {}
28 
29  friend class SymbolicExprGraph;
30 
31 public:
33 
34  SEGSimpleOperandNode *copySimpleOperandNode() {
35  return new SEGSimpleOperandNode(getLLVMDbgValue(), getLLVMType(),
36  getParentGraph(), getParentBasicBlock(),
37  false);
38  }
39 
40 public:
41  static bool classof(const SEGObject *N) {
42  return N->getKind() == SEGOBJK_SimpleOperand;
43  }
44 };
45 
46 #endif
SEGOperandNode
Definition: SymbolicExprGraph.h:461
SymbolicExprGraph
Definition: SymbolicExprGraph.h:715
SEGObject
Definition: SymbolicExprGraph.h:78
SEGSimpleOperandNode
Definition: SEGSimpleOperandNode.h:19