aboutsummaryrefslogtreecommitdiff
path: root/gcc/langhooks.h
diff options
context:
space:
mode:
authorNeil Booth <neil@daikokuya.co.uk>2003-06-07 11:10:46 +0000
committerNeil Booth <neil@gcc.gnu.org>2003-06-07 11:10:46 +0000
commit2772ef3ef33609dd64209323e9418a847685971a (patch)
tree924f51e62bf4028b92bc3030d4120771978f8a12 /gcc/langhooks.h
parentf6749ed8d3a382fa8815a1481937d17591c89891 (diff)
downloadgcc-2772ef3ef33609dd64209323e9418a847685971a.zip
gcc-2772ef3ef33609dd64209323e9418a847685971a.tar.gz
gcc-2772ef3ef33609dd64209323e9418a847685971a.tar.bz2
Makefile.in (OJBS, c-opts.o): Update.
* 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. From-SVN: r67584
Diffstat (limited to 'gcc/langhooks.h')
-rw-r--r--gcc/langhooks.h18
1 files changed, 15 insertions, 3 deletions
diff --git a/gcc/langhooks.h b/gcc/langhooks.h
index 70ad952..c3ec11d 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