blob: b252e2e6b0501e8a094b057e541a6c9195130bd4 [file] [log] [blame] [edit]
// Copyright (c) 2019, 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 the optimizer does not fuse constants with different
// representations.
//
// SharedObjects=ffi_test_functions
import "dart:ffi";
import "package:expect/expect.dart";
import "dylib_utils.dart";
main() {
final ffiTestFunctions = dlopenPlatformSpecific("ffi_test_functions");
final intComputation = ffiTestFunctions
.lookupFunction<Int64 Function(Int64, Int8), int Function(int, int)>(
"Regress39044",
);
// The arguments are the same Smi constant, however they are different sizes.
final result = intComputation(
/* dart::kUnboxedInt64 --> int64_t */ 1,
/* dart::kUnboxedInt32 --> truncated to int8_t */ 1,
);
Expect.equals(0, result);
}