dart-sdk/tests/language_2/try_catch5_test.dart
Florian Loitsch bb1b39deaf Migrate test block 159.
Change-Id: I71498e6b3d8c6b11ee53fc78b5b1b72dbe8c9fd8
Reviewed-on: https://dart-review.googlesource.com/12299
Commit-Queue: Florian Loitsch <floitsch@google.com>
Reviewed-by: Jakob Roland Andersen <jakobr@google.com>
2017-10-10 12:05:51 +00:00

39 lines
854 B
Dart

// Copyright (c) 2012, 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.
// Check that our SSA graph does have the try body a predecessor of a
// try/finally.
// VMOptions=--optimization-counter-threshold=10 --no-background-compilation
import "package:expect/expect.dart";
var a;
foo1() {
var b = false;
var entered = false;
while (true) {
if (entered) return b;
b = 8 == a; // This expression should not be GVN'ed.
try {
try {
a = 8;
return false;
} finally {
b = 8 == a;
entered = true;
continue;
}
} finally {
continue;
}
}
}
main() {
for (var i = 0; i < 20; i++) {
a = 0;
Expect.isTrue(foo1());
}
}