[svn r323] Branching out of inline asm works.

Renamed emit_finallyblocks to DtoFinallyBlocks and moved to llvmhelpers.
Added enclosingtryfinally to AsmBlockStatement, so branches out of asm blocks respect finallys.
Refactored some GotoStatement code into DtoGoto.
This commit is contained in:
Christian Kamm
2008-06-25 20:39:09 +02:00
parent 37a74d1975
commit 7b37093cff
7 changed files with 175 additions and 98 deletions

View File

@@ -794,14 +794,17 @@ struct AsmStatement : Statement
// LLVMDC
// non-zero if this is a branch, contains the target
Identifier* isBranchToLabel;
LabelDsymbol* isBranchToLabel;
};
struct AsmBlockStatement : CompoundStatement
{
TryFinallyStatement *enclosingtryfinally;
AsmBlockStatement(Loc loc, Statements *s);
Statements *flatten(Scope *sc);
Statement *syntaxCopy();
Statement *semantic(Scope *sc);
CompoundStatement *isCompoundStatement() { return NULL; }
AsmBlockStatement *isAsmBlockStatement() { return this; }