Fix break out of non-nothrow range foreach.

Fixes DMD testcase 'test9068'.
This commit is contained in:
David Nadlinger
2013-01-04 07:56:53 +01:00
parent c3d517e17f
commit 1a3fc9f97f
3 changed files with 29 additions and 4 deletions

View File

@@ -40,8 +40,18 @@ struct IRTargetScope
llvm::BasicBlock* breakTarget;
llvm::BasicBlock* continueTarget;
/// If true, the breakTarget is only considered if it is explicitly
/// specified (via s), and not for unqualified "break;" statements.
bool onlyLabeledBreak;
IRTargetScope();
IRTargetScope(Statement* s, EnclosingHandler* enclosinghandler, llvm::BasicBlock* continueTarget, llvm::BasicBlock* breakTarget);
IRTargetScope(
Statement* s,
EnclosingHandler* enclosinghandler,
llvm::BasicBlock* continueTarget,
llvm::BasicBlock* breakTarget,
bool onlyLabeledBreak = false
);
};
struct FuncGen