Raymond Toy pushed to branch master at cmucl / cmucl

Commits:

1 changed file:

Changes:

  • src/lisp/irrat.c
    ... ... @@ -62,20 +62,26 @@ extern void cr_sincosf(float, float *, float *);
    62 62
      */
    
    63 63
     
    
    64 64
     #define MAYBE_SIGNAL_INVALID(test, val)		\
    
    65
    -    if ((test)) {				\
    
    66
    -        return fdlibm_setexception(val, FDLIBM_INVALID);	\
    
    67
    -    }
    
    65
    +    do {					\
    
    66
    +        if ((test)) {				\
    
    67
    +            return fdlibm_setexception(val, FDLIBM_INVALID);	\
    
    68
    +        }							\
    
    69
    +    } while (0)
    
    70
    +    
    
    68 71
     
    
    69 72
     #define MAYBE_SIGNAL_OVERFLOW(x)	\
    
    70
    -    if (isinf(x)) {	\
    
    71
    -	return fdlibm_setexception(x, FDLIBM_OVERFLOW); \
    
    72
    -    }
    
    73
    +    do {				\
    
    74
    +        if (isinf(x)) {	\
    
    75
    +            return fdlibm_setexception(x, FDLIBM_OVERFLOW); \
    
    76
    +        }						    \
    
    77
    +    } while (0)
    
    78
    +    
    
    73 79
     
    
    74 80
     double
    
    75 81
     lisp_sin(double x)
    
    76 82
     {
    
    77 83
     #ifdef FEATURE_CORE_MATH
    
    78
    -    MAYBE_SIGNAL_INVALID(isinf(x), x)
    
    84
    +    MAYBE_SIGNAL_INVALID(isinf(x), x);
    
    79 85
     
    
    80 86
         return cr_sin(x);
    
    81 87
     #else    
    
    ... ... @@ -87,7 +93,7 @@ double
    87 93
     lisp_cos(double x)
    
    88 94
     {
    
    89 95
     #ifdef FEATURE_CORE_MATH
    
    90
    -    MAYBE_SIGNAL_INVALID(isinf(x), x)
    
    96
    +    MAYBE_SIGNAL_INVALID(isinf(x), x);
    
    91 97
     
    
    92 98
         return cr_cos(x);
    
    93 99
     #else    
    
    ... ... @@ -99,7 +105,7 @@ double
    99 105
     lisp_tan(double x)
    
    100 106
     {
    
    101 107
     #ifdef FEATURE_CORE_MATH
    
    102
    -    MAYBE_SIGNAL_INVALID(isinf(x), x)
    
    108
    +    MAYBE_SIGNAL_INVALID(isinf(x), x);
    
    103 109
     
    
    104 110
         return cr_tan(x);
    
    105 111
     #else    
    
    ... ... @@ -151,7 +157,7 @@ double
    151 157
     lisp_sinh(double x)
    
    152 158
     {
    
    153 159
     #ifdef FEATURE_CORE_MATH
    
    154
    -    MAYBE_SIGNAL_OVERFLOW(x)
    
    160
    +    MAYBE_SIGNAL_OVERFLOW(x);
    
    155 161
     	
    
    156 162
         return cr_sinh(x);
    
    157 163
     #else    
    
    ... ... @@ -183,7 +189,7 @@ double
    183 189
     lisp_asinh(double x)
    
    184 190
     {
    
    185 191
     #ifdef FEATURE_CORE_MATH
    
    186
    -    MAYBE_SIGNAL_OVERFLOW(x)
    
    192
    +    MAYBE_SIGNAL_OVERFLOW(x);
    
    187 193
     
    
    188 194
         return cr_asinh(x);
    
    189 195
     #else    
    
    ... ... @@ -195,9 +201,9 @@ double
    195 201
     lisp_acosh(double x)
    
    196 202
     {
    
    197 203
     #ifdef FEATURE_CORE_MATH
    
    198
    -    MAYBE_SIGNAL_INVALID(x < 1, x)
    
    204
    +    MAYBE_SIGNAL_INVALID(x < 1, x);
    
    199 205
     
    
    200
    -    MAYBE_SIGNAL_OVERFLOW(x)
    
    206
    +    MAYBE_SIGNAL_OVERFLOW(x);
    
    201 207
         
    
    202 208
         return cr_acosh(x);
    
    203 209
     #else