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);