aboutsummaryrefslogtreecommitdiff
path: root/gcc/opts.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/opts.h')
-rw-r--r--gcc/opts.h22
1 files changed, 17 insertions, 5 deletions
diff --git a/gcc/opts.h b/gcc/opts.h
index 758f8309abd..bc05ac97957 100644
--- a/gcc/opts.h
+++ b/gcc/opts.h
@@ -22,7 +22,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#define GCC_OPTS_H
/* Specifies how a switch's VAR_VALUE relates to its FLAG_VAR. */
-enum cl_var_cond {
+enum cl_var_type {
/* The switch is enabled when FLAG_VAR is nonzero. */
CLVC_BOOLEAN,
@@ -33,7 +33,11 @@ enum cl_var_cond {
CLVC_BIT_CLEAR,
/* The switch is enabled when VAR_VALUE is set in FLAG_VAR. */
- CLVC_BIT_SET
+ CLVC_BIT_SET,
+
+ /* The switch takes a string argument and FLAG_VAR points to that
+ argument. */
+ CLVC_STRING
};
struct cl_option
@@ -43,11 +47,19 @@ struct cl_option
unsigned short back_chain;
unsigned char opt_len;
unsigned int flags;
- int *flag_var;
- enum cl_var_cond var_cond;
+ void *flag_var;
+ enum cl_var_type var_type;
int var_value;
};
+/* Records that the state of an option consists of SIZE bytes starting
+ at DATA. DATA might point to CH in some cases. */
+struct cl_option_state {
+ const void *data;
+ size_t size;
+ char ch;
+};
+
extern const struct cl_option cl_options[];
extern const unsigned int cl_options_count;
extern const char *const lang_names[];
@@ -73,6 +85,6 @@ extern unsigned num_in_fnames;
extern void decode_options (unsigned int argc, const char **argv);
extern int option_enabled (int opt_idx);
-extern void print_filtered_help (unsigned int);
+extern bool get_option_state (int, struct cl_option_state *);
#endif