Mercurial > projects > ldc
comparison gen/llvmhelpers.h @ 1412:3f5ea912149d
Fix #308 by giving finally code emitted by EnclosingTryFinally a different landing pad.
author | Christian Kamm <kamm incasoftware de> |
---|---|
date | Sat, 23 May 2009 00:23:39 +0200 |
parents | 8d501abecd24 |
children | 4f7d50c744ed |
comparison
equal
deleted
inserted
replaced
1411:e57859ca8f1e | 1412:3f5ea912149d |
---|---|
13 virtual void emitCode(IRState* p) = 0; | 13 virtual void emitCode(IRState* p) = 0; |
14 }; | 14 }; |
15 struct EnclosingTryFinally : EnclosingHandler | 15 struct EnclosingTryFinally : EnclosingHandler |
16 { | 16 { |
17 TryFinallyStatement* tf; | 17 TryFinallyStatement* tf; |
18 llvm::BasicBlock* landingPad; | |
18 void emitCode(IRState* p); | 19 void emitCode(IRState* p); |
19 EnclosingTryFinally(TryFinallyStatement* _tf) : tf(_tf) {} | 20 EnclosingTryFinally(TryFinallyStatement* _tf, llvm::BasicBlock* _pad) |
21 : tf(_tf), landingPad(_pad) {} | |
20 }; | 22 }; |
21 struct EnclosingVolatile : EnclosingHandler | 23 struct EnclosingVolatile : EnclosingHandler |
22 { | 24 { |
23 VolatileStatement* v; | 25 VolatileStatement* v; |
24 void emitCode(IRState* p); | 26 void emitCode(IRState* p); |