@@ -11,10 +11,6 @@ extern __fenv_t __fe_cur_env;
1111#ifndef _FENV_H
1212#define _FENV_H
1313
14- #ifdef __cplusplus
15- extern "C" {
16- #endif
17-
1814enum {
1915 FE_DIVBYZERO = 1 << 6 ,
2016#define FE_DIVBYZERO FE_DIVBYZERO
@@ -45,39 +41,53 @@ typedef unsigned char fexcept_t;
4541extern const fenv_t __fe_dfl_env ;
4642#define FE_DFL_ENV (&__fe_dfl_env)
4743
48- int feclearexcept (int );
49- #define feclearexcept (excepts ) (__fe_cur_env &= ~((excepts) & FE_ALL_EXCEPT), 0)
44+ #ifdef __cplusplus
45+ extern "C" {
46+ #endif
5047
51- int fegetexceptflag (fexcept_t * , int );
52- #define fegetexceptflag (flagp , excepts ) (*(flagp) = __fe_cur_env & (excepts) & FE_ALL_EXCEPT, 0)
48+ inline int feclearexcept (int __excepts ) {
49+ return (__fe_cur_env &= ~((__excepts ) & FE_ALL_EXCEPT ), 0 );
50+ }
5351
54- int feraiseexcept (int );
55- #define feraiseexcept (excepts ) (__fe_cur_env |= (excepts) & FE_ALL_EXCEPT, 0)
52+ inline int fegetexceptflag (fexcept_t * __flagp , int __excepts ) {
53+ return (* (__flagp ) = __fe_cur_env & (__excepts ) & FE_ALL_EXCEPT , 0 );
54+ }
5655
57- int fesetexceptflag ( const fexcept_t * , int );
58- #define fesetexceptflag ( flagp , excepts ) (__fe_cur_env = (__fe_cur_env & ~((excepts ) & FE_ALL_EXCEPT)) \
59- | (*(flagp) & (excepts) & FE_ALL_EXCEPT), 0)
56+ inline int feraiseexcept ( int __excepts ) {
57+ return (__fe_cur_env |= ( __excepts ) & FE_ALL_EXCEPT , 0 );
58+ }
6059
61- int fetestexcept (int );
62- #define fetestexcept (excepts ) (__fe_cur_env & (excepts) & FE_ALL_EXCEPT)
60+ inline int fesetexceptflag (const fexcept_t * __flagp , int __excepts ) {
61+ return (__fe_cur_env = (__fe_cur_env & ~((__excepts ) & FE_ALL_EXCEPT )) | (* (__flagp ) & (__excepts ) & FE_ALL_EXCEPT ), 0 );
62+ }
6363
64- int fegetround (void );
65- #define fegetround () (__fe_cur_env & 3)
64+ inline int fetestexcept (int __excepts ) {
65+ return (__fe_cur_env & (__excepts ) & FE_ALL_EXCEPT );
66+ }
6667
67- int fesetround (int );
68- #define fesetround (rounding_mode ) (__fe_cur_env = (__fe_cur_env & ~3) | ((rounding_mode) & 3), 0)
68+ inline int fegetround (void ) {
69+ return (__fe_cur_env & 3 );
70+ }
6971
70- int fegetenv (fenv_t * );
71- #define fegetenv (envp ) (*(envp) = __fe_cur_env, 0)
72+ inline int fesetround (int __rounding_mode ) {
73+ return (__fe_cur_env = (__fe_cur_env & ~3 ) | ((__rounding_mode ) & 3 ), 0 );
74+ }
7275
73- int feholdexcept (fenv_t * );
74- #define feholdexcept (envp ) (*(envp) = __fe_cur_env, __fe_cur_env &= ~FE_ALL_EXCEPT, 0)
76+ inline int fegetenv (fenv_t * __envp ) {
77+ return (* (__envp ) = __fe_cur_env , 0 );
78+ }
7579
76- int fesetenv (const fenv_t * );
77- #define fesetenv (envp ) (__fe_cur_env = *(envp), 0)
80+ inline int feholdexcept (fenv_t * __envp ) {
81+ return (* (__envp ) = __fe_cur_env , __fe_cur_env &= ~FE_ALL_EXCEPT , 0 );
82+ }
83+
84+ inline int fesetenv (const fenv_t * __envp ) {
85+ return (__fe_cur_env = * (__envp ), 0 );
86+ }
7887
79- int feupdateenv (const fenv_t * );
80- #define feupdateenv (envp ) (__fe_cur_env = (__fe_cur_env & FE_ALL_EXCEPT) | *(envp), 0)
88+ inline int feupdateenv (const fenv_t * __envp ) {
89+ return (__fe_cur_env = (__fe_cur_env & FE_ALL_EXCEPT ) | * (__envp ), 0 );
90+ }
8191
8292#ifdef __cplusplus
8393}
0 commit comments