23#include "rich-location.h"
162extern const struct cl_var cl_vars[];
167#define CL_PARAMS (1U << 16)
168#define CL_WARNING (1U << 17)
169#define CL_OPTIMIZATION (1U << 18)
170#define CL_DRIVER (1U << 19)
171#define CL_TARGET (1U << 20)
172#define CL_COMMON (1U << 21)
174#define CL_MIN_OPTION_CLASS CL_PARAMS
175#define CL_MAX_OPTION_CLASS CL_COMMON
182#define CL_JOINED (1U << 22)
183#define CL_SEPARATE (1U << 23)
184#define CL_UNDOCUMENTED (1U << 24)
185#define CL_NO_DWARF_RECORD (1U << 25)
186#define CL_PCH_IGNORE (1U << 26)
189#define CL_ENUM_CANONICAL (1 << 0)
190#define CL_ENUM_DRIVER_ONLY (1 << 1)
191#define CL_ENUM_SET_SHIFT 2
226 void (*
set) (
void *var,
int value);
229 int (*
get) (
const void *var);
239#define CL_ERR_DISABLED (1 << 0)
240#define CL_ERR_MISSING_ARG (1 << 1)
241#define CL_ERR_WRONG_LANG (1 << 2)
242#define CL_ERR_UINT_ARG (1 << 3)
243#define CL_ERR_INT_RANGE_ARG (1 << 4)
244#define CL_ERR_ENUM_ARG (1 << 5)
245#define CL_ERR_NEGATIVE (1 << 6)
248#define CL_ERR_ENUM_SET_ARG (1 << 7)
313 struct gcc_options *opts_set,
315 unsigned int lang_mask,
int kind, location_t loc,
318 void (*target_option_override_hook) (void));
338 unsigned int lang_mask);
369size_t find_opt (
const char *input,
unsigned int lang_mask);
372 const char **argp,
int value,
373 unsigned int lang_mask);
376 unsigned int lang_mask,
378 unsigned int *decoded_options_count);
381 struct gcc_options *opts_set);
386 unsigned int *decoded_options_count);
388 void (*target_option_override_hook) (
void));
390 struct gcc_options *opts_set,
392 unsigned int decoded_options_count,
395 void (*target_option_override_hook) (
void));
396extern int option_enabled (
int opt_idx,
unsigned lang_mask,
void *opts);
400extern void set_option (
struct gcc_options *opts,
401 struct gcc_options *opts_set,
402 size_t opt_index, HOST_WIDE_INT value,
const char *arg,
407 struct gcc_options *opts_set,
408 size_t opt_index,
const char *arg,
410 unsigned int lang_mask,
int kind, location_t loc,
413void generate_option (
size_t opt_index,
const char *arg, HOST_WIDE_INT value,
414 unsigned int lang_mask,
419 struct gcc_options *opts_set,
422 unsigned int lang_mask,
426 const char *arg,
bool imply, location_t loc,
427 unsigned int lang_mask,
429 struct gcc_options *opts,
430 struct gcc_options *opts_set,
441 struct gcc_options *opts_set,
443 unsigned int lang_mask,
int kind,
447 void (*target_option_override_hook) (
void));
449 struct gcc_options *opts_set,
451 unsigned int lang_mask,
int kind,
455 void (*target_option_override_hook) (
void));
457 struct gcc_options *opts_set,
461extern void print_help (
struct gcc_options *opts,
unsigned int lang_mask,
const
462 char *help_option_argument);
464 struct gcc_options *opts_set,
466 unsigned int decoded_options_count,
468 unsigned int lang_mask,
476 unsigned int lang_mask);
496 const char **out_new_prefix);
500 const char *base_option);
502 const auto_vec <const char *> &
513 HOST_WIDE_INT *patch_area_size,
514 HOST_WIDE_INT *patch_area_start);
522 unsigned int options_count);
525 unsigned int options_count);
529#define SET_OPTION_IF_UNSET(OPTS, OPTS_SET, OPTION, VALUE) \
532 if (!(OPTS_SET)->x_ ## OPTION) \
533 (OPTS)->x_ ## OPTION = VALUE; \
539#define OPTION_SET_P(OPTION) global_options_set.x_ ## OPTION
561#define SWITCH_LIVE (1 << 0)
562#define SWITCH_FALSE (1 << 1)
563#define SWITCH_IGNORE (1 << 2)
564#define SWITCH_IGNORE_PERMANENTLY (1 << 3)
565#define SWITCH_KEEP_FOR_GCC (1 << 4)
Definition diagnostics/context.h:253
uint64_t sanitize_code_type
Definition flag-types.h:354
static struct obstack obstack
Definition gcc.cc:364
static options_p option(options_p prev)
Definition gengtype-parse.cc:547
struct obstack opts_obstack
Definition opts-common.cc:987
unsigned num_in_fnames
Definition opts-global.cc:49
int opt_fstack_limit_register_no
Definition opts-global.cc:353
const char * opt_fstack_limit_symbol_arg
Definition opts-global.cc:352
const char ** in_fnames
Definition opts-global.cc:48
bool flag_stack_protector_set_by_fhardened_p
Definition opts.cc:48
const struct zero_call_used_regs_opts_s zero_call_used_regs_opts[]
Definition opts.cc:2179
const struct sanitizer_opts_s sanitizer_opts[]
Definition opts.cc:2130
vec< const char * > help_option_arguments
Definition opts.cc:991
const struct cl_option cl_options[]
cl_enum_var_value
Definition opts.h:58
@ CLEV_BITSET
Definition opts.h:66
@ CLEV_SET
Definition opts.h:63
@ CLEV_NORMAL
Definition opts.h:60
void set_option(struct gcc_options *opts, struct gcc_options *opts_set, size_t opt_index, HOST_WIDE_INT value, const char *arg, int kind, location_t loc, diagnostics::context *dc, HOST_WIDE_INT=0)
Definition opts-common.cc:1661
const unsigned int cl_enums_count
int option_enabled(int opt_idx, unsigned lang_mask, void *opts)
Definition opts-common.cc:1818
void handle_common_deferred_options(void)
Definition opts-global.cc:359
bool get_option_state(struct gcc_options *, int, struct cl_option_state *)
Definition opts-common.cc:1890
void finish_options(struct gcc_options *opts, struct gcc_options *opts_set, location_t loc)
Definition opts.cc:1070
void init_opts_obstack(void)
Definition opts.cc:427
const struct cl_enum cl_enums[]
HOST_WIDE_INT integral_argument(const char *arg, int *=NULL, bool=false)
Definition opts-common.cc:181
void diagnose_options(gcc_options *opts, gcc_options *opts_set, location_t loc)
Definition opts.cc:1507
size_t find_opt(const char *input, unsigned int lang_mask)
Definition opts-common.cc:77
void default_options_optimization(struct gcc_options *opts, struct gcc_options *opts_set, struct cl_decoded_option *decoded_options, unsigned int decoded_options_count, location_t loc, unsigned int lang_mask, const struct cl_option_handlers *handlers, diagnostics::context *dc)
Definition opts.cc:728
void decode_cmdline_options_to_array_default_mask(unsigned int argc, const char **argv, struct cl_decoded_option **decoded_options, unsigned int *decoded_options_count)
Definition opts-global.cc:279
void decode_options(struct gcc_options *opts, struct gcc_options *opts_set, struct cl_decoded_option *decoded_options, unsigned int decoded_options_count, location_t loc, diagnostics::context *dc, void(*target_option_override_hook)(void))
Definition opts-global.cc:312
void * option_flag_var(int opt_index, struct gcc_options *opts)
Definition opts-common.cc:1804
void generate_option_input_file(const char *file, struct cl_decoded_option *decoded)
Definition opts-common.cc:1389
void parse_and_check_patch_area(const char *arg, bool report_error, HOST_WIDE_INT *patch_area_size, HOST_WIDE_INT *patch_area_start)
Definition opts.cc:2506
bool handle_generated_option(struct gcc_options *opts, struct gcc_options *opts_set, 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, diagnostics::context *dc)
Definition opts-common.cc:1335
sanitize_code_type parse_no_sanitize_attribute(char *value)
Definition opts.cc:2383
void set_default_handlers(struct cl_option_handlers *handlers, void(*target_option_override_hook)(void))
Definition opts-global.cc:292
void add_misspelling_candidates(auto_vec< char * > *candidates, const struct cl_option *option, const char *base_option)
Definition opts-common.cc:515
bool opt_enum_arg_to_value(size_t opt_index, const char *arg, int *value, unsigned int lang_mask)
Definition opts-common.cc:325
const char *const lang_names[]
void prepend_xassembler_to_collect_as_options(const char *, obstack *)
Definition opts-common.cc:2072
cl_var_type
Definition opts.h:28
@ CLVC_BIT_CLEAR
Definition opts.h:36
@ CLVC_BIT_SET
Definition opts.h:39
@ CLVC_ENUM
Definition opts.h:50
@ CLVC_INTEGER
Definition opts.h:30
@ CLVC_DEFER
Definition opts.h:54
@ CLVC_EQUAL
Definition opts.h:33
@ CLVC_STRING
Definition opts.h:46
@ CLVC_SIZE
Definition opts.h:42
sanitize_code_type parse_sanitizer_options(const char *, location_t, int, sanitize_code_type, int, bool)
Definition opts.cc:2274
const unsigned int cl_lang_count
void handle_deferred_dump_options(void)
Definition opts-global.cc:507
void set_struct_debug_option(struct gcc_options *opts, location_t loc, const char *value)
Definition opts.cc:205
label_text get_option_url_suffix(int option_index, unsigned lang_mask)
Definition opts.cc:3816
void decode_cmdline_options_to_array(unsigned int argc, const char **argv, unsigned int lang_mask, struct cl_decoded_option **decoded_options, unsigned int *decoded_options_count)
Definition opts-common.cc:1029
const char * get_opt_url_suffix(int option_index, unsigned lang_mask)
char * gen_producer_string(const char *language_string, cl_decoded_option *options, unsigned int options_count)
Definition opts.cc:3984
bool target_handle_option(struct gcc_options *opts, struct gcc_options *opts_set, const struct cl_decoded_option *decoded, unsigned int lang_mask, int kind, location_t loc, const struct cl_option_handlers *handlers, diagnostics::context *dc, void(*target_option_override_hook)(void))
Definition opts.cc:365
const unsigned int cl_options_count
const char * get_option_prefix_remapping(const char *p, size_t sz, const char **out_new_prefix)
Definition opts-common.cc:477
void init_options_once(void)
Definition opts-global.cc:254
char * gen_command_line_string(cl_decoded_option *options, unsigned int options_count)
Definition opts.cc:3858
void init_options_struct(struct gcc_options *opts, struct gcc_options *opts_set)
Definition opts.cc:435
const char * candidates_list_and_hint(const char *arg, char *&str, const auto_vec< const char * > &candidates)
Definition opts-common.cc:1415
bool common_handle_option(struct gcc_options *opts, struct gcc_options *opts_set, const struct cl_decoded_option *decoded, unsigned int lang_mask, int kind, location_t loc, const struct cl_option_handlers *handlers, diagnostics::context *dc, void(*target_option_override_hook)(void))
Definition opts.cc:2707
void print_ignored_options(void)
Definition opts-global.cc:140
void control_warning_option(unsigned int opt_index, int kind, const char *arg, bool imply, location_t loc, unsigned int lang_mask, const struct cl_option_handlers *handlers, struct gcc_options *opts, struct gcc_options *opts_set, diagnostics::context *dc)
Definition opts-common.cc:1943
char * opts_concat(const char *first,...)
Definition opts-common.cc:992
void generate_option(size_t opt_index, const char *arg, HOST_WIDE_INT value, unsigned int lang_mask, struct cl_decoded_option *decoded)
Definition opts-common.cc:1354
void print_help(struct gcc_options *opts, unsigned int lang_mask, const char *help_option_argument)
Definition opts.cc:2565
char * write_langs(unsigned int mask)
Definition opts-global.cc:54
bool parse_and_check_align_values(const char *flag, const char *name, auto_vec< unsigned > &result_values, bool report_error, location_t loc)
Definition opts.cc:2436
bool enum_value_to_arg(const struct cl_enum_arg *enum_args, const char **argp, int value, unsigned int lang_mask)
Definition opts-common.cc:351
void parse_options_from_collect_gcc_options(const char *, obstack *, int *)
Definition opts-common.cc:2032
void read_cmdline_option(struct gcc_options *opts, struct gcc_options *opts_set, struct cl_decoded_option *decoded, location_t loc, unsigned int lang_mask, const struct cl_option_handlers *handlers, diagnostics::context *dc)
Definition opts-common.cc:1602
int errors
Definition opts.h:290
const char * arg
Definition opts.h:261
size_t canonical_option_num_elements
Definition opts.h:277
const char * canonical_option[4]
Definition opts.h:273
size_t opt_index
Definition opts.h:254
const char * orig_option_with_args_text
Definition opts.h:267
HOST_WIDE_INT value
Definition opts.h:283
const char * warn_message
Definition opts.h:257
HOST_WIDE_INT mask
Definition opts.h:287
size_t opt_index
Definition opts.h:300
HOST_WIDE_INT value
Definition opts.h:302
const char * arg
Definition opts.h:301
const char * arg
Definition opts.h:198
int value
Definition opts.h:201
unsigned int flags
Definition opts.h:204
const char * help
Definition opts.h:213
void(* set)(void *var, int value)
Definition opts.h:226
const struct cl_enum_arg * values
Definition opts.h:220
const char * unknown_error
Definition opts.h:217
int(* get)(const void *var)
Definition opts.h:229
size_t var_size
Definition opts.h:223
bool(* handler)(struct gcc_options *opts, struct gcc_options *opts_set, const struct cl_decoded_option *decoded, unsigned int lang_mask, int kind, location_t loc, const struct cl_option_handlers *handlers, diagnostics::context *dc, void(*target_option_override_hook)(void))
Definition opts.h:310
unsigned int mask
Definition opts.h:320
struct cl_option_handler_func handlers[3]
Definition opts.h:345
size_t num_handlers
Definition opts.h:342
void(* wrong_lang_callback)(const struct cl_decoded_option *decoded, unsigned int lang_mask)
Definition opts.h:335
void(* target_option_override_hook)(void)
Definition opts.h:339
bool(* unknown_option_callback)(const struct cl_decoded_option *decoded)
Definition opts.h:331
char ch
Definition opts.h:152
const void * data
Definition opts.h:150
size_t size
Definition opts.h:151
BOOL_BITFIELD cl_reject_driver
Definition opts.h:110
BOOL_BITFIELD cl_host_wide_int
Definition opts.h:118
unsigned short alias_target
Definition opts.h:84
unsigned short var_enum
Definition opts.h:128
BOOL_BITFIELD cl_reject_negative
Definition opts.h:112
unsigned short flag_var_offset
Definition opts.h:125
enum cl_var_type var_type
Definition opts.h:130
int range_max
Definition opts.h:136
const char * neg_alias_arg
Definition opts.h:82
BOOL_BITFIELD cl_no_driver_arg
Definition opts.h:108
const char * opt_text
Definition opts.h:72
int neg_index
Definition opts.h:94
BOOL_BITFIELD cl_tolower
Definition opts.h:120
BOOL_BITFIELD cl_missing_ok
Definition opts.h:114
BOOL_BITFIELD cl_separate_alias
Definition opts.h:104
HOST_WIDE_INT var_value
Definition opts.h:132
int range_min
Definition opts.h:134
const char * alias_arg
Definition opts.h:80
BOOL_BITFIELD cl_uinteger
Definition opts.h:116
const char * warn_message
Definition opts.h:78
BOOL_BITFIELD cl_byte_size
Definition opts.h:122
BOOL_BITFIELD cl_disabled
Definition opts.h:98
BOOL_BITFIELD cl_negative_alias
Definition opts.h:106
unsigned char opt_len
Definition opts.h:89
unsigned short back_chain
Definition opts.h:87
unsigned int cl_separate_nargs
Definition opts.h:102
unsigned int flags
Definition opts.h:96
const char * help
Definition opts.h:74
const char * missing_argument_error
Definition opts.h:76
const char * var_name
Definition opts.h:142
unsigned short var_offset
Definition opts.h:144
Definition gengtype.h:179
bool can_recover
Definition opts.h:481
sanitize_code_type flag
Definition opts.h:479
bool can_trap
Definition opts.h:482
const char *const name
Definition opts.h:478
size_t len
Definition opts.h:480
unsigned int live_cond
Definition opts.h:569
const char ** args
Definition opts.h:568
bool validated
Definition opts.h:571
bool ordering
Definition opts.h:572
const char * part1
Definition opts.h:567
bool known
Definition opts.h:570
const char *const name
Definition opts.h:487
unsigned int flag
Definition opts.h:488
#define NULL
Definition system.h:50
#define BOOL_BITFIELD
Definition system.h:896
#define bool
Definition system.h:886
static hash_table< uid_decl_hasher > * candidates
Definition tree-sra.cc:321