1227825Stheraven// -*- C++ -*-
2300770Sdim//===---------------------------- cfenv -----------------------------------===//
3227825Stheraven//
4353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5353358Sdim// See https://llvm.org/LICENSE.txt for license information.
6353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7227825Stheraven//
8227825Stheraven//===----------------------------------------------------------------------===//
9227825Stheraven
10227825Stheraven#ifndef _LIBCPP_CFENV
11227825Stheraven#define _LIBCPP_CFENV
12227825Stheraven
13227825Stheraven/*
14227825Stheraven    cfenv synopsis
15227825Stheraven
16227825StheravenThis entire header is C99 / C++0X
17227825Stheraven
18227825StheravenMacros:
19227825Stheraven
20227825Stheraven    FE_DIVBYZERO
21227825Stheraven    FE_INEXACT
22227825Stheraven    FE_INVALID
23227825Stheraven    FE_OVERFLOW
24227825Stheraven    FE_UNDERFLOW
25227825Stheraven    FE_ALL_EXCEPT
26227825Stheraven    FE_DOWNWARD
27227825Stheraven    FE_TONEAREST
28227825Stheraven    FE_TOWARDZERO
29227825Stheraven    FE_UPWARD
30227825Stheraven    FE_DFL_ENV
31227825Stheraven
32227825Stheravennamespace std
33227825Stheraven{
34227825Stheraven
35227825StheravenTypes:
36227825Stheraven
37227825Stheraven    fenv_t
38227825Stheraven    fexcept_t
39227825Stheraven
40227825Stheravenint feclearexcept(int excepts);
41227825Stheravenint fegetexceptflag(fexcept_t* flagp, int excepts);
42227825Stheravenint feraiseexcept(int excepts);
43227825Stheravenint fesetexceptflag(const fexcept_t* flagp, int excepts);
44227825Stheravenint fetestexcept(int excepts);
45227825Stheravenint fegetround();
46227825Stheravenint fesetround(int round);
47227825Stheravenint fegetenv(fenv_t* envp);
48227825Stheravenint feholdexcept(fenv_t* envp);
49227825Stheravenint fesetenv(const fenv_t* envp);
50227825Stheravenint feupdateenv(const fenv_t* envp);
51227825Stheraven
52227825Stheraven}  // std
53227825Stheraven*/
54227825Stheraven
55227825Stheraven#include <__config>
56227825Stheraven#include <fenv.h>
57227825Stheraven
58227825Stheraven#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
59227825Stheraven#pragma GCC system_header
60227825Stheraven#endif
61227825Stheraven
62227825Stheraven_LIBCPP_BEGIN_NAMESPACE_STD
63227825Stheraven
64227825Stheravenusing ::fenv_t;
65227825Stheravenusing ::fexcept_t;
66227825Stheraven
67227825Stheravenusing ::feclearexcept;
68227825Stheravenusing ::fegetexceptflag;
69227825Stheravenusing ::feraiseexcept;
70227825Stheravenusing ::fesetexceptflag;
71227825Stheravenusing ::fetestexcept;
72227825Stheravenusing ::fegetround;
73227825Stheravenusing ::fesetround;
74227825Stheravenusing ::fegetenv;
75227825Stheravenusing ::feholdexcept;
76227825Stheravenusing ::fesetenv;
77227825Stheravenusing ::feupdateenv;
78227825Stheraven
79227825Stheraven_LIBCPP_END_NAMESPACE_STD
80227825Stheraven
81227825Stheraven#endif  // _LIBCPP_CFENV
82