summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>2003-06-20 22:56:36 +0000
committerneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>2003-06-20 22:56:36 +0000
commit6f2f567f1b858a1f56e54d9af3f97e8c7c31f409 (patch)
tree0acc390403d38fbc9323dc9427575fc786cec53e /gcc
parent90297d23280e2609b5404a4f57704e503df14549 (diff)
downloadgcc-6f2f567f1b858a1f56e54d9af3f97e8c7c31f409.tar.gz
* c-decl.c (store_parm_decls): Make saved_warn_shadow boolean.
* common.opt: Add remaining -W options and -g. * diagnostic.c (warnings_are_errors): Remove. * flags.h: Make most warning flags boolean. * opts.c (common_handle_option): Handle remaining -W options, and -g. Move many warning flags from toplev.c, making them boolean. * toplev.c: Remove many warning flags. (decode_W_option): Remove. (decode_g_option): Make extern. Error on unknown switch. (lang_independent_W_options): Use warn_dummy. (independent_decode_option): Just handle -f switches now. * toplev.h (decode_g_option): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@68287 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog15
-rw-r--r--gcc/c-decl.c4
-rw-r--r--gcc/common.opt72
-rw-r--r--gcc/diagnostic.c1
-rw-r--r--gcc/flags.h50
-rw-r--r--gcc/opts.c177
-rw-r--r--gcc/toplev.c209
-rw-r--r--gcc/toplev.h3
8 files changed, 323 insertions, 208 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ad409c76db7..afb35b1bf94 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,18 @@
+2003-06-20 Neil Booth <neil@daikokuya.co.uk>
+
+ * c-decl.c (store_parm_decls): Make saved_warn_shadow boolean.
+ * common.opt: Add remaining -W options and -g.
+ * diagnostic.c (warnings_are_errors): Remove.
+ * flags.h: Make most warning flags boolean.
+ * opts.c (common_handle_option): Handle remaining -W options, and -g.
+ Move many warning flags from toplev.c, making them boolean.
+ * toplev.c: Remove many warning flags.
+ (decode_W_option): Remove.
+ (decode_g_option): Make extern. Error on unknown switch.
+ (lang_independent_W_options): Use warn_dummy.
+ (independent_decode_option): Just handle -f switches now.
+ * toplev.h (decode_g_option): New.
+
2003-06-20 Aldy Hernandez <aldyh@redhat.com>
PR/11092
diff --git a/gcc/c-decl.c b/gcc/c-decl.c
index df0984081d8..c635a9d60ec 100644
--- a/gcc/c-decl.c
+++ b/gcc/c-decl.c
@@ -5719,10 +5719,10 @@ store_parm_decls (void)
/* Nonzero if this definition is written with a prototype. */
int prototype = 0;
- int saved_warn_shadow = warn_shadow;
+ bool saved_warn_shadow = warn_shadow;
/* Don't re-emit shadow warnings. */
- warn_shadow = 0;
+ warn_shadow = false;
if (specparms != 0 && TREE_CODE (specparms) != TREE_LIST)
{
diff --git a/gcc/common.opt b/gcc/common.opt
index 91fb0c71aac..7ce20bb8ee5 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -46,12 +46,81 @@ Common
W
Common RejectNegative
+Waggregate-return
+Common
+
+Wcast-align
+Common
+
+Wdeprecated-declarations
+Common
+
+Wdisabled-optimization
+Common
+
+Werror
+Common
+
Wextra
Common
+Winline
+Common
+
+Wlarger-than-
+Common RejectNegative Joined UInteger
+
+Wmissing-noreturn
+Common
+
+Wpacked
+Common
+
+Wpadded
+Common
+
+Wshadow
+Common
+
+Wstrict-aliasing
+Common
+
+Wswitch
+Common
+
+Wswitch-default
+Common
+
+Wswitch-enum
+Common
+
+Wsystem-headers
+Common
+
+Wuninitialized
+Common
+
+Wunreachable-code
+Common
+
Wunused
Common
+Wunused-function
+Common
+
+Wunused-label
+Common
+
+Wunused-parameter
+Common
+
+Wunused-value
+Common
+
+Wunused-variable
+Common
+
aux-info
Common Separate
@@ -70,6 +139,9 @@ Common Joined
dumpbase
Common Separate
+g
+Common JoinedOrMissing
+
m
Common Joined
diff --git a/gcc/diagnostic.c b/gcc/diagnostic.c
index 674f5e3c2cd..35fbb6f2288 100644
--- a/gcc/diagnostic.c
+++ b/gcc/diagnostic.c
@@ -85,7 +85,6 @@ static void diagnostic_action_after_output (diagnostic_context *,
static void real_abort (void) ATTRIBUTE_NORETURN;
extern int rtl_dump_and_exit;
-extern int warnings_are_errors;
/* A diagnostic_context surrogate for stderr. */
static diagnostic_context global_diagnostic_context;
diff --git a/gcc/flags.h b/gcc/flags.h
index d9ac7bfb055..6ef4ece9083 100644
--- a/gcc/flags.h
+++ b/gcc/flags.h
@@ -77,16 +77,20 @@ extern int mem_report;
/* Don't print warning messages. -w. */
-extern int inhibit_warnings;
+extern bool inhibit_warnings;
/* Don't suppress warnings from system headers. -Wsystem-headers. */
-extern int warn_system_headers;
+extern bool warn_system_headers;
/* Do print extra warnings (such as for uninitialized variables).
-W/-Wextra. */
-extern int extra_warnings;
+extern bool extra_warnings;
+
+/* If -Werror. */
+
+extern bool warnings_are_errors;
/* Nonzero to warn about unused variables, functions et.al. Use
set_Wunused() to update the -Wunused-* flags that correspond to the
@@ -94,19 +98,19 @@ extern int extra_warnings;
extern void set_Wunused PARAMS ((int setting));
-extern int warn_unused_function;
-extern int warn_unused_label;
-extern int warn_unused_parameter;
-extern int warn_unused_variable;
-extern int warn_unused_value;
+extern bool warn_unused_function;
+extern bool warn_unused_label;
+extern bool warn_unused_parameter;
+extern bool warn_unused_variable;
+extern bool warn_unused_value;
/* Nonzero to warn about code which is never reached. */
-extern int warn_notreached;
+extern bool warn_notreached;
/* Nonzero means warn if inline function is too large. */
-extern int warn_inline;
+extern bool warn_inline;
/* Nonzero to warn about variables used before they are initialized. */
@@ -114,21 +118,21 @@ extern int warn_uninitialized;
/* Nonzero means warn about all declarations which shadow others. */
-extern int warn_shadow;
+extern bool warn_shadow;
/* 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;
+extern bool warn_switch;
/* Warn if a switch does not have a default case. */
-extern int warn_switch_default;
+extern bool 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;
+extern bool 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. */
@@ -137,47 +141,47 @@ extern int warn_return_type;
/* Warn about functions which might be candidates for attribute noreturn. */
-extern int warn_missing_noreturn;
+extern bool warn_missing_noreturn;
/* Nonzero means warn about pointer casts that increase the required
alignment of the target type (and might therefore lead to a crash
due to a misaligned access). */
-extern int warn_cast_align;
+extern bool warn_cast_align;
/* Nonzero means warn about any objects definitions whose size is larger
than N bytes. Also want about function definitions whose returned
values are larger than N bytes. The value N is in `larger_than_size'. */
-extern int warn_larger_than;
+extern bool warn_larger_than;
extern HOST_WIDE_INT larger_than_size;
/* Warn if a function returns an aggregate,
since there are often incompatible calling conventions for doing this. */
-extern int warn_aggregate_return;
+extern bool warn_aggregate_return;
/* Warn if packed attribute on struct is unnecessary and inefficient. */
-extern int warn_packed;
+extern bool warn_packed;
/* Warn when gcc pads a structure to an alignment boundary. */
-extern int warn_padded;
+extern bool warn_padded;
/* Warn when an optimization pass is disabled. */
-extern int warn_disabled_optimization;
+extern bool warn_disabled_optimization;
/* Nonzero means warn about uses of __attribute__((deprecated))
declarations. */
-extern int warn_deprecated_decl;
+extern bool warn_deprecated_decl;
/* Nonzero means warn about constructs which might not be strict
aliasing safe. */
-extern int warn_strict_aliasing;
+extern bool warn_strict_aliasing;
/* Nonzero if generating code to do profiling. */
diff --git a/gcc/opts.c b/gcc/opts.c
index 56415a1eb00..ddd116938ab 100644
--- a/gcc/opts.c
+++ b/gcc/opts.c
@@ -41,6 +41,83 @@ bool exit_after_options;
/* If -version. */
bool version_flag;
+/* Print various extra warnings. -W/-Wextra. */
+bool extra_warnings;
+
+/* Don't print warning messages. -w. */
+bool inhibit_warnings;
+
+/* Treat warnings as errors. -Werror. */
+bool warnings_are_errors;
+
+/* Warn if a function returns an aggregate, since there are often
+ incompatible calling conventions for doing this. */
+bool warn_aggregate_return;
+
+/* Nonzero means warn about pointer casts that increase the required
+ alignment of the target type (and might therefore lead to a crash
+ due to a misaligned access). */
+bool warn_cast_align;
+
+/* Nonzero means warn about uses of __attribute__((deprecated))
+ declarations. */
+bool warn_deprecated_decl = true;
+
+/* Warn when an optimization pass is disabled. */
+bool warn_disabled_optimization;
+
+/* Nonzero means warn if inline function is too large. */
+bool warn_inline;
+
+/* True to warn about any objects definitions whose size is larger
+ than N bytes. Also want about function definitions whose returned
+ values are larger than N bytes, where N is `larger_than_size'. */
+bool warn_larger_than;
+HOST_WIDE_INT larger_than_size;
+
+/* Warn about functions which might be candidates for attribute noreturn. */
+bool warn_missing_noreturn;
+
+/* True to warn about code which is never reached. */
+bool warn_notreached;
+
+/* Warn if packed attribute on struct is unnecessary and inefficient. */
+bool warn_packed;
+
+/* Warn when gcc pads a structure to an alignment boundary. */
+bool warn_padded;
+
+/* True means warn about all declarations which shadow others. */
+bool warn_shadow;
+
+/* Nonzero means warn about constructs which might not be
+ strict-aliasing safe. */
+bool warn_strict_aliasing;
+
+/* True to warn if a switch on an enum, that does not have a default
+ case, fails to have a case for every enum value. */
+bool warn_switch;
+
+/* Warn if a switch does not have a default case. */
+bool 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). */
+bool warn_switch_enum;
+
+/* Don't suppress warnings from system headers. -Wsystem-headers. */
+bool warn_system_headers;
+
+/* True to warn about variables used before they are initialized. */
+int warn_uninitialized;
+
+/* True to warn about unused variables, functions et.al. */
+bool warn_unused_function;
+bool warn_unused_label;
+bool warn_unused_parameter;
+bool warn_unused_variable;
+bool warn_unused_value;
+
/* Hack for cooperation between set_Wunused and set_Wextra. */
static bool maybe_warn_unused_parameter;
@@ -136,7 +213,7 @@ find_opt (const char *input, int lang_mask)
return result;
}
-/* If ARG is a postive integer made up solely of digits, return its
+/* If ARG is a non-negative integer made up solely of digits, return its
value, otherwise return -1. */
static int
integral_argument (const char *arg)
@@ -316,14 +393,106 @@ common_handle_option (size_t scode, const char *arg,
set_Wextra (value);
break;
+ case OPT_Waggregate_return:
+ warn_aggregate_return = value;
+ break;
+
+ case OPT_Wcast_align:
+ warn_cast_align = value;
+ break;
+
+ case OPT_Wdeprecated_declarations:
+ warn_deprecated_decl = value;
+
+ case OPT_Wdisabled_optimization:
+ warn_disabled_optimization = value;
+ break;
+
+ case OPT_Werror:
+ warnings_are_errors = value;
+ break;
+
case OPT_Wextra:
set_Wextra (value);
break;
+ case OPT_Winline:
+ warn_inline = value;
+ break;
+
+ case OPT_Wlarger_than_:
+ larger_than_size = value;
+ warn_larger_than = value != -1;
+ break;
+
+ case OPT_Wmissing_noreturn:
+ warn_missing_noreturn = value;
+ break;
+
+ case OPT_Wpacked:
+ warn_packed = value;
+ break;
+
+ case OPT_Wpadded:
+ warn_padded = value;
+ break;
+
+ case OPT_Wshadow:
+ warn_shadow = value;
+ break;
+
+ case OPT_Wstrict_aliasing:
+ warn_strict_aliasing = value;
+ break;
+
+ case OPT_Wswitch:
+ warn_switch = value;
+ break;
+
+ case OPT_Wswitch_default:
+ warn_switch_default = value;
+ break;
+
+ case OPT_Wswitch_enum:
+ warn_switch_enum = value;
+ break;
+
+ case OPT_Wsystem_headers:
+ warn_system_headers = value;
+ break;
+
+ case OPT_Wuninitialized:
+ warn_uninitialized = value;
+ break;
+
+ case OPT_Wunreachable_code:
+ warn_notreached = value;
+ break;
+
case OPT_Wunused:
set_Wunused (value);
break;
+ case OPT_Wunused_function:
+ warn_unused_function = value;
+ break;
+
+ case OPT_Wunused_label:
+ warn_unused_label = value;
+ break;
+
+ case OPT_Wunused_parameter:
+ warn_unused_parameter = value;
+ break;
+
+ case OPT_Wunused_value:
+ warn_unused_value = value;
+ break;
+
+ case OPT_Wunused_variable:
+ warn_unused_variable = value;
+ break;
+
case OPT_aux_info:
case OPT_aux_info_:
aux_info_file_name = arg;
@@ -351,6 +520,10 @@ common_handle_option (size_t scode, const char *arg,
dump_base_name = arg;
break;
+ case OPT_g:
+ decode_g_option (arg);
+ break;
+
case OPT_m:
set_target_switch (arg);
break;
@@ -380,7 +553,7 @@ common_handle_option (size_t scode, const char *arg,
break;
case OPT_w:
- inhibit_warnings = 1;
+ inhibit_warnings = true;
break;
}
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 602ce6ff098..4bee42e153a 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -118,8 +118,6 @@ static void setup_core_dumping (void);
static void compile_file (void);
static int decode_f_option (const char *);
-static int decode_W_option (const char *);
-static int decode_g_option (const char *);
static unsigned int independent_decode_option (char **);
static int print_single_switch (FILE *, int, int, const char *,
@@ -1492,156 +1490,61 @@ target_options[] = TARGET_OPTIONS;
/* Options controlling warnings. */
-/* Don't print warning messages. -w. */
-
-int inhibit_warnings = 0;
-
-/* Don't suppress warnings from system headers. -Wsystem-headers. */
-
-int warn_system_headers = 0;
-
-/* Print various extra warnings. -W/-Wextra. */
-
-int extra_warnings = 0;
-
-/* Treat warnings as errors. -Werror. */
-
-int warnings_are_errors = 0;
-
-/* Nonzero to warn about unused variables, functions et.al. */
-
-int warn_unused_function;
-int warn_unused_label;
-int warn_unused_parameter;
-int warn_unused_variable;
-int warn_unused_value;
-
-/* Nonzero to warn about code which is never reached. */
-
-int warn_notreached;
-
-/* Nonzero to warn about variables used before they are initialized. */
-
-int warn_uninitialized;
-
-/* Nonzero means warn about all declarations which shadow others. */
-
-int warn_shadow;
-
-/* Warn if a switch on an enum, that does not have a default case,
- fails to have a case for every enum value. */
-
-int warn_switch;
-
-/* Warn if a switch does not have a default case. */
-
-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). */
-
-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. */
int warn_return_type;
-/* Nonzero means warn about pointer casts that increase the required
- alignment of the target type (and might therefore lead to a crash
- due to a misaligned access). */
-
-int warn_cast_align;
-
-/* Nonzero means warn about any objects definitions whose size is larger
- than N bytes. Also want about function definitions whose returned
- values are larger than N bytes. The value N is in `larger_than_size'. */
-
-int warn_larger_than;
-HOST_WIDE_INT larger_than_size;
-
-/* Nonzero means warn if inline function is too large. */
-
-int warn_inline;
-
-/* Warn if a function returns an aggregate,
- since there are often incompatible calling conventions for doing this. */
-
-int warn_aggregate_return;
-
-/* Warn if packed attribute on struct is unnecessary and inefficient. */
-
-int warn_packed;
-
-/* Warn when gcc pads a structure to an alignment boundary. */
-
-int warn_padded;
-
-/* Warn when an optimization pass is disabled. */
-
-int warn_disabled_optimization;
-
-/* Warn about functions which might be candidates for attribute noreturn. */
-
-int warn_missing_noreturn;
-
-/* Nonzero means warn about uses of __attribute__((deprecated))
- declarations. */
-
-int warn_deprecated_decl = 1;
-
-/* Nonzero means warn about constructs which might not be
- strict-aliasing safe. */
-
-int warn_strict_aliasing;
+/* Used for the -W options array temporarily. */
+static int warn_dummy;
/* Like f_options, but for -W. */
static const lang_independent_options W_options[] =
{
- {"unused-function", &warn_unused_function, 1,
+ {"unused-function", &warn_dummy, 1,
N_("Warn when a function is unused") },
- {"unused-label", &warn_unused_label, 1,
+ {"unused-label", &warn_dummy, 1,
N_("Warn when a label is unused") },
- {"unused-parameter", &warn_unused_parameter, 1,
+ {"unused-parameter", &warn_dummy, 1,
N_("Warn when a function parameter is unused") },
- {"unused-variable", &warn_unused_variable, 1,
+ {"unused-variable", &warn_dummy, 1,
N_("Warn when a variable is unused") },
- {"unused-value", &warn_unused_value, 1,
+ {"unused-value", &warn_dummy, 1,
N_("Warn when an expression value is unused") },
- {"system-headers", &warn_system_headers, 1,
+ {"system-headers", &warn_dummy, 1,
N_("Do not suppress warnings from system headers") },
- {"error", &warnings_are_errors, 1,
+ {"error", &warn_dummy, 1,
N_("Treat all warnings as errors") },
- {"shadow", &warn_shadow, 1,
+ {"shadow", &warn_dummy, 1,
N_("Warn when one local variable shadows another") },
- {"switch", &warn_switch, 1,
+ {"switch", &warn_dummy, 1,
N_("Warn about enumerated switches, with no default, missing a case") },
- {"switch-default", &warn_switch_default, 1,
+ {"switch-default", &warn_dummy, 1,
N_("Warn about enumerated switches missing a default case") },
- {"switch-enum", &warn_switch_enum, 1,
+ {"switch-enum", &warn_dummy, 1,
N_("Warn about all enumerated switches missing a specific case") },
- {"aggregate-return", &warn_aggregate_return, 1,
+ {"aggregate-return", &warn_dummy, 1,
N_("Warn about returning structures, unions or arrays") },
- {"cast-align", &warn_cast_align, 1,
+ {"cast-align", &warn_dummy, 1,
N_("Warn about pointer casts which increase alignment") },
- {"unreachable-code", &warn_notreached, 1,
+ {"unreachable-code", &warn_dummy, 1,
N_("Warn about code that will never be executed") },
- {"uninitialized", &warn_uninitialized, 1,
+ {"uninitialized", &warn_dummy, 1,
N_("Warn about uninitialized automatic variables") },
- {"inline", &warn_inline, 1,
+ {"inline", &warn_dummy, 1,
N_("Warn when an inlined function cannot be inlined") },
- {"packed", &warn_packed, 1,
+ {"packed", &warn_dummy, 1,
N_("Warn when the packed attribute has no effect on struct layout") },
- {"padded", &warn_padded, 1,
+ {"padded", &warn_dummy, 1,
N_("Warn when padding is required to align struct members") },
- {"disabled-optimization", &warn_disabled_optimization, 1,
+ {"disabled-optimization", &warn_dummy, 1,
N_("Warn when an optimization pass is disabled") },
- {"deprecated-declarations", &warn_deprecated_decl, 1,
+ {"deprecated-declarations", &warn_dummy, 1,
N_("Warn about uses of __attribute__((deprecated)) declarations") },
- {"missing-noreturn", &warn_missing_noreturn, 1,
+ {"missing-noreturn", &warn_dummy, 1,
N_("Warn about functions which might be candidates for attribute noreturn") },
- {"strict-aliasing", &warn_strict_aliasing, 1,
+ {"strict-aliasing", &warn_dummy, 1,
N_ ("Warn about code which might break the strict aliasing rules") }
};
@@ -4397,48 +4300,6 @@ decode_f_option (const char *arg)
return 1;
}
-/* Parse a -W... command line switch. ARG is the value after the -W.
- It is safe to access 'ARG - 2' to generate the full switch name.
- Return the number of strings consumed. */
-
-static int
-decode_W_option (const char *arg)
-{
- const char *option_value = NULL;
- int j;
-
- /* Search for the option in the table of binary W options. */
-
- for (j = ARRAY_SIZE (W_options); j--;)
- {
- if (!strcmp (arg, W_options[j].string))
- {
- *W_options[j].variable = W_options[j].on_value;
- return 1;
- }
-
- if (arg[0] == 'n' && arg[1] == 'o' && arg[2] == '-'
- && ! strcmp (arg + 3, W_options[j].string))
- {
- *W_options[j].variable = ! W_options[j].on_value;
- return 1;
- }
- }
-
- if ((option_value = skip_leading_substring (arg, "id-clash-")))
- warning ("-Wid-clash-LEN is no longer supported");
- else if ((option_value = skip_leading_substring (arg, "larger-than-")))
- {
- larger_than_size = read_integral_parameter (option_value, arg - 2, -1);
-
- warn_larger_than = larger_than_size != -1;
- }
- else
- return 0;
-
- return 1;
-}
-
/* Indexed by enum debug_info_type. */
const char *const debug_type_names[] =
{
@@ -4449,7 +4310,7 @@ const char *const debug_type_names[] =
It is safe to access 'ARG - 2' to generate the full switch name.
Return the number of strings consumed. */
-static int
+void
decode_g_option (const char *arg)
{
static unsigned level = 0;
@@ -4560,9 +4421,7 @@ ignoring option `%s' due to invalid debug level specification",
}
if (! da->arg)
- return 0;
-
- return 1;
+ warning ("`-g%s': unknown or unsupported -g option", arg);
}
/* Decode the first argument in the argv as a language-independent option.
@@ -4578,20 +4437,10 @@ independent_decode_option (char **argv)
arg++;
- switch (*arg)
- {
- default:
- return 0;
-
- case 'f':
- return decode_f_option (arg + 1);
+ if (*arg == 'f')
+ return decode_f_option (arg + 1);
- case 'g':
- return decode_g_option (arg + 1);
-
- case 'W':
- return decode_W_option (arg + 1);
- }
+ return 0;
}
/* Decode -m switches. */
diff --git a/gcc/toplev.h b/gcc/toplev.h
index 52ceb5f4ae7..10fa181eea6 100644
--- a/gcc/toplev.h
+++ b/gcc/toplev.h
@@ -120,6 +120,9 @@ extern void set_fast_math_flags (int);
/* Handle -d switch. */
extern void decode_d_option (const char *);
+/* Handle -g switch. */
+extern void decode_g_option (const char *);
+
/* Return true iff flags are set as if -ffast-math. */
extern bool fast_math_flags_set_p (void);