| // Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| assignedInBody_body(bool b) { |
| late int v; |
| while (true) { |
| if (b) { |
| v = 0; |
| } else { |
| v; |
| } |
| v; |
| } |
| v; |
| } |
| |
| assignedInBody_condition() { |
| bool firstTime = true; |
| late int v; |
| while (firstTime || v > 0) { |
| firstTime = false; |
| v = 5; |
| } |
| v; |
| } |
| |
| condition() { |
| late int v; |
| while ((v = 0) >= 0) { |
| v; |
| } |
| v; |
| } |
| |
| condition_notTrue(bool c) { |
| late int v1, v2; |
| while (c) { |
| v1 = 0; |
| v2 = 0; |
| v1; |
| } |
| v1; |
| v2; |
| } |
| |
| true_break_afterAssignment(bool c) { |
| late int v1, v2; |
| while (true) { |
| v1 = 0; |
| v1; |
| if (c) break; |
| v1; |
| v2 = 0; |
| v2; |
| } |
| v1; |
| v2; |
| } |
| |
| true_break_beforeAssignment(bool c) { |
| late int v1, v2; |
| while (true) { |
| if (c) break; |
| v1 = 0; |
| v2 = 0; |
| v2; |
| } |
| v1; |
| v2; |
| } |
| |
| true_break_if(bool c) { |
| late int v; |
| while (true) { |
| if (c) { |
| v = 0; |
| break; |
| } else { |
| v = 0; |
| break; |
| } |
| v; |
| } |
| v; |
| } |
| |
| true_break_if2(bool c) { |
| late Object v; |
| while (true) { |
| if (c) { |
| break; |
| } else { |
| v = 0; |
| } |
| v; |
| } |
| } |
| |
| true_break_if3(bool c) { |
| late int v1, v2, v3; |
| while (true) { |
| if (c) { |
| v1 = 0; |
| v2 = 0; |
| if (c) break; |
| } else { |
| if (c) break; |
| v1 = 0; |
| v2 = 0; |
| } |
| v1; |
| } |
| v1; |
| v2; |
| /*unassigned*/ v3; |
| } |
| |
| true_breakOuterFromInner(bool c) { |
| late int v1, v2, v3, v4; |
| L1: |
| while (true) { |
| L2: |
| while (true) { |
| v1 = 0; |
| if (c) break L1; |
| v2 = 0; |
| v3 = 0; |
| if (c) break L2; |
| } |
| v2; |
| } |
| v1; |
| v2; |
| v3; |
| /*unassigned*/ v4; |
| } |
| |
| true_continue(bool c) { |
| late int v; |
| while (true) { |
| if (c) continue; |
| v = 0; |
| } |
| v; |
| } |
| |
| true_noBreak(bool c) { |
| late int v; |
| while (true) { |
| // No assignment, but not break. |
| // So, we don't exit the loop. |
| } |
| /*unassigned*/ v; |
| } |