OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [fortran/] [ChangeLog-2004] - Rev 867

Go to most recent revision | Compare with Previous | Blame | View Log

2004-12-29  Steven G. Kargl  <kargls@comcast.net>

        * gfortran.h (gfc_case): fix typo in comment.

2004-12-27  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Change to
        logical shift.  Call fold.  Remove 0-bit shift shortcut.
        (gfc_conv_intrinsic_ishftc): Convert first argument to at least
        4 bytes bits.  Convert 2nd and 3rd argument to 4 bytes.  Convert
        result if width(arg 1) < 4 bytes.  Call fold.

        PR fortran/19032
        * trans-intrinsic.c (gfc_conv_intrinsic_mod): Update comment
        in front of function to match the standard.  Correct handling
        of MODULO.

2004-12-27  Andrew Pinski  <pinskia@physics.uc.edu>

        * trans-expr.c (gfc_conv_cst_int_power): Only check for
        flag_unsafe_math_optimizations if we have a float type.

2004-12-23  Steven G. Kargl  <kargls@comcast.net>

        * gfortran.texi: Fix typo.

2004-12-16  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * trans-intrinsic.c (build_fixbound_expr): Clarify comment, fix
        comment typo.

2004-12-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/18993
        * match.c (gfc_match_if): Don't explicitly skip optional whitespace.
        (gfc_match_nullify): Make sure that ')' is in front of the end of
        statement.

        * scanner.c (skip_fixed_comments): Fix typo in comment preceding
        function.

2004-12-14  Richard Henderson  <rth@redhat.com>

        * gfortran.h (gfc_expr.function.name): Make const.
        (gfc_iresolve_init_1, gfc_iresolve_done_1): Remove.
        (gfc_get_string): Update prototype.
        * iresolve.c: Include tree.h.
        (string_node, HASH_SIZE, string_head, hash): Remove.
        (gfc_get_string): Use vsnprintf, get_identifier.
        (free_strings, gfc_iresolve_init_1, gfc_iresolve_done_1): Remove.
        * misc.c (gfc_init_1): Don't call gfc_iresolve_init_1.
        (gfc_done_1): Don't call gfc_iresolve_done_1.
        * module.c (mio_allocated_string): Take and return const char *,
        instead of modifying char**.
        (mio_expr): Update to match.
        * resolve.c (pure_function): Constify name argument.
        (resolve_function): Constify name.
        * trans-intrinsic.c (gfc_conv_intrinsic_function): Likewise.

2004-12-12  Richard Henderson  <rth@redhat.com>

        * iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count,
        gfc_resolve_cshift, gfc_resolve_dot_product, gfc_resolve_eoshift,
        gfc_resolve_matmul, gfc_resolve_maxloc, gfc_resolve_maxval,
        gfc_resolve_minloc, gfc_resolve_minval, gfc_resolve_pack,
        gfc_resolve_product, gfc_resolve_reshape, gfc_resolve_shape,
        gfc_resolve_spread, gfc_resolve_sum, gfc_resolve_transpose,
        gfc_resolve_unpack: Use PREFIX.

2004-12-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/18869
        * match.c (gfc_match_common): Skip whitespace.

2004-12-12  Steven G. Kargl  <kargls@comcast.net>

        PR fortran/16581
        * check.c (gfc_check_iand, gfc_check_ibclr, gfc_check_ibits,
        gfc_check_ibset, gfc_check_ieor, gfc_check_ior): Remove default
        integer kind check; Issue error for -std=f95 when needed.
        * intrinsic.c (add_functions): Change ieor from GFC_STD_GNU to
        GFC_STD_F95.
        * iresolve.c (gfc_resolve_iand, gfc_resolve_ieor, gfc_resolve_ior):
        Promote arguments to same kind.

2004-12-12  Steven G. Kargl  <kargls@comcast.net>
        Paul Brook  <paul@codesourcery.com>

        PR fortran/16222
        * resolve.c (gfc_resolve_iterator_expr): New function.
        (gfc_resolve_iterator): Use it.  Add real_ok argument.  Convert
        start, end and stride to correct type.
        (resolve_code): Pass extra argument.
        * array.c (resolve_array_list): Pass extra argument.
        * gfortran.h (gfc_resolve): Add prototype.
        * trans-stmt.c (gfc_trans_do): Remove redundant type conversions.
        Handle real type iterators.

2004-12-11  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/17175
        * iresolve.c (gfc_resolve_scale): Convert 'I' argument if not of
        same kind as C's 'int'.
        (gfc_resolve_set_exponent): Convert 'I' argument if not of kind 4.

2004-12-08  Richard Henderson  <rth@redhat.com>

        * intrinsic.c (gfc_convert_type_warn): Propagate the input shape
        to the output expression.
        * iresolve.c (gfc_resolve_cshift, gfc_resolve_eoshift): Suppress
        warning conversion.
        (gfc_resolve_reshape): Force convert SHAPE and ORDER parameters
        to index kind.

2004-12-08  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/18826
        * resolve.c (resolve_code): Impose correct restrictions on
        assigned variable.

        * decl.c (gfc_match_end): Use locus of END when eos is an error.

2004-12-02  Steven G. Kargl  <kargls@comcast.net>
        Paul Brook  <paul@codesourcery.com>

        * check.c (gfc_check_flush, gfc_check_fnum): New functions.
        (gfc_check_fstat, gfc_check_fstat_sub): New functions.
        (gfc_check_stat, gfc_check_stat_sub): New functions.
        * gfortran.h (GFC_ISYM_FNUM,GFC_ISYM_FSTAT,GFC_ISYM_STAT): New symbols
        * intrinsic.c (add_functions,add_subroutines): Add flush, fnum,
        fstat, and stat to intrinsics symbol tables.
        * intrinsic.h (gfc_check_flush, gfc_resolve_stat_sub): Add prototypes.
        (gfc_resolve_fstat_sub, gfc_resolve_stat): Ditto.
        * iresolve.c (gfc_resolve_fnum, gfc_resolve_fstat): New functions.
        (gfc_resolve_stat, gfc_resolve_flush): New functions.
        (gfc_resolve_stat_sub,gfc_resolve_fstat_sub): New functions
        * trans-intrinsic.c (gfc_conv_intrinsic_function): Add new intrinsics.

2004-12-02  Steven G. Kargl  <kargls@comcast.net>

        * intrinsic.c: Fix and add comments, fix function declarations
        (OPTIONAL,REQUIRED): New symbols
        (add_functions,add_subroutines): Use symbols
        (gmp.h): Remove unused include

