blob: 3b4eca293ec56b16547c30b23714f6e4c4d9e162 [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.
/// @assertion It is a compile-time error if the unbounded integer value of a
/// double valued integer literal cannot be represented exactly as an IEEE 754
/// double-precision value, assuming that the mantissa is extended with zeros
/// until the precision is sufficiently high to unambiguously specify a single
/// integer value.
/// @description Checks that it is a compile-time error if the unbounded integer
/// value of a double valued integer literal with binary representation of 54 bit
/// length can not be represented exactly as an IEEE 754 double-precision value
/// (the most significant bit is 1 and the low bit is 1).
/// @author ngl@unipro.ru
main() {
double d1 = 0x20000000000001;
// ^^^^^^^^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
// [web] unspecified
double d2 = 0x20000000000003;
// ^^^^^^^^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
// [web] unspecified
double d3 = 0x20000000000005;
// ^^^^^^^^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
// [web] unspecified
double d4 = 0x20000000000007;
// ^^^^^^^^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
// [web] unspecified
}