comparison gen/llvmhelpers.h @ 356:44daf304421c trunk

[svn r377] The previous check was too strict, it completely disallowed gotos within finally blocks. This reenables them as long as they don't cross a finally boundary.
author ChristianK
date Mon, 14 Jul 2008 12:00:24 +0200
parents 6057fdf797d8
children bfb9d28f045a
comparison
equal deleted inserted replaced
355:d8357f7004ca 356:44daf304421c
15 void DtoAssert(Loc* loc, DValue* msg); 15 void DtoAssert(Loc* loc, DValue* msg);
16 16
17 // return the LabelStatement from the current function with the given identifier or NULL if not found 17 // return the LabelStatement from the current function with the given identifier or NULL if not found
18 LabelStatement* DtoLabelStatement(Identifier* ident); 18 LabelStatement* DtoLabelStatement(Identifier* ident);
19 // emit goto 19 // emit goto
20 void DtoGoto(Loc* loc, Identifier* target, EnclosingHandler* enclosingtryfinally); 20 void DtoGoto(Loc* loc, Identifier* target, EnclosingHandler* enclosingtryfinally, TryFinallyStatement* sourcetf);
21 21
22 // generates IR for finally blocks between the 'start' and 'end' statements 22 // generates IR for finally blocks between the 'start' and 'end' statements
23 // will begin with the finally block belonging to 'start' and does not include 23 // will begin with the finally block belonging to 'start' and does not include
24 // the finally block of 'end' 24 // the finally block of 'end'
25 void DtoEnclosingHandlers(EnclosingHandler* start, EnclosingHandler* end); 25 void DtoEnclosingHandlers(EnclosingHandler* start, EnclosingHandler* end);