diff options
Diffstat (limited to 'contrib/gcc/flags.h')
-rw-r--r-- | contrib/gcc/flags.h | 91 |
1 files changed, 68 insertions, 23 deletions
diff --git a/contrib/gcc/flags.h b/contrib/gcc/flags.h index 85e0792..0a8979d 100644 --- a/contrib/gcc/flags.h +++ b/contrib/gcc/flags.h @@ -1,5 +1,5 @@ /* Compilation switch flag definitions for GCC. - Copyright (C) 1987, 1988, 1994, 1995, 1996, 1997, 1998, 1999, 2000 + Copyright (C) 1987, 1988, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc. This file is part of GCC. @@ -126,10 +126,20 @@ extern int warn_unknown_pragmas; extern int warn_shadow; -/* Warn if a switch on an enum fails to have a case for every enum value. */ +/* Warn if a switch on an enum, that does not have a default case, + fails to have a case for every enum value. */ extern int warn_switch; +/* Warn if a switch does not have a default case. */ + +extern int warn_switch_default; + +/* Warn if a switch on an enum fails to have a case for every enum + value (regardless of the presence or otherwise of a default case). */ + +extern int warn_switch_enum; + /* Nonzero means warn about function definitions that default the return type or that use a null return and have a return-type other than void. */ @@ -174,6 +184,11 @@ extern int warn_disabled_optimization; extern int warn_deprecated_decl; +/* Nonzero means warn about constructs which might not be strict + aliasing safe. */ + +extern int warn_strict_aliasing; + /* Nonzero if generating code to do profiling. */ extern int profile_flag; @@ -194,6 +209,10 @@ extern int flag_branch_probabilities; extern int flag_reorder_blocks; +/* Nonzero if functions should be reordered. */ + +extern int flag_reorder_functions; + /* Nonzero if registers should be renamed. */ extern int flag_rename_registers; @@ -345,6 +364,10 @@ extern int flag_errno_math; extern int flag_unsafe_math_optimizations; +/* Nonzero means that no NaNs or +-Infs are expected. */ + +extern int flag_finite_math_only; + /* Zero means that floating-point math operations cannot generate a (user-visible) trap. This is the case, for example, in nonstop IEEE 754 arithmetic. */ @@ -408,7 +431,7 @@ extern int flag_schedule_insns_after_reload; /* The following flags have effect only for scheduling before register allocation: - flag_schedule_interblock means schedule insns accross basic blocks. + flag_schedule_interblock means schedule insns across basic blocks. flag_schedule_speculative means allow speculative motion of non-load insns. flag_schedule_speculative_load means allow speculative motion of some load insns. @@ -439,19 +462,13 @@ extern int flag_delayed_branch; extern int flag_dump_unnumbered; -/* Nonzero means pretend it is OK to examine bits of target floats, - even if that isn't true. The resulting code will have incorrect constants, - but the same series of instructions that the native compiler would make. */ - -extern int flag_pretend_float; - /* Nonzero means change certain warnings into errors. Usually these are warnings about failure to conform to some standard. */ extern int flag_pedantic_errors; -/* Nonzero means generate position-independent code. - This is not fully implemented yet. */ +/* Nonzero means generate position-independent code. 1 vs 2 for a + target-dependent "small" or "large" mode. */ extern int flag_pic; @@ -546,19 +563,10 @@ extern int flag_peephole2; /* Try to guess branch probablities. */ extern int flag_guess_branch_prob; -/* -fbounded-pointers causes gcc to compile pointers as composite - objects occupying three words: the pointer value, the base address - of the referent object, and the address immediately beyond the end - of the referent object. The base and extent allow us to perform - runtime bounds checking. -fbounded-pointers implies -fcheck-bounds. */ -extern int flag_bounded_pointers; - /* -fcheck-bounds causes gcc to generate array bounds checks. - For C, C++: defaults to value of flag_bounded_pointers. - For ObjC: defaults to off. + For C, C++ and ObjC: defaults off. For Java: defaults to on. - For Fortran: defaults to off. - For CHILL: defaults to off. */ + For Fortran: defaults to off. */ extern int flag_bounds_check; /* This will attempt to merge constant section constants, if 1 only @@ -638,11 +646,48 @@ extern int flag_gcse_sm; extern int flag_eliminate_dwarf2_dups; -/* Non-zero means to collect statistics which might be expensive +/* Nonzero means to collect statistics which might be expensive and to print them when we are done. */ extern int flag_detailed_statistics; /* Nonzero means enable synchronous exceptions for non-call instructions. */ extern int flag_non_call_exceptions; +/* Nonzero means put zero initialized data in the bss section. */ +extern int flag_zero_initialized_in_bss; + +/* Nonzero means disable transformations observable by signaling NaNs. */ +extern int flag_signaling_nans; + +/* A string that's used when a random name is required. NULL means + to make it really random. */ + +extern const char *flag_random_seed; + +/* 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 x, 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 + postive and negative zero, and the sign of zero is important. */ +#define HONOR_SIGNED_ZEROS(MODE) \ + (MODE_HAS_SIGNED_ZEROS (MODE) && !flag_unsafe_math_optimizations) + +/* 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_unsafe_math_optimizations) + #endif /* ! GCC_FLAGS_H */ |