Commit Graph

175 Commits

Author SHA1 Message Date
Tobias Burnus
6d7f7e0a63 invoke.texi (-fopenmp-simd): Document new option.
2013-11-05  Tobias Burnus  <burnus@net-b.de>

gcc/
        * doc/invoke.texi (-fopenmp-simd): Document new option.
        * gimplify.c (gimplify_body): Accept -fopenmp-simd.
        * omp-low.c (execute_expand_omp, execute_lower_omp): Ditto.
        * tree.c (attribute_value_equal): Ditto.

gcc/fortran/
        * lang.opt (fopenmp-simd): New option.
        * gfortran.h (gfc_option_t): Add gfc_flag_openmp_simd.
        * options.c (gfc_handle_option): Handle it.

gcc/c-family/
        * c.opt (fopenmp-simd): New option.
        * c-pragma.c (omp_pragmas): Move pragmas which can contain simd
        * to ...
        (omp_pragmas): ... this new struct.
        (c_pp_lookup_pragma): Also walk omp_pragmas.
        (init_pragma): Init pragmas for -fopenmp-simd.

gcc/c
        * c-parser.c (c_parser_omp_for, c_parser_omp_parallel,
        c_parser_omp_distribute, c_parser_omp_teams,
        c_parser_omp_target, c_parser_omp_declare): Handle
        -fopenmp-simd.

gcc/cp
        * parser.c (cp_parser_omp_for, cp_parser_omp_parallel,
        cp_parser_omp_distribute, cp_parser_omp_teams,
cp_parser_omp_target,
        cp_parser_omp_declare): Handle
        -fopenmp-simd.

gcc/testsuite/
        * g++.dg/gomp/openmp-simd-1.C: New.
        * g++.dg/gomp/openmp-simd-2.C: New.
        * gcc.dg/gomp/openmp-simd-1.c: New.
        * gcc.dg/gomp/openmp-simd-2.c: New.

From-SVN: r204382
2013-11-05 08:29:47 +01:00
Tobias Burnus
58b2a35853 re PR fortran/58226 (negative subscript pos at fortran/options.c:1205)
2013-10-09  Tobias Burnus  <burnus@net-b.de>

        PR fortran/58226
        * options.c (gfc_get_option_string): Handle zero arg case.

From-SVN: r203394
2013-10-10 21:32:22 +02:00
Thomas Koenig
0e533e5078 re PR fortran/56666 (Suppression flag for " DO loop at (1) will be executed zero times")
2013-08-12  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/56666
	* gfortran.h (gfc_option_t):  Add warn_zerotrip.
	* invoke.texi (-Wzerotrip):  Document option.
	* lang.opt (Wzerotrip):  Add.
	* options.c (gfc_init_options):  Initialize warn_zerotrip.
	(set_Wall): Add handling of warn_zerotrip.
	(gfc_handle_option):  Handle OPT_Wzerotrip.
	* resolve.c (gfc_resolve_iterator): Honor
	gfc_option.warn_zerotrip; update error message to show
	how to suppress the warning.

2013-08-12  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/56666
	* gfortran.dg/do_check_10.f90:  New test.
	* gfortran.dg/array_constructor_11.f90:  Add -Wzerotrip to dg-options.
	* gfortran.dg/array_constructor_18.f90:  Likewise.
	* gfortran.dg/array_constructor_22.f90:  Likewise.
	* gfortran.dg/coarray_15.f90:  Likewise.
	* gfortran.dg/do_1.f90:  Add -Wall to dg-options.
	* gfortran.dg/do_3.F90:  Add -Wzerotrip to dg-options.
	* gfortran.dg/do_check_5.f90:  Add -Wall to gd-options.

From-SVN: r201658
2013-08-12 05:50:03 +00:00
Tobias Burnus
fa86f4f917 gfortran.h (gfc_option_t): Add fpe_summary.
2013-06-17  Tobias Burnus  <burnus@net-b.de>

        * gfortran.h (gfc_option_t): Add fpe_summary.
        * gfortran.texi (_gfortran_set_options): Update.
        * invoke.texi (-ffpe-summary): Add doc.
        * lang.opt (ffpe-summary): Add flag.
        * options.c (gfc_init_options, gfc_handle_option): Handle it.
        (gfc_handle_fpe_option): Renamed from gfc_handle_fpe_trap_option,
        also handle fpe_summary.
        * trans-decl.c (create_main_function): Update
        _gfortran_set_options call.

2013-06-17  Tobias Burnus  <burnus@net-b.de>

        * libgfortran.h (compile_options_t) Add fpe_summary.
        (get_fpu_except_flags): New prototype.
        * runtime/compile_options.c (set_options, init_compile_options):
        Handle fpe_summary.
        * runtime/stop.c (report_exception): New function.
        (stop_numeric, stop_numeric_f08, stop_string, error_stop_string,
        error_stop_numeric): Call it.
        * config/fpu-387.h (get_fpu_except_flags): New function.
        * config/fpu-aix.h (get_fpu_except_flags): New function.
        * config/fpu-generic.h (get_fpu_except_flags): New function.
        * config/fpu-glibc.h (get_fpu_except_flags): New function.
        * config/fpu-glibc.h (get_fpu_except_flags): New function.
        * configure.ac: Check for fpxcp.h.
        * configure: Regenerate.
        * config.h.in: Regenerate.

From-SVN: r200147
2013-06-17 09:48:21 +02:00
Tobias Burnus
9fa5223135 gfortran.h (gfc_option_t): Remove flag_whole_file.
2013-03-18  Tobias Burnus  <burnus@net-b.de>

        * gfortran.h (gfc_option_t): Remove flag_whole_file.
        * invoke.texi (-fno-whole-file): Remove.
        * lang.opt (fwhole-file): Change to Ignore.
        * options.c (gfc_init_options, gfc_post_options,
        gfc_handle_option): Remove !flag_whole_file handling
        * parse.c (resolve_all_program_units,
        * translate_all_program_units,
        gfc_parse_file): Ditto.
        * resolve.c (resolve_global_procedure): Ditto.
        * trans-decl.c (gfc_get_symbol_decl,
        * gfc_get_extern_function_decl,
        gfc_create_module_variable): Ditto.
        * trans-types.c (gfc_get_derived_type): Ditto.

From-SVN: r196773
2013-03-18 10:50:23 +01:00
Thomas Koenig
308f961b9b re PR fortran/56224 (gfortran -fopenmp cannot find omp_lib.h)
2013-02-14  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/56224
	* gfortran.h (gfc_add_include_path):  Add boolean argument
	for warn.
	* scanner.c (gfc_add_include_path):  Pass along warn argument
	to add_path_to_list.
	* options.c (gfc_post_options):  Add true warn argument to
	gfc_add_include_path.
	(gfc_handle_module_path_options):  Likewise.
	(gfc_handle_option): Also gfc_add_include_path for intrinsic
	modules, without warning.

From-SVN: r196058
2013-02-14 22:13:26 +00:00
Jakub Jelinek
f34dea0300 re PR driver/55884 (FAIL: libgomp.fortran/omp_parse3.f90 -O0 (test for excess errors))
gcc/fortran/
2013-01-16  Jakub Jelinek  <jakub@redhat.com>
            Tobias Burnus  <burnus@net-b.de>

        PR driver/55884
        * lang.opt (fintrinsic-modules-path): Don't accept Joined.
        (fintrinsic-modules-path=): New.
        * options.c (gfc_handle_option, gfc_get_option_string,
        gfc_get_option_string): Handle the latter.

libgomp/
2013-01-16  Jakub Jelinek  <jakub@redhat.com>
            Tobias Burnus  <burnus@net-b.de>

        PR driver/55884
        * testsuite/libgomp.fortran/fortran.exp: Use
        -fintrinsic-modules-path= instead of
        -fintrinsic-modules-path.


Co-Authored-By: Tobias Burnus <burnus@net-b.de>

