From d69c8b87f427df540e5bd132ccc75281b09b1eca Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Tue, 7 Jul 2015 07:43:45 -0700 Subject: Restore the sentance that constraints break and continue. This requires break and continue to target blocks in constructs they are nested in. --- AstSemantics.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/AstSemantics.md b/AstSemantics.md index 363a6bb..e20c033 100644 --- a/AstSemantics.md +++ b/AstSemantics.md @@ -254,9 +254,10 @@ are statements. * `switch`: switch statement with fallthrough Loops (`do_while` and `forever`) may only be entered via fallthrough at the top. -In particular, they may not be entered directly via a `break`, `continue`, or -`switch` destination. This guarantees that all control flow graphs are -well-structured. +In particular, loops may not be entered directly via a `break`, `continue`, or +`switch` destination. Break and continue statements can only target blocks or +loops in which they are nested. These rules guarantee that all control flow +graphs are well-structured. Structured control flow provides simple and size-efficient binary encoding and compilation. Any control flow—even irreducible—can be transformed into structured -- cgit v1.2.3