comparison gen/irstate.h @ 81:3587401b6eeb trunk

[svn r85] Fixed: if a return statement appeared in the try block of a nested try-finally, only the inner-most finally block would be executed. Changed: Renamed all the LLVM_Dto... helper function to just Dto...
author lindquist
date Thu, 01 Nov 2007 17:27:18 +0100
parents b706170e24a9
children d8dd47ef3973
comparison
equal deleted inserted replaced
80:7299ff502248 81:3587401b6eeb
67 67
68 // represents a finally block 68 // represents a finally block
69 struct IRFinally 69 struct IRFinally
70 { 70 {
71 llvm::BasicBlock* bb; 71 llvm::BasicBlock* bb;
72 bool ret; 72 llvm::BasicBlock* retbb;
73 llvm::Value* retval;
74 73
75 IRFinally(); 74 IRFinally();
76 IRFinally(llvm::BasicBlock* b); 75 IRFinally(llvm::BasicBlock* b, llvm::BasicBlock* rb);
77 }; 76 };
78 77
79 // represents a function 78 // represents a function
80 struct IRFunction 79 struct IRFunction
81 { 80 {
85 TypeFunction* type; 84 TypeFunction* type;
86 85
87 // finally blocks 86 // finally blocks
88 typedef std::vector<IRFinally> FinallyVec; 87 typedef std::vector<IRFinally> FinallyVec;
89 FinallyVec finallys; 88 FinallyVec finallys;
89 llvm::Value* finallyretval;
90 90
91 IRFunction(FuncDeclaration*); 91 IRFunction(FuncDeclaration*);
92 }; 92 };
93 93
94 struct IRBuilderHelper 94 struct IRBuilderHelper