diff options
author | Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | 2010-01-05 17:14:30 +0000 |
---|---|---|
committer | Rainer Orth <ro@gcc.gnu.org> | 2010-01-05 17:14:30 +0000 |
commit | 6a4d4e8a858aa2290092d5a7200ec797daf3ae1b (patch) | |
tree | 94d109ef057bc7ce14a8f5017dfbbe0b88f96afb /gcc/real.h | |
parent | d097567da357024ce7863036368e48b0fd4baaaa (diff) | |
download | gcc-6a4d4e8a858aa2290092d5a7200ec797daf3ae1b.zip gcc-6a4d4e8a858aa2290092d5a7200ec797daf3ae1b.tar.gz gcc-6a4d4e8a858aa2290092d5a7200ec797daf3ae1b.tar.bz2 |
re PR bootstrap/41771 (Bootstrap with Sun Studio 12.1 fails)
gcc:
PR bootstrap/41771
* flags.h: Don't include real.h.
(HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
* real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
* dominance.c: Update copyright.
* gimple.c (walk_gimple_op): Remove inline.
* tree-ssa-reassoc.c: Include real.h.
* Makefile.in (FLAGS_H): Remove $(REAL_H).
(tree-ssa-reassoc.o): Depend on $(REAL_H).
include:
PR bootstrap/41771
* ansidecl.h: Fix inline test for C99 and Sun Studio cc.
From-SVN: r155654
Diffstat (limited to 'gcc/real.h')
-rw-r--r-- | gcc/real.h | 28 |
1 files changed, 27 insertions, 1 deletions
@@ -1,6 +1,7 @@ /* Definitions of floating-point access for GNU compiler. Copyright (C) 1989, 1991, 1994, 1996, 1997, 1998, 1999, - 2000, 2002, 2003, 2004, 2005, 2007, 2008 Free Software Foundation, Inc. + 2000, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010 + Free Software Foundation, Inc. This file is part of GCC. @@ -199,6 +200,31 @@ extern const struct real_format * (FLOAT_MODE_P (MODE) \ && FLOAT_MODE_FORMAT (MODE)->has_sign_dependent_rounding) +/* True if the given mode has a NaN representation and the treatment of + NaN operands is important. Certain optimizations, such as folding + x * 0 into 0, are not correct for NaN operands, and are normally + disabled for modes with NaNs. The user can ask for them to be + done anyway using the -funsafe-math-optimizations switch. */ +#define HONOR_NANS(MODE) \ + (MODE_HAS_NANS (MODE) && !flag_finite_math_only) + +/* Like HONOR_NANs, but true if we honor signaling NaNs (or sNaNs). */ +#define HONOR_SNANS(MODE) (flag_signaling_nans && HONOR_NANS (MODE)) + +/* As for HONOR_NANS, but true if the mode can represent infinity and + the treatment of infinite values is important. */ +#define HONOR_INFINITIES(MODE) \ + (MODE_HAS_INFINITIES (MODE) && !flag_finite_math_only) + +/* Like HONOR_NANS, but true if the given mode distinguishes between + positive and negative zero, and the sign of zero is important. */ +#define HONOR_SIGNED_ZEROS(MODE) \ + (MODE_HAS_SIGNED_ZEROS (MODE) && flag_signed_zeros) + +/* Like HONOR_NANS, but true if given mode supports sign-dependent rounding, + and the rounding mode is important. */ +#define HONOR_SIGN_DEPENDENT_ROUNDING(MODE) \ + (MODE_HAS_SIGN_DEPENDENT_ROUNDING (MODE) && flag_rounding_math) /* Declare functions in real.c. */ |