From-SVN: r195242
2013-01-16 17:19:32 +01:00
Richard Sandiford
d1e082c2c2 Update copyright years in gcc/
From-SVN: r195098
2013-01-10 20:38:27 +00:00
Manuel López-Ibáñez
34a180a642 re PR c/53063 (encode group options in the .opt files)
c-family/
2012-11-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/53063
	* c.opt(Warray-bounds,Wdelete-non-virtual-dtor,Wenum-compare,
	Wmain,Woverlength-strings, Wunknown-pragmas,Wunused-macros):
	Use LangEnabledBy.
	(Wswitch,Wswitch-default,Wswitch-enum): Likewise. Move here from
	common.opt.
	(Wvariadic-macros): Init(1).
	* c-opts.c (c_common_handle_option): Do not handle them
	explicitly.
	(c_common_post_options): Likewise.
	(sanitize_cpp_opts): warn_unused_macros is now
	cpp_warn_unused_macros.
	(push_command_line_include): Likewise.
	* c-common.c (warn_unknown_pragmas): Do not define.
	* c-common.h (warn_unknown_pragmas): Do not declare.
gcc/
2012-11-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/53063
	* common.opt (Wswitch,Wswitch-default,Wswitch-enum): Move to c.opt.
fortran/
2012-11-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/53063
	* options.c (set_Wall): Do not set warn_switch here.

From-SVN: r193302
2012-11-07 17:54:11 +00:00
Thomas Koenig
72ac1c070c re PR fortran/54465 (Implement -Wextra for Fortran)
2012-10-21  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/54465
	* lang.opt (Wextra):  Add.
	* invoke.texi:  Document that -Wc-binding-type, -Wconversion
	and -Wline-truncation are implied by -Wall.  Document that
	-Wcompare-reals is implied by -Wextra.  Document -Wextra.
	* options.c (set_Wextra):  New function.
	(gfc_handle_option):  Handle -Wextra.

2012-10-21  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/54465
	* gfortran.dg/wextra_1.f:  New test.

From-SVN: r192649
2012-10-21 10:32:02 +00:00
Tobias Burnus
e9b490008e options.c (set_Wall): Don't set for -Wcompare-reals.
2012-08-27  Tobias Burnus  <burnus@net-b.de>

        * options.c (set_Wall): Don't set for -Wcompare-reals.
        * invoke.texi (-Wall, -Wcompare-reals): -Wall no longer
        implies -Wcompare-reals.

2012-08-27  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/bessel_5.f90: Remove -Wno-compare-reals
        from dg-options as -Wall no longer implies it.

From-SVN: r190707
2012-08-27 10:20:59 +02:00
Tobias Burnus
f657024b85 re PR fortran/54301 (Add optional warning if pointer assigning a local variable to a nonlocal pointer)
2012-08-20  Tobias Burnus  <burnus@net-b.de>

        PR fortran/54301
        * expr.c (gfc_check_pointer_assign): Warn when the pointer
        might outlive its target.
        * gfortran.h (struct gfc_option_t): Add warn_target_lifetime.
        * options.c (gfc_init_options, set_wall, gfc_handle_option):
        handle it.
        * invoke.texi (-Wtarget-lifetime): Document it.
        (-Wall): Implied it.
        * lang.opt (-Wtarget-lifetime): New flag.

2012-08-20  Tobias Burnus  <burnus@net-b.de>

        PR fortran/54301
        * gfortran.dg/warn_target_lifetime_1.f90: New.

From-SVN: r190522
2012-08-20 07:47:46 +02:00
Thomas Koenig
cf21551eac re PR fortran/54298 (Add warning when doing equal/nonequal floating-point comparisons)
2012-08-19  Thomas König  <tkoenig@gcc.gnu.org>

	PR fortran/54298
	* gfortran.h (struct gfc_option_t): Add warn_compare_reals.
	* lang.opt:  Add Wcompare-reals.
	* invoke.texi:  Document -Wcompare-reals.
	* resolve.c (resolve_operator):  If -Wcompare-reals is in effect,
	warn about equality/inequality comparisions for REAL and COMPLEX.
	* options.c (gfc_init_options):  Set warn_compare_reals.
	(set_Wall):  Include warn_compare_reals in Wall.
	(gfc_handle_option):  Handle Wcompare_reals.

2012-08-19  Thomas König  <tkoenig@gcc.gnu.org>

	PR fortran/54298
	* gfortran.dg/real_compare_1.f90:  New test case.
	* gfortran.dg/bessel_5.f90  Add -Wno-compare-reals to options.

From-SVN: r190516
2012-08-19 15:05:41 +00:00
Thomas Koenig
57bdf399d4 Fix PR 54033, problems with -I, with test cases
PR fortran/54033
	 * scanner.c (add_path_to_list):  New argument warn.  Don't
	 warn if it is true.
	 (gfc_add_include_path):  Warn if directory is missing.
	 (gfc_add_intrinsic_modules_path):  Do not warn if directory
	 is missing.
	 * optinons.c (gfc_handle_option):  Do not add directory
	 for intrinsic modules to normal include path.

From-SVN: r190144
2012-08-04 11:26:56 -07:00
Manuel López-Ibáñez
f2bc201f53 re PR c/53063 (encode group options in the .opt files)
2012-05-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR 53063
c-family/
	* c.opt (Wc++0X-compat,Wdelete-non-virtual-dtor,Wjump-misses-init,
	Wreorder): Use LangEnabledBy.
	* c-opts.c (c_common_handle_option): Do not enable them
	explicitly. Call lang-specific generated functions.
	(c_common_post_options): Do not set them here.
gcc/
	* doc/options.texi: (LangEnabledBy): Document it.
	* optc-gen.awk: Handle LangEnabledBy.
	* opth-gen.awk: Generate declaration for lang-specific functions.
	* opt-read.awk: Record lang numbers.
	* opt-functions.awk (flag_set_p): Ignore the arguments of flags.
	(lang_sanitized_name): New.
ada/
	* gcc-interface/misc.c: Include opts.h and options.h before tm.h.
	(gnat_handle_option): Call lang-specific generated function.
fortran/
	* options.c (gfc_handle_option): Call lang-specific generated function.

From-SVN: r187462
2012-05-14 13:30:32 +00:00
Manuel López-Ibáñez
7d5a5747fc re PR c/53063 (encode group options in the .opt files)
2012-05-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR 53063
gcc/
	* doc/options.texi (EnabledBy): Document
	* opts.c: Include opts.h and options.h before tm.h.
	(finish_options): Do not handle some sub-options here...
	(common_handle_option): ... instead call common_handle_option_auto here.
	* optc-gen.awk: Handle EnabledBy.
	* opth-gen.awk: Declare common_handle_option_auto.
	* common.opt (Wuninitialized): Use EnabledBy. Delete Init.
	(Wmaybe-uninitialized): Likewise.
        (Wunused-but-set-variable): Likewise.
        (Wunused-function): Likewise.
        (Wunused-label): Likewise.
        (Wunused-value): Likewise.
        (Wunused-variable): Likewise.
        * opt-read.awk: Create opt_numbers array.
ada/
	* gcc-interface/misc.c (gnat_parse_file): Move before ...
	(gnat_handle_option): ... this. Use handle_generated_option.
c-family/
	* c-opts.c (c_common_handle_option): Use handle_generated_option
	to enable sub-options.
fortran/
	* options.c: Include diagnostics.h instead of
	diagnostics-core.h.
	(set_Wall): Do not see warn_unused here.
	(gfc_handle_option): Set it here using handle_generated_option.

From-SVN: r187403
2012-05-11 12:23:50 +00:00
Tobias Burnus
f1fb11f1e8 re PR fortran/52196 (Add -Wrealloc-lhs)
2012-04-25  Tobias Burnus  <burnus@net-b.de>

        PR fortran/52196
        * lang.opt (Wrealloc-lhs, Wrealloc-lhs-all): New flags.
        * gfortran.h (gfc_option_t): Add them.
        * options.c (gfc_init_options, gfc_post_options,
        gfc_handle_option): Handle them.
        * invoke.texi: Document them.
        * trans-expr.c (realloc_lhs_warning): New function.
        (gfc_trans_arrayfunc_assign,
        alloc_scalar_allocatable_for_assignment,
        gfc_trans_assignment_1): Use it.

2012-04-25  Tobias Burnus  <burnus@net-b.de>

        PR fortran/52196
        * gfortran.dg/realloc_on_assign_14.f90: New.

