aboutsummaryrefslogtreecommitdiff
path: root/gcc/opts.h
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2017-08-29 09:46:10 +0200
committerMartin Liska <marxin@gcc.gnu.org>2017-08-29 07:46:10 +0000
commit130fcab02f1fbb097fc52fc9a8892472e3fa0c6c (patch)
tree046ad3bcd18ba4f41c0aa0e8b5abc176198fc723 /gcc/opts.h
parentfaa5399be693b2cdea641b976156f0fc89fa10cf (diff)
downloadgcc-130fcab02f1fbb097fc52fc9a8892472e3fa0c6c.zip
gcc-130fcab02f1fbb097fc52fc9a8892472e3fa0c6c.tar.gz
gcc-130fcab02f1fbb097fc52fc9a8892472e3fa0c6c.tar.bz2
Fix --help=target (PR other/39851).
2017-08-29 Martin Liska <mliska@suse.cz> PR other/39851 * gcc.c (driver_handle_option): Add new argument. * opts-common.c (handle_option): Pass target_option_override_hook. * opts-global.c (lang_handle_option): Add new option. (set_default_handlers): Add new argument. (decode_options): Likewise. * opts.c (target_handle_option): Likewise. (common_handle_option): Call target_option_override_hook. * opts.h (struct cl_option_handler_func): Add hook for target option override. (struct cl_option_handlers): Likewise. (set_default_handlers): Add new argument. (decode_options): Likewise. (common_handle_option): Likewise. (target_handle_option): Likewise. * toplev.c (toplev::main): Pass targetm.target_option.override hook. 2017-08-29 Martin Liska <mliska@suse.cz> PR other/39851 * c-common.c (parse_optimize_options): Add argument to function call. * c-pragma.c (handle_pragma_diagnostic): Likewise. From-SVN: r251400
Diffstat (limited to 'gcc/opts.h')
-rw-r--r--gcc/opts.h18
1 files changed, 13 insertions, 5 deletions
diff --git a/gcc/opts.h b/gcc/opts.h
index 5599711..2774e2c 100644
--- a/gcc/opts.h
+++ b/gcc/opts.h
@@ -272,7 +272,8 @@ struct cl_option_handler_func
const struct cl_decoded_option *decoded,
unsigned int lang_mask, int kind, location_t loc,
const struct cl_option_handlers *handlers,
- diagnostic_context *dc);
+ diagnostic_context *dc,
+ void (*target_option_override_hook) (void));
/* The mask that must have some bit in common with the flags for the
option for this particular handler to be used. */
@@ -294,6 +295,9 @@ struct cl_option_handlers
void (*wrong_lang_callback) (const struct cl_decoded_option *decoded,
unsigned int lang_mask);
+ /* Target option override hook. */
+ void (*target_option_override_hook) (void);
+
/* The number of individual handlers. */
size_t num_handlers;
@@ -338,13 +342,15 @@ extern 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);
-extern void set_default_handlers (struct cl_option_handlers *handlers);
+extern void set_default_handlers (struct cl_option_handlers *handlers,
+ void (*target_option_override_hook) (void));
extern 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,
- diagnostic_context *dc);
+ diagnostic_context *dc,
+ void (*target_option_override_hook) (void));
extern int option_enabled (int opt_idx, void *opts);
extern bool get_option_state (struct gcc_options *, int,
struct cl_option_state *);
@@ -391,14 +397,16 @@ extern bool common_handle_option (struct gcc_options *opts,
unsigned int lang_mask, int kind,
location_t loc,
const struct cl_option_handlers *handlers,
- diagnostic_context *dc);
+ diagnostic_context *dc,
+ void (*target_option_override_hook) (void));
extern 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,
- diagnostic_context *dc);
+ diagnostic_context *dc,
+ void (*target_option_override_hook) (void));
extern void finish_options (struct gcc_options *opts,
struct gcc_options *opts_set,
location_t loc);