xref: /llvm-project-15.0.7/libcxx/include/cfenv (revision 385cc25a)
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