blob: f30a370db73ffe3d3a2def86d4064389c96f8f94 [file] [log] [blame]
// 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=--optimization-counter-threshold=10 --no-background-compilation
//
// Test that SpeculativeInt64ShiftOp's range is correctly inferred when the RHS
// is a nullable smi.
import 'package:expect/expect.dart';
int getShift(List<String> args) {
return args.length == -1 ? null : 40;
}
void test(List<String> args) {
int x = 1;
if (args.length <= 0) {
int s = getShift(args);
x = x << s;
}
x += 1;
Expect.equals(x, 1099511627777);
}
void main(List<String> args) {
for (int i = 0; i < 100; ++i) {
test(args);
}
}