13e519524SHoward Hinnant// -*- C++ -*- 2eb8650a7SLouis Dionne//===----------------------------------------------------------------------===// 33e519524SHoward Hinnant// 457b08b09SChandler Carruth// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 557b08b09SChandler Carruth// See https://llvm.org/LICENSE.txt for license information. 657b08b09SChandler Carruth// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 73e519524SHoward Hinnant// 83e519524SHoward Hinnant//===----------------------------------------------------------------------===// 93e519524SHoward Hinnant 103e519524SHoward Hinnant#ifndef _LIBCPP_CFENV 113e519524SHoward Hinnant#define _LIBCPP_CFENV 123e519524SHoward Hinnant 133e519524SHoward Hinnant/* 143e519524SHoward Hinnant cfenv synopsis 153e519524SHoward Hinnant 163e519524SHoward HinnantThis entire header is C99 / C++0X 173e519524SHoward Hinnant 183e519524SHoward HinnantMacros: 193e519524SHoward Hinnant 203e519524SHoward Hinnant FE_DIVBYZERO 213e519524SHoward Hinnant FE_INEXACT 223e519524SHoward Hinnant FE_INVALID 233e519524SHoward Hinnant FE_OVERFLOW 243e519524SHoward Hinnant FE_UNDERFLOW 253e519524SHoward Hinnant FE_ALL_EXCEPT 263e519524SHoward Hinnant FE_DOWNWARD 273e519524SHoward Hinnant FE_TONEAREST 283e519524SHoward Hinnant FE_TOWARDZERO 293e519524SHoward Hinnant FE_UPWARD 303e519524SHoward Hinnant FE_DFL_ENV 313e519524SHoward Hinnant 323e519524SHoward Hinnantnamespace std 333e519524SHoward Hinnant{ 343e519524SHoward Hinnant 353e519524SHoward HinnantTypes: 363e519524SHoward Hinnant 373e519524SHoward Hinnant fenv_t 383e519524SHoward Hinnant fexcept_t 393e519524SHoward Hinnant 403e519524SHoward Hinnantint feclearexcept(int excepts); 413e519524SHoward Hinnantint fegetexceptflag(fexcept_t* flagp, int excepts); 423e519524SHoward Hinnantint feraiseexcept(int excepts); 433e519524SHoward Hinnantint fesetexceptflag(const fexcept_t* flagp, int excepts); 443e519524SHoward Hinnantint fetestexcept(int excepts); 453e519524SHoward Hinnantint fegetround(); 463e519524SHoward Hinnantint fesetround(int round); 473e519524SHoward Hinnantint fegetenv(fenv_t* envp); 483e519524SHoward Hinnantint feholdexcept(fenv_t* envp); 493e519524SHoward Hinnantint fesetenv(const fenv_t* envp); 503e519524SHoward Hinnantint feupdateenv(const fenv_t* envp); 513e519524SHoward Hinnant 523e519524SHoward Hinnant} // std 533e519524SHoward Hinnant*/ 543e519524SHoward Hinnant 55*385cc25aSLouis Dionne#include <__assert> // all public C++ headers provide the assertion handler 563e519524SHoward Hinnant#include <__config> 573e519524SHoward Hinnant#include <fenv.h> 583e519524SHoward Hinnant 59073458b1SHoward Hinnant#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 603e519524SHoward Hinnant# pragma GCC system_header 61073458b1SHoward Hinnant#endif 623e519524SHoward Hinnant 633e519524SHoward Hinnant_LIBCPP_BEGIN_NAMESPACE_STD 643e519524SHoward Hinnant 65a9c9183cSLouis Dionneusing ::fenv_t _LIBCPP_USING_IF_EXISTS; 66a9c9183cSLouis Dionneusing ::fexcept_t _LIBCPP_USING_IF_EXISTS; 673e519524SHoward Hinnant 68a9c9183cSLouis Dionneusing ::feclearexcept _LIBCPP_USING_IF_EXISTS; 69a9c9183cSLouis Dionneusing ::fegetexceptflag _LIBCPP_USING_IF_EXISTS; 70a9c9183cSLouis Dionneusing ::feraiseexcept _LIBCPP_USING_IF_EXISTS; 71a9c9183cSLouis Dionneusing ::fesetexceptflag _LIBCPP_USING_IF_EXISTS; 72a9c9183cSLouis Dionneusing ::fetestexcept _LIBCPP_USING_IF_EXISTS; 73a9c9183cSLouis Dionneusing ::fegetround _LIBCPP_USING_IF_EXISTS; 74a9c9183cSLouis Dionneusing ::fesetround _LIBCPP_USING_IF_EXISTS; 75a9c9183cSLouis Dionneusing ::fegetenv _LIBCPP_USING_IF_EXISTS; 76a9c9183cSLouis Dionneusing ::feholdexcept _LIBCPP_USING_IF_EXISTS; 77a9c9183cSLouis Dionneusing ::fesetenv _LIBCPP_USING_IF_EXISTS; 78a9c9183cSLouis Dionneusing ::feupdateenv _LIBCPP_USING_IF_EXISTS; 793e519524SHoward Hinnant 803e519524SHoward Hinnant_LIBCPP_END_NAMESPACE_STD 813e519524SHoward Hinnant 823e519524SHoward Hinnant#endif // _LIBCPP_CFENV 83