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