Browse Source

- make HUGE_VAL, HUGE_VALF, HUGE_VALL, INFINITY, NAN expand to the

constant expressions with the help of gcc post-3.3.
ok millert@, mikeb@.  been in snaps for weeks.
OPENBSD_4_9
martynas 14 years ago
parent
commit
bb956f3634
1 changed files with 12 additions and 1 deletions
  1. +12
    -1
      src/include/math.h

+ 12
- 1
src/include/math.h View File

@ -1,4 +1,4 @@
/* $OpenBSD: math.h,v 1.26 2009/07/25 11:38:09 martynas Exp $ */
/* $OpenBSD: math.h,v 1.27 2010/12/14 11:16:15 martynas Exp $ */
/* /*
* ==================================================== * ====================================================
* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@ -25,7 +25,11 @@
* ANSI/POSIX * ANSI/POSIX
*/ */
extern char __infinity[]; extern char __infinity[];
#if __GNUC_PREREQ__(3, 3)
#define HUGE_VAL __builtin_huge_val()
#else /* __GNUC_PREREQ__(3, 3) */
#define HUGE_VAL (*(double *)(void *)__infinity) #define HUGE_VAL (*(double *)(void *)__infinity)
#endif /* __GNUC_PREREQ__(3, 3) */
/* /*
* C99 * C99
@ -34,6 +38,12 @@ extern char __infinity[];
typedef __double_t double_t; typedef __double_t double_t;
typedef __float_t float_t; typedef __float_t float_t;
#if __GNUC_PREREQ__(3, 3)
#define HUGE_VALF __builtin_huge_valf()
#define HUGE_VALL __builtin_huge_vall()
#define INFINITY __builtin_inff()
#define NAN __builtin_nanf("")
#else /* __GNUC_PREREQ__(3, 3) */
#ifdef __vax__ #ifdef __vax__
extern char __infinityf[]; extern char __infinityf[];
#define HUGE_VALF (*(float *)(void *)__infinityf) #define HUGE_VALF (*(float *)(void *)__infinityf)
@ -46,6 +56,7 @@ extern char __infinityf[];
extern char __nan[]; extern char __nan[];
#define NAN (*(float *)(void *)__nan) #define NAN (*(float *)(void *)__nan)
#endif /* !__vax__ */ #endif /* !__vax__ */
#endif /* __GNUC_PREREQ__(3, 3) */
#define FP_INFINITE 0x01 #define FP_INFINITE 0x01
#define FP_NAN 0x02 #define FP_NAN 0x02


Loading…
Cancel
Save