Mercurial > projects > ldc
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 |