/* Specify which kind of debugging info to generate. */
extern enum debug_info_type write_symbols;
+/* Names of debug_info_type, for error messages. */
+extern const char *const debug_type_names[];
+
enum debug_info_level
{
DINFO_LEVEL_NONE, /* Write no debugging info. */
extern int quiet_flag;
-/* Print times taken by the various passes. -ftime-report. */
-
-extern int time_report;
-
/* Print memory still in use at end of compilation (which may have little
to do with peak memory consumption). -fmem-report. */
extern int flag_pic;
+/* Nonzero if we are compiling position independent code for executable.
+ 1 vs 2 for a target-dependent "small" or "large" mode. */
+
+extern int flag_pie;
+
+/* Nonzero if we are compiling code for a shared library, zero for
+ executable. */
+
+extern int flag_shlib;
+
/* Nonzero means generate extra code for exception handling and enable
exception handling. */
for PLUS / SUB / MULT. */
extern int flag_trapv;
+/* Nonzero if the signed arithmetic overflow should wrap around. */
+extern int flag_wrapv;
+
/* Value of the -G xx switch, and whether it was passed or not. */
-extern int g_switch_value;
+extern unsigned HOST_WIDE_INT g_switch_value;
extern int g_switch_set;
/* Values of the -falign-* flags: how much to align labels in code.
extern int flag_unit_at_a_time;
+/* 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