1 // -*- C++ -*- 2 //===----------------------------------------------------------------------===// 3 // 4 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 5 // See https://llvm.org/LICENSE.txt for license information. 6 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7 // 8 //===----------------------------------------------------------------------===// 9 10 #ifndef _LIBCPP_FENV_H 11 #define _LIBCPP_FENV_H 12 13 /* 14 fenv.h synopsis 15 16 This entire header is C99 / C++0X 17 18 Macros: 19 20 FE_DIVBYZERO 21 FE_INEXACT 22 FE_INVALID 23 FE_OVERFLOW 24 FE_UNDERFLOW 25 FE_ALL_EXCEPT 26 FE_DOWNWARD 27 FE_TONEAREST 28 FE_TOWARDZERO 29 FE_UPWARD 30 FE_DFL_ENV 31 32 Types: 33 34 fenv_t 35 fexcept_t 36 37 int feclearexcept(int excepts); 38 int fegetexceptflag(fexcept_t* flagp, int excepts); 39 int feraiseexcept(int excepts); 40 int fesetexceptflag(const fexcept_t* flagp, int excepts); 41 int fetestexcept(int excepts); 42 int fegetround(); 43 int fesetround(int round); 44 int fegetenv(fenv_t* envp); 45 int feholdexcept(fenv_t* envp); 46 int fesetenv(const fenv_t* envp); 47 int feupdateenv(const fenv_t* envp); 48 49 50 */ 51 52 #include <__config> 53 54 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 55 # pragma GCC system_header 56 #endif 57 58 #if __has_include_next(<fenv.h>) 59 # include_next <fenv.h> 60 #endif 61 62 #ifdef __cplusplus 63 64 extern "C++" { 65 66 # ifdef feclearexcept 67 # undef feclearexcept 68 # endif 69 70 # ifdef fegetexceptflag 71 # undef fegetexceptflag 72 # endif 73 74 # ifdef feraiseexcept 75 # undef feraiseexcept 76 # endif 77 78 # ifdef fesetexceptflag 79 # undef fesetexceptflag 80 # endif 81 82 # ifdef fetestexcept 83 # undef fetestexcept 84 # endif 85 86 # ifdef fegetround 87 # undef fegetround 88 # endif 89 90 # ifdef fesetround 91 # undef fesetround 92 # endif 93 94 # ifdef fegetenv 95 # undef fegetenv 96 # endif 97 98 # ifdef feholdexcept 99 # undef feholdexcept 100 # endif 101 102 # ifdef fesetenv 103 # undef fesetenv 104 # endif 105 106 # ifdef feupdateenv 107 # undef feupdateenv 108 # endif 109 110 } // extern "C++" 111 112 #endif // defined(__cplusplus) 113 114 #endif // _LIBCPP_FENV_H 115