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/* 15 fenv.h synopsis 16 17This entire header is C99 / C++0X 18 19Macros: 20 21 FE_DIVBYZERO 22 FE_INEXACT 23 FE_INVALID 24 FE_OVERFLOW 25 FE_UNDERFLOW 26 FE_ALL_EXCEPT 27 FE_DOWNWARD 28 FE_TONEAREST 29 FE_TOWARDZERO 30 FE_UPWARD 31 FE_DFL_ENV 32 33Types: 34 35 fenv_t 36 fexcept_t 37 38int feclearexcept(int excepts); 39int fegetexceptflag(fexcept_t* flagp, int excepts); 40int feraiseexcept(int excepts); 41int fesetexceptflag(const fexcept_t* flagp, int excepts); 42int fetestexcept(int excepts); 43int fegetround(); 44int fesetround(int round); 45int fegetenv(fenv_t* envp); 46int feholdexcept(fenv_t* envp); 47int fesetenv(const fenv_t* envp); 48int feupdateenv(const fenv_t* envp); 49 50 51*/ 52 53#include <__config> 54 55#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 56# pragma GCC system_header 57#endif 58 59#if __has_include_next(<fenv.h>) 60# include_next <fenv.h> 61#endif 62 63#ifdef __cplusplus 64 65extern "C++" { 66 67#ifdef feclearexcept 68#undef feclearexcept 69#endif 70 71#ifdef fegetexceptflag 72#undef fegetexceptflag 73#endif 74 75 76#ifdef feraiseexcept 77#undef feraiseexcept 78#endif 79 80#ifdef fesetexceptflag 81#undef fesetexceptflag 82#endif 83 84 85#ifdef fetestexcept 86#undef fetestexcept 87#endif 88 89#ifdef fegetround 90#undef fegetround 91#endif 92 93#ifdef fesetround 94#undef fesetround 95#endif 96 97#ifdef fegetenv 98#undef fegetenv 99#endif 100 101#ifdef feholdexcept 102#undef feholdexcept 103#endif 104 105 106#ifdef fesetenv 107#undef fesetenv 108#endif 109 110#ifdef feupdateenv 111#undef feupdateenv 112#endif 113 114} // extern "C++" 115 116#endif // defined(__cplusplus) 117 118#endif // _LIBCPP_FENV_H 119