ClearBlue
SEGCastNode.h
1 /*
2  * SEGCastNode.h
3  *
4  * Qingkai
5  *
6  * This node is to model a cast operation.
7  */
8 
9 #ifndef IR_SEG_SEGCASTNODE_H
10 #define IR_SEG_SEGCASTNODE_H
11 
12 #include <llvm/IR/BasicBlock.h>
13 
14 #include "IR/SEG/SymbolicExprGraph.h"
15 
16 using namespace llvm;
17 
18 class SEGCastNode : public SEGOpcodeNode {
19 private:
20  uint64_t OriginSize;
21  uint64_t TargetSize;
22 
23  SEGCastNode(CodeKind Opcode, Type *Ty, SymbolicExprGraph *SEG, BasicBlock *BB,
24  uint64_t OSz, uint64_t TSz, bool fromDisk);
25 
26  friend class SymbolicExprGraph;
27 
28 public:
29  virtual ~SEGCastNode();
30 
31  virtual void dot(raw_fd_ostream &O) const;
32 
33  uint64_t getOriginSize() const;
34 
35  uint64_t getTargetSize() const;
36 
37 public:
38  static bool classof(const SEGObject *N) {
39  return N->getKind() == SEGOBJK_Cast;
40  }
41 };
42 
43 #endif
SymbolicExprGraph::dot
void dot(const char *FileName) const
Dot this graph to a file with filename.
Definition: SymbolicExprGraph.cpp:881
SEGOpcodeNode::CodeKind
CodeKind
Definition: SymbolicExprGraph.h:522
SEGCastNode
Definition: SEGCastNode.h:18
SymbolicExprGraph
Definition: SymbolicExprGraph.h:708
SEGObject
Definition: SymbolicExprGraph.h:76
SEGOpcodeNode
Definition: SymbolicExprGraph.h:519