xref: /aosp_15_r20/external/musl/src/fenv/fesetround.c (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
1*c9945492SAndroid Build Coastguard Worker #include <fenv.h>
2*c9945492SAndroid Build Coastguard Worker #include <features.h>
3*c9945492SAndroid Build Coastguard Worker 
4*c9945492SAndroid Build Coastguard Worker /* __fesetround wrapper for arch independent argument check */
5*c9945492SAndroid Build Coastguard Worker 
6*c9945492SAndroid Build Coastguard Worker hidden int __fesetround(int);
7*c9945492SAndroid Build Coastguard Worker 
fesetround(int r)8*c9945492SAndroid Build Coastguard Worker int fesetround(int r)
9*c9945492SAndroid Build Coastguard Worker {
10*c9945492SAndroid Build Coastguard Worker 	if (r != FE_TONEAREST
11*c9945492SAndroid Build Coastguard Worker #ifdef FE_DOWNWARD
12*c9945492SAndroid Build Coastguard Worker 		&& r != FE_DOWNWARD
13*c9945492SAndroid Build Coastguard Worker #endif
14*c9945492SAndroid Build Coastguard Worker #ifdef FE_UPWARD
15*c9945492SAndroid Build Coastguard Worker 		&& r != FE_UPWARD
16*c9945492SAndroid Build Coastguard Worker #endif
17*c9945492SAndroid Build Coastguard Worker #ifdef FE_TOWARDZERO
18*c9945492SAndroid Build Coastguard Worker 		&& r != FE_TOWARDZERO
19*c9945492SAndroid Build Coastguard Worker #endif
20*c9945492SAndroid Build Coastguard Worker 	)
21*c9945492SAndroid Build Coastguard Worker 		return -1;
22*c9945492SAndroid Build Coastguard Worker 	return __fesetround(r);
23*c9945492SAndroid Build Coastguard Worker }
24