From-SVN: r186806
2012-04-25 08:25:48 +02:00
Tobias Burnus
0e19363724 lang.opt (Wc-binding-type): New flag.
2012-03-03  Tobias Burnus  <burnus@net-b.de>

        * lang.opt (Wc-binding-type): New flag.
        * options.c (gfc_init_options, gfc_handle_option): Handle it.
        * invoke.texi (Wc-binding-type): Document it.
        * gfortran.h (gfc_option_t): Add warn_c_binding_type.
        * decl.c (verify_bind_c_sym): Handle -Wc-binding-type.
        * symbol.c (gfc_set_default_type, verify_bind_c_derived_type):
        Ditto.

2012-03-03  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/bind_c_dts_4.f03: Add dg-options -Wc-binding-type.
        * gfortran.dg/bind_c_implicit_vars.f03: Ditto.
        * gfortran.dg/bind_c_usage_8.f03: Ditto.
        * gfortran.dg/c_kind_tests_2.f03: Ditto.
        * gfortran.dg/class_30.f90: Remove dg-warning line.
        * gfortran.dg/bind_c_usage_25.f90: New.

From-SVN: r184858
2012-03-03 17:09:18 +01:00
Zydrunas Gimbutas
f434733449 re PR fortran/48426 ([patch] Quad precision promotion)
2012-01-16  Zydrunas Gimbutas  <gimbutas@cims.nyu.edu>
	    Andreas Kloeckner  <kloeckner@cims.nyu.edu>
	    Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/48426
	* gfortran.h (gfc_option_t): Add members flag_*_kind to store kind.
	* lang.opt: Add options -freal-4-real-8, -freal-4-real-10,
	-freal-4-real-16, -freal-8-real-4, -freal-8-real-10, -freal-8-real-16
	and -finteger-4-integer-8. User-desired type conversion information.
	* decl.c (gfc_match_old_kind_spec,kind_expr): Type conversions
	in declaration parsing.
	* trans-types.c (gfc_init_kinds): User-specified type conversion
	checked for current backend.
	* primary.c (match_integer_constant,match_real_constant): Implement
	type conversion in constant parsing.
	* options.c (gfc_init_options,gfc_handle_option): Translate input
	options to flags in internal options data structure.
	* invoke.texi: Document new options.  Re-order options in Options
	summary section.

From-SVN: r183217
2012-01-16 18:22:16 +00:00
Tobias Burnus
4650947d66 gfortran.texi (Fortran 2008 status, [...]): Update implementation status, change references from TR 29113 to TS 29113.
2011-10-15  Tobias Burnus  <burnus@net-b.de>

        * gfortran.texi (Fortran 2008 status, TS 29113 status,
        Further Interoperability of Fortran with C): Update implementation
        status, change references from TR 29113 to TS 29113.
        * intrinsic.texi (RANK): Change TR 29113 to TS 29113.
        * invoke.text (-std=): Ditto, change -std=f2008tr to
        * -std=f2008ts.
        * lang.opt (std=): Ditto.
        * options.c (gfc_handle_option, set_default_std_flags): Ditto
        * and
        change GFC_STD_F2008_TR to GFC_STD_F2008_TS.
        * libgfortran.h: Ditto.
        * intrinsic.c (add_functions, gfc_check_intrinsic_standard):
        * Ditto.
        * decl.c (verify_c_interop_param): Ditto.

2011-10-15  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/bind_c_usage_23.f90: Change TR 29113 to TS 29113
        * in
        the comments.
        * gfortran.dg/bind_c_usage_24.f90: Ditto.
        * gfortran.dg/rank_3.f90: Ditto.
        * gfortran.dg/bind_c_usage_22.f90: Ditto, change -std=f2008tr to
        -std=f2008ts in dg-options.
        * gfortran.dg/rank_4.f90: Ditto.

From-SVN: r180024
2011-10-15 10:34:36 +02:00
Janne Blomqvist
57b4d355a1 Clarify FP exception documentation and messages
From-SVN: r173944
2011-05-20 15:55:45 +03:00
Tobias Burnus
2d8c9ad5c9 invoke.texi (-Ofast): Also enables -fstack-arrays.
2011-05-14  Tobias Burnus  <burnus@net-b.de>

        * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.

2011-05-14  Tobias Burnus  <burnus@net-b.de>

        * options.c (gfc_init_options, gfc_post_options): Enable
        -fstack-arrays by default if -Ofast is used.
        * invoke.texi (-fstack-arrays): Document this.

From-SVN: r173751
2011-05-14 11:39:38 +02:00
Janne Blomqvist
de8bd1420e PR 48915 Abort handling
From-SVN: r173750
2011-05-14 11:44:09 +03:00
Tobias Burnus
2e8d9212da re PR fortran/48858 (Incorrect error for same binding label on two generic interface specifics)
2011-05-06  Tobias Burnus  <burnus@net-b.de>

        PR fortran/48858
        PR fortran/48820
        * lang.opt (std=f2008tr): New.
        * libgfortran.h (GFC_STD_F2008_TR): New macro constant.
        * decl.c (verify_c_interop_param): Allow OPTIONAL in BIND(C)
        procedures for -std=f2008tr/gnu/legacy.

2011-05-06  Tobias Burnus  <burnus@net-b.de>

        PR fortran/48858
        PR fortran/48820
        * gfortran.dg/bind_c_usage_22.f90: New.
        * gfortran.dg/bind_c_usage_23.f90: New.
        * gfortran.dg/bind_c_usage_24.f90: New.
        * gfortran.dg/bind_c_usage_24_c.c: New.

From-SVN: r173500
2011-05-06 20:12:25 +02:00
Tobias Burnus
7a99464652 re PR fortran/48864 (-Ofast should imply -fno-protect-parens)
gcc/
2011-05-04  Tobias Burnus  <burnus@net-b.de>

        PR fortran/48864
        * doc/invoke.texi (Ofast): Document that it
        enables Fortran's -fno-protect-parens.

gcc/fortran
2011-05-04  Tobias Burnus  <burnus@net-b.de>

        PR fortran/48864
        * invoke.texi (fno-protect-parens): Document
        that -Ofast implies -fno-protect-parens.
        * options.c (gfc_init_options, gfc_post_options):
        Make -Ofast imply -fno-protect-parens.

From-SVN: r173385
2011-05-04 19:10:15 +02:00
Steven G. Kargl
5a17346ae5 re PR fortran/48720 (quad precision literals do not work)
2011-05-02  Steven G. Kargl  <kargl@gcc.gnu.org>

    PR fortran/48720
    * gfortran.texi: Document the 'Q' exponent-letter extension.
    * invoke.texi: Document -Wreal-q-constant.
    * lang.opt: Add -Wreal-q-constant option.
    * gfortran.h: Add warn_real_q_constant to option struct.
    * primary.c (match_real_constant):  Use it.  Accept 'Q' as
    exponent-letter for REAL(16) real-literal-constant with a
    fallback to REAL(10) or error if REAL(10) is not available.
    * options.c (gfc_init_options, set_Wall) Set it.
    (gfc_handle_option): Handle new option.

From-SVN: r173285
2011-05-03 01:23:46 +00:00
Michael Matz
fa5e5a764f misc.c (gnat_handle_option): Set warn_maybe_uninitialized.
ada/
	* gcc-interface/misc.c (gnat_handle_option): Set
	warn_maybe_uninitialized.

fortran/
	* options.c (options.c): Set warn_maybe_uninitialized.

From-SVN: r173154
2011-04-29 12:23:46 +00:00
Janne Blomqvist
93acb62caa Replace gfc_getmem with XCNEW, XCNEWVEC or xcalloc
From-SVN: r172728
2011-04-19 20:42:51 +03:00
Jim Meyering
cede950232 convert each use of gfc_free (p) to free (p)
Do that by running this command:
  perl -pi -e    's/\bgfc_free ?\(/free (/' \
    $(git grep -El '\bgfc_free ?\(')
which also corrects the few uses that lacked a space between
the function name and the open parenthesis.
Manually undo the change to the function definition itself
and its prototype.  They'll be removed next.
* array.c (gfc_free_array_spec, gfc_set_array_spec): s/gfc_free/free/
* constructor.c (node_free): Likewise.
* cpp.c (dump_queued_macros): Likewise.
* data.c (gfc_assign_data_value): Likewise.
* decl.c (free_variable, free_value, gfc_free_data): Likewise.
(gfc_free_data_all, match_old_style_init): Likewise.
(gfc_set_constant_character_len, gfc_free_enum_history, NUM_DECL):
Likewise.
(gfc_match_modproc): Likewise.
* dependency.c (check_section_vs_section): Likewise.
* error.c (gfc_pop_error, gfc_free_error): Likewise.
* expr.c (free_expr0, gfc_free_expr, gfc_free_actual_arglist): Likewise.
(gfc_free_ref_list, gfc_replace_expr, gfc_copy_ref): Likewise.
(find_substring_ref, gfc_simplify_expr, gfc_check_assign_symbol):
Likewise.
* frontend-passes.c (gfc_run_passes, cfe_expr_0): Likewise.
(strip_function_call, optimize_comparison): Likewise.
* interface.c (gfc_free_interface, arginfo, check_interface0): Likewise.
(CHECK_OS_COMPARISON, gfc_extend_assign, gfc_free_formal_arglist):
Likewise.
* intrinsic.c (gfc_intrinsic_done_1, gfc_convert_type_warn): Likewise.
(gfc_convert_chartype): Likewise.
* io.c (gfc_free_open, compare_to_allowed_values, gfc_free_close):
Likewise.
(gfc_free_filepos, gfc_free_dt, gfc_free_inquire): Likewise.
* match.c (gfc_free_iterator, gfc_match_associate): Likewise.
(gfc_free_alloc_list, gfc_free_namelist, gfc_free_equiv_until):
Likewise.
(free_case, gfc_free_forall_iterator): Likewise.
* misc.c: Likewise.
* module.c (free_pi_tree, resolve_fixups, free_rename): Likewise.
(free_true_name, peek_atom, mio_allocated_wide_string): Likewise.
(mio_pool_string, mio_internal_string, mio_gmp_integer): Likewise.
(mio_gmp_real, mio_expr, mio_typebound_proc): Likewise.
(mio_full_typebound_tree, skip_list, load_equiv): Likewise.
(free_written_common, gfc_use_module, gfc_free_use_stmts): Likewise.
* openmp.c (gfc_free_omp_clauses): Likewise.
* options.c (gfc_post_options): Likewise.
* parse.c (select_type_pop, parse_omp_structured_block): Likewise.
* primary.c (gfc_free_structure_ctor_component): Likewise.
* resolve.c (resolve_structure_cons, check_host_association): Likewise.
(gfc_resolve_forall, resolve_equivalence): Likewise.
* scanner.c (gfc_scanner_done_1, gfc_release_include_path): Likewise.
(gfc_define_undef_line, preprocessor_line, include_line): Likewise.
(load_file, gfc_read_orig_filename): Likewise.
* simplify.c (simplify_transformation_to_array): Likewise.
(gfc_simplify_ibits, simplify_shift, gfc_simplify_ishftc, STRING):
Likewise.
(gfc_simplify_compiler_options): Likewise.
* st.c (gfc_free_statement, gfc_free_statements): Likewise.
(gfc_free_association_list): Likewise.
* symbol.c (free_components, gfc_free_st_label, free_st_labels):
Likewise.
(gfc_delete_symtree, gfc_free_symbol, gfc_undo_symbols): Likewise.
(free_old_symbol, gfc_commit_symbols, free_tb_tree): Likewise.
(free_common_tree, free_uop_tree, free_sym_tree): Likewise.
(gfc_free_dt_list, gfc_free_equiv_infos, gfc_free_equiv_lists):
Likewise.
(gfc_free_finalizer, gfc_free_charlen, free_entry_list): Likewise.
(gfc_free_namespace): Likewise.
* trans-array.c (gfc_free_ss, gfc_trans_array_bound_check): Likewise.
(gfc_conv_array_ref, gfc_conv_ss_startstride): Likewise.
(gfc_trans_dummy_array_bias, gfc_conv_array_parameter): Likewise.
* trans-common.c (get_init_field, create_common): Likewise.
* trans-const.c (gfc_build_wide_string_const): Likewise.
(gfc_conv_string_init): Likewise.
* trans-decl.c (gfc_generate_function_code): Likewise.
* trans-expr.c (gfc_conv_substring, gfc_free_interface_mapping):
Likewise.
(SCALAR_POINTER, gfc_conv_statement_function): Likewise.
(gfc_trans_subarray_assign): Likewise.
* trans-intrinsic.c (conv_generic_with_optional_char_arg): Likewise.
* trans-io.c (gfc_trans_io_runtime_check, set_string): Likewise.
(transfer_namelist_element, transfer_array_component): Likewise.
* trans-openmp.c (gfc_trans_omp_array_reduction): Likewise.
* trans-stmt.c (cleanup_forall_symtrees, gfc_trans_forall_1): Likewise.
* trans.c (trans_runtime_error_vararg, gfc_restore_backend_locus):
Likewise.

From-SVN: r172666
2011-04-18 19:20:53 +00:00
Michael Matz
c76f8d52e2 trans-array.c (toplevel): Include gimple.h.
* trans-array.c (toplevel): Include gimple.h.
	(gfc_trans_allocate_array_storage): Check flag_stack_arrays,
	properly expand variable length arrays.
	(gfc_trans_auto_array_allocation): If flag_stack_arrays create
	variable length decls and associate them with their scope.
	* gfortran.h (gfc_option_t): Add flag_stack_arrays member.
	* options.c (gfc_init_options): Handle -fstack_arrays option.
	* lang.opt (fstack-arrays): Add option.
	* invoke.texi (Code Gen Options): Document it.
	* Make-lang.in (trans-array.o): Depend on GIMPLE_H.

From-SVN: r172524
2011-04-15 21:48:19 +00:00
Thomas Koenig
51a30b323d re PR fortran/48448 (Implement -f(no-)frontend-optimization)
2011-04-08  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/48448
	* gfortran.h (gfc_option_t):  Add warn_function_elimination and
	flag_frontend_optimize.
	* lang.opt (Wfunction-elimination):  Add.
	(ffrontend-optimize):  Add.
	* invoke.texi:  Add documentation for -Wfunction-elimination
	and -ffrontend-optimize.  Add -faggressive-function-elimination
	to list of code generation options.
	* frontend-passes.c (gfc_run_passes):  Run optimizations if
	flag_frontend_optimize is set.
	(warn_function_elimination):  New function.
	(cfe_expr_0):  Call it if requested to do so.
	* options.c (gfc_init_options):  Initiate warn_function_elimination
	and flag_frontend_optimize.
	(gfc_post_options):  Set flag_frontend_optimize if not specified
	by user, depending on the optimization level.
	(gfc_handle_option):  Handle -Wfunction-elimination and
	-ffrontend-optimize.

2011-04-08  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/48448
	* gfortran.dg/function_optimize_5.f90:  New test.

From-SVN: r172215
2011-04-08 21:46:08 +00:00
Tobias Burnus
60386f50ce re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays])
2011-03-27  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * gfortran.h (gfc_isym_id): Rename GFC_ISYM_NUMIMAGES to
        GFC_ISYM_NUM_IMAGES.
        (gfc_fcoarray): Add GFC_FCOARRAY_LIB.
        * intrinsic.c (add_functions): Update due to GFC_ISYM_NUM_IMAGES
        rename.
        * invoke.texi (-fcoarray=): Document "lib" argument.
        * iresolve.c (gfc_resolve_this_image): Fix THIS IMAGE().
        * libgfortran.h (libgfortran_stat_codes): Add comments.
        * options.c (gfc_handle_coarray_option): Add -fcoarray=lib.
        * simplify.c (gfc_simplify_num_images, gfc_simplify_this_image):
        Handle GFC_FCOARRAY_LIB.
        * trans.h (gfc_init_coarray_decl): New prototype.
        (gfor_fndecl_caf_init, gfor_fndecl_caf_finalize,
        gfor_fndecl_caf_critical, gfor_fndecl_caf_end_critical,
        gfor_fndecl_caf_sync_all, gfor_fndecl_caf_sync_images,
        gfor_fndecl_caf_error_stop, gfor_fndecl_caf_error_stop_str,
        gfort_gvar_caf_num_images, gfort_gvar_caf_this_image):
        New global variables.
        * trans-decl.c: Declare several CAF functions (cf. above).
        (gfc_build_builtin_function_decls): Initialize those.
        (gfc_init_coarray_decl): New function.
        (create_main_function): Call CAF init/finalize functions.
        * trans-intrinsic.c (trans_this_image, trans_num_images): New.
        (gfc_conv_intrinsic_function): Call those.
        * trans-stmt.c (gfc_trans_stop, gfc_trans_sync,
        * gfc_trans_critical):
        Add code for GFC_FCOARRAY_LIB.

From-SVN: r171568
2011-03-27 10:30:28 +02:00
Thomas Koenig
2757d5ecfc re PR fortran/22572 (Double occurrence of matmul intrinsic not optimised)
2010-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/22572
	* gfortran.h (gfc_option_t) : Add
	flag_aggressive_function_elimination.
	(gfc_dep_compare_functions):  Add prototype.
	* lang.opt: Add faggressive-function-elimination.
	* invoke.texi: Document -faggressive-function-elimination.
	* frontend_passes (expr_array):  New static variable.
	(expr_size):  Likewise.
	(expr_count):  Likewise.
	(current_code):  Likewise.
	(current_ns):  Likewise.
	(gfc_run_passes):  Allocate and free space for expressions.
	(cfe_register_funcs):  New function.
	(create_var):  New function.
	(cfc_expr_0):  New function.
	(cfe_code):  New function.
	(optimize_namespace):  Invoke gfc_code_walker with cfe_code
	and cfe_expr_0.
	* dependency.c (gfc_dep_compare_functions):  New function.
	(gfc_dep_compare_expr):  Use it.
	* options.c (gfc_init_options):  Handle
	flag_aggressive_function_elimination.
	(gfc_handle_option):  Likewise.

2010-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/22572
	* gfortran.dg/function_optimize_1.f90:  New test.
	* gfortran.dg/function_optimize_2.f90:  New test.

From-SVN: r171207
2011-03-21 07:14:42 +00:00
Tobias Burnus
22b00a9f06 re PR fortran/47472 (Rules printed by -M option contains duplicate slash when -J option is used)
2011-01-27  Tobias Burnus  <burnus@net-b.de>

        PR fortran/47472
        * options.c (gfc_handle_module_path_options): Save
        module path without trailing slash as include path.

From-SVN: r169323
2011-01-27 08:02:58 +01:00
Paul Thomas
597553ab3c re PR fortran/35810 ([TR 15581 / F2003] Automatic reallocation on assignment to allocatable variables)
2010-11-28  Paul Thomas  <pault@gcc.gnu.org>

	 PR fortran/35810
	* trans-array.c (gfc_trans_array_constructor): If the loop->to
	is a VAR_DECL, assume this is dynamic. In this case, use the
	counter to obtain the value and set loop->to appropriately.
	(gfc_conv_ss_descriptor): Always save the offset of a variable
	in info.saved_offset.
	(gfc_conv_ss_startstride): Do not attempt bound checking of the
	lhs of an assignment, if allocatable and f2003 is allowed.
	(gfc_conv_loop_setup): If possible, do not use an allocatable
	lhs variable for the loopspec.
	(gfc_is_reallocatable_lhs): New function.
	(get_std_lbound): New function.
	(gfc_alloc_allocatable_for_assignment): New function.
	* gfortran.h : Add flag_realloc_lhs to the options structure.
	* lang.opt : Add option f(no-)realloc-lhs.
	* invoke.texi : Document option f(no-)realloc-lhs.
	* options.c (gfc_init_options, gfc_post_options,
	gfc_handle_option): Incorporate f(no-)realloc-lhs with default
	to frealloc_lhs for -std > f95.
	* trans-array.h : Add primitive for previous.
	* trans-expr.c (gfc_conv_string_length): Return if character
	length is a variable and the expression is NULL.
	(gfc_conv_procedure_call): If the call is of the kind x = f(...)
	and the lhs is allocatable and reallocation on assignment OK,
	call gfc_alloc_allocatable_for_assignment. Do not generate the
	function call unless direct by reference.
	(realloc_lhs_loop_for_fcn_call): New function.
	(realloc_lhs_bounds_for_intrinsic_call): New function.
	(gfc_trans_arrayfunc_assign): Reallocation assignments need
	a loopinfo and for the loop bounds to be set.  With intrinsic
	functions, free the lhs data and let the library allocate the
	data array. Done by the new functions above.
	(gfc_trans_assignment_1): If the lhs is allocatable and
	reallocation on assignment is allowed, mark the lhs and use
	gfc_alloc_allocatable_for_assignment to make the reallocation.
	* trans.h : Add is_alloc_lhs bitfield to gfc_ss structure.

2010-11-28  Paul Thomas  <pault@gcc.gnu.org

	PR fortran/35810
	* gfortran.dg/realloc_on_assign_1.f03: New test.
	* gfortran.dg/realloc_on_assign_2.f03: New test.
	* gfortran.dg/transpose_2.f90: dg-option -fno-realloc-lhs.
	* gfortran.dg/unpack_bounds_1.f90: The same.
	* gfortran.dg/cshift_bounds_2.f90: The same.
	* gfortran.dg/matmul_bounds_2.f90: The same.
	* gfortran.dg/matmul_bounds_3.f90: The same.
	* gfortran.dg/matmul_bounds_4.f90: The same.
	* gfortran.dg/matmul_bounds_5.f90: The same.

From-SVN: r167220
2010-11-28 13:47:26 +00:00
Joseph Myers
a4d8c67600 Makefile.in (OPTS_H): Define.
* Makefile.in (OPTS_H): Define.
	(c-decl.o, c-family/c-common.o, c-family/c-opts.o,
	c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
	cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
	opts-common.o, toplev.o, passes.o, matrix-reorg.o,
	ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
	* gcc.c (driver_handle_option): Take location_t parameter.
	(process_command, do_self_spec): Update calls to
	read_cmdline_option.
	* langhooks-def.h (lhd_handle_option): Take location_t parameter.
	* langhooks.c (lhd_handle_option): Take location_t parameter.
	* langhooks.h (handle_option): Take location_t parameter.
	* lto-opts.c (lto_reissue_options): Update call to set_option.
	* opts-common.c (handle_option): Make static.  Take location_t
	parameter and pass it to other functions.
	(handle_generated_option): Take location_t parameter and pass it
	to other functions.
	(read_cmdline_option): Take location_t parameter and pass it to
	other functions.  Use warning_at and error_at.
	(set_option): Take location_t parameter and pass it to other
	functions.
	* opts.c (common_handle_option): Take location_t parameter and
	pass it to other functions.
	(enable_warning_as_error): Make static.  Take location_t parameter
	and pass it to other functions.
	(lang_handle_option): Take location_t parameter and pass it to
	other functions.
	(target_handle_option): Take location_t parameter.
	(read_cmdline_options, maybe_default_option,
	maybe_default_options, default_options_optimization,
	decode_options): Take location_t parameter and pass it to other
	functions.
	* opts.h: Include input.h.
	(struct cl_option_handler_func, decode_options, set_option,
	handle_generated_option, read_cmdline_option): Take location_t
	parameters.
	(handle_option, enable_warning_as_error): Remove.
	* toplev.c (toplev_main): Update call to decode_options.

ada:
	* gcc-interface/Make-lang.in (ada/misc.o): Use $(OPTS_H).
	* gcc-interface/misc.c (gnat_handle_option): Take location_t
	parameter.

c-family:
	* c-common.c (parse_optimize_options): Update call to
	decode_options.
	* c-common.h (c_common_handle_option): Update prototype.
	* c-opts.c (c_common_handle_option): Take location_t parameter and
	pass it to other functions.

cp:
	* Make-lang.in (g++spec.o): Use $(OPTS_H).

fortran:
	* Make-lang.in (gfortranspec.o): Use $(OPTS_H).
	* gfortran.h (gfc_handle_option): Take location_t parameter.
	* options.c (gfc_handle_option): Take location_t parameter.

java:
	* Make-lang.in (jvspec.o, java/lang.o): Use $(OPTS_H).
	* lang.c (java_handle_option): Take location_t parameter.

lto:
	* Make-lang.in (lto/lto.o): Use $(OPTS_H).
	* lto-lang.c (lto_handle_option): Take location_t parameter.

From-SVN: r166688
2010-11-12 23:26:56 +00:00
Nathan Froyd
3a789837f5 re PR c/44782 (implement -ferror-limit=)
gcc/
	PR c/44782
	* common.opt (fmax-errors=): New option.
	* opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
	* diagnostic.h (struct diagnostic_context): Add max_errors field.
	* diagnostic.c (diagnostic_initialize): Initialize it.
	(diagnostic_action_after_output): Exit if more than max_errors
	have been output.
	* doc/invoke.texi (Warning Options): Add -fmax-errors.
	(-fmax-errors): Document.

gcc/fortran/
	PR c/44782
	* options.c (gfc_post_options): Initialize gfc_option.max_errors.
	(gfc_handle_option) [OPT_fmax_errors_]: Remove.
	* lang.opt (fmax-errors=): Remove.

gcc/testsuite/
	PR c/44782
	* c-c++-common/fmax-errors.c: New test.

From-SVN: r166644
2010-11-12 03:38:15 +00:00
Jan Hubicka
a9c64730c2 opts.c (finish_options): Do not error on -flto-partition alone.
* opts.c (finish_options): Do not error on -flto-partition alone.
	* options.c (gfc_post_options): Remove flag_whopr.

From-SVN: r166632
2010-11-11 23:29:45 +00:00
Thomas Koenig
1607a827d1 gfortran.h (gfc_option_t): Replace dump_parse_tree by dump_fortran_original and add dump_fortran_optimized.
2010-10-30  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* gfortran.h (gfc_option_t):  Replace dump_parse_tree by
	dump_fortran_original and add dump_fortran_optimized.
	* lang.opt: Add fdump-fortran-original and
	fdump-fortran-optimized.  Document that fdump-parse-tree is
	deprecated.
	* gfortran.texi: Add -fdump-fortran-original and
	-fdump-fortran-optimized.  -fdump-parse-tree is deprecated.
	* frontend-passes.c (gfc_run_passes):  If optimizing and
	if gfc_option.dump_fortran_optimized is set, dump the parse tree
	after optimization.
	* parse.c:  Rename gfc_option.dump_parse_tree to
	gfc_option.dump_fortran_original.
	* options.c (gfc_init_options):  Rename gfc_option.dump_parse_tree
	to gfc_option.dump_fortran_original and handle
	gfc_option.dump_fortran_optimize.
	(gfc_post_options): Rename gfc_option.dump_parse_tree
	to gfc_option.dump_fortran_original.
	(gfc_handle_option):  Rename OPT_fdump_parse_tree to
	OPT_fdump_fortran_original and gfc_option.dump_parse_tree
	to gfc_option.dump_fortran_original.  Handle
	OPT_fdump_fortran_optimized.

From-SVN: r166091
2010-10-30 15:19:27 +00:00
Joseph Myers
a75bfaa6cd Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
* Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
	(TREE_H): Include $(FLAGS_H) instead of options.h.
	(opts-common.o): Depend on $(FLAGS_H) instead of options.h.
	* c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
	* common.opt (flag_complex_method, flag_evaluation_order,
	flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
	Variable declarations.
	* configure.ac (tm_include_list): Include flags.h instead of
	options.h.
	* configure: Regenerate.
	* flags.h: Condition out contents for target libraries.  Include
	options.h at end of file.
	(flag_complex_method, flag_ira_algorithm, flag_ira_region,
	flag_evaluation_order, flag_warn_unused_result): Remove.
	* gcc.c (main): Intialize global_options with global_options_init.
	* langhooks-def.h (lhd_init_options_struct): Declare.
	(LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
	(LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
	* langhooks.c (lhd_init_options_struct): New.
	* langhooks.h (struct lang_hooks): Add init_options_struct.
	Update comment on init_options.
	* optc-gen.awk: Generate initializer for global_options_init, not
	global_options.
	* opth-gen.awk: Condition out structure declarations for target
	libraries.  Declare global_options_init.
	* opts-common.c: Include flags.h instead of options.h.
	* opts.c (flag_warn_unused_result): Remove.
	(read_cmdline_options): Take gcc_options parameters.  Pass them to
	read_cmdline_option.
	(initial_lang_mask, initial_min_crossjump_insns,
	initial_max_fields_for_field_sensitive,
	initial_loop_invariant_max_bbs_in_loop): Define at file scope.
	(init_options_once): New.  Split out of decode_options.
	(init_options_struct): New.  Split out of decode_options.
	(decode_cmdline_options_to_array_default_mask): New.
	(default_options_optimization): New.  Split out of decode_options.
	(decode_options): Move most code to other functions.  Update call
	to read_cmdline_options.
	(finish_options): New.  Split out of decode_options.
	* opts.h (decode_options): Add gcc_options parameters.
	(init_options_once, init_options_struct,
	decode_cmdline_options_to_array_default_mask): New.
	* toplev.c (flag_complex_method, flag_ira_algorithm,
	flag_ira_region, flag_evaluation_order): Remove.
	(general_init): Use global_options_init for initial flag values
	for global_dc.
	(toplev_main): Call init_options_once, init_options_struct,
	lang_hooks.init_options_struct,
	decode_cmdline_options_to_array_default_mask and
	lang_hooks.init_option before decode_options.  Update arguments to
	decode_options.
	* tree.h: Include flags.h instead of options.h.

ada:
	* gcc-interface/misc.c (gnat_init_options_struct): New.  Split out
	from gnat_init_options.
	(LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.

c-family:
	* c-common.c (parse_optimize_options): Call
	decode_cmdline_options_to_array_default_mask before
	decode_options.  Update arguments to decode_options.
	* c-common.h (c_common_init_options_struct): Declare.
	* c-opts.c (c_common_init_options_struct): New.  Split out from
	c_common_init_options.

cp:
	* cp-objcp-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.

fortran:
	* f95-lang.c (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
	* gfortran.h (gfc_init_options_struct): Declare.
	* options.c (gfc_init_options_struct): New.  Split out from
	gfc_init_options.

java:
	* lang.c (java_init_options_struct): New.  Split out from
	java_init_options.
	(LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.

lto:
	* lto-lang.c (lto_init_options): Change to
	lto_init_options_struct.  Update parameters.
	(LANG_HOOKS_INIT_OPTIONS): Don't define.
	(LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.

From-SVN: r165189
2010-10-08 16:17:32 +01:00
Joseph Myers
e3339d0f33 optc-gen.awk: Generate global_options initializer instead of individual variables.
gcc:
	* optc-gen.awk: Generate global_options initializer instead of
	individual variables.  Add x_ prefix to names of structure
	members.
	* opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
	names of structure members.
	* doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
	HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
	* doc/tm.texi: Regenerate.
	* alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
	* builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
	* c-parser.c (disable_extension_diagnostics,
	restore_extension_diagnostics): Update names of cpp_options
	members.
	* combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
	* common.opt (fcompare-debug-second): Don't use Var.
	* config/alpha/alpha.h (target_flags): Remove.
	* config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
	HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
	* config/bfin/bfin.h (target_flags): Remove.
	* config/cris/cris.h (target_flags): Remove.
	* config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
	cl_target_option members.
	* config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
	(ix86_function_specific_print, ix86_valid_target_attribute_tree,
	ix86_can_inline_p): Update names of cl_target_option members.
	* config/i386/i386.h (ix86_isa_flags): Remove.
	* config/lm32/lm32.h (target_flags): Remove.
	* config/mcore/mcore.h (mcore_stack_increment): Remove.
	* config/mcore/mcore.md (addsi3): Remove extern declaration of
	flag_omit_frame_pointer.
	* config/mep/mep.h (target_flags): Remove.
	* config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
	HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
	* config/mmix/mmix.h (target_flags): Remove.
	* config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
	flag_expensive_optimizations): Remove.
	* config/s390/s390.h (flag_pic): Remove.
	* config/score/score-conv.h (target_flags): Remove.
	* config/sh/sh.h (sh_fixed_range_str): Remove.
	* config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
	* dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
	* df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
	* diagnostic.c (diagnostic_initialize): Update names of
	diagnostic_context members.
	* diagnostic.h (diagnostic_context): Rename inhibit_warnings and
	warn_system_headers.
	(diagnostic_report_warnings_p): Update for new names.
	* dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
	* emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
	HARD_FRAME_POINTER_IS_ARG_POINTER.
	* flags.h (flag_compare_debug): Declare.
	* ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
	* opts.c (flag_compare_debug): Define.
	(common_handle_option): Update names of diagnostic_context
	members.  Handle -fcompare-debug-second.
	(fast_math_flags_struct_set_p): Update names of cl_optimization
	members.
	* reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
	* regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
	* reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
	* reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
	* resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
	* rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
	HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
	* sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
	* stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.

gcc/c-family:
	* c-common.c (c_cpp_error): Update names of diagnostic_context
	members.
	* c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): Update names of
	cl_optimization members.
	* c-opts.c (warning_as_error_callback, c_common_handle_option,
	sanitize_cpp_opts, finish_options): Update names of cpp_options
	members.

gcc/fortran:
	* cpp.c (cpp_define_builtins): Update names of gfc_option_t
	members.
	(gfc_cpp_post_options): Update names of cpp_options members.
	(cb_cpp_error): Update names of diagnostic_context members.
	* f95-lang.c (gfc_init_builtin_functions): Update names of
	gfc_option_t members.
	* gfortran.h (gfc_option_t): Rename warn_conversion and
	flag_openmp.
	* intrinsic.c (gfc_convert_type_warn): Update names of
	gfc_option_t members.
	* options.c (gfc_init_options, gfc_post_options, set_Wall,
	gfc_handle_option): Update names of gfc_option_t members.
	* parse.c (next_free, next_fixed): Update names of gfc_option_t
	members.
	* scanner.c (pedantic): Remove extern declaration.
	(skip_free_comments, skip_fixed_comments, include_line): Update
	names of gfc_option_t members.
	* trans-decl.c (gfc_generate_function_code): Update names of
	gfc_option_t members.

gcc/java:
	* java-tree.h (flag_filelist_file, flag_assert, flag_jni,
	flag_force_classes_archive_check, flag_redundant, flag_newer,
	flag_use_divide_subroutine, flag_use_atomic_builtins,
	flag_use_boehm_gc, flag_hash_synchronization,
	flag_check_references, flag_optimize_sci, flag_indirect_classes,
	flag_indirect_dispatch, flag_store_check,
	flag_reduced_reflection): Remove.
	* jcf-dump.c (flag_newer): Remove.
	* jcf.h (quiet_flag): Remove.
	* parse.h (quiet_flag): Remove.

libcpp:
	* include/cpplib.h (cpp_options): Rename warn_deprecated,
	warn_traditional, warn_long_long and pedantic.
	* directives.c (directive_diagnostics, _cpp_handle_directive):
	Update names of cpp_options members.
	* expr.c (cpp_classify_number, eval_token): Update names of
	cpp_options members.
	* init.c (cpp_create_reader, post_options): Update names of
	cpp_options members.
	* internal.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Update names of
	cpp_options members.
	* macro.c (parse_params): Update names of cpp_options members.

From-SVN: r164723
2010-09-29 15:49:14 +01:00
Tobias Burnus
41804a5be0 re PR fortran/40569 (F2008: Support COMPILER_OPTIONS() / COMPILER_VERSION())
gcc/
2010-09-28  Tobias Burnus  <burnus@net-b.de>

        PR fortran/40569
        PR fortran/40568
        * toplev.h (save_decoded_options, save_decoded_options_count):
        New global variables.
        * toplev.c (save_decoded_options, save_decoded_options_count):
        export variables.

gcc/fortran/
2010-09-28  Tobias Burnus  <burnus@net-b.de>

        PR fortran/40569
        PR fortran/40568
        * intrinsic.c (add_functions): Make compiler_version and
        compiler_options CLASS_INQUIRY.
        * gfortran.h (gfc_get_option_string): New prototype.
        * intrinsic.texi (COMPILER_VERSION, COMPILER_OPTIONS):
        Add documentation.
        (C_SIZEOF): Mark as inquiry function of ISO_C_BINDING.
        (ISO_FORTRAN_ENV): Refer to COMPILER_VERSION and COMPILER_OPTIONS.
        (ISO_C_BINDING): Refer to C_SIZEOF.
        * options.c (gfc_get_option_string): New function.
        * simplify.c (gfc_simplify_compiler_options): Use it.
        (gfc_simplify_compiler_version): Include compiler name.

From-SVN: r164698
2010-09-28 21:51:38 +02:00
Joseph Myers
5f20c6574d coretypes.h (struct cl_option_handlers): Declare.
* coretypes.h (struct cl_option_handlers): Declare.
	* hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
	* hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
	* langhooks-def.h (lhd_handle_option): Declare.
	(LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
	* langhooks.c (lhd_handle_option): New.
	* langhooks.h (struct lang_hooks): Update prototype and return
	value type of handle_option hook.
	* optc-gen.awk: Generate target_flags_explicit definition for the
	driver.
	* opts-common.c: Include diagnostic.h.
	(handle_option): Move from opts.c.  Update prototype and return
	value type.  Use handlers structure.
	(read_cmdline_option): Move from opts.c.  Update prototype.  Use
	handlers structure.
	(set_option): Move from opts.c.
	* opts.c (common_handle_option): Update prototype and return value
	type.  Update calls to handle_option and enable_warning_as_error.
	(unknown_option_callback, post_handling_callback,
	lang_handle_option, target_handle_option): New.
	(handle_option, read_cmdline_option): Move to opts-common.c.
	(read_cmdline_options): Update prototype.  Update call to
	read_cmdline_option.
	(decode_options): Initialize and use handlers structure.
	(set_option): Move to opts-common.c.
	(enable_warning_as_error): Update prototype.  Update call to
	handle_option.
	* opts.h (struct cl_option_handler_func, struct
	cl_option_handlers): New.
	(handle_option, enable_warning_as_error): Update prototypes.
	(read_cmdline_option): Declare.
	* Makefile.in (opts-common.o): Update dependencies.

ada:
	* gcc-interface/misc.c (gnat_handle_option): Update prototype and
	return value type.  Don't check for missing arguments here.

c-family:
	* c-common.h (c_common_handle_option): Update prototype and return
	value type.
	* c-opts.c (c_common_handle_option): Update prototype and return
	value type.  Update calls to handle_option and
	enable_warning_as_error.

fortran:
	* gfortran.h (gfc_handle_option): Update prototype and return
	value type.
	* options.c (gfc_handle_option): Update prototype and return value
	type.

java:
	* lang.c (java_handle_option): Update prototype and return value
	type.

lto:
	* lto-lang.c (lto_handle_option): Update prototype and return
	value type.  Remove duplicate assignment to result.

From-SVN: r162601
2010-07-27 22:23:53 +01:00
Joseph Myers
7a9bf9a4e0 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
2010-07-27 10:59:51 +01:00
Tobias Burnus
df161b697c re PR fortran/45045 (Named COMMON with different size: No warning with -fwhole-file)
gcc/fortran/
2010-07-24  Tobias Burnus  <burnus@net-b.de>

        * options.c (gfc_init_options): Enable -fwhole-file by default.
        * interface.c (compare_parameter): Assume a Hollerith constant is
        compatible with all other argument types.

libgomp/
2010-07-24  Tobias Burnus  <burnus@net-b.de>

        * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: Add -w to
        silence -fwhole-file warning.

gcc/testsuite/
2010-07-24  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/func_decl_4.f90: Split test into two ...
        * gfortran.dg/func_decl_5.f90: ... parts.
        * gfortran.dg/common_resize_1.f: xfail two warnings (cf. PR 45045).
        * gfortran.dg/bounds_temporaries_1.f90: Add new dg-warning.
        * gfortran.dg/global_references_1.f90: Add new dg-warning.
        * gfortran.dg/generic_actual_arg.f90: Add new dg-warning.
        * gfortran.dg/entry_17.f90: Remove no-longer needed dg-warning.
        * gfortran.dg/used_before_typed_4.f90: Add new dg-warning.
        * gfortran.dg/bounds_check_strlen_1.f90: Add new dg-warning.
        * gfortran.dg/intrinsic_std_1.f90: Split by remove tree dump ...
        * gfortran.dg/intrinsic_std_6.f90: ... and create a dump test.
        * gfortran.dg/sizeof.f90: Make test valid.
        * gfortran.dg/pr20865.f90: Add new dg-error.
        * gfortran.dg/integer_exponentiation_2.f90: Add new dg-warnings.
        * gfortran.dg/g77/19990218-0.f: Ditto.
        * gfortran.dg/g77/19990218-1.f: Ditto.
        * gfortran.dg/g77/970625-2.f: Ditto.
        * gfortran.dg/pr37243.f: Fix function declaration.
        * gfortran.dg/use_only_1.f90: Fix implicit typing.
        * gfortran.dg/loc_1.f90: Fix pointer datatype.

From-SVN: r162491
2010-07-24 00:15:51 +02:00
Tobias Burnus
c829d0163d trans-decl.c: Include diagnostic-core.h besides toplev.h.
2010-07-06  Tobias Burnus  <burnus@net-b.de>

        * trans-decl.c: Include diagnostic-core.h besides toplev.h.
        * trans-intrinsic.c: Ditto.
        * trans-types.c: Ditto.
        * convert.c: Include diagnostic-core.h instead of toplev.h.
        * options.c: Ditto.
        * trans-array.c: Ditto.
        * trans-const.c: Ditto.
        * trans-expr.c: Ditto.
        * trans-io.c: Ditto.
        * trans-openmp.c: Ditto.
        * trans.c: Ditto.

From-SVN: r161885
2010-07-06 21:57:29 +02:00
Tobias Burnus
58fc89f6b9 decl.c (gfc_match_entry): Mark ENTRY as GFC_STD_F2008_OBS.
2010-06-25  Tobias Burnus  <burnus@net-b.de>

        * decl.c (gfc_match_entry): Mark ENTRY as GFC_STD_F2008_OBS.
        * gfortran.texi (_gfortran_set_options): Update for
        GFC_STD_F2008_OBS addition.
        * libgfortran.h: Add GFC_STD_F2008_OBS.
        * options.c (set_default_std_flags, gfc_handle_option): Handle
        GFC_STD_F2008_OBS.
        io.c (check_format): Fix allow_std check.

2010-06-25  Tobias Burnus  <burnus@net-b.de>

        * runtime/compile_options.c (init_compile_options): Update
        compile_options.allow_std for GFC_STD_F2008_OBS.
        * io/transfer.c (formatted_transfer_scalar_read,
        formatted_transfer_scalar_write): Fix allow_std check.
        * io/list_read.c (nml_parse_qualifier): Ditto.

2010-06-25  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/entry_19.f90: New.

From-SVN: r161409
2010-06-25 21:17:21 +02:00
Joseph Myers
6e2f19568a re PR other/32998 (-frecord-gcc-switches issues)
PR other/32998
	* opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
	OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
	* opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
	(decode_cmdline_option): Update for this return value.  Set
	orig_option_with_args_text field.  Set arg field for unknown
	options.  Make static.
	(decode_cmdline_options_to_array): New.
	(prune_options): Update handling of find_opt return value.
	* opts.c (read_cmdline_option): Take decoded option.  Return void.
	(read_cmdline_options): Take decoded options.
	(decode_options): Add parameters for decoded options.  Use
	decode_cmdline_options_to_array.  Use decoded options for -O
	scan.  Use integral_argument for -O parameters.  Update call to
	read_cmdline_options.
	(enable_warning_as_error): Update handling of find_opt return
	value.
	* opts.h: Update comment on unknown options.
	(struct cl_decoded_option): Update comments on opt_index and arg.
	Add orig_option_with_args_text.
	(decode_cmdline_option): Remove.
	(decode_cmdline_options_to_array): Declare.
	(decode_options): Update prototype.
	* toplev.c (save_argv): Remove.
	(save_decoded_options, save_decoded_options_count): New.
	(read_integral_parameter): Remove.
	(print_switch_values): Use decoded options.
	(toplev_main): Don't set save_argv.  Update call to
	decode_options.
	* toplev.h (read_integral_parameter): Remove.
	* varasm.c (elf_record_gcc_switches): Don't handle holding back
	names.

c-family:
	* c-common.c (parse_optimize_options): Update call to
	decode_options.

fortran:
	* options.c (gfc_handle_option): Don't handle N_OPTS.

testsuite:
	* gcc.dg/opts-2.c: New test.

From-SVN: r161053
2010-06-20 22:02:46 +01:00
Tobias Burnus
e7105ec505 options.c (gfc_handle_option): Fix -fno-recursive.
2010-06-07  Tobias Burnus  <burnus@net-b.de>

        * options.c (gfc_handle_option): Fix -fno-recursive.

From-SVN: r160391
2010-06-07 21:21:19 +02:00
Joseph Myers
5498f0112f common.opt (fira-verbose): Use Var.
* common.opt (fira-verbose): Use Var.
	(fpcc-struct-return): Use Init instead of VarExists.
	* defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
	toplev.c.
	* flags.h (flag_signed_char, flag_short_enums,
	flag_pcc_struct_return, flag_ira_verbose,
	flag_detailed_statistics, flag_remove_unreachable_functions):
	Remove.
	* toplev.c (flag_detailed_statistics, flag_signed_char,
	flag_short_enums, flag_pcc_struct_return, flag_ira_verbose):
	Remove.
	(DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
	* toplev.h (flag_crossjumping, flag_if_conversion,
	flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
	flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
	flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
	flag_cprop_registers, time_report, flag_ira_loop_pressure,
	flag_ira_coalesce, flag_ira_move_spills,
	flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.

c-family:
	* c-common.c (flag_preprocess_only, flag_undef, flag_no_builtin,
	flag_no_nonansi_builtin, flag_short_double, flag_short_wchar,
	flag_lax_vector_conversions, flag_ms_extensions, flag_no_asm,
	flag_signed_bitfields, warn_strict_null_sentinel,
	flag_nil_receivers, flag_zero_link, flag_replace_objc_classes,
	flag_gen_declaration, flag_no_gnu_keywords,
	flag_implement_inlines, flag_implicit_templates,
	flag_implicit_inline_templates, flag_optional_diags,
	flag_elide_constructors, flag_default_inline, flag_rtti,
	flag_conserve_space, flag_access_control, flag_check_new,
	flag_new_for_scope, flag_weak, flag_working_directory,
	flag_use_cxa_atexit, flag_use_cxa_get_exception_ptr,
	flag_enforce_eh_specs, flag_threadsafe_statics,
	flag_pretty_templates): Remove.
	* c-common.h (flag_preprocess_only, flag_nil_receivers,
	flag_objc_exceptions, flag_objc_sjlj_exceptions, flag_zero_link,
	flag_replace_objc_classes, flag_undef, flag_no_builtin,
	flag_no_nonansi_builtin, flag_short_double, flag_short_wchar,
	flag_lax_vector_conversions, flag_ms_extensions, flag_no_asm,
	flag_const_strings, flag_signed_bitfields, flag_gen_declaration,
	flag_no_gnu_keywords, flag_implement_inlines,
	flag_implicit_templates, flag_implicit_inline_templates,
	flag_optional_diags, flag_elide_constructors, flag_default_inline,
	flag_rtti, flag_conserve_space, flag_access_control,
	flag_check_new, flag_new_for_scope, flag_weak,
	flag_working_directory, flag_use_cxa_atexit,
	flag_use_cxa_get_exception_ptr, flag_enforce_eh_specs,
	flag_threadsafe_statics, flag_pretty_templates,
	warn_strict_null_sentinel): Remove.
	* c.opt (E, Wstrict-null-sentinel, faccess-control, fasm,
	fbuiltin, fcheck-new, fconserve-space, felide-constructors,
	fenforce-eh-specs, ffor-scope, fgnu-keywords, fimplement-inlines,
	fimplicit-inline-templates, fimplicit-templates,
	flax-vector-conversions, fms-extensions, fnil-receivers,
	fnonansi-builtins, fpretty-templates, freplace-objc-classes,
	frtti, fshort-double, fshort-enums, fshort-wchar,
	fsigned-bitfields, fsigned-char, fstats, fthreadsafe-statics,
	funsigned-bitfields, funsigned-char, fuse-cxa-atexit,
	fuse-cxa-get-exception-ptr, fweak, fworking-directory, fzero-link,
	gen-decls, undef): Use Var.
	(fdefault-inline, foptional-diags): Document as doing nothing.
	* c-opts.c (c_common_handle_option): Remove cases for options now
	using Var.  Mark ignored options as such.

fortran:
	* lang.opt (fshort-enums): Define using Var and VarExists.
	* options.c (gfc_handle_option): Don't set flag_short_enums here.

lto:
	* lto-lang.c (flag_no_builtin, flag_no_nonansi_builtin): Remove.
	(lto_handle_option): Don't set flag_signed_char here.

From-SVN: r160384
2010-06-07 17:46:23 +01:00