Mercurial > projects > ldc
comparison dmd/statement.h @ 302:bef811104734 trunk
[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.
author | ChristianK |
---|---|
date | Wed, 25 Jun 2008 20:39:09 +0200 |
parents | df8a7b8d5929 |
children | 3ebc136702dd |
comparison
equal
deleted
inserted
replaced
301:f42a1090e895 | 302:bef811104734 |
---|---|
792 | 792 |
793 void toIR(IRState *irs); | 793 void toIR(IRState *irs); |
794 | 794 |
795 // LLVMDC | 795 // LLVMDC |
796 // non-zero if this is a branch, contains the target | 796 // non-zero if this is a branch, contains the target |
797 Identifier* isBranchToLabel; | 797 LabelDsymbol* isBranchToLabel; |
798 }; | 798 }; |
799 | 799 |
800 struct AsmBlockStatement : CompoundStatement | 800 struct AsmBlockStatement : CompoundStatement |
801 { | 801 { |
802 TryFinallyStatement *enclosingtryfinally; | |
803 | |
802 AsmBlockStatement(Loc loc, Statements *s); | 804 AsmBlockStatement(Loc loc, Statements *s); |
803 Statements *flatten(Scope *sc); | 805 Statements *flatten(Scope *sc); |
804 Statement *syntaxCopy(); | 806 Statement *syntaxCopy(); |
807 Statement *semantic(Scope *sc); | |
805 | 808 |
806 CompoundStatement *isCompoundStatement() { return NULL; } | 809 CompoundStatement *isCompoundStatement() { return NULL; } |
807 AsmBlockStatement *isAsmBlockStatement() { return this; } | 810 AsmBlockStatement *isAsmBlockStatement() { return this; } |
808 | 811 |
809 void toIR(IRState *irs); | 812 void toIR(IRState *irs); |