diff options
author | Joseph Myers <joseph@codesourcery.com> | 2010-07-27 10:59:51 +0100 |
---|---|---|
committer | Joseph Myers <jsm28@gcc.gnu.org> | 2010-07-27 10:59:51 +0100 |
commit | 7a9bf9a4e0fdbf96ac988e149941e24f13e97b8d (patch) | |
tree | cb22bfd268b7388c3f8e1f2942cb855aada62993 /gcc/fortran | |
parent | 42694189bdade115459859e898e0b78d1cdb033c (diff) | |
download | gcc-7a9bf9a4e0fdbf96ac988e149941e24f13e97b8d.zip gcc-7a9bf9a4e0fdbf96ac988e149941e24f13e97b8d.tar.gz gcc-7a9bf9a4e0fdbf96ac988e149941e24f13e97b8d.tar.bz2 |
langhooks-def.h (lhd_init_options, [...]): New.
* langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
(LANG_HOOKS_INIT_OPTIONS): Update default definition.
(LANG_HOOKS_INITIALIZER): Add new hooks.
* langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
* langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
and complain_wrong_lang_p. Update init_options prototype.
* c-objc-common.c (c_initialize_diagnostics): First call
c_common_initialize_diagnostics.
* c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
* coretypes.h (struct cl_option, struct cl_decoded_option):
Declare.
* hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
(hook_uint_void_0): New.
* hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
(hook_uint_void_0): New.
* opts-common.c (decode_cmdline_option,
decode_cmdline_options_to_array): Also fill in canonical_option
field.
* opts.c (complain_wrong_lang): Use langhook to determine whether
to complain instead of special-casing LTO.
(decode_options): Separate lang_mask determination with
option_lang_mask hook from call of init_options hook.
* opts.h (struct cl_decoded_option): Add canonical_option.
ada:
* gcc-interface/misc.c (gnat_option_lang_mask): New.
(gnat_init_options): Update prototype. Reconstruct argv array
from decoded options.
c-family:
* c-common.h (c_common_option_lang_mask,
c_common_initialize_diagnostics, c_common_complain_wrong_lang_p):
New.
(c_common_init_options): Update prototype.
* c-opts.c (c_common_option_lang_mask): New.
(c_common_initialize_diagnostics): Split out of
c_common_init_options.
(accept_all_c_family_options, c_common_complain_wrong_lang_p):
New.
(c_common_init_options): Update prototype. Use decoded options in
search for -lang-asm.
cp:
* cp-objcp-common.c (cxx_initialize_diagnostics): First call
c_common_initialize_diagnostics.
* cp-objcp-common.h (LANG_HOOKS_OPTION_LANG_MASK,
LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
fortran:
* cpp.c (gfc_cpp_init_options): Update prototype. Use number of
decoded options in allocating deferred_opt.
* cpp.h (gfc_cpp_init_options): Update prototype.
* f95-lang.c (LANG_HOOKS_OPTION_LANG_MASK): Define.
* gfortran.h (gfc_option_lang_mask): New.
(gfc_init_options): Update prototype.
* options.c (gfc_option_lang_mask): New.
(gfc_init_options): Update prototype. Pass new arguments to
gfc_cpp_init_options.
java:
* lang.c (java_option_lang_mask): New.
(java_init_options): Update prototype.
(LANG_HOOKS_OPTION_LANG_MASK): Define.
lto:
* lto-lang.c (lto_option_lang_mask, lto_complain_wrong_lang_p):
New.
(lto_init_options): Update prototype.
(LANG_HOOKS_OPTION_LANG_MASK, LANG_HOOKS_COMPLAIN_WRONG_LANG_P):
Define.
From-SVN: r162560
Diffstat (limited to 'gcc/fortran')
-rw-r--r-- | gcc/fortran/ChangeLog | 12 | ||||
-rw-r--r-- | gcc/fortran/cpp.c | 7 | ||||
-rw-r--r-- | gcc/fortran/cpp.h | 5 | ||||
-rw-r--r-- | gcc/fortran/f95-lang.c | 2 | ||||
-rw-r--r-- | gcc/fortran/gfortran.h | 4 | ||||
-rw-r--r-- | gcc/fortran/options.c | 18 |
6 files changed, 37 insertions, 11 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 7700e0b..dcff2b2 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,15 @@ +2010-07-27 Joseph Myers <joseph@codesourcery.com> + + * cpp.c (gfc_cpp_init_options): Update prototype. Use number of + decoded options in allocating deferred_opt. + * cpp.h (gfc_cpp_init_options): Update prototype. + * f95-lang.c (LANG_HOOKS_OPTION_LANG_MASK): Define. + * gfortran.h (gfc_option_lang_mask): New. + (gfc_init_options): Update prototype. + * options.c (gfc_option_lang_mask): New. + (gfc_init_options): Update prototype. Pass new arguments to + gfc_cpp_init_options. + 2010-07-26 Tobias Burnus <burnus@net-b.de> PR fortran/40873 diff --git a/gcc/fortran/cpp.c b/gcc/fortran/cpp.c index 7f960f5..b98d83f 100644 --- a/gcc/fortran/cpp.c +++ b/gcc/fortran/cpp.c @@ -304,8 +304,8 @@ gfc_cpp_temporary_file (void) } void -gfc_cpp_init_options (unsigned int argc, - const char **argv ATTRIBUTE_UNUSED) +gfc_cpp_init_options (unsigned int decoded_options_count, + struct cl_decoded_option *decoded_options ATTRIBUTE_UNUSED) { /* Do not create any objects from libcpp here. If no preprocessing is requested, this would be wasted @@ -337,7 +337,8 @@ gfc_cpp_init_options (unsigned int argc, gfc_cpp_option.prefix = NULL; gfc_cpp_option.sysroot = NULL; - gfc_cpp_option.deferred_opt = XNEWVEC (gfc_cpp_deferred_opt_t, argc); + gfc_cpp_option.deferred_opt = XNEWVEC (gfc_cpp_deferred_opt_t, + decoded_options_count); gfc_cpp_option.deferred_opt_count = 0; } diff --git a/gcc/fortran/cpp.h b/gcc/fortran/cpp.h index 556eecb..fa4383a 100644 --- a/gcc/fortran/cpp.h +++ b/gcc/fortran/cpp.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2008 Free Software Foundation, Inc. +/* Copyright (C) 2008, 2010 Free Software Foundation, Inc. This file is part of GCC. @@ -36,7 +36,8 @@ const char *gfc_cpp_temporary_file (void); void gfc_cpp_init_0 (void); void gfc_cpp_init (void); -void gfc_cpp_init_options (unsigned int argc, const char **argv); +void gfc_cpp_init_options (unsigned int decoded_options_count, + struct cl_decoded_option *decoded_options); int gfc_cpp_handle_option(size_t scode, const char *arg, int value); diff --git a/gcc/fortran/f95-lang.c b/gcc/fortran/f95-lang.c index 9d0bf44..70548bf 100644 --- a/gcc/fortran/f95-lang.c +++ b/gcc/fortran/f95-lang.c @@ -101,6 +101,7 @@ static void gfc_init_ts (void); #undef LANG_HOOKS_INIT #undef LANG_HOOKS_FINISH #undef LANG_HOOKS_WRITE_GLOBALS +#undef LANG_HOOKS_OPTION_LANG_MASK #undef LANG_HOOKS_INIT_OPTIONS #undef LANG_HOOKS_HANDLE_OPTION #undef LANG_HOOKS_POST_OPTIONS @@ -130,6 +131,7 @@ static void gfc_init_ts (void); #define LANG_HOOKS_INIT gfc_init #define LANG_HOOKS_FINISH gfc_finish #define LANG_HOOKS_WRITE_GLOBALS gfc_write_global_declarations +#define LANG_HOOKS_OPTION_LANG_MASK gfc_option_lang_mask #define LANG_HOOKS_INIT_OPTIONS gfc_init_options #define LANG_HOOKS_HANDLE_OPTION gfc_handle_option #define LANG_HOOKS_POST_OPTIONS gfc_post_options diff --git a/gcc/fortran/gfortran.h b/gcc/fortran/gfortran.h index bb056e2..f082d5e 100644 --- a/gcc/fortran/gfortran.h +++ b/gcc/fortran/gfortran.h @@ -2355,7 +2355,9 @@ void gfc_done_2 (void); int get_c_kind (const char *, CInteropKind_t *); /* options.c */ -unsigned int gfc_init_options (unsigned int, const char **); +unsigned int gfc_option_lang_mask (void); +void gfc_init_options (unsigned int, + struct cl_decoded_option *); int gfc_handle_option (size_t, const char *, int, int); bool gfc_post_options (const char **); diff --git a/gcc/fortran/options.c b/gcc/fortran/options.c index 5ba2544..337802e 100644 --- a/gcc/fortran/options.c +++ b/gcc/fortran/options.c @@ -53,11 +53,21 @@ set_default_std_flags (void) } +/* Return language mask for Fortran options. */ + +unsigned int +gfc_option_lang_mask (void) +{ + return CL_Fortran; +} + + /* Get ready for options handling. Keep in sync with libgfortran/runtime/compile_options.c (init_compile_options). */ -unsigned int -gfc_init_options (unsigned int argc, const char **argv) +void +gfc_init_options (unsigned int decoded_options_count, + struct cl_decoded_option *decoded_options) { gfc_source_file = NULL; gfc_option.module_dir = NULL; @@ -143,9 +153,7 @@ gfc_init_options (unsigned int argc, const char **argv) flag_short_enums = targetm.default_short_enums (); /* Initialize cpp-related options. */ - gfc_cpp_init_options(argc, argv); - - return CL_Fortran; + gfc_cpp_init_options (decoded_options_count, decoded_options); } |