aboutsummaryrefslogtreecommitdiff
path: root/gcc/fixinc/tests/base/iso/math_c99.h
blob: e8253abf2f620c44c13e4a310699025de49c198a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
/*  DO NOT EDIT THIS FILE.

    It has been auto-edited by fixincludes from:

	"fixinc/tests/inc/iso/math_c99.h"

    This had to be done to correct non-standard usages in the
    original, manufacturer supplied header file.  */



#if defined( SOLARIS_MATH_1_CHECK )
#ident	"@(#)math_c99.h	1.9	04/11/01 SMI"
#undef	HUGE_VAL
#define	HUGE_VAL	(__builtin_huge_val())
#undef	HUGE_VALF
#define	HUGE_VALF	(__builtin_huge_valf())
#undef	HUGE_VALL
#define	HUGE_VALL	(__builtin_huge_vall())
#endif  /* SOLARIS_MATH_1_CHECK */


#if defined( SOLARIS_MATH_2_CHECK )
#ident	"@(#)math_c99.h	1.9	04/11/01 SMI"
#undef	INFINITY
#define	INFINITY	(__builtin_inff())
#endif  /* SOLARIS_MATH_2_CHECK */


#if defined( SOLARIS_MATH_3_CHECK )
#ident	"@(#)math_c99.h	1.9	04/11/01 SMI"
#undef	NAN
#define	NAN		(__builtin_nanf(""))
#endif  /* SOLARIS_MATH_3_CHECK */


#if defined( SOLARIS_MATH_4_CHECK )
#ident	"@(#)math_c99.h	1.9	04/11/01 SMI"
#undef	fpclassify
#define	fpclassify(x) \
  __extension__ ({ __typeof(x) __x_fp = (x); \
		   isnan(__x_fp) \
		     ? FP_NAN \
		     : isinf(__x_fp) \
		       ? FP_INFINITE \
		       : isnormal(__x_fp) \
			 ? FP_NORMAL \
			 : __x_fp == 0.0 \
			   ? FP_ZERO \
			   : FP_SUBNORMAL; })
#endif  /* SOLARIS_MATH_4_CHECK */


#if defined( SOLARIS_MATH_5_CHECK )
#ident	"@(#)math_c99.h	1.9	04/11/01 SMI"
#undef	isfinite
#define	isfinite(x) \
  __extension__ ({ __typeof (x) __x_f = (x); \
		   __builtin_expect(!isnan(__x_f - __x_f), 1); })
#endif  /* SOLARIS_MATH_5_CHECK */


#if defined( SOLARIS_MATH_6_CHECK )
#ident	"@(#)math_c99.h	1.9	04/11/01 SMI"
#undef	isinf
#define	isinf(x) \
  __extension__ ({ __typeof (x) __x_i = (x); \
		   __builtin_expect(!isnan(__x_i) && !isfinite(__x_i), 0); })
#endif  /* SOLARIS_MATH_6_CHECK */


#if defined( SOLARIS_MATH_6_1_CHECK )
#ident	"@(#)math_c99.h	1.9	04/11/01 SMI"
#undef	isnan
#define	isnan(x) \
  __extension__ ({ __typeof (x) __x_a = (x); \
		   __builtin_expect(__x_a != __x_a, 0); })
#endif  /* SOLARIS_MATH_6_1_CHECK */


#if defined( SOLARIS_MATH_7_CHECK )
#ident	"@(#)math_c99.h	1.9	04/11/01 SMI"
#undef	isnormal
#define	isnormal(x) \
  __extension__ ({ __typeof(x) __x_n = (x); \
		   if (__x_n < 0.0) __x_n = -__x_n; \
		   __builtin_expect(isfinite(__x_n) \
				    && (sizeof(__x_n) == sizeof(float) \
					  ? __x_n >= __FLT_MIN__ \
					  : sizeof(__x_n) == sizeof(long double) \
					    ? __x_n >= __LDBL_MIN__ \
					    : __x_n >= __DBL_MIN__), 1); })
#endif  /* SOLARIS_MATH_7_CHECK */


#if defined( SOLARIS_MATH_8_CHECK )
#ident	"@(#)math_c99.h	1.9	04/11/01 SMI"
#ifdef __sparc__
#undef	signbit
#define	signbit(x) \
  (sizeof(x) == sizeof(float) \
     ? ({ union { float f; unsigned int i[1]; } __s; \
	__s.f = (x); __s.i[0] >> 31; }) \
     : sizeof(x) == sizeof(long double) \
       ? ({ union { long double f; unsigned int i[4]; } __s; \
	  __s.f = (x); __s.i[0] >> 31; }) \
       : ({ union { double f; unsigned int i[2]; } __s; \
	  __s.f = (x); __s.i[0] >> 31; }))
#endif /* __sparc__ */

#endif  /* SOLARIS_MATH_8_CHECK */


#if defined( SOLARIS_MATH_9_CHECK )
#ident	"@(#)math_c99.h	1.9	04/11/01 SMI"
#undef	isgreater
#define	isgreater(x, y)		__builtin_isgreater(x, y)
#undef	isgreaterequal
#define	isgreaterequal(x, y)	__builtin_isgreaterequal(x, y)
#undef	isless
#define	isless(x, y)		__builtin_isless(x, y)
#undef	islessequal
#define	islessequal(x, y)	__builtin_islessequal(x, y)
#undef	islessgreater
#define	islessgreater(x, y)	__builtin_islessgreater(x, y)
#undef	isunordered
#define	isunordered(x, y)	__builtin_isunordered(x, y)
#endif  /* SOLARIS_MATH_9_CHECK */