From 5457b64599c4fd4a544ec3fd5d552e5e6feeb0cf Mon Sep 17 00:00:00 2001 From: neil Date: Sat, 7 Jun 2003 11:10:46 +0000 Subject: * Makefile.in (OJBS, c-opts.o): Update. (c-options.c, c-options.h): Rename options.h and options.c. (options.h): Rename options_.h. (opts.o): New. * c-common.h (c_common_handle_option): Replace c_common_decode_option. (c_common_init_options): Update prototype. * c-lang.c (c_init_options): Update prototype. (LANG_HOOKS_HANDLE_OPTION): Override. (LANG_HOOKS_DECODE_OPTION): Drop. * c-opts.c: Include opts.h and options.h instead of c-options.h and c-options.c. (lang_flags): Move to file scope. (find_opt, c_common_decode_option): Remove. (CL_C, CL_OBJC, CL_CXX, CL_OBJCXX, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE): Move to opts.h. (missing_arg): Update prototype. (c_common_init_options): Update for new prototype. (c_common_handle_options): Filenames are passed as N_OPTS. * hooks.c (hook_int_void_0): New. * hooks.h (hook_int_void_0): New. * langhooks-def.h (LANG_HOOKS_INIT_OPTIONS): New default. (LANG_HOOKS_HANDLE_OPTION): Default to NULL for now. (LANG_HOOKS_INITIALIZER): Update. * langhooks.h (init_options): Update. (handle_option): New. * opts.c, opts.h: New files. * opts.sh: Update c file to include opts.h and options.h. * toplev.c: Include opts.h; change options.h to options_.h. (parse_options_and_default_flags): Get lang_mask, use handle_option for language-specific handling. * objc/objc-lang.c (LANG_HOOKS_DECODE_OPTON): Drop. (LANG_HOOKS_HANDLE_OPTION): Override. (objc_init_options): Update. ada: * misc.c (gnat_init_options): Update. cp: * cp-lang.c (LANG_HOOKS_DECODE_OPTON): Drop. (LANG_HOOKS_HANDLE_OPTION): Override. * cp-tree.h (cxx_init_options): Update. * lex.c (cxx_init_options): Update. f: * com.c (ffe_init_options): Update. java: * lang.c (java_init_options): Update. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@67584 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/langhooks.h | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'gcc/langhooks.h') diff --git a/gcc/langhooks.h b/gcc/langhooks.h index 70ad952b6f3..c3ec11ddbb3 100644 --- a/gcc/langhooks.h +++ b/gcc/langhooks.h @@ -199,8 +199,9 @@ struct lang_hooks size_t (*tree_size) PARAMS ((enum tree_code)); /* The first callback made to the front end, for simple - initialization needed before any calls to decode_option. */ - void (*init_options) PARAMS ((void)); + initialization needed before any calls to handle_option. Return + the language mask to filter the switch array with. */ + int (*init_options) PARAMS ((void)); /* Function called with an option vector as argument, to decode a single option (typically starting with -f or -W or +). It should @@ -209,9 +210,20 @@ struct lang_hooks option. If this function returns a negative number, then its absolute value is the number of command-line arguments used, but, in addition, no language-independent option processing should be - done for this option. */ + done for this option. Obsoleted by handle_option. */ int (*decode_option) PARAMS ((int, char **)); + /* Handle the switch CODE, which has real type enum opt_code from + options.h. If the switch takes an argument, it is passed in ARG + which points to permanent storage. The handler is resonsible for + checking whether ARG is NULL, which indicates that no argument + was in fact supplied. For -f and -W switches, VALUE is 1 or 0 + for the positive and negative forms respectively. + + Return 1 if the switch is valid, 0 if invalid, and -1 if it's + valid and should not be treated as language-independent too. */ + int (*handle_option) (size_t code, const char *arg, int value); + /* Called when all command line options have been parsed to allow further processing and initialization -- cgit v1.2.1