// 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

// @dart = 2.9

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);
}