2004-11-25  Joseph S. Myers  <joseph@codesourcery.com>

        * f95-lang.c, gfortranspec.c, trans-decl.c: Avoid ` as left quote
        in diagnostics.

2004-11-24  Steven Bosscher  <stevenb@suse.de>

        * options.c (gfc_post_options): Don't clear flag_inline_functions.

2004-11-20  Steven G. Kargl  <kargls@comcast.net>

        * check.c (gfc_check_getcwd_sub): Fix seg fault.

        * check.c (gfc_check_exit,gfc_check_umask,gfc_check_umask_sub,
        gfc_check_unlink,gfc_check_unlink_sub): New functions
        * gfortran.h (GFC_ISYM_UMASK,GFC_ISYM_UNLINK): New symbols
        * intrinsic.c (add_functions,add_subroutines): Add umask, unlink,
        exit to intrinsics symbol tables.
        * intrinsic.h (gfc_check_umask,gfc_check_unlink,gfc_check_exit,
        gfc_check_umask_sub,gfc_check_unlink_sub,gfc_resolve_umask,
        gfc_resolve_unlink,gfc_resolve_exit,gfc_resolve_umask_sub,
        gfc_resolve_unlink_sub): Add and sort prototypes.
        * iresolve.c (gfc_resolve_umask,gfc_resolve_unlink,gfc_resolve_exit,
        gfc_resolve_umask_sub,gfc_resolve_unlink_sub): New functions
        * trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbols

2004-11-16  Paul Brook  <paul@codesourcery.com>

        PR fortran/13010
        * trans-array.c (gfc_trans_allocate_temp_array): Use gfc_get_dtype.
        (gfc_array_init_size, gfc_conv_expr_descriptor): Ditto.
        * trans-types.c (gfc_get_dtype): Accept array type rather than element
        type.
        (gfc_get_nodesc_array_type): Don't set GFC_TYPE_ARRAY_DTYPE.
        (gfc_get_array_type_bounds): Ditto.
        (gfc_get_derived_type): Recurse into derived type pointers.
        * trans-types.h (gfc_get_dtype): Add prototype.
        * trans.h (GFC_TYPE_ARRAY_DTYPE): Add comment.

2004-11-15  Paul Brook  <paul@codesourcery.com>

        * trans-types.c (gfc_get_dtype): Remove obsolete TODO.

2004-11-10  Paul Brook  <paul@codesourcery.com>

        PR fortran/18375
        * trans-expr.c (gfc_trans_subarray_assign): Free shape before ss.
        * trans-io.c (transfer_array_component): Ditto.

2004-11-10  Paul Brook  <paul@codesourcery.com>

        * invoke.texi: Fix typo.

2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>

        * arith.c, array.c, decl.c, expr.c, f95-lang.c, gfortran.h,
        gfortranspec.c, interface.c, intrinsic.c, iresolve.c, match.c,
        module.c, parse.c, parse.h, primary.c, resolve.c, scanner.c,
        trans-array.c, trans-array.h, trans-expr.c, trans-intrinsic.c,
        trans-io.c, trans-stmt.c, trans.h: Fix comment formatting.

2004-11-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/18023
        * io.c (resolve_tag): Tighten up exception for assigned FORMAT.

2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>

        * gfortranspec.c: Replace GNU CC with GCC.

2004-11-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * gfortranspec.c (lang_specific_driver): Change year to 2004.

2004-11-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/18111
        *  trans-decl.c (create_function_arglist): Set DECL_ARTIFICIAL for
        hidden parameters.

2004-11-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/15164
        * trans-decl.c (gfc_finish_var_decl): Don't declare arguments to
        module procedures as if they were module variables.

2004-11-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/17535
        PR fortran/17583
        PR fortran/17713
        * module.c (write_symbol1): Set module_name for dummy arguments.

2004-11-02  Paul Brook  <paul@codesourcery.com>

        * intrinsic.c (check_intrinsic_standard): Include error locus.
        Remove VLA.
        (gfc_intrinsic_func_interface, gfc_intrinsic_sub_interface): Pass
        locus to check_intrinsic_standard.

2004-10-31  Janne Blomqvist  <jblomqvi@cc.hut.fi>

        PR fortran/17590
        * gfortran.h: Change GFC_STD_* flags to more appropriate
        ones. (struct gfc_intrinsic_isym): Add field for standard. (struct
        gfc_option_t): Add field for warning about use of nonstandard
        intrinsics.
        * intrinsic.c (add_sym): Add parameter for standard version, check
        this against current standard.
        (add_sym_0): Pass standard parameter to add_sym.
        (add_sym_1, add_sym_0s, add_sym_1s, add_sym_1m, add_sym_2): Ditto.
        (add_sym_2s, add_sym_3, add_sym_3ml, add_sym_3red, add_sym_3s): Ditto.
        (add_sym_4, add_sym_4s, add_sym_5, add_sym_5s): Ditto.
        (make_generic): Add parameter for standard, check this
        against currently selected standard.
        (add_functions, add_subroutines): Add parameter to tell which
        standard an intrinsic belongs to.
        (check_intrinsic_standard): New function.
        (gfc_intrinsic_func_interface): Add call to check_intrinsic_standard.
        (gfc_intrinsic_sub_interface): Ditto.
        * lang.opt: Add Wnonstd-intrinsics option.
        * options.c (gfc_init_options): Change to use new GFC_STD_* flags,
        init new warning.
        (set_Wall): Add warning about nonstd intrinsics.
        (gfc_handle_option): Change to use new GFC_STD_* flags,
        handle new warning.
        * invoke.texi: Update manual to include -Wnonstd-intrinsics.

2004-10-30  Andrew Pinski  <pinskia@physics.uc.edu>

        * f95-lang.c (lang_tree_node): Add chain_next to be the TREE_CHAIN.

2004-10-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * simplify.c (twos_complement): Calculate mask in GMP arithmetic.

2004-10-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * trans.c (gfc_trans_code): Set global locus after recursing. Fix
        comment typo.

2004-10-30  Canqun Yang  <canqun@nudt.edu.cn>

        * check.c (gfc_check_rand): Allow missing optional argument.
        (gfc_check_irand): Ditto.
        * intrinsic.c (add_functions): Set arg optional flag for {i,}rand.

2004-10-28  Scott Robert Ladd  <scott.ladd@coyotegulch.com>

        PR fortran/13490, PR fortran/17912
        * gcc/fortran/gfortran.h: Added pedantic_min_int to gfc_integer_info
        * gcc/fortran/gfortran.h: Added ARITH_ASYMMETRIC to arith
        * gcc/fortran/arith.c: Added support for an "asymmetric integer"
        warning when compiling with pedantic.
        * gcc/fortran/arith.c: Set minimum integer values to reflect
        realities of two's complement signed integers. Added
        pedantic minimum.

2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>

        * Make-lang.in (F95_ADDITIONAL_OBJS): Kill.
        (f951): Do not depend on F95_ADDITIONAL_OBJS and don't
        link it in.

2004-10-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * trans-decl.c (generate_local_decl): Simplify logic, fix comment
        typo.
        (gfc_generate_function_code): Fix formatting issue.

2004-10-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * module.c: Fix formatting issues.

2004-10-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * module.c (mio_interface_rest): Set where member of interface
        while loading.

2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>

        PR fortran/17901
        * options.c (gfc_handle_option): Add break after handing the
        J/M option.

2004-10-08  Tobias Schlueter  <tobias.shclueter@physik.uni-muenchen.de>

        * arith.c: Fix formatting issues.

2004-10-07  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/17676
        * resolve.c (resolve_operator): Use correct operator name in message.

2004-10-07  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * primary.c (match_boz_constant): Allow kind parameter suffixes.
        Move standard warning further to the front.

2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>

        * trans-stmt.c: Fix a comment typo.

2004-10-07  Paul Brook  <paul@codesourcery.com>

        PR fortran/17678
        * trans-array.c (gfc_trans_deferred_array): Leave use associated
        variables alone.

2004-10-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/17568
        * simplify.c (twos_complement): New function.
        (gfc_simplify_ishft, gfc_simplify_ishftc): Revise.

        * simplify.c (gfc_simplify_abs): Use mpfr_hypot for CABS.

2004-10-06  Paul Brook  <paul@codesourcery.com>

        * trans-stmt.c (gfc_trans_simple_do): New function.
        (gfc_trans_do): Use it.  Evaluate iteration bounds before entering
        loop.  Update comments.

2004-10-04  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/17283
        * iresolve.c (gfc_resolve_pack): Choose function depending if mask
        is scalar.

        PR fortran/17631
        * intrinsic.c (add_sym_5): Remove.
        (add_subroutines): Add resolution function for MVBITS.
        * intrinsic.h (gfc_resolve_mvbits): Declare resolution function for
        MVBITS
        * iresolve.c (gfc_resolve_mvbits): New function.
        (gfc_resolve_random_number): Remove empty line at end of function.

        * trans-const.c (gfc_build_cstring_const): New function.
        (gfc_init_cst): Use new function.
        * trans-const.h (gfc_build_cstring_const): Add prototype.
        * trans-io.c (set_string, set_error_locus): Use new function.
        * trans-stmt.c (gfc_trans_goto): Use new function.

        PR fortran/17708
        * parse.c (accept_statement): Don't treat END DO like END IF and
        END SELECT.
        (parse_do_block): Generate possible END DO label inside END DO
        block.

        PR fortran/17776
        * check.c (gfc_check_system_sub): New function.
        * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SYSTEM.
        * intrinsic.c (add_functions): Add 'system'.
        (add_subroutines): Add 'system'.
        * intrinsic.h (gfc_check_etime_sub, gfc_check_getcwd_sub):
        Move prototypes to other suborutines.
        (gfc_check_system_sub, gfc_resolve_system, gfc_resolve_system_sub):
        Add prototype.
        (gfc_resolve_system_clock): Fix formatting of prototype.
        * iresolve.c (gfc_resolve_system, gfc_resolve_system_sub): New
        functions.
        * trans-intrinsic.c (gfc_conv_intrinsic_function): Deal with
        GFC_ISYM_SYSTEM.

2004-10-04  Erik Schnetter  <schnetter@aei.mpg.de>

        * scanner.c (preprocessor_line): Accept preprocessor lines without
        file names.  Check file names for closing quotes.  Handle escaped
        quotes in file names.

2004-10-04  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
        Paul Brook  <paul@codesourcery.com>

        * trans-array.c (gfc_conv_expr_descriptor): Check for substriungs.
        Use gfc_get_expr_charlen.
        * trans-expr.c (gfc_get_expr_charlen): New function.
        * trans.h (gfc_get_expr_charlen): Add prototype.

2004-10-04  Kazu Hirata  <kazu@cs.umass.edu>

        * trans-intrinsic.c: Fix a comment typo.

2004-10-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * simplify.c (range_check): Remove blank line at beginning of function.
        (gfc_simplify_dint): Same at end of function.
        (gfc_simplify_exponent, gfc_simplify_fraction): Simplify calculations.
        (gfc_simplify_bound): Fix indentation.
        (gfc_simplify_log10): Simplify calculation.
        (gfc_simplify_min, gfc_simplify_max): Remove blank line at beginning
        of function.
        (gfc_simplify_nearest): Same at end of function.
        (gfc_simplify_nint, gfc_simplify_idnint): Same at beginning of
        function.
        (gfc_simplify_rrspacing, gfc_simplify_set_exponent,
        gfc_simplify_spacing): Simplify calulations.

2004-10-03  Feng Wang  <fengwang@nudt.edu.cn>

        * trans-intrinsic.c: Fix comments on spacing and rrspacing
        (gfc_conv_intrinsic_rrspacing): Add fold on constant trees.

2004-10-01  Jan Hubicka  <jh@suse.cz>

        * f95-lang.c (gfc_expand_function): Update call of
        tree_rest_of_compilation.
        * trans-decl.c (gfc_generate_constructors): Likewise.

2004-09-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * trans-intrinsic.c: Comment fixes.

2004-09-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * decl.c (add_init_expr_to_sym, variable_decl): Comment fixes.

2004-09-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * trans-types.c (gfc_return_by_reference): Remove superfluous
        assertion.

        * intrinsic.h (gfc_resolve_getcwd): Update prototype.
        * iresolve.c (gfc_resolve_getcwd): Add second argument to function.

        PR fortran/17615
        * trans-expr.c (gfc_trans_arrayfunc_assign): Look at resolved
        function to determine return type.

2004-09-20  Jan Hubicka  <jh@suse.cz>

        * trans-decl.c (build_entry_thunks): Finalize the function; do not lower
        tree.
        (gfc_generate_function_code): Likewise.

2004-09-20  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/15957
        * simplify.c (gfc_simplify_reshape): Set shape of return value
        correctly.

2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
            Zack Weinberg  <zack@codesourcery.com>

        * f95-lang.c, trans-expr.c, trans.c: Update for new tree-class
        enumeration constants.

2004-09-17  Paul Brook  <paul@codesourcery.com>

        * gfortran.h (struct gfc_linebuf): Don't use C99 empty arrays.
        (gfc_linebuf_header_size): Define.
        * scanner.c (load_file): Use it.

2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>

        * array.c, data.c, decl.c, dependency.c, error.c, f95-lang.c,
        interface.c, intrinsic.c, io.c, misc.c, module.c, parse.h,
        resolve.c, scanner.c, trans-array.c, trans-array.h,
        trans-common.c, trans-const.h, trans-decl.c, trans-expr.c,
        trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.c,
        trans.h: Fix comment typos.  Follow spelling conventions.

2004-09-16  Victor Leikehman  <lei@il.ibm.com>

        PR/15364
        * trans-io.c (transfer_array_component): New function.
        (transfer_expr): For array fields, call transfer_array_component.

2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>

        * gfortran.texi: Fix a typo.

2004-09-15  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>

        * parse.c (eof_buf): Rename eof to eof_buf.
        (unexpected_eof): Same.
        (gfc_parse_file): Same.

2004-09-15  Steven G. Kargl  <kargls@comcast.net>

        * check.c (gfc_check_getcwd_sub): New function.
        * gfortran.h (GFC_ISYM_GETCWD): New symbol.
        * intrinsic.c (add_functions): Add function definition;
        Use symbol.
        * intrinsic.c (add_subroutines): Add subroutine definitions.
        * intrinsic.h: Add prototypes.
        * iresolve.c (gfc_resolve_getcwd, gfc_resolve_getcwd_sub):
        New functions.
        * trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbol.

2004-09-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/16485
        * module.c (write_symbol): Don't fill in module name here.
        (write_symbol0): Fill in here instead.

2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>

        * data.c, decl.c, f95-lang.c, gfortran.h, match.c,
        trans-array.c, trans-common.c, trans-expr.c,
        trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.h: Fix
        comment typos.  Follow spelling conventions.

2004-09-09  Paul Brook  <paul@codesourcery.com>

        * scanner.c (get_file): Add ATTRIBUTE_UNUSED.

2004-09-08  Paul Brook  <paul@codesourcery.com>

        * array.c: Don't include assert.h.
        * data.c: Don't include assert.h.  Replace assert and abort with
        gcc_assert and gcc_unreachable.
        * dependency.c: Ditto.
        * f95-lang.c: Ditto.
        * iresolve.c: Ditto.
        * resolve.c: Ditto.
        * simplify.c: Ditto.
        * symbol.c: Ditto.
        * trans-array.c: Ditto.
        * trans-common.c: Ditto.
        * trans-const.c: Ditto.
        * trans-decl.c: Ditto.
        * trans-expr.c: Ditto.
        * trans-intrinsic.c: Ditto.
        * trans-io.c: Ditto.
        * trans-stmt.c: Ditto.
        * trans-types.c: Ditto.
        * trans.c: Ditto.

2004-09-07  Per Bothner  <per@bothner.com>
        Paul Brook  <paul@codesourcery.com>

        * error.c (show_locus): Handle mapped locations.
        * f95-lang.c (gfc_be_parse_file): Initialize mapped locations.
        * gfortran.h: Include input.h.
        (struct gfc_linebuf): Use source_location.
        * scanner.c (get_file): Initialize linemap.
        (preprocessor_line): Pass extra argument to get_file.
        (load_file): Ditto.  Setup linemap.
        (gfc_new_file): Handle mapped locations.
        * trans-common.c (build_field, build_equiv_decl, build_common_decl):
        Set decl source locations.
        (gfc_trans_common): Set blank common block location.
        * trans-decl.c (gfc_set_decl_location): New function.
        (gfc_get_label_decl, gfc_get_symbol_decl): Use it.
        (trans_function_start): Move call to gfc_set_backend_locus..
        (build_function_decl): ... to here.
        (build_entry_thunks): Set and restore the backend locus.
        (gfc_generate_constructors): Remove excess arguments to
        init_function_start.
        (gfc_generate_block_data): Add comments.  Set the decl locus.
        * trans-io.c (set_error_locus): Handle mapped locations.
        * trans.c (gfc_get_backend_locus, gfc_get_backend_locus): Ditto.
        (gfc_trans_code): Use SET_EXPR_LOCATION.
        (gfc_generate_code): Override the location of the new symbol.
        * trans.h (gfc_set_decl_location): Add prototype.

2004-08-31  Paul Brook  <paul@codesourcery.com>

        * trans-types.c (gfc_type_for_mode): Return NULL for unknown modes.

2004-09-01  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/15327
        * trans-intrinsic.c (gfc_conv_intrinsic_merge): Do the right thing for
        strings.

2004-09-01  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/16400
        PR fortran/16404
        (port from g95)
        * resolve.c (resolve_transfer): New function.
        (resolve_code): Call resolve_transfer in case of EXEC_TRANSFER.

2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/16579
        * trans-types.c (gfc_init_types): Make gfc_character1_type_node an
        unsigned char.

2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * CONTRIB, NEWS, README, TODO: Remove obsolete files.

2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/17244
        * trans-types.c (gfc_return_by_reference): Remove TODO error,
        add comment pointing out possible issue WRT compatibility with g77.

2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * trans-decl.c, trans-expr.c, trans-io.c, trans-types.c: Replace
        all occurences of 'gfc_strlen_type_node' by
        'gfc_charlen_type_node'.
        * trans-types.h: Same. Also update comment accordingly.

2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * primary.c: Update copyright boilerplate to say GCC.
        * f95-lang.c: Change initial comment to say gfortran.

2004-08-31  Paul Brook  <paul@codesourcery.com>

        * trans-types.h: Add comments.
        (intmax_type_node, string_type_node, const_string_type_node): Remove.

2004-08-30  Richard Henderson  <rth@redhat.com>

        * Make-lang.in (fortran/f95-lang.o): Update dependencies.
        (fortran/trans-decl.o, fortran/trans-types.o): Likewise.
        * gfortran.h (gfc_integer_info): Add c_char, c_short, c_int,
        c_long, c_long_long.
        (gfc_logical_info): Add c_bool.
        (gfc_real_info): Add mode_precision, c_float, c_double, c_long_double.
        * trans-array.c (gfc_array_allocate): Use TYPE_PRECISION
        rather than gfc_int[48]_type_node for allocate choice.
        * trans-decl.c (gfc_build_intrinsic_function_decls): Cache
        local copies of some kind type nodes.
        (gfc_build_builtin_function_decls): Likewise.
        * trans-expr.c (gfc_conv_power_op): Likewise.
        * trans-intrinsic.c (gfc_conv_intrinsic_index,
        gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify,
        gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat): Likewise.
        * trans-stmt.c (gfc_trans_pause, gfc_trans_stop,
        gfc_trans_character_select, gfc_trans_allocate): Likewise.
        * trans-io.c (gfc_pint4_type_node): Move into ...
        (gfc_build_io_library_fndecls): ... here.  Cache local copies of
        some kind type nodes.
        * trans-types.c (gfc_type_nodes): Remove.
        (gfc_character1_type_node, gfc_strlen_type_node): New.
        (gfc_integer_types, gfc_logical_types): New.
        (gfc_real_types, gfc_complex_types): New.
        (gfc_init_kinds): Fill in real mode_precision.
        (gfc_build_int_type, gfc_build_real_type): New.
        (gfc_build_complex_type, gfc_build_logical_type): New.
        (c_size_t_size): New.
        (gfc_init_types): Loop over kinds.
        (gfc_get_int_type, gfc_get_real_type): Use gfc_validate_kind.
        (gfc_get_complex_type, gfc_get_logical_type): Likewise.
        (gfc_get_character_type_len): Likewise.
        (gfc_type_for_size): Loop over kinds; use a reduced set of
        unsigned type nodes.
        (gfc_type_for_mode): Loop over kinds.
        (gfc_signed_or_unsigned_type): Use gfc_type_for_size.
        (gfc_unsigned_type, gfc_signed_type): Use gfc_signed_or_unsigned_type.
        * trans-types.h (F95_INT1_TYPE, F95_INT2_TYPE, F95_INT4_TYPE,
        F95_INT8_TYPE, F95_INT16_TYPE, F95_REAL4_TYPE, F95_REAL8_TYPE,
        F95_REAl16_TYPE, F95_COMPLEX4_TYPE, F95_COMPLEX8_TYPE,
        F95_COMPLEX16_TYPE, F95_LOGICAL1_TYPE, F95_LOGICAL2_TYPE,
        F95_LOGICAL4_TYPE, F95_LOGICAL8_TYPE, F95_LOGICAL16_TYPE,
        F95_CHARACTER1_TYPE, NUM_F95_TYPES, gfc_type_nodes,
        gfc_int1_type_node, gfc_int2_type_node, gfc_int4_type_node,
        gfc_int8_type_node, gfc_int16_type_node, gfc_real4_type_node,
        gfc_real8_type_node, gfc_real16_type_node, gfc_complex4_type_node,
        gfc_complex8_type_node, gfc_complex16_type_node,
        gfc_logical1_type_node, gfc_logical2_type_node,
        gfc_logical4_type_node, gfc_logical8_type_node,
        gfc_logical16_type_node, gfc_strlen_kind): Remove.
        (gfc_character1_type_node): Turn in to a variable.
        (gfc_strlen_type_node): Likewise.

2004-08-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * gfortran.h (gfc_namespace): Add new field is_block_data.
        * parse.c (accept_statement): Remove special handling for BLOCK DATA.
        (parse_block_data): Record BLOCK DATA name, set is_block_data field.
        * trans.c (gfc_generate_code): Handle BLOCK DATA units.
        * trans.h (gfc_generate_block_data): Add prototype.
        * trans-decl.c (gfc_generate_block_data): New function.

2004-08-29  Richard Henderson  <rth@redhat.com>

        * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_export.
        * trans-types.c (gfc_init_kinds): Reject integer kinds larger
        than two HOST_WIDE_INT.

2004-08-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/13910
        * decl.c (free_variable, free_value, gfc_free_data, var_list,
        var_element, top_var_list, match_data_constant, top_val_list,
        gfc_match_data): Move here from match.c.
        (match_old_style_init): New function.
        (variable_decl): Match old-style initialization.
        * expr.c (gfc_get_variable_expr): New function.
        * gfortran.h (gfc_get_variable_expr): Add prototype.
        * gfortran.texi: Start documentation for supported extensions.
        * match.c: Remove the functions moved to decl.c.
        * match.h (gfc_match_data): Move prototype to under decl.c.
        * symbol.c (gfc_find_sym_tree, gfc_find_symbol): Add/correct
        comments.

2004-08-29  Steven G. Kargl  <kargls@comcast.net>
        Paul Brook  <paul@codesourcery.com>

        * check.c (gfc_check_besn, gfc_check_g77_math1): New functions.
        * f95-lang.c (DO_DEFINE_MATH_BUILTIN): Define.
        (DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it.
        (build_builtin_fntypes): New function.
        (gfc_init_builtin_functions): Use it.
        * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_{J,Y}{0,1,N}
        and GFC_ISYM_ERF{,C}.
        (gfc_c_int_kind): Declare.
        * intrinsic.c (add_functions): Add [d]bes* and [d]erf*.
        * intrinsic.h (gfc_check_besn, gfc_check_g77_math1, gfc_resolve_besn,
        gfc_resolve_g77_math1): Add prototypes.
        * resolve.c (gfc_resolve_besn, gfc_resolve_g77_math1): New functions.
        * mathbuiltins.def: Add comment.  Change third argument.  Use
        DEFINE_MATH_BUILTIN_C.  Add bessel and error functions.
        * trans-intrinsic.c (BUILT_IN_FUNCTION): Define.
        (DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it.
        * trans-types.c (gfc_c_int_kind): Declare.
        (gfc_init_kinds): Set it.

2004-08-29  Steven G. Kargl  <kargls@comcast.net>
        Paul Brook  <paul@codesourcery.com>

        * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_GET?ID.
        (gfc_check_f, gfc_simplify_f): Add f0.
        * intrinsic.c (do_check): Call f0.  Flatten.
        (add_sym_0): Fix prototype.  Set f0.
        (add_functions): Add getgid, getgid and getuid.
        (resolve_intrinsic): Remove obsolete comment.
        (do_simplify): Call f0.
        * intrinsic.h (gfc_resolve_getgid, gfc_resolve_getpid,
        gfc_resolve_getuid): Add prototypes.
        * iresolve.c (gfc_resolve_getgid, gfc_resolve_getpid,
        gfc_resolve_getuid): New functions.
        * trans-intrinsic.c (gfc_conv_intrinsic_function): Handle
        GFC_ISYM_GET?ID.

2004-08-28  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * error.c (gfc_error_init_1): Remove blank line in front of
        function body. Add missing blank.
        (gfc_buffer_error, error_char, error_string): Remove blank line in
        front of function body.
        (show_locus): Add comma in comment.
        (gfc_clear_warning, gfc_warning_check, gfc_clear_error,
        gfc_push_error, gfc_pop_error): Remove blank line in front of
        function body.
        (gfc_get_errors): Typo fix in comment in front of function. Remove
        blank line in front of function body.

2004-08-27  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * gfortran.h (gfc_default_*_kind): Remove prototypes, add extern
        variable declaration of same name.
        * arith.c, check.c, decl.c, dump_parse_tree.c, expr.c,
        intrinsic.c, io.c, iresolve.c, match.c, options.c, primary.c,
        resolve.c, simplify.c, symbol.c, trans-const.c, trans-io.c:
        Replace all calls to gfc_default_*_kind with variable accesses.
        * trans-types.c: Same as above.
        (gfc_default_*_kind_1): Rename to gfc_default_*_kind, remove
        static qualifier. Replace all occurences.
        (gfc_default_*_kind): Remove functions.

2004-08-26  Richard Henderson  <rth@redhat.com>

        * arith.c: Include system.h, not real system headers.
        (MPZ_NULL, MPF_NULL, DEF_GFC_INTEGER_KIND, DEF_GFC_LOGICAL_KIND,
        DEF_GFC_REAL_KIND, GFC_SP_KIND, GFC_SP_PREC, GFC_SP_EMIN, GFC_SP_EMAX,
        GFC_DP_KIND, GFC_DP_PREC, GFC_DP_EMIN, GFC_DP_EMAX, GFC_QP_KIND,
        GFC_QP_PREC, GFC_QP_EMIN, GFC_QP_EMAX): Remove.
        (gfc_integer_kinds, gfc_logical_kinds, gfc_real_kinds,
        gfc_index_integer_kind, gfc_default_integer_kind,
        gfc_default_real_kind,gfc_default_double_kind,
        gfc_default_character_kind, gfc_default_logical_kind,
        gfc_default_complex_kind, validate_integer, validate_real,
        validate_logical, validate_character,
        gfc_validate_kind): Move to trans-types.c.
        (gfc_set_model_kind): Use gfc_validate_kind.
        (gfc_set_model): Just copy the current precision to default.
        (gfc_arith_init_1): Use mpfr precision 128 for integer setup.
        * f95-lang.c (gfc_init_decl_processing): Invoke gfc_init_kinds.
        * gfortran.h: Update file commentary.
        * trans-types.c (MAX_INT_KINDS, MAX_REAL_KINDS): New.
        (gfc_default_integer_kind_1, gfc_default_real_kind_1,
        gfc_default_double_kind_1, gfc_default_character_kind_1,
        gfc_default_logical_kind_1, gfc_default_complex_kind_1): New.
        (gfc_init_kinds): New.
        (gfc_init_types): Don't set gfc_index_integer_kind here.
        * trans-types.h (gfc_init_kinds): Declare.
        * doc/invoke.texi: Clarify DOUBLE PRECISION behaviour wrt -r8.

2004-08-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * check.c (gfc_check_atan2): New function.
        * intrinsic.c (add_functions): Use gfc_check_atan2 for ATAN2
        * intrinsic.h (gfc_check_atan2): Add prototype.

2004-08-25  Richard Henderson  <rth@redhat.com>

        * arith.c (gfc_validate_kind): Add may_fail argument; abort if
        false and we don't validate the kind.
        (gfc_check_integer_range, gfc_check_real_range): Update to match.
        * check.c (kind_check): Likewise.
        * decl.c (gfc_match_old_kind_spec, gfc_match_kind_spec): Likewise.
        (match_char_spec, match_logical_spec): Likewise.
        * gfortran.h (gfc_validate_kind): Likewise.
        * options.c (gfc_handle_option): Likewise.
        * primary.c (match_integer_constant, match_real_constant,
        match_string_constant, match_logical_constant,
        match_const_complex_part): Likewise.
        * simplify.c (get_kind, gfc_simplify_bit_size, gfc_simplify_digits,
        gfc_simplify_epsilon, gfc_simplify_huge, gfc_simplify_ibclr,
        gfc_simplify_ibset, gfc_simplify_ishft, gfc_simplify_ishftc,
        gfc_simplify_maxexponent, gfc_simplify_minexponent,
        gfc_simplify_nearest, gfc_simplify_not, gfc_simplify_precision,
        gfc_simplify_radix, gfc_simplify_range, gfc_simplify_rrspacing,
        gfc_simplify_scale, gfc_simplify_spacing, gfc_simplify_tan,
        gfc_simplify_tiny): Likewise.
        * trans-intrinsic.c (gfc_conv_intrinsic_aint, gfc_conv_intrinsic_mod,
        gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval,
        prepare_arg_info): Likewise.

2004-08-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * expr.c (gfc_check_assign): Add comment. Add new warning.
        * trans-expr.c (gfc_conv_function_call): Correctly dereference
        result of pointer valued function when not in pointer assignment.

2004-08-25  Paul Brook  <paul@codesourcery.com>

        * config-lang.in: Remove dead commented line.
        * module.c: Replace g95 with gfortran in comment.

2004-08-25  Paul Brook  <paul@codesourcery.com>

        PR fortran/17190
        * arith.c (gfc_mpfr_to_mpz): Workaround mpfr bug.

2004-08-25  Paul Brook  <paul@codesourcery.com>

        PR fortran/17144
        * trans-array.c (gfc_trans_allocate_temp_array): Remove
        string_length argument.
        (gfc_trans_array_ctor_element): New function.
        (gfc_trans_array_constructor_subarray): Use it.
        (gfc_trans_array_constructor_value): Ditto.  Handle constant
        character arrays.
        (get_array_ctor_var_strlen, get_array_ctor_strlen): New functions.
        (gfc_trans_array_constructor): Use them.
        (gfc_add_loop_ss_code): Update to new gfc_ss layout.
        (gfc_conv_ss_descriptor): Remember section string length.
        (gfc_conv_scalarized_array_ref): Ditto.  Remove dead code.
        (gfc_conv_resolve_dependencies): Update to new gfc_ss layout.
        (gfc_conv_expr_descriptor): Ditto.
        (gfc_conv_loop_setup): Ditto.  Spelling fixes.
        * trans-array.h (gfc_trans_allocate_temp_array): Update prototype.
        * trans-const.c (gfc_conv_constant):  Update to new gfc_ss layout.
        * trans-expr.c (gfc_conv_component_ref): Turn error into ICE.
        (gfc_conv_variable): Set string_length from section.
        (gfc_conv_function_call): Remove extra argument.
        (gfc_conv_expr, gfc_conv_expr_reference): Update to new gfc_ss layout.
        * trans-types.c (gfc_get_character_type_len): New function.
        (gfc_get_character_type): Use it.
        (gfc_get_dtype): Return zero for internal types.
        * trans-types.h (gfc_get_character_type_len): Add prototype.
        * trans.h (struct gfc_ss): Move string_length out of union.

2004-08-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * trans.h (build2_v, build3_v): New macros.
        (build_v): Remove.
        * f95-lang.c (gfc_truthvalue_conversion): Use build2 instead of
        build.
        * trans-array.c (gfc_conv_descriptor_data,
        gfc_conv_descriptor_offset, gfc_conv_descriptor_dimension,
        gfc_conv_descriptor_stride, gfc_conv_descriptor_lbound,
        gfc_conv_descriptor_ubound, gfc_trans_allocate_array_storage,
        gfc_trans_allocate_temp_array,
        gfc_trans_array_constructor_subarray,
        gfc_trans_array_constructor_value, gfc_conv_array_index_ref,
        gfc_trans_array_bound_check, gfc_conv_array_index_offset,
        gfc_conv_scalarized_array_ref, gfc_conv_array_ref,
        gfc_conv_array_ref, gfc_trans_preloop_setup,
        gfc_trans_scalarized_loop_end, gfc_conv_ss_startstride,
        gfc_conv_loop_setup, gfc_array_init_size,
        gfc_conv_array_initializer, gfc_trans_array_bounds,
        gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
        gfc_conv_expr_descriptor, gfc_conv_array_parameter,
        gfc_trans_deferred_array): Use buildN and buildN_v macros instead
        of build and build_v as appropriate.
        * trans-common.c (create_common): Same.
        * trans-decl.c (gfc_trans_auto_character_variable,
        gfc_trans_entry_master_switch, gfc_generate_function_code): Same.
        * trans-expr.c (gfc_conv_expr_present, gfc_conv_substring,
        gfc_conv_component_ref, gfc_conv_unary_op, gfc_conv_powi,
        gfc_conv_cst_int_power, gfc_conv_string_tmp, gfc_conv_concat_op,
        gfc_conv_expr_op, gfc_conv_function_call,
        gfc_trans_structure_assign): Same.
        * trans-intrinsic.c (build_fixbound_expr, build_round_expr,
        gfc_conv_intrinsic_aint, gfc_conv_intrinsic_bound,
        gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod,
        gfc_conv_intrinsic_dim, gfc_conv_intrinsic_sign,
        gfc_conv_intrinsic_dprod, gfc_conv_intrinsic_minmax,
        gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count,
        gfc_conv_intrinsic_arith, gfc_conv_intrinsic_minmaxloc,
        gfc_conv_intrinsic_minmaxval, gfc_conv_intrinsic_btest,
        gfc_conv_intrinsic_bitop, gfc_conv_intrinsic_singlebitop,
        gfc_conv_intrinsic_ibits, gfc_conv_intrinsic_ishft,
        gfc_conv_intrinsic_merge, gfc_conv_intrinsic_strcmp,
        gfc_conv_allocated, gfc_conv_associated, prepare_arg_info,
        gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_rrspacing,
        gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat,
        gfc_conv_intrinsic_iargc): Same.
        * trans-io.c (set_parameter_value, set_parameter_ref, set_string,
        set_flag, add_case, io_result, transfer_namelist_element,
        transfer_expr): Same.
        * trans-stmt.c (gfc_trans_goto, gfc_trans_return, gfc_trans_if_1,
        gfc_trans_arithmetic_if, gfc_trans_do, gfc_trans_do_while,
        gfc_trans_integer_select, gfc_trans_logical_select,
        gfc_trans_character_select, gfc_trans_forall_loop,
        gfc_trans_nested_forall_loop, gfc_do_allocate,
        generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp,
        compute_inner_temp_size, compute_overall_iter_number,
        allocate_temp_for_forall_nest, gfc_trans_pointer_assign_need_temp,
        gfc_trans_forall_1, gfc_evaluate_where_mask,
        gfc_trans_where_assign, gfc_trans_allocate): Same.
        * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Same.
        * trans.c (gfc_add_modify_expr, gfc_finish_block,
        gfc_build_array_ref, gfc_build_function_call,
        gfc_trans_runtime_check): Same.

2004-08-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * trans-const.c (gfc_conv_mpz_to_tree): Change call to
        build_int_cst to build_int_cst_wide in accordance to Nathan's
        previous patch.

2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>

        * trans-array.c (gfc_trans_array_constructor_value): Adjust
        build_int_cst calls.
        * trans-const.c (gfc_build_string_const, gfc_init_constants,
        gfc_conv_mpz_to_tree, gfc_conv_constant_to_tree): Likewise.
        * trans-decl.c (gfc_get_symbol_decl, build_entry_thunks,
        gfc_trans_entry_master_switch): Likewise.
        * trans-intrinsic.c (gfc_conv_intrinsic_ibits,
        gfc_conv_intrinsic_len, prepare_arg_info): Likewise.
        * trans-io.c (add_case, set_error_locus,
        transfer_namelist_element, transfer_expr): Likewise.
        * trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause,
        gfc_trans_stop, gfc_trans_character_select): Likewise.
        * trans-types.c (gfc_init_types, gfc_get_dtype): Likewise.
        * trans.c (gfc_trans_runtime_check): Likewise.

2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * trans-decl.c, trans-types.c: Add and remove blank lines as
        required.

2004-08-24  Richard Henderson  <rth@redhat.com>

        * trans-const.c (gfc_conv_mpz_to_tree): Fix 64-bit shift warning.

2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * resolve.c (merge_argument_lists): Revert unintentionally
        committed change.

2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * trans-decl.c (build_function_decl): Fix spelling in comment.
        (build_entry_thunks): Remove code with no function.
        (gfc_build_intrinsic_function_decls): Remove empty line.

        * resolve.c (resolve_entries): Fix a bunch of comment typos.

2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>

        * f95-lang.c (gfc_init_decl_processing): Adjust
        build_common_tree_nodes call.

2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * trans-types.c: Spelling and formatting fixes.

2004-08-23  Richard Henderson  <rth@redhat.com>

        * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_getlimbn instead
        of going through an intermediate string.  Fix 32/64 int/long bug.

2004-08-23  Eric Christopher  <echristo@redhat.com>

        * trans-types.c (gfc_type_for_mode): Remove VECTOR_TYPE_SUPPORTED_P
        usage. Use build_vector_type_for_mode for vector types.

2004-08-22  Richard Henderson  <rth@redhat.com>

        PR 13465
        * data.c (find_con_by_offset): Search ordered list; handle
        elements with repeat counts.
        (gfc_assign_data_value_range): New.
        * gfortran.h (struct gfc_data_value): Make repeat unsigned.
        (gfc_assign_data_value_range): Declare.
        * match.c (top_val_list): Extract repeat count into a temporary.
        * resolve.c (values): Make left unsigned.
        (next_data_value): Don't decrement left.
        (check_data_variable): Use gfc_assign_data_value_range.

2004-08-22  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * trans-const.c, trans-decl.c, trans-expr.c: Spelling fixes.

2004-08-22  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * check.c (gfc_check_reduction): Rename to ...
        (check_reduction): ... this. Make static. Don't check type of
        first argument.
        (gfc_check_minval_maxval, gfc_check_prodcut_sum): New functions.
        * intrinsic.c (add_functions): Change MAXVAL, MINVAL, PRODUCT and
        SUM to use new check functions.
        (check_specific): Change logic to call new functions.
        * intrinsic.h (gfc_check_minval_maxval, gfc_check_product_sum):
        Add prototypes.
        (gfc_check_reduction): Remove prototype.

2004-08-20  Paul Brook  <paul@codesourcery.com>
        Canqun Yang  <canqun@nudt.edu.cn>

        PR fortran/17077
        * trans-array.c (gfc_conv_array_parameter): Pass correct pointer
        for automatic arrays.
        * trans-types.c (gfc_get_nodesc_array_type): Add comment.

2004-08-19  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
        (Port from g95)

        PR fortran/17074
        * match.c (match_simple_forall, match_simple_where): Forward-declare.
        (gfc_match_if): Order statement list alphabetically, add WHERE and
        FORALL, remove double PAUSE.
        (gfc_match_simple_where, match_forall_header,
        gfc_match_simple_forall): New functions.
        (gfc_match_forall): Use match_forall_header.

2004-08-19  Paul Brook  <paul@codesourcery.com>

        PR fortran/17091
        * gfortran.h (gfc_access): Give ACCESS_UNKNOWN value 0.
        * symbol.c (gfc_clear_attr): Use memset.

2004-08-19  Paul Brook  <paul@codesourcery.com>

        PR fortran/14976
        PR fortran/16228
        * data.c (assign_substring_data_value): Remove.
        (create_character_intializer): New function.
        (gfc_assign_data_value): Track the typespec for the current
        subobject.  Use create_character_intializer.

2004-08-19  Erik Schnetter  <schnetter@aei.mpg.de>

        PR fortran/16946
        * check.c (gfc_check_reduction): New function.
        (gfc_check_minval_maxval): Removed.
        (gfc_check_product): Removed.
        (gfc_check_sum): Removed.
        * intrinsic.h: Add/remove declarations for these.
        * gfortran.h: Add field f3red to union gfc_check_f.
        * intrinsic.c (add_sym_3red): New function.
        (add_functions): Register maxval, minval, product, and sum intrinsics
        through add_sym_3red.
        (check_specific): Handle f3red union field.
        * iresolve.c: Whitespace change.

2004-08-18  Paul Brook  <paul@codesourcery.com>

        * trans-types.c (gfc_sym_type): Use pointer types for optional args.

2004-08-18  Victor Leikehman  <lei@il.ibm.com>

        PR fortran/13278
        * trans-io.c (transfer_namelist_element): New. Recursively handle
        derived-type variables.  Pass string lengths.
        (build_dt): Code moved to build_namelist, with some
        changes and additions.
        (gfc_build_io_library_fndecls): Declare the fifth
        argument in st_set_nml_var_char -- string_length.

2004-08-17  Paul Brook  <paul@codesourcery.com>
        Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/13082
        * decl.c (get_proc_name): Update mystery comment.
        (gfc_match_entry): Check for errors earlier.  Add entry point to list.
        * dump-parse-tree.c (gfc_show_code_node): Print EXEC_ENTRY nodes.
        * gfortran.h (symbol_attribute): Add entry_master.  Document entry.
        (struct gfc_entry_list): Define.
        (gfc_get_entry_list): Define.
        (struct gfc_namespace): Add refs and entries.
        (enum gfc_exec_op): Add EXEC_ENTRY.
        (struct gfc_code): Add ext.entry.
        * module.c (ab_attribute, attr_bits): Remove AB_ENTRY.
        (mio_symbol_attribute): Don't save/reture addr->entry.
        (mio_namespace_ref): Refcount namespaces.
        * parse.c (accept_statement): Handle ST_ENTRY.
        (gfc_fixup_sibling_symbols): Mark symbol as referenced.
        (parse_contained): Fixup sibling references to entry points
        after parsing the procedure body.
        * resolve.c (resolve_contained_fntype): New function.
        (merge_argument_lists, resolve_entries): New functions.
        (resolve_contained_functions): Use them.
        (resolve_code): Handle EXEC_ENTRY.
        (gfc_resolve): Call resolve_entries.
        * st.c (gfc_free_statement): Handle EXEC_ENTRY.
        * symbol.c (gfc_get_namespace): Refcount namespaces.
        (gfc_free_namespace): Ditto.
        * trans-array.c (gfc_trans_dummy_array_bias): Treat all args as
        optional when multiple entry points are present.
        * trans-decl.c (gfc_get_symbol_decl): Remove incorrect check.
        (gfc_get_extern_function_decl): Add assertion.  Fix coment.
        (create_function_arglist, trans_function_start, build_entry_thunks):
        New functions.
        (gfc_build_function_decl): Rename ...
        (build_function_decl): ... to this.
        (gfc_create_function_decl): New function.
        (gfc_generate_contained_functions): Use it.
        (gfc_trans_entry_master_switch): New function.
        (gfc_generate_function_code): Use new functions.
        * trans-stmt.c (gfc_trans_entry): New function.
        * trans-stmt.h (gfc_trans_entry): Add prototype.
        * trans-types.c (gfc_get_function_type): Add entry point argument.
        * trans.c (gfc_trans_code): Handle EXEC_ENTRY.
        (gfc_generate_module_code): Call gfc_create_function_decl.
        * trans.h (gfc_build_function_decl): Remove.
        (gfc_create_function_decl): Add prototype.

2004-08-15  Andrew Pinski  <apinski@apple.com>

        PR fortran/17030
        * f95-lang.c (gfc_init_builtin_functions): Initialize the builtins
        for cabs{,f} and copysign{,f}.
        * trans-decl.c (gfor_fndecl_math_cabsf): Delete.
        (gfor_fndecl_math_cabs): Delete.
        (gfor_fndecl_math_sign4): Delete.
        (gfor_fndecl_math_sign8): Delete.
        (gfc_build_intrinsic_function_decls): Remove the
        initializing of cabs{,f} and copysign{,f} functions.
        * trans-intrinsic.c (gfc_conv_intrinsic_abs): Use the builtins
        instead of the functions definitions.
        (gfc_conv_intrinsic_sign): Likewise.
        * trans.h (gfor_fndecl_math_cabsf): Delete.
        (gfor_fndecl_math_cabs): Delete.
        (gfor_fndecl_math_sign4): Delete.
        (gfor_fndecl_math_sign8): Delete.

2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>

        * trans-array.c (gfc_trans_array_constructor_value): Use
        build_int_cst.
        * trans-const.c (gfc_build_string_const,
        gfc_init_constants, gfc_conv_mpz_to_tree,
        gfc_conv_constant_to_tree): Likewise.
        * trans-decl.c (gfc_get_symbol_decl): Likewise.
        * trans-intrinsic.c (gfc_conv_intrinsic_ibits,
        gfc_conv_intrinsic_len, prepare_arg_info): Likewise.
        * trans-io.c (add_case, set_error_locus, build_dt,
        transfer_expr): Likewise.
        * trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause,
        gfc_trans_stop, gfc_trans_character_select): Likewise.
        * trans-types.c (gfc_init_types, gfc_get_dtype): Likewise.
        * trans.c (gfc_trans_runtime_check): Likewise.

2004-08-14  Paul Brook  <paul@codesourcery.com>

        * trans-decl.c (gfc_build_function_decl): Remove dead code.

2004-08-14  Paul Brook  <paul@codesourcery.com>

        * trans-arry.c (gfc_trans_auto_array_allocation): Remove unused var.

2004-08-13  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * gfortran.h: Add comments.
        * parse.c (parse_contained): Fix comment typo.
        * resolve.c (was_declared): Ditto.
        * symbol.c: Ditto.

2004-08-11  Paul Brook  <paul@codeourcery.com>

        PR fortran/16917
        * intrinsic.c (add_functions): Add dfloat as an alias for dble.

2004-08-10  Richard Henderson  <rth@redhat.com>

        * f95-lang.c (gfc_init_builtin_functions): Remove
         __builtin_stack_alloc, add __builtin_alloca.
        * trans-array.c (gfc_trans_auto_array_allocation): Use DECL_EXPR.
        * trans-decl.c (gfc_trans_auto_character_variable): Likewise.

2004-08-10  Paul Brook  <paul@codesourcery.com>

        * trans-io.c (transfer_expr): Handle pointters.

2004-08-10  Paul Brook  <paul@codesourcery.com>

        PR fortran/16919
        * trans-array.c (gfc_add_loop_ss_code): Handle GFC_SS_COMPONENT.
        (gfc_conv_array_index_offset): Allow "temporary" with nonzero delta.
        (gfc_trans_preloop_setup, gfc_trans_scalarized_loop_boundary):
        Handle GFC_SS_COMPONENT.
        (gfc_conv_ss_startstride): Ditto.  Set ss->shape.
        (gfc_conv_loop_setup): Tweak commends. Remove dead code.
        Use ss->shape.
        (gfc_conv_array_initializer): Call specific initializer routines.
        * trans-expr.c (gfc_trans_structure_assign): New function.
        (gfc_trans_subarray_assign): New function.
        (gfc_trans_subcomponent_assign): New fucntion
        (gfc_conv_structure): Use them.
        * trans.h (gfc_ss_type): Add GFC_SS_COMPONENT.
        (gfc_ss): Add shape.

2004-08-08  Victor Leikehman  <lei@il.ibm.com>

        * simplify.c (gfc_simplify_shape): Bugfix.
        * expr.c (gfc_copy_shape_excluding): New function.
        * gfortran.h (gfc_get_shape): Bugfix.
        (gfc_copy_shape_excluding): Added declaration.
        * iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count,
        gfc_resolve_cshift, gfc_resolve_eoshift, gfc_resolve_lbound,
        gfc_resolve_ubound, gfc_resolve_transpose): Added compile
        time resolution of shape.

2004-08-06  Janne Blomqvist  <jblomqvi@cc.hut.fi>

        * intrinsic.c (add_subroutines): Add getenv and
        get_environment_variable. (add_sym_5s): New function.
        * intrinsic.h (gfc_resolve_get_environment_variable): Add
        prototype.
        * iresolve.c (gfc_resolve_get_environment_variable): New
        function.

2004-08-06  Feng Wang  <fengwang@nudt.edu.cn>

        * f95-lang.c (gfc_init_builtin_functions): Fix the number of
        __builtin_pow[f] arguments.

2004-08-06  Steven G. Kargl  <kargls@comcast.net>

        * arith.c: Add #define for model numbers.  Remove global GMP variables.
        (natural_logarithm,common_logarithm,exponential,sine,
        cosine,arctangent,hypercos,hypersine ): Remove.
        (gfc_mpfr_to_mpz,gfc_set_model_kind,gfc_set_model): New functions.
        (arctangent2,gfc_arith_init_1,gfc_arith_done_1
        gfc_check_real_range, gfc_constant_result, gfc_range_check,
        gfc_arith_uminus,gfc_arith_plus, gfc_arith_minus, gfc_arith_times,
        gfc_arith_divide,complex_reciprocal,complex_pow_ui,
        gfc_arith_power,gfc_compare_expr,compare_complex,gfc_convert_real,
        gfc_convert_complex,gfc_int2real,gfc_int2complex,
        gfc_real2int,gfc_real2real,gfc_real2complex,
        gfc_complex2int,gfc_complex2real,gfc_complex2complex): Convert GMP
        to MPFR, use new functions.
        * arith.h: Remove extern global variables.
        (natural_logarithm,common_logarithm,exponential, sine, cosine,
        arctangent,hypercos,hypersine): Remove prototypes.
        (arctangent2): Update prototype from GMP to MPFR.
        (gfc_mpfr_to_mpz, gfc_set_model_kind,gfc_set_model): Add prototypes.
        * dump-parse-tree.c (gfc_show_expr): Convert GMP to MPFR.
        * expr.c (free_expr0,gfc_copy_expr): Convert GMP to MPFR.
        * gfortran.h (GFC_REAL_BITS): Remove.
        (arith): Add ARITH_NAN.
        Include mpfr.h.  Define GFC_RND_MODE.
        Rename GCC_GFORTRAN_H GFC_GFC_H.
        (gfc_expr): Convert GMP to MPFR.
        * module.c: Add arith.h, correct type in comment.
        (mio_gmp_real): Convert GMP to MPFR.
        (mio_expr):  Use gfc_set_model_kind().
        * primary.c:  Update copyright date with 2004.
        (match_real_constant,match_const_complex_part): Convert GMP to MPFR.
        * simplify.c: Remove global GMP variables
        (gfc_simplify_abs,gfc_simplify_acos,gfc_simplify_aimag,
        gfc_simplify_aint,gfc_simplify_dint,gfc_simplify_anint,
        gfc_simplify_dnint,gfc_simplify_asin,gfc_simplify_atan,
        gfc_simplify_atan2,gfc_simplify_ceiling,simplify_cmplx,
        gfc_simplify_conjg,gfc_simplify_cos,gfc_simplify_cosh,
        gfc_simplify_dim,gfc_simplify_dprod,gfc_simplify_epsilon,
        gfc_simplify_exp,gfc_simplify_exponent,gfc_simplify_floor,
        gfc_simplify_fraction,gfc_simplify_huge,gfc_simplify_int,
        gfc_simplify_ifix,gfc_simplify_idint,gfc_simplify_log,
        gfc_simplify_log10,simplify_min_max,gfc_simplify_mod,
        gfc_simplify_modulo,gfc_simplify_nearest,simplify_nint,
        gfc_simplify_rrspacing,gfc_simplify_scale,
        gfc_simplify_set_exponent,gfc_simplify_sign,gfc_simplify_sin,
        gfc_simplify_sinh,gfc_simplify_spacing,gfc_simplify_sqrt,
        gfc_simplify_tan,gfc_simplify_tanh,gfc_simplify_tiny,
        gfc_simplify_init_1,gfc_simplify_done_1):  Convert GMP to MPFR.
        Use new functions.
        * trans-const.c (gfc_conv_mpfr_to_tree): Rename from
        gfc_conv_mpf_to_tree.  Convert it to use MPFR
        (gfc_conv_constant_to_tree): Use it.
        * trans-const.h: Update prototype for gfc_conv_mpfr_to_tree().
        * trans-intrinsic.c: Add arith.h, remove gmp.h
        (gfc_conv_intrinsic_aint,gfc_conv_intrinsic_mod): Convert GMP to MPFR.

2004-08-06  Victor Leikehman  <lei@il.ibm.com>
        Paul Brook  <paul@codesourcery.com>

        * trans-array.c (gfc_trans_allocate_array_storage,
        gfc_trans_allocate_temp_array, gfc_add_loop_ss_code,
        gfc_conv_loop_setup): For functions, if the shape of the result
        is not known in compile-time, generate an empty array descriptor for
        the result and let the callee to allocate the memory.
        (gfc_trans_dummy_array_bias): Do nothing for pointers.
        (gfc_conv_expr_descriptor): Use function return values directly.
        * trans-expr.c (gfc_conv_function_call): Always add byref call
        insn to pre chain.
        (gfc_trans_pointer_assignment): Add comments.
        (gfc_trans_arrayfunc_assign): Don't chain on expression.

2004-08-01  Roger Sayle  <roger@eyesopen.com>

        * options.c (gfc_init_options): Don't warn about the use GNU
        extensions by default.
        (gfc_post_options): Warn about GNU extensions with -pedantic.
        (gfc_handle_option): Don't warn about GNU extensions with -std=gnu.

2004-07-30  Richard Henderson  <rth@redhat.com>

        * trans-expr.c (gfc_conv_expr_reference): Create a CONST_DECL
        for TREE_CONSTANTs.

2004-07-25  Richard Henderson  <rth@redhat.com>

        * trans-decl.c (gfc_build_function_decl): Set DECL_ARTIFICIAL
        and DECL_IGNORED_P on RESULT_DECL.
        (gfc_generate_constructors): Likewise.

2004-07-18  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/16465
        * lang.opt (ffixed-line-length-none, ffixed-line-length-): New
        options.
        (ffixed-line-length-80, ffixed-line-length-132): Remove.
        * options.c (gfc_handle_options): Deal with changed options.
        * scanner.c (load_line): Change second arg to 'char **',
        allocate if pointing to NULL. Keep track of buffer's length.
        Adapt buffer size to overlong lines. Pad lines to full length
        in fixed form.
        (load_file): Adapt to new interface of load_line.

2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>

        * trans.h (builtin_function): Declare.

2004-07-16  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/16404
        (parts ported from g95)
        * parse.h (gfc_state_data): New field do_variable.
        (gfc_check_do_variable): Add prototype.
        * parse.c (push_state): Initialize field 'do_variable'.
        (gfc_check_do_variable): New function.
        (parse_do_block): Remember do iterator variable.
        (parse_file): Initialize field 'do_variable'.
        * match.c (gfc_match_assignment, gfc_match_do,
        gfc_match_allocate, gfc_match_nullify, gfc_match_deallocate):
        Add previously missing checks.
        (gfc_match_return): Reformat error message.
        * io.c (match_out_tag): New function.
        (match_open_element, match_close_element,
        match_file_element, match_dt_element): Call match_out_tag
        instead of match_vtag where appropriate.
        (match_io_iterator, match_io_element): Add missing check.
        (match_io): Reformat error message.
        (match_inquire_element): Call match_out_tag where appropriate.

        * parse.c (gfc_check_do_variable): Fix error locus.

2004-07-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/15129
        * trans-decl.c (gfc_build_function_decl): Create a new chardecl
        for every assumed length character dummy argument.

        PR fortran/15140
        * trans-decl.c (gfc_trans_deferred_vars): Remove bogus assertion.

        PR fortran/13792
        * simplify.c (gfc_simplify_bound): Copy the bound expression.

2004-07-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/15324
        * trans-array.c gfc_trans_g77_array,
        gfc_trans_dummy_array_bias): Don't call gfc_trans_string_init
        for assumed length characters.
        (gfc_conv_expr_descriptor): Set se->string_length if dealing
        with a character expression.
        (gfc_cvonv_array_parameter): Pass string length when passing
        character array according to g77 conventions.

2004-07-12  Paul Brook  <paul@codesourcery.com>

        * expr.c (gfc_check_assign_symbol): Handle pointer assignments.
        * trans-array.c (gfc_trans_auto_array_allocation): Remove
        initialization code.
        * trans-common.c (create_common): Use gfc_conv_initializer.
        * trans-decl.c (gfc_get_symbol_decl): Use gfc_conv_initializer.
        * trans-expr.c (gfc_conv_initializer): New function.
        (gfc_conv_structure): Use it.
        * trans.h (gfc_conv_initializer): Add prototype.

2004-07-11  Paul Brook  <paul@codesourcery.com>

        PR fortran/15986
        * parse.c (gfc_fixup_sibling_symbols): Also look for untyped
        variables.
        (parse_contained): Mark contained symbols as referenced.

2004-07-11  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/16455
        * module.c (gfc_dump_module, gfc_use_module): Print locus
        when opening of module file fails.

        PR fortran/16404
        * io.c (match_io): Flag 'WRITE(...), ...' as extension.

        PR fortran/16404
        * match.c (gfc_match_program): A program name is obligatory.
        (gfc_match_return): RETURN in main program is an extension.
        (gfc_match_block_data): A space is required before a block data
        name.

        PR fortran/16433
        * primary.c (match_boz_constant): Call gfc_notify_std only if
        we actually have a non-standard boz-literal-constant.

        PR fortran/15754
        * expr.c (gfc_check_assign): Print ranks if incompatible. Issue
        warning if assigning NULL().

2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>

        * f95-lang.c (set_block): Remove.
        (gfc_clear_binding_stack): New.
        (LANG_HOOKS_CLEAR_BINDING_STACK): Define.
        (struct binding_level): Remove block_created_by_back_end.
        (clear_binding_level): Likewise.
        (poplevel): Don't handle block_created_by_back_end.

2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * trans-decl.c (gfc_create_module_variable): Nothing to do if
        symbol is in common, because we ...
        (gfc_generate_module_vars): Call gfc_trans_common.

2004-07-10  Paul Brook  <paul@codesourcery.com>

        * trans-array.c (gfc_build_null_descriptor): New function.
        (gfc_trans_static_array_pointer): Use it.
        * trans-array.h (gfc_build_null_descriptor): Add prototype.
        * trans-expr.c (gfc_conv_structure): Handle array pointers.

2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/16336
        * decl.c (gfc_match_save): Use-associated common block
        doesn't collide.
        * gfortran.h (gfc_common_head): Add new field 'name'.
        Fix typo in comment after #endif.
        * match.c (gfc_get_common): Add new argument from_common,
        mangle name if flag is set, fill in new field in structure
        gfc_common_head.
        (match_common): Set new arg in call to gfc_get_common,
        use-associated common block doesn't collide.
        * match.h (gfc_get_common): Adapt prototype.
        * module.c (load_commons): Set new arg in call to
        gfc_get_common.
        * symbol.c (free_common_tree): New function.
        (gfc_free_namespace): Call new function.
        * trans-common.c (several functions): Remove argument
        'name', use name from gfc_common_head instead.

2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * expr.c (gfc_check_pointer_assign): Verify that rank of the LHS
        and RHS match. Return early if the RHS is NULL().

        PR fortran/16336
        * match.c (match_common): Fix error reporting for used common.

        PR fortran/15969
        * trans-expr.c (gfc_conv_structure): Handle initialization
        of scalar pointer components.

        * parse.c (decode_statement): Fix matching of BLOCK DATA.

        * trans-decl.c (generate_local_decl): Remove workaround obsoleted
        by fix for PR 15481.

2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * trans-common.c: Fix whitespace issues, make variable names
        more readable.
        (create_common): Additionally, make loop logic more obvious.

2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
        Paul Brook  <paul@codesourcery.com>

        PR fortran/13415
        * trans-common.c (calculate_length): Remove ...
        (get_segment_info): Merge into here.  Save field type.
        (build_field): Use saved type.
        (create_common, new_condition, new_segment, finish_equivalences):
        Use new get_segment_info.
        * trans-types.c: Update comment.

2004-07-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/14077
        * moduele.c (mio_symbol): Don't I/O initial values unless
        symbol is a parameter.

2004-07-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/13201
        * resolve.c (resolve_symbol): Verify that the shape of a
        parameter array is not only explicit, but also constant.
        * array.c (gfc_is_compile_time_shape): New function.
        * gfortran.h (gfc_is_compile_time_shape): Add prototype.

2004-07-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/15481
        PR fortran/13372
        PR fortran/13575
        PR fortran/15978
        * module.c (write_symbol, write_symtree): Remove workaround.
        * primary.c (match_actual_arglist): Enhance comment.
        (gfc_match_rvalue): Handle function call with first argument
        a keyword argument correctly.
        * resolve.c (resolve_symbol): Change call to
        gfc_set_default_type to issue error if no implicit type
        can be found.
        * trans-decl.c (gfc_create_module_variable): Remove workaround.

2004-07-08  Paul Brook  <paul@codesourcery.com>

        * intrinsic.c (add_sym_4s): New function.
        (add_subroutines): Change gfc_add_sym_? to gfc_add_sym_?s.

2004-07-04  Janne Blomqvist  <jblomqvi@cc.hut.fi>
        Paul Brook  <paul@codesourcery.com>

        PR fortran/15280
        PR fortran/15665
        * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_IARGC and
        GFC_ISYM_COMMAND_ARGUMENT_COUNT.
        * intrinsic.c (add_functions):  Identify iargc.  Add
        command_argument_count.
        (add_subroutines): Resolve getarg.  Add get_command and
        get_command_argument.
        * intrinsic.h (gfc_resolve_getarg, gfc_resolve_get_command,
        gfc_resolve_get_command_argument): Add prototypes.
        * iresolve.c (gfc_resolve_getarg, gfc_resolve_get_command,
        gfc_resolve_get_command_argument): New functions.
        * trans-decl.c (gfor_fndecl_iargc): New variable.
        (gfc_build_intrinsic_function_decls): Set it.
        * trans-intrinsic.c (gfc_conv_intrinsic_iargc): New function.
        (gfc_conv_intrinsic_function): Use it.
        * trans.h (gfor_fndecl_iargc): Declare.

2004-07-04  Matthias Klose  <doko@debian.org>

        * Make-lang.in: Generate and install gfortran man page.
        * invoke.texi: Remove extra '@c man end'.

2004-07-04  Richard Henderson  <rth@redhat.com>

        * f95-lang.c (gfc_mark_addressable): Don't put_var_into_stack.

2004-07-04  Paul Brook  <paul@codesourcery.com>

        * decl.c (gfc_match_implicit_range): Don't use typespec.
        (gfc_match_implicit): Handle character selectors.
        * gfortran.h (gfc_set_implicit): Remove prototype.
        (gfc_add_new_implicit_range, gfc_merge_new_implicit): Update.
        * parse.c (accept_statement): Don't call gfc_set_implicit.
        * symbol.c (new_ts): Remove.
        (gfc_set_implicit_none): Use same loop bounds as other functions.
        (gfc_set_implicit): Remove.
        (gfc_clear_new_implicit, gfc_add_new_implicit_range): Only set flags.
        (gfc_merge_new_implicit): Combine with gfc_set_implicit.

2004-06-30  Richard Henderson  <rth@redhat.com>

        * match.c (var_element): Remove unused variable.

        * trans-decl.c (gfc_generate_function_code): Don't set
        x_whole_function_mode_p.
        (gfc_generate_constructors): Likewise.

2004-06-30  Richard Henderson  <rth@redhat.com>

        * trans-decl.c (gfc_generate_function_code): Don't set
        immediate_size_expand.
        (gfc_generate_constructors): Likewise.

2004-06-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/16161
        * decl.c (gfc_match_type_spec): Rename second argument to
        'implicit_flag', reverse meaning. Don't match_char_spec if
        'implicit_flag' is set. Rename to ...
        (match_type_spec): ... this.
        (gfc_match_implicit_none, match_implicit_range): Move here
        from match.c.
        (gfc_match_implicit): Move here from match.c, try to
        match_char_len if match_implicit_range doesn't succeed for
        CHARACTER implicits. Call renamed fucntion match_type_spec.
        (gfc_match_data_decl, match_prefix): Call renamed function
        match_type_spec.
        * match.c (gfc_match_implicit_none, match_implicit_range,
        gfc_match_implicit): Move to decl.c.
        * match.h (gfc_match_implicit_none, gfc_match_implicit):
        Move protoypes to section 'decl.c'.
        (gfc_match_type_spec): Remove prototype.

2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * decl.c, interface.c, symbol.c, trans-common.c: Add 2004 to
        copyright years.

2004-06-29  Steven Bosscher  <stevenb@suse.de>

        Make sure types in assignments are compatible.  Mostly mechanical.
        * trans-const.h (gfc_index_one_node): New define.
        * trans-array.c (gfc_trans_allocate_array_storage,
        gfc_trans_allocate_temp_array, gfc_trans_array_constructor_subarray,
        gfc_trans_array_constructor_value, gfc_trans_array_constructor,
        gfc_conv_array_ubound, gfc_conv_array_ref,
        gfc_trans_scalarized_loop_end, gfc_conv_section_startstride,
        gfc_conv_ss_startstride, gfc_conv_loop_setup, gfc_array_init_size,
        gfc_trans_array_bounds, gfc_trans_dummy_array_bias,
        gfc_conv_expr_descriptor, gfc_trans_deferred_array): Use the correct
        types in assignments, conversions and conditionals for expressions.
        * trans-expr.c (gfc_conv_expr_present, gfc_conv_substring,
        gfc_conv_unary_op, gfc_conv_cst_int_power, gfc_conv_string_tmp,
        gfc_conv_function_call, gfc_trans_pointer_assignment,
        gfc_trans_scalar_assign): Likewise.
        * trans-intrinsic.c (build_fixbound_expr, gfc_conv_intrinsic_bound,
        gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count,
        gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_btest,
        gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ishft,
        gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_strcmp,
        gfc_conv_allocated, gfc_conv_associated,
        gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_trim): Likewise.
        * trans-io.c (set_string): Likewise.
        * trans-stmt.c (gfc_trans_do, gfc_trans_forall_loop,
        gfc_do_allocate, generate_loop_for_temp_to_lhs,
        generate_loop_for_rhs_to_temp, compute_inner_temp_size,
        compute_overall_iter_number, gfc_trans_assign_need_temp,
        gfc_trans_pointer_assign_need_temp, gfc_trans_forall_1,
        gfc_evaluate_where_mask, gfc_trans_where_assign,
        gfc_trans_where_2): Likewise.
        * trans-types.c (gfc_get_character_type, gfc_build_array_type,
        gfc_get_nodesc_array_type, gfc_get_array_type_bounds): Likewise.

        * trans.c (gfc_add_modify_expr): Add sanity check that types
        for the lhs and rhs are the same for scalar assignments.

2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * dump-parse-tree.c (show_common): New function.
        (gfc_show_namespace): Show commons.

2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
        Andrew Vaught  <andyv@firstinter.net>

        PR fortran/13249
        PR fortran/15481
        * decl.c (gfc_match_save): Adapt to new common structures,
        don't allow saving USE-associated common.
        * dump-parse-tree (gfc_show_attr): (saved_)common are not
        symbol attributes any longer.
        (gfc_show_symbol): Don't show old-style commons any longer.
        (gfc_show_namespace): Adapt call to gfc_traverse_symtree to new
        interface.
        * gfortran.h (symbol_attribute): Remove common and saved_common
        attributes.
        (gfc_symbol): Remove common_head element.
        (gfc_common_head): New struct.
        (gfc_get_common_head): New macro.
        (gfc_symtree): Add field 'common' to union.
        (gfc_namespace): Add field 'common_root'; change type of field
        'blank_common' to blank_common.
        (gfc_add_data): New prototype.
        (gfc_traverse_symtree): Expect a symtree as first argument
        instead of namespace.
        * match.c (gfc_get_common): New function.
        (match_common_name): Change to take char * as argument, adapt,
        fix bug with empty name.
        (gfc_match_common): Adapt to new data structures. Disallow
        redeclaration of USE-associated COMMON-block. Fix bug with
        empty common.
        (var_element): Adapt to new common structures.
        * match.h (gfc_get_common): Declare.
        * module.c: Add 2004 to copyright years, add commons to module
        file layout description.
        (ab_attribute, attr_bits, mio_symbol_attributes): Remove code
        for removed attributes.
        (mio_symbol): Adapt to new way of storing common relations.
        (load_commons): New function.
        (read_module): Skip common list on first pass, load_commons at
        second.
        (write_commons): New function.
        (write_module): Call write_commons().
        * symbol.c (gfc_add_saved_comon, gfc_add_common): Remove
        functions related to removed attributes.
        (gfc_add_data): New function.
        (gfc_clear_attr): Don't set removed attributes.
        (gfc_copy_attr): Don't copy removed attributes.
        (traverse_symtree): Remove.
        (gfc_traverse_symtree): Don't traverse symbol
        tree of the passed namespace, but require a symtree to be passed
        instead. Unify with traverse_symtree.
        (gfc_traverse_ns): Call gfc_traverse_symtree according to new
        interface.
        (save_symbol): Remove setting of removed attribute.
        * trans-common.c (gfc_sym_mangled_common_id): Change to
        take 'char *' argument instead of 'gfc_symbol'.
        (build_common_decl, new_segment, translate_common): Adapt to new
        data structures, add new
        argument name.
        (create_common): Adapt to new data structures, add new
        argument name. Fix typo in intialization of derived types.
        (finish_equivalences): Add second argument in call to
        create_common.
        (named_common): take 'gfc_symtree' instead of 'gfc_symbol'.
        (gfc_trans_common): Adapt to new data structures.
        * trans-decl.c (gfc_create_module_variables): Remove test for
        removed attribute.

2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * io.c: Add 2004 to copyright years.

2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
        Andrew Vaught  <andyv@firstinter.net>

        * gfortran.h (gfc_gsymbol): New typedef.
        (gfc_gsym_root): New variable.
        (gfc_get_gsymbol, gfc_find_gsym): New prototypes.
        * parse.c (global_used): New function.
        (parse_block_data): Check for double empty BLOCK DATA,
        use global symbol table.
        (parse_module): Use global symbol table.
        (add_global_procedure, add_global_program): New functions.
        (gfc_parse_file): Use global symbol table.
        * symbol.c (gfc_gsym_root): New variable.
        (gfc_find_gsym, gsym_compare, gfc_get_gsymbol): New
        functions.

2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * module.c (mio_gmp_real): Correct writing of negative numbers.

2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/15963
        * expr.c (check_intrinsic_op): Allow comparison of characters.
        Make logic easier.

2004-06-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
        Andrew Vaught  <andyv@firstinter.net>

        * decl.c (contained_procedure): New function.
        (match_end): Verify correctness of END STATEMENT in
        all cases.

2004-06-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
        Andrew Vaught  <andyv@firstinter.net>

        PR fortran/15190
        * decl.c (gfc_match_type_spec), io.c (match_io), parse.c
        (decode_statement): Enforce required space in free-form.

2004-06-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

        * f95-lang.c (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Deleted.
        * trans-array.c (gfc_conv_descriptor_data): Add operand
        for COMPONENT_REF.
        (gfc_conv_descriptor_offset, gfc_conv_descriptor_dtype): Likewise.
        (gfc_conv_descriptor_dimension, gfc_conv_descriptor_stride): Likewise.
        (gfc_conv_descriptor_lbound, gfc_conv_descriptor_ubound): Likewise.
        * trans-common.c (create_common): Likewise.
        * trans-expr.c (gfc_conv_component_ref): Likewise.
        * trans-io.c (set_parameter_value): Likewise.
        (set_parameter_ref, set_string, set_flag, io_result): Likewise.
        (transfer_expr): Likewise.
        * trans-decl.c (gfc_trans_auto_character_variable):
        Set up to get DECL_SIZE and DECL_SIZE_UNIT gimplified.
        (gfc_gimplify_function): New function.
        (gfc_generate_function-code): Properly handle nested functions.
        * trans.c (gfc_build_array_ref): Add two new operands for ARRAY_REF.

2004-06-22  Janne Blomqvist  <jblomqvi@cc.hut.fi>

        PR fortran/15750
        * io.c (gfc_match_inquire): Bugfix for iolength related stuff.
        (gfc_resolve_inquire): Resolve the iolength tag.  Return
        SUCCESS at end of function if no failure has occured.
        * resolve.c (resolve_code): Resolve if iolength is encountered.
        * trans-io.c: (ioparm_iolength, iocall_iolength,
        iocall_iolength_done): New variables.
        (last_dt): Add IOLENGTH.
        (gfc_build_io_library_fndecls ): Set iolength related variables.
        (gfc_trans_iolength): Implement.
        (gfc_trans_dt_end): Treat iolength as a third form of data transfer.

2004-06-21  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de

        PR fortran/15511
        * scanner.c (load_line): Don't truncate preprocessor lines.
        Reformat error message.
        (preprocessor_line): Issue warning in case of malformed
        preprocessor line.

2004-06-21  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * resolve.c (resolve_symbol): Add comment in function body.
        (check_data_variable): Change type of mark to ar_type, adapt code
        accordingly.

2004-06-21  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * array.c (gfc_insert_constructor): Avoid redundant call to
        mpz_comp. Add 2004 to copyright years.

2004-06-21  Joseph S. Myers  <jsm@polyomino.org.uk>

        * trans.h (stmtblock_t): Change has_scope to unsigned int.

2004-06-20  Steven G. Kargl  <kargls@comcast.net>

        * arith.c (gfc_range_check): correct complex underflow.

2004-06-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/15962
        * match.c (match_case_selector): Call gfc_match_init_expr
        instead of gfc_match_expr.
        * resolve.c (validate_case_label_expr): No need to check for
        constant, since it wouldn't have been matched with the fix to
        match.c.

2004-06-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/15211
        * trans-intrinsic.c (gfc_conv_intrinsic_len): Deal with arrays
        of strings.

2004-06-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/15510
        * trans-deecl.c (generate_local_decl): Do not issue warning for
        unused variables if they're use associated.

2004-06-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
        Andrew Vaught  <andyv@firstinter.net>

        PR fortran/14928
        * gfortran.h (gfc_check_f): Add new field f3ml.
        * check.c (gfc_check_minloc_maxloc): Take argument list instead
        of individual arguments, reorder if necessary.
        * intrinsic.h (gfc_check_minloc_maxloc): ... adapt prototype.
        * intrinsic.c (add_sym_3ml): New function.
        (add_functions): Change to add_sym_3ml for MINLOC, MAXLOC.
        (check_specific): Catch special case MINLOC, MAXLOC.

2004-06-14  Paul Brook  <paul@codesourcery.com>

        * intrinsic.c (add_sym_2s): Use correct function types.

2004-06-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * Make-lang.in (F95_OBJS, F95_PARSER_OBJS): Alphabetize.  Move data.c
        * data.c (gfc_get_section_index):  Remove dependency on trans.h.

2004-06-12  Steven G. Kargl  <kargls@comcast.net>

        * check.c (gfc_check_second_sub, gfc_check_irand, gfc_check_rand
        gfc_check_srand, gfc_check_etime, gfc_check_etime_sub): New functions.
        * gfortran.h (gfc_generic_isym_id): New symbols GFC_ISYM_ETIME,
        GFC_ISYM_IRAND, GFC_ISYM_RAND, GFC_ISYM_SECOND.
        * trans-intrinsic.c:  Use symbols.
        * intrinsic.c (add_sym_2s): New function.
        * intrinsic.c: Add etime, dtime, irand, rand, second, srand.
        * intrinsic.h: Function prototypes.
        * iresolve.c (gfc_resolve_etime_sub, gfc_resolve_second_sub
        gfc_resolve_srand):  New functions.

2004-06-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/14957
        * decl.c (gfc_match_end): Require END {SUBROUTINE|FUNCTION} for
        contained procedure.

2004-06-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/12841
        * interface.c (compare_parameter, compare_actual_formal): Don't
        check types and array shapes for NULL()
        * trans-expr.c (conv_function_call): No double indirection for
        NULL()

2004-06-09  Toon Moene  <toon@moene.indiv.nluug.nl>

        * trans-expr.c (gfc_conv_cst_int_power): Compute
        x**(-n) by converting it to (1/x)**n instead of
        1/x**n.

2004-06-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/13372
        * module.c (write_symbol, write_symtree): Don't write symbols
        wrongly added to namespace.
        * trans-decl.c (gfc_create_module_variable): Don't create a
        backend decl for a symbol incorrectly added to namespace.

2004-06-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/13201
        * resolve.c (resolve_symbol): Verify that parameter array has an
        explicit shape. Fix typos and coding style issues in surrounding
        lines.

2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/15478
        * gfortran.texi: The documentation doesn't contain infomration on
        how to report bugs, and shouldn't, so remove the line which
        says it does.

2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * intrinsic.c (sort_actual): Keep track of type of missing
        arguments. (Missing from previous commit.)

2004-06-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * gfortran.h (gfc_actual_arglist): New field missing_arg_type.
        * interface.c (compare_actual_formal): Keep type of omitted
        optional arguments.
        * trans-expr.c (gfc_conv_function_call): Add string length
        argument for omitted string argument.

2004-06-03  Paul Brook  <paul@codesourcery.com>

        * trans.c (gfc_finish_block, gfc_add_expr_to_block): Build statement
        lists instead of compound expr chains.
        (gfc_trans_code): Annotate statement lists.

2004-06-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * trans-array.c: Fix spelling in comments.

2004-06-02  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/15557
        * data.c (assign_substring_data_value): New function.
        (gfc_assign_data_value): Call the new function if we're dealing
        with a substring LHS.

2004-06-01  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/15477
        * gfortran.h (GFC_VERSION): Remove.
        * gfortran.texi (version-gfortran): Remove, replace by version-GCC
        where used.

2004-05-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * trans-types.c: Fix spelling & layout in comments.

2004-05-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/14067
        * trans-const.c (gfc_conv_string_init): Allow variable string
        length lower than initialization string length.

2004-05-30  Paul Brook  <paul@codesourcery.com>

        PR fortran/15620
        * trans-decl.c (gfc_shadow_sym, gfc_restore_sym): New functions.
        * trans-expr.c (gfc_trans_string_copy): New function.
        (gfc_conv_statement_function): Use them.  Create temp vars.  Enforce
        character lengths.
        (gfc_conv_string_parameter): Use gfc_trans_string_copy.
        * trans-stmt.c (gfc_trans_forall_1): Use gfc_{shadow,restore}_sym.
        * trans.h (struct gfc_saved_var): Define.
        (gfc_shadow_sym, gfc_restore_sym): Add prototypes.

2004-05-30  Steven G. Kargl  <kargls@comcast.net>

        * iresolve.c (gfc_resolve_random_number): Clean up conditional.

2004-05-29  Steven G. Kargl  <kargls@comcast.net>

        * simplify.c (gfc_simplify_log): Remove useless line of code.

2004-05-29  Paul Brook  <paul@codesourcery.com>

        * trans-common.c (find_equivalence): Find multiple rules.

2004-05-27  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * gfortran.h (gfc_current_locus, gfc_set_locus): Remove.
        (gfc_current_locus): Declare new global variable.
        * scanner.c (gfc_current_locus, gfc_set_locus): Remove.
        (gfc_current_locus1): Rename ...
        (gfc_current_locus): ... to this.
        (gfc_at_eof, gfc_at_bol, gfc_at_eol, gfc_advance_line, next_char,
        skip_fixed_comments, skip_free_comments, gfc_next_char_literal,
        gfc_peek_char, gfc_gobble_whitespace, gfc_new_file): Use
        gfc_current_locus instead of gfc_current_locus1, gfc_set_locus()
        and gfc_current_locus(), respectively.
        * array.c (match_subscript, gfc_match_array_ref, match_array_list,
        match_array_cons_element, gfc_match_array_constructor):
        Read/modify gfc_current_locus instead of calling gfc_set_locus()
        and gfc_current_locus().
        * decl.c (gfc_match_null, variable_decl, gfc_match_kind_spec,
        match_attr_spec, gfc_match_function_decl, gfc_match_end,
        attr_decl1, gfc_match_save): Likewise.
        * error.c (error_print, gfc_internal_error): Likewise.
        * expr.c (gfc_int_expr, gfc_default_logical_kind): Likewise.
        * interface.c (gfc_add_interface): Likewise.
        * io.c (gfc_match_format, match_dt_format, match_dt_element,
        match_io_iterator, match_io): Likewise.
        * match.c (gfc_match_space, gfc_match_eos,
        gfc_match_small_literal_int, gfc_match_st_label,
        gfc_match_strings, gfc_match_name, gfc_match_iterator,
        gfc_match_char, gfc_match, gfc_match_assignment,
        gfc_match_pointer_assignment, gfc_match_if, gfc_match_do,
        gfc_match_nullify, gfc_match_call, match_implicit_range,
        gfc_match_implicit, gfc_match_data, match_case_selector,
        gfc_match_case, match_forall_iterator): Likewise.
        * matchexp.c (gfc_match_defined_op_name, next_operator,
        match_level_1, match_mult_operand, match_ext_mult_operand,
        match_add_operand, match_ext_add_operand, match_level_2,
        match_level_3, match_level_4, match_and_operand, match_or_operand,
        match_equiv_operand, match_level_5, gfc_match_expr): Likewise.
        * module.c (gfc_match_use, mio_array_ref, mio_expr): Likewise.
        * parse.c (match_word, decode_statement, next_free, next_fixed,
        add_statement, verify_st_order, parse_if_block, gfc_parse_file):
        Likewise.
        * primary.c (match_digits, match_integer_constant,
        match_boz_constant, match_real_constant, match_substring,
        next_string_char, match_charkind_name, match_string_constant,
        match_logical_constant, match_const_complex_part,
        match_complex_constant, match_actual_arg, match_keyword_arg,
        gfc_match_actual_arglist, gfc_match_structure_constructor,
        gfc_match_rvalue, gfc_match_variable): Likewise.
        * st.c (gfc_get_code): Likewise.
        * symbol.c (check_conflict, check_used, check_done,
        duplicate_attr, add_flavor, gfc_add_procedure, gfc_add_intent,
        gfc_add_access, gfc_add_explicit_interface, gfc_add_type,
        gfc_add_component, gfc_reference_st_label, gfc_new_symbol): Likewise.

2004-05-26  Roger Sayle  <roger@eyesopen.com>

        * io.c (format_asterisk): Silence compiler warnings by correcting
        the number of elements of a "locus" initializer.

2004-05-25  Roger Sayle  <roger@eyesopen.com>

        PR fortran/13912
        * matchexp.c: Allow unary operators after arithmetic operators
        as a GNU extension.
        (match_ext_mult_operand, match_ext_add_operand): New functions.
        (match_mult_operand): Tweak to call match_ext_mult_operand.
        (match_add_operand): Tweak to call match_ext_mult_operand.
        (match_level_2): Rearrange to call match_ext_add_operand.

2004-05-25  Paul Brook  <paul@codesourcery.com>

        * expr.c (check_inquiry): Remove bogus tests.

2004-05-23  Paul Brook  <paul@codesourcery.com>

        PR fortran/13773
        * expr.c (restricted_args): Remove redundant checks/argument.
        (external_spec_function): Update to match.
        (restricted_intrinsic): Rewrite.

2004-05-23  Paul Brook  <paul@codesourcery.com>
        Victor Leikehman  <lei@haifasphere.co.il>

        * gfortran.h (struct gfc_symbol): Add equiv_built.
        * trans-common.c: Change int to HOST_WIDE_INT.  Capitalize error
        messages.
        (current_length): Remove.
        (add_segments): New function.
        (build_equiv_decl): Create initialized common blocks.
        (build_common_decl): Always add decl to bindings.
        (create_common): Create initializers.
        (find_segment_info): Reformat to match coding conventions.
        (new_condition): Use add_segments.
        (add_condition, find_equivalence, add_equivalences): Move iteration
        inside functions.  Only process each segment once.
        (new_segment, finish_equivalences, translate_common): Simplify.

2004-05-23  Steven G. Kargl  <kargls@comcast.net>

        * check.c (gfc_check_random_seed): Issue for too many arguments.

2004-05-22  Steven G. Kargl  <kargls@comcast.net>

        * intrinsic.c (add_subroutines): Use add_sym_3s for random_seed.

2004-05-22  Paul Brook  <paul@codesourcery.com>

        * dump-parse-tree.c (gfc_show_equiv): New function.
        (gfc_show_namespace): Use it.

2004-05-22  Victor Leikehman  <lei@haifasphere.co.il>

        PR fortran/13249
        * symbol.c (gfc_add_common): Disable checks to work around other more
        fundamental inadequacies.

2004-05-22  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>

        * trans-decl.c (gfc_get_extern_function_decl): Set DECL_IS_PURE
        only for functions.
        (gfc_build_function_decl): Likewise.

2004-05-22  Steven G. Kargl  <kargls@comcast.net>

        * check.c (gfc_check_system_clock): New function.
        * intrinsic.c (add_sym_3s): New function.
        (add_subroutines): Use it.
        * intrinsic.h (gfc_check_system_clock, gfc_resolve_system_clock):
        Add prototypes.
        * iresolve.c (gfc_resolve_system_clock): New function.

2004-05-22  Steven G. Kargl  <kargls@comcast.net>

        * invoke.texi: Document -Wunderflow and spell check.
        * lang.opt: Add Wunderflow.
        * gfortran.h (gfc_option_t): Add warn_underflow option.
        * options.c (gfc_init_options, set_Wall): Use it.
        * primary.c (match_real_constant): Explicitly handle UNDERFLOW.
        * arith.c (gfc_arith_uminus, gfc_arith_plus, gfc_arith_minus,
        gfc_arith_times, gfc_arith_divide, gfc_arith_power, gfc_real2real,
        gfc_real2complex, gfc_complex2real, gfc_complex2complex): Ditto.
        * arith.c (common_logarithm): Fix typo in comment.

2004-05-21  Roger Sayle  <roger@eyesopen.com>

        * io.c (check_format): As a GNU extension, allow the comma after a
        string literal to be optional in a format.  Use gfc_notify_std to
        issue an error/warning as appropriate.

2004-05-21  Roger Sayle  <roger@eyesopen.com>

        * io.c (check_format): Use gfc_notify_std to determine whether to
        issue an error/warning for omitting the digits from the X format.

2004-05-20  Roger Sayle  <roger@eyesopen.com>

        * io.c (check_format): Allow the number before the X format to
        be optional when not -pedantic.

2004-05-18  Feng Wang  <fengwang@nudt.edu.cn>
        Paul Brook  <paul@codesourcery.com>

        * f95-lang.c (gfc_init_builtin_functions): Use vold_list_node.
        Create decls for __builtin_pow{,f}.
        * gfortran.h (PREFIX_LEN): Define.
        * trans-decl.c (gfor_fndecl_math_powi): Add.
        (gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.
        (gfc_build_intrinsic_function_decls): Create decls for powi.
        * trans-expr.c (powi_table): Add.
        (gfc_conv_integer_power): Remove.
        (gfc_conv_powi): New function.
        (gfc_conv_cst_int_power): New function.
        (gfc_conv_power_op): Use new powi routines.
        * trans.h (struct gfc_powdecl_list): Add.
        (gfor_fndecl_math_powi): Add.
        (gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.

2004-05-18  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * trans.c, trans-decl.c: Fix comment typos.

2004-05-18  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * trans-const.c (gfc_conv_mpf_to_tree): Fix typo.

2004-05-18  Steve Kargl  <kargls@comcast.net>

        * arith.c (gfc_int2complex): Fix incorrect range checking.

2004-05-18  Paul Brook  <paul@codesourcery.com>

        PR fortran/13930
        * decl.c (add_init_expr_to_sym): Remove incorrect check.
        (default_initializer): Move to expr.c.
        (variable_decl): Don't assign default initializer to variables.
        * expr.c (gfc_default_initializer): Move to here.
        * gfortran.h (gfc_default_initializer): Add prototype.
        * resolve.c (resolve_symbol): Check for illegal initializers.
        Assign default initializer.

2004-05-17  Steve Kargl  <kargls@comcast.net>

        * arith.c (gfc_arith_power): Complex number raised to 0 power is 1.

2004-05-17  Steve Kargl  <kargls@comcast.net>

        * arith.c (gfc_real2complex): Range checking wrong part of complex
        number.

2004-05-16  Paul Brook  <paul@codesourcery.com>

        * options.c (gfc_handle_module_path_options): Fix buffer overrun.

2004-05-16  Paul Brook  <paul@codesourcery.com>

        * arith.c (gfc_range_check): Fix logic error.

2004-05-16  Steve Kargl  <sgk@troutmask.apl.washington.edu>

        * arith.c: Fix comment typos.

2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/13742
        * decl.c (add_init_expr_to_sym): Verify that COMMON variable is
        not initialized in a disallowed fashion.
        * match.c (gfc_match_common): Likewise.
        (var_element): Verify that variable is not in the blank COMMON,
        if it is in a common.

2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>

        * Make-lang.in (f95.generated-manpages): Remove.
        (f95.srcextra): New.
        (f95.info, fortran/gfortran.info, fortran/gfortran.dvi,
        f95.maintainer-clean): Generate info and dvi files in objdir/doc.
        (f95.dvi): Remove.
        (dvi): New.
        (f95.install-info): Remove.
        (install-info): New.

2004-05-15  Victor Leikehman  <lei@haifasphere.co.il>

        * decl.c (add_init_expr_to_sym): Check for variable size arrays.

2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * primary.c (match_boz_constant): Use gfc_notify_std() for
        issuing a warning or an error.

2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/13826
        * primary.c (match_structure_constructor): Rename ...
        (gfc_match_structure_constructor): ... to this. Make non-static.
        (gfc_match_rvalue): Call renamed function.
        * match.h (gfc_match_structure_constructor): Declare.
        * match.c (gfc_match_data_constant): Handle structure
        constructor.

2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/13702
        (Port from g95)
        * gfortran.h (gfc_linebuf): New typedef.
        (linebuf): Remove.
        (gfc_file): Revamped, use new gfc_linebuf.
        (locus): Revamped, use new types.
        (gfc_current_file): Remove.
        (gfc_current_form, gfc_source_file): New global variables.
        * match.c (gfc_match_space, gfc_match_strings): Use
        gfc_current_form to find source form.
        * module.c (gfc_dump_module): Use gfc_source_file when printing
        module header.
        * error.c (show_locus, show_loci) Use new data structures to print
        locus.
        * scanner.c (first_file, first_duplicated_file, gfc_current_file):
        Remove.
        (file_head, current_file, gfc_current_form, line_head, line_tail,
        gfc_current_locus1, gfc_source_file): New global variables.
        (gfc_scanner_init1): Set new global variables.
        (gfc_scanner_done1): Free new data structures.
        (gfc_current_locus): Return pointer to gfc_current_locus1.
        (gfc_set_locus): Set gfc_current_locus1.
        (gfc_at_eof): Set new variables.
        (gfc_at_bol, gfc_at_eol, gfc_advance_line, gfc_next_char): Adapt
        to new locus structure.
        (gfc_check_include): Remove.
        (skip_free_comments, skip_fixed_comments): Use gfc_current_locus1.
        (gfc_skip_comments): Use gfc_current_form, find locus with
        gfc_current_locus1.
        (gfc_next_char): Use gfc_current_form.
        (gfc_peek_char, gfc_gobble_whitespace): Use gfc_current_locus1.
        (load_line): Use gfc_current_form. Recognize ^Z as EOF. Fix
        comment formatting.
        (get_file): New function.
        (preprocessor_line, include_line): New functions.
        (load_file): Move down, rewrite to match new data structures.
        (gfc_new_file): Rewrite to match new data structures.
        * parse.c (next_statement): Remove code which is now useless. Use
        gfc_source_form and gfc_source_file where appropriate.
        * trans-decl.c (gfc_get_label_decl): adapt to new data structures
        when determining locus of frontend code.
        * trans-io.c (set_error_locus): Same.
        * trans.c (gfc_get_backend_locus, gfc_set_backend_locus): Likewise.
        * lang-specs.h (@f77-cpp-input, @f95-cpp-input): Remove '-P' from
        preprocessor flags.
        (all): Add missing initializers.

2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * Make-lang.in (trans-common.o): Remove redundant dependency.
        (data.c): Replace object file name ...
        (data.o): ... by the correct one.

2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * dump-parse-tree.c (gfc_show_array_ref): Print colon only
        for ranges when dumping array references.

2004-05-14  Victor Leikehman  <lei@haifasphere.co.il>

        * decl.c (variable_decl): Always apply default initializer.

2004-05-08  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/15206
        * trans-intrinsic.c (gfc_conv_intrinsic_rrspacing): Fixed to
        handle zero correctly.

2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * match.c (gfc_match): Eliminate dead code.

2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * parse.c (gfc_statement_next_fixed): (Change from Andy's tree)
        Detect bad continuation line in fixed form sources.

2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/15205
        * iresolve.c (gfc_resolve_nearest): Add new function.
        * intrinsic.h: ... declare it here.
        * intrinsic.c (add_functions): ... add it as resolving function
        for NEAREST.

2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/14066
        * match.c (gfc_match_do): Allow infinite loops with
        label-do-stmt. Do not enforce space after comma.

2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/15051
        * parse.c (parse_interface): Allow empty INTERFACE, remove
        seen_body.

2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        * Make-lang.in, arith.c, arith.h, array.c, bbt.c, check.c,
        decl.c, dependency.c, dependency.h, dump-parse-tree.c, error.c,
        expr.c, f95-lang.c, gfortran.h, interface.c, intrinsic.c,
        intrinsic.h, io.c, iresolve.c, lang-specs.h, match.c, match.h,
        matchexp.c, misc.c, module.c, options.c, parse.c, parse.h,
        primary.c, resolve.c, scanner.c, simplify.c, st.c, symbol.c,
        trans-array.c, trans-array.h, trans-common.c, trans-const.c,
        trans-const.h, trans-decl.c, trans-expr.c, trans-intrinsic.c,
        trans-io.c, trans-stmt.c, trans-stmt.h, trans-types.c,
        trans-types.h, trans.c, trans.h: Update copyright years and
        boilerplate.
        * data.c: Likewise, also removed two whitespace-only lines.
        * gfortranspec.c, lang.opt: Update copyright years.

2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/14568
        * trans-decl.c (generate_local_decl): Don't warn for unused
        variables which are in common blocks.

2004-05-13  Diego Novillo  <dnovillo@redhat.com>

        * Make-lang.in, f95-lang.c, trans-array.c, trans-decl.c,
        trans-expr.c, trans-intrinsic.c, trans-io.c, trans-stmt.c,
        trans.c: Rename tree-simple.[ch] to tree-gimple.[ch].

2004-05-13  Victor Leikehman  <lei@haifasphere.co.il>

        PR fortran/15314
        * trans-expr.c (gfc_conv_structure): Use field type, not expr type.

2004-05-13  Joseph S. Myers  <jsm@polyomino.org.uk>

        * gfortran.texi: Use @table @emph instead of @itemize @emph.
        Remove "set DEVELOPMENT".
        (Compiling GFORTRAN): Remove.

2004-05-09  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>

        * array.c (match_subscript, match_array_ref): Add comments
        explaining argument 'init'.
        * decl.c, f95-lang.c, match.c, resolve.c, trans-array.c,
        trans-expr.c, trans.c: Fix some typos in comments.
        * dump-parse-tree.c (gfc_show_expr): Remove wrong comment.
        * primary.c (match_digits, match_integer_constant): Add comment
        explaining signflag.

2004-05-01  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/13940
        * primary.c: Include system.h and flags.h, needed for pedantic.
        (match_boz_constant): Allow "x" for hexadecimal constants, warn if
        pedantic is set.

2004-05-01  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>

        PR fortran/13940
        * match.c (match_data_constant): Handle case where
        gfc_find_symbol sets sym to NULL

2004-04-28  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>

        * Make-lang.in (f95-lang.o, trans-intrinsic.o): Add missing
        dependency on mathbuiltins.def

2004-04-24  Victor Leikehman  <lei@il.ibm.com>

        * trans-io.c (transfer_expr): Implemented recursive printing
        of derived types.

2004-04-24  Andrew Pinski  <pinskia@physics.uc.edu>

        * gfortranspec.c: Do not include multilib.h.

2004-04-24  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>

        * trans-intrinsic.c: Fix comment, this is not trans-expr.c. Add
        2004 to copyright years.
        * trans-expr.c, trans-decl.c: Comment update, we now generate
        GENERIC, not SIMPLE. Add 2004 to copyright years.

2004-04-24  Paul Brook  <paul@codesourcery.com>

        * Make-lang.in (gfortranspec.o): Add dependency on $(TM_H).

2004-04-24  Feng Wang  <fengwang@nudt.edu.cn>

        PR 14817
        * arith.c (gfc_arith_divide): Fix complex divide.

2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>

        * gfortranspec.c: Include the target headers.

2004-04-18  Feng Wang  <fengwang@nudt.edu.cn>

        PR fortran/14921
        PR fortran/14540
        * arith.c (arctangent2): New function.
        * arith.h (arctangent2): Add function prototype.
        * simplify.c (gfc_simplify_atan2): Use it.
        (gfc_simplify_log): Use it.

2004-04-12  Diego Novillo  <dnovillo@redhat.com>

        * fortran/f95-lang.c (gfc_expand_stmt): Remove.
        (LANG_HOOKS_RTL_EXPAND_STMT): Remove.

2004-04-11  Bud Davis  <bdavis9659@comcast.net>

        PR fortran/14872
        * trans-io.c (build_dt): Change REC to value.

2004-04-11  Feng Wang  <fengwang@nudt.edu.cn>

        PR 14394
        * trans-const.c (gfc_conv_mpf_to_tree): Loosen the maximum digits of
        the real value when converting mpf to string.

2004-04-11  Feng Wang  <fengwang@nudt.edu.cn>

        PR 14395
        * trans-intrinsic.c (gfc_conv_intrinsic_cmplx): Fix the imag part of
        the result.

2004-04-11  Feng Wang  <fengwang@nudt.edu.cn>

        PR fortran/14377
        * simplify.c (simplify_min_max): Convert the type of the result.

2004-04-11  Paul Brook  <paul@codesourcery.com>

        * gfortran.texi: Use full target triplet.

2004-04-11  Paul Brook  <paul@codesourcery.com>

        * Make-lang.in (GFORTRAN_TEXI): Set it.
        (fortran/dfortran.dvi): Use it.  Add fortran to include paths.
        (fortran/gfortran.info): Ditto.
        * gfortran.texi: Major update.
        * invoke.texi: New file.

2004-04-10  Paul Brook  <paul@codesourcery.com>

        * trans-array.c (gfc_trans_allocate_temp_array,
        gfc_conv_tmp_array_ref): Don't use GFC_DECL_STRING.
        * trans-decl.c (gfc_build_dummy_array_decl,
        gfc_get_symbol_decl, gfc_build_function_decl,
        gfc_create_module_variable): Ditto.
        * trans-expr.c (gfc_conv_variable): Ditto.
        * trans-intrinsic.c (gfc_conv_intrinsic_len): Ditto.
        * trans.h (GFC_DECL_STRING): Remove.
        (GFC_DECL_PACKED_ARRAY, GFC_DECL_PARTIAL_PACKED_ARRAY,
        GFC_DECL_ASSIGN): Renumber flags.

2004-04-05  Paul Brook  <paul@codesourcery.com>

        PR 13252
        PR 14081
        * f95-lang.c (gfc_init_builtin_functions): Add stack_alloc, stack_save
        and stack_restore.
        * gfortran.h (struct gfc_charlen): Add backend_decl.
        * trans-array.c (gfc_trans_allocate_temp_array,
        gfc_conv_temp_array_ref, gfc_conv_resolve_dependencies,
        (gfc_conv_loop_setup, gfc_array_allocate, gfc_conv_array_init_size):
        Remove old, broken string handling.
        (gfc_trans_auto_array_allocation, gfc_trans_g77_array,
        gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor,
        gfc_trans_deferred_array): Handle character arrays.
        * trans-const.c (gfc_conv_const_charlen): New function.
        * trans-const.h (gfc_conv_const_charlen): Add prototype.
        * trans-decl.c (gfc_finish_var_decl): Don't mark automatic variables
        as static.
        (gfc_build_dummy_array_decl): Handle arrays with unknown element size.
        (gfc_create_string_length): New function.
        (gfc_get_symbol_decl): Create lengths for character variables.
        (gfc_get_fake_result_decl): Ditto.
        (gfc_build_function_decl): Only set length for assumed length
        character arguments.
        (gfc_trans_dummy_character): New function.
        (gfc_trans_auto_character_variable): Rewrite.
        (gfc_trans_deferred_vars): Handle more types of character variable.
        (gfc_create_module_variable): String lengths have moved.
        (gfc_generate_function_code): Initialize deferred var chain earlier.
        * trans-expr.c (gfc_conv_init_string_length): Rename ...
        (gfc_trans_init_string_length):  ... to this.
        (gfc_conv_component_ref, gfc_conv_variable, gfc_conv_concat_op,
        gfc_conv_function_call): Update to new format for character variables.
        (gfc_conv_string_length): Remove.
        (gfc_conv_string_parameter): Update assertion.
        * trans-intrinsic.c (gfc_conv_intrinsic_len): Use new location.
        * trans-io.c (set_string): Use new macro names.
        * trans-stmt.c (gfc_trans_label_assign. gfc_trans_goto): Ditto.
        * trans-types.c (gfc_get_character_type): Use existing length expr.
        (gfc_is_nodesc_array): Make public.
        (gfc_get_dtype_cst): Rename ...
        (gfc_get_dtype): ... to this.  Handle unknown size arrays.
        (gfc_get_nodesc_array_type): Use new name.
        (gfc_sym_type): New character variable code.
        (gfc_get_derived_type): Ditto.
        (gfc_get_function_type): Evaluate character variable lengths.
        * trans-types.h (gfc_strlen_kind): Define.
        (gfc_is_nodesc_array): Add prototype.
        * trans.h: Update prototypes.
        (struct lang_type): Update comments.
        (GFC_DECL_STRING_LEN): New name for GFC_DECL_STRING_LENGTH.
        (GFC_KNOWN_SIZE_STRING_TYPE): Remove.

2004-04-04  Paul Brook  <paul@codesourcery.com>

        * gfortran.h (struct gfc_option_t): Remove flag_g77_calls.
        * options.c (gfc_init.options, gfc_handle_option): Ditto.
        * trans-expr.c (gfc_conv_function_call): Ditto.
        * trans-types.c (gfc_is_nodesc_array): Ditto
        * lang.opt (fg77-calls): Remove.

2004-04-04  Paul Brook  <paul@codesourcery.com>

        * trans-array.c (OFFSET_FIELD): Rename from BASE_FIELD.
        (gfc_conv_descriptor_base): Rename ...
        (gfc_conv_descriptor_offset): ... to this.
        (gfc_trans_allocate_array_storage): Set offset to zero.
        (gfc_conv_array_base): Rename ...
        (gfc_conv_array_offset): ... to this.
        (gfc_conv_array_index_ref): Add offset parameter.
        (gfc_conv_array_ref): Include offset.
        (gfc_trans_preloop_setup): Use existing offset.
        (gfc_trans_allocate_temp_array,  gfc_array_allocate,
        gfc_trans_auto_array_allocation, gfc_trans_g77_array,
        gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor,
        gfc_conf_ss_descriptor): Set offset.
        * trans-array.h: Rename prototypes.
        * trans-const.h (gfc_index_zero_node): Define.
        * trans-decl.c (gfc_build_qualified_array): Change base to offset.
        * trans-types.c (gfc_get_array_type_bounds): Ditto.
        (gfc_get_nodesc_array_type): Calculate offset before upper bound.

2004-03-25  Diego Novillo  <dnovillo@redhat.com>

        * convert.c (convert): Don't handle WITH_RECORD_EXPR.

2004-03-24  Bud Davis  <bdavis9659@comcast.net>

        PR 14055
        * arith.c (gfc_convert_integer,gfc_convert_real):  Removed leading '+'
        before conversion by gmp library call.

2004-03-24  Bud Davis  <bdavis9659@comcast.net>

        PR 12921
        * trans-io.c (gfc_trans_open): Change RECL= to a value parameter.

2004-02-24  Richard Henderson  <rth@redhat.com>

        * trans-array.c (gfc_trans_dummy_array_bias): Fix typo.

2004-02-19  Loren J. Rittle  <ljrittle@acm.org>

        * Make-lang.in ($(srcdir)/fortran/gfortran.info): Move...
        (fortran/gfortran.info): ... to here.
        (f95.srcinfo): New.

2004-02-16  Richard Henderson  <rth@redhat.com>

        * Make-lang.in (f95-lang.o, trans-decl.o): Depend on cgraph.h.
        * f95-lang.c (LANG_HOOKS_EXPAND_DECL): Remove.
        (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): New.
        (gfc_expand_function): Rename from expand_function_body, make static,
        don't do anything except invoke tree_rest_of_compilation.
        (gfc_be_parse_file): Invoke cgraph.
        (gfc_expand_decl): Remove.
        (gfc_init_builtin_functions): Add __builtin_init_trampoline and
        __builtin_adjust_trampoline.
        * trans-decl.c (gfc_get_extern_function_decl): Don't set DECL_CONTEXT.
        (gfc_finalize): New.
        (gfc_generate_function_code): Use it.  Lower nested functions.
        * trans-expr.c (gfc_conv_function_call): Add static chain operand
        to call_expr.
        * trans.c (gfc_build_function_call): Likewise.
        * trans.h (expand_function_body): Remove.

2004-02-15  Victor Leikehman  <lei@il.ibm.com>

        PR gfortran/13433
        * trans-decl.c (gfc_build_function_decl) For functions
        returning CHARACTER pass an extra length argument,
        following g77 calling conventions.
        * trans-types.c (gfc_get_function_type) Ditto.
        * trans-expr.c (gfc_conv_function_call) Ditto.

2004-02-14  Paul Brook  <paul@codesourcery.com>

        * f95-lang.c (gfc_init_builtin_functions): Build chain properly.

2004-02-12  Paul Brook  <paul@nowt.org>

        * BUGS: Remove.

2004-02-08  Steve Kargl  <sgk@troutmask.apl.washington.edu>

        * gfortran.texi: Fix typos.

2004-02-07  Bud Davis  <bdavis9659@comcast.net>

        PR gfortran/13909
        * intrinsic.c (add_conversions) Use logical conversion instead
        of real.
        * trans-types.c (gfc_get_logical_type) implemented logical*1
        and logical*2.

2004-01-17  Paul Brook  <paul@codesourcery.com>

        * lang-specs.h: Remove %<fixed-form.

2004-01-15  Toon Moene  <toon@moene.indiv.nluug.nl>

        * lang-specs.h: Enable preprocessing of source files
        ending in .F, .fpp, .FPP, .F90 and .F95.

2004-01-13  Toon Moene  <toon@moene.indiv.nluug.nl>

        PR fortran/12912
        * lang-specs.h: Enable compilation of files ending
        in .f, .for and .FOR.

2004-01-11  Paul Brook  <paul@codesourcery.com>

        * trans-stmt.c (gfc_trans_if_1): New function.
        (gfc_trans_if): Use it.

2004-01-11  Erik Schnetter  <schnetter@uni-tuebingen.de>

        * gfortran.h (GFC_MAX_SYMBOL_LEN): Increase.
        (gfc_option_t): Add max_identifier_length.
        * lang.opt: Add fmax-identifier-length.
        * match.c (parse_name): Use limit.
        * options.c (gfc_init_options): Set max_identifier_length.
        (gfc_handle_option): Ditto.

2004-01-11  Feng Wang  <fengwang@nudt.edu.cn>

        * intrinsic.c (add_functions): Add resolve function to dcmplx.
        * intrinsic.h (gfc_resolve_dcmplx): Add prototype.
        * iresolve.c (gfc_resolve_dcmplx): New function.

2004-01-10  Paul Brook  <paul@codesourcery.com>

        * trans-decl.c (gfc_get_symbol_decl): Don't set subroutine attr.
        * trans-types.c (gfc_sym_type): Handle external dummy procedures.
        (gfc_return_by_reference): Correct condition.
        (gfc_get_function_type): Ditto.

2004-01-10  Paul Brook  <paul@codesourcery.com>

        * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Convert mismatched
        types.

2004-01-10  Huang Chun  <chunhuang73@hotmail.com>

        * iresolve.c: Use correct kind.

2004-01-10  Huang Chun  <chunhuang73@hotmail.com>

        PR fortran/13467
        * trans-decl.c (gfc_create_module_variable):  Output array valued
        parameters.

2004-01-10  Paul Brook  <paul@codesourcery.com>

        * resolve.c (resolve_branch): Get error message right way round.

2004-01-10  Canqun Yang  <canqun@nudt.edu.cn>

        * trans-array (gfc_conv_loop_setup): Adjust comment to track
        reality.
        (gfc_array_allocate): Don't count size of element twice.

2004-01-04  Paul Brook  <paul@codesourcery.com>

        * lang.opt (i8, r8, std=*): Remove RejectNegative.

2004-01-04  Paul Brook  <paul@codesourcery.com>

        * error.c (gfc_notify_std): New function.
        * gfortran.h (gfc_notify_std): Declare.
        (GFC_STD_*): Define.
        (gfc_option_t): Add warn_std and allow_std.
        * intrinsic.c (gfc_init_expr_extensions): Fix logic.
        (gfc_intrinsic_func_interface): Use gfc_notify_std.
        * check.c (check_rest): Use gfc_notify_std.
        * match.c (gfc_match_pause): Ditto.
        (gfc_match_assign): Ditto.
        (gfc_match_goto): Ditto.
        * resolve.c (resolve_branch): Ditto.
        * lang.opt: Add std=<foo> and w.
        * options.c (gfc_init_options): Set allow_std and warn_std.
        (gfc_handle_option): Handle OPT_std_* and OPT_w.

2004-01-01  Paul Brook  <paul@codesourcery.com>

        * array.c (gfc_append_constructor): Take constructor, not expression.
        * data.c (struct gfc_expr_stack): Remove.
        (expr_stack): Remove.
        (find_con_by_offset): Rename from find_expr_in_con.
        (find_con_by_component): Rename from find_component_in_con.
        (gfc_get_expr_stack): Remove.
        (gfc_assign_data_value): Rewrite.
        (gfc_expr_push): Remove.
        (gfc_expr_pop): Remove.
        (gfc_advance_section): Rename from
        gfc_modify_index_and_calculate_offset.  Handle unbounded sections.
        (gfc_get_section_index): Handle unbounded sections.
        * gfortran.h: Update prototypes.
        * resolve.c (check_data_variable): Array section maight not be the
        last ref.

2004-01-01  Paul Brook  <paul@codesourcery.com>

        PR fortran/13432
        * resolve.c (resolve_symbol): Allow assumed length function results.

2004-01-01  Steve Kargl  <sgk@troutmask.apl.washington.edu>

        * match.c (gfc_match_pause): Fix spelling.

2004-01-01  Steven Bosscher  <stevenb@suse.de>

        PR fortran/13251
        * trans-expr.c (gfc_conv_variable): Take the type kind of a substring
        reference from the expression.


Copyright (C) 2004 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.