summaryrefslogtreecommitdiff
path: root/gcc/opts.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/opts.h')
-rw-r--r--gcc/opts.h26
1 files changed, 18 insertions, 8 deletions
diff --git a/gcc/opts.h b/gcc/opts.h
index 3723bdbf95b..0091fe0e9b2 100644
--- a/gcc/opts.h
+++ b/gcc/opts.h
@@ -36,6 +36,9 @@ enum cl_var_type {
/* The switch is enabled when VAR_VALUE is set in FLAG_VAR. */
CLVC_BIT_SET,
+ /* The switch is enabled when FLAG_VAR is less than HOST_WIDE_INT_M1U. */
+ CLVC_SIZE,
+
/* The switch takes a string argument and FLAG_VAR points to that
argument. */
CLVC_STRING,
@@ -70,7 +73,10 @@ struct cl_option
unsigned short back_chain;
/* Option length, not including initial '-'. */
unsigned char opt_len;
- /* Next option in a sequence marked with Negative, or -1 if none. */
+ /* Next option in a sequence marked with Negative, or -1 if none.
+ For a single option with both a negative and a positve form
+ (such as -Wall and -Wno-all), NEG_IDX is equal to the option's
+ own index (i.e., cl_options[IDX].neg_idx == IDX holds). */
int neg_index;
/* CL_* flags for this option. */
unsigned int flags;
@@ -102,6 +108,8 @@ struct cl_option
BOOL_BITFIELD cl_report : 1;
/* Deprecated option */
BOOL_BITFIELD cl_deprecated: 1;
+ /* Argument is an unsigned integer with an optional byte suffix. */
+ BOOL_BITFIELD cl_byte_size: 1;
/* Offset of field for this option in struct gcc_options, or
(unsigned short) -1 if none. */
unsigned short flag_var_offset;
@@ -247,7 +255,7 @@ struct cl_decoded_option
/* For a boolean option, 1 for the true case and 0 for the "no-"
case. For an unsigned integer option, the value of the
argument. 1 in all other cases. */
- int value;
+ HOST_WIDE_INT value;
/* Any flags describing errors detected in this option. */
int errors;
@@ -327,7 +335,7 @@ extern char *opts_concat (const char *first, ...);
extern struct obstack opts_obstack;
size_t find_opt (const char *input, unsigned int lang_mask);
-extern int integral_argument (const char *arg);
+extern HOST_WIDE_INT integral_argument (const char *arg, int * = NULL, bool = false);
extern bool enum_value_to_arg (const struct cl_enum_arg *enum_args,
const char **argp, int value,
unsigned int lang_mask);
@@ -359,16 +367,17 @@ extern bool get_option_state (struct gcc_options *, int,
struct cl_option_state *);
extern void set_option (struct gcc_options *opts,
struct gcc_options *opts_set,
- int opt_index, int value, const char *arg, int kind,
- location_t loc, diagnostic_context *dc);
+ int opt_index, HOST_WIDE_INT value, const char *arg,
+ int kind, location_t loc, diagnostic_context *dc);
extern void *option_flag_var (int opt_index, struct gcc_options *opts);
bool handle_generated_option (struct gcc_options *opts,
struct gcc_options *opts_set,
- size_t opt_index, const char *arg, int value,
+ size_t opt_index, const char *arg,
+ HOST_WIDE_INT value,
unsigned int lang_mask, int kind, location_t loc,
const struct cl_option_handlers *handlers,
bool generated_p, diagnostic_context *dc);
-void generate_option (size_t opt_index, const char *arg, int value,
+void generate_option (size_t opt_index, const char *arg, HOST_WIDE_INT value,
unsigned int lang_mask,
struct cl_decoded_option *decoded);
void generate_option_input_file (const char *file,
@@ -425,7 +434,8 @@ extern void set_struct_debug_option (struct gcc_options *opts,
location_t loc,
const char *value);
extern bool opt_enum_arg_to_value (size_t opt_index, const char *arg,
- int *value, unsigned int lang_mask);
+ int *value,
+ unsigned int lang_mask);
extern const struct sanitizer_opts_s
{