# Copyright 2021 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("../libc.gni")

llvm_libc_source_set("fenv") {
  functions = [
    "feclearexcept",
    "feenableexcept",
    "feholdexcept",
    "feupdateenv",
  ]
  no_test_functions = [
    "fedisableexcept",
    "fegetenv",
    "fegetexcept",
    "fegetexceptflag",
    "fegetround",
    "feraiseexcept",
    "fesetenv",
    "fesetexcept",
    "fesetexceptflag",
    "fesetround",
    "fetestexcept",
    "fetestexceptflag",
  ]
  functions += no_test_functions

  test_sources = [
    "enabled_exceptions_test.cpp",
    "exception_flags_test.cpp",
    "exception_status_test.cpp",
    "getenv_and_setenv_test.cpp",
    "rounding_mode_test.cpp",
  ]

  test_deps = [ ":FEnvSafeTest" ]

  # TODO(https://fxbug.dev/42053828): GCC's <arm_acle.h> doesn't provide some
  # intrinsics that llvm-libc expects and clang provides.  Remove this after
  # these have been upstreamed into GCC.
  if (is_gcc) {
    include_dirs = [ "." ]
  }
}

libc_test("FEnvSafeTest") {
  dir = "$llvm_libc/test/UnitTest"

  public = [ "FEnvSafeTest.h" ]
  sources = [ "FEnvSafeTest.cpp" ]
}
