mirror of
https://github.com/dart-lang/sdk
synced 2024-09-16 00:09:49 +00:00
2034061433
Change-Id: I313a57ed7c7ea2ada75065f55a7367376f6bdae5 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/152183 Commit-Queue: Bob Nystrom <rnystrom@google.com> Auto-Submit: Bob Nystrom <rnystrom@google.com> Reviewed-by: Srujan Gaddam <srujzs@google.com>
33 lines
849 B
Dart
33 lines
849 B
Dart
// Copyright (c) 2018, 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.
|
|
|
|
// VMOptions=--no_background_compilation --optimization_counter_threshold=10
|
|
|
|
import "package:expect/expect.dart";
|
|
|
|
// This method forms an infinite, irreducible loop. As long as we
|
|
// don't enter any of the branches, the method terminates. The test
|
|
// is included to ensure an irreducible loop does not break anything
|
|
// in the compiler.
|
|
int bar(int x) {
|
|
switch (x) {
|
|
case_1:
|
|
case 1:
|
|
continue case_2;
|
|
case_2:
|
|
case 2:
|
|
continue case_1;
|
|
}
|
|
return x;
|
|
}
|
|
|
|
main() {
|
|
for (var i = -50; i <= 0; i++) {
|
|
Expect.equals(i, bar(i));
|
|
}
|
|
for (var i = 3; i <= 50; i++) {
|
|
Expect.equals(i, bar(i));
|
|
}
|
|
}
|