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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-stable/] [gcc-4.5.1/] [gcc/] [fortran/] [ChangeLog-2004] - Diff between revs 816 and 826

Only display areas with differences | Details | Blame | View Log

Rev 816 Rev 826
2004-12-29  Steven G. Kargl  
2004-12-29  Steven G. Kargl  
        * gfortran.h (gfc_case): fix typo in comment.
        * gfortran.h (gfc_case): fix typo in comment.
2004-12-27  Tobias Schlueter  
2004-12-27  Tobias Schlueter  
        * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Change to
        * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Change to
        logical shift.  Call fold.  Remove 0-bit shift shortcut.
        logical shift.  Call fold.  Remove 0-bit shift shortcut.
        (gfc_conv_intrinsic_ishftc): Convert first argument to at least
        (gfc_conv_intrinsic_ishftc): Convert first argument to at least
        4 bytes bits.  Convert 2nd and 3rd argument to 4 bytes.  Convert
        4 bytes bits.  Convert 2nd and 3rd argument to 4 bytes.  Convert
        result if width(arg 1) < 4 bytes.  Call fold.
        result if width(arg 1) < 4 bytes.  Call fold.
        PR fortran/19032
        PR fortran/19032
        * trans-intrinsic.c (gfc_conv_intrinsic_mod): Update comment
        * trans-intrinsic.c (gfc_conv_intrinsic_mod): Update comment
        in front of function to match the standard.  Correct handling
        in front of function to match the standard.  Correct handling
        of MODULO.
        of MODULO.
2004-12-27  Andrew Pinski  
2004-12-27  Andrew Pinski  
        * trans-expr.c (gfc_conv_cst_int_power): Only check for
        * trans-expr.c (gfc_conv_cst_int_power): Only check for
        flag_unsafe_math_optimizations if we have a float type.
        flag_unsafe_math_optimizations if we have a float type.
2004-12-23  Steven G. Kargl  
2004-12-23  Steven G. Kargl  
        * gfortran.texi: Fix typo.
        * gfortran.texi: Fix typo.
2004-12-16  Tobias Schlueter  
2004-12-16  Tobias Schlueter  
        * trans-intrinsic.c (build_fixbound_expr): Clarify comment, fix
        * trans-intrinsic.c (build_fixbound_expr): Clarify comment, fix
        comment typo.
        comment typo.
2004-12-15  Tobias Schlueter  
2004-12-15  Tobias Schlueter  
        PR fortran/18993
        PR fortran/18993
        * match.c (gfc_match_if): Don't explicitly skip optional whitespace.
        * match.c (gfc_match_if): Don't explicitly skip optional whitespace.
        (gfc_match_nullify): Make sure that ')' is in front of the end of
        (gfc_match_nullify): Make sure that ')' is in front of the end of
        statement.
        statement.
        * scanner.c (skip_fixed_comments): Fix typo in comment preceding
        * scanner.c (skip_fixed_comments): Fix typo in comment preceding
        function.
        function.
2004-12-14  Richard Henderson  
2004-12-14  Richard Henderson  
        * gfortran.h (gfc_expr.function.name): Make const.
        * gfortran.h (gfc_expr.function.name): Make const.
        (gfc_iresolve_init_1, gfc_iresolve_done_1): Remove.
        (gfc_iresolve_init_1, gfc_iresolve_done_1): Remove.
        (gfc_get_string): Update prototype.
        (gfc_get_string): Update prototype.
        * iresolve.c: Include tree.h.
        * iresolve.c: Include tree.h.
        (string_node, HASH_SIZE, string_head, hash): Remove.
        (string_node, HASH_SIZE, string_head, hash): Remove.
        (gfc_get_string): Use vsnprintf, get_identifier.
        (gfc_get_string): Use vsnprintf, get_identifier.
        (free_strings, gfc_iresolve_init_1, gfc_iresolve_done_1): Remove.
        (free_strings, gfc_iresolve_init_1, gfc_iresolve_done_1): Remove.
        * misc.c (gfc_init_1): Don't call gfc_iresolve_init_1.
        * misc.c (gfc_init_1): Don't call gfc_iresolve_init_1.
        (gfc_done_1): Don't call gfc_iresolve_done_1.
        (gfc_done_1): Don't call gfc_iresolve_done_1.
        * module.c (mio_allocated_string): Take and return const char *,
        * module.c (mio_allocated_string): Take and return const char *,
        instead of modifying char**.
        instead of modifying char**.
        (mio_expr): Update to match.
        (mio_expr): Update to match.
        * resolve.c (pure_function): Constify name argument.
        * resolve.c (pure_function): Constify name argument.
        (resolve_function): Constify name.
        (resolve_function): Constify name.
        * trans-intrinsic.c (gfc_conv_intrinsic_function): Likewise.
        * trans-intrinsic.c (gfc_conv_intrinsic_function): Likewise.
2004-12-12  Richard Henderson  
2004-12-12  Richard Henderson  
        * iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count,
        * iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count,
        gfc_resolve_cshift, gfc_resolve_dot_product, gfc_resolve_eoshift,
        gfc_resolve_cshift, gfc_resolve_dot_product, gfc_resolve_eoshift,
        gfc_resolve_matmul, gfc_resolve_maxloc, gfc_resolve_maxval,
        gfc_resolve_matmul, gfc_resolve_maxloc, gfc_resolve_maxval,
        gfc_resolve_minloc, gfc_resolve_minval, gfc_resolve_pack,
        gfc_resolve_minloc, gfc_resolve_minval, gfc_resolve_pack,
        gfc_resolve_product, gfc_resolve_reshape, gfc_resolve_shape,
        gfc_resolve_product, gfc_resolve_reshape, gfc_resolve_shape,
        gfc_resolve_spread, gfc_resolve_sum, gfc_resolve_transpose,
        gfc_resolve_spread, gfc_resolve_sum, gfc_resolve_transpose,
        gfc_resolve_unpack: Use PREFIX.
        gfc_resolve_unpack: Use PREFIX.
2004-12-12  Tobias Schlueter  
2004-12-12  Tobias Schlueter  
        PR fortran/18869
        PR fortran/18869
        * match.c (gfc_match_common): Skip whitespace.
        * match.c (gfc_match_common): Skip whitespace.
2004-12-12  Steven G. Kargl  
2004-12-12  Steven G. Kargl  
        PR fortran/16581
        PR fortran/16581
        * check.c (gfc_check_iand, gfc_check_ibclr, gfc_check_ibits,
        * check.c (gfc_check_iand, gfc_check_ibclr, gfc_check_ibits,
        gfc_check_ibset, gfc_check_ieor, gfc_check_ior): Remove default
        gfc_check_ibset, gfc_check_ieor, gfc_check_ior): Remove default
        integer kind check; Issue error for -std=f95 when needed.
        integer kind check; Issue error for -std=f95 when needed.
        * intrinsic.c (add_functions): Change ieor from GFC_STD_GNU to
        * intrinsic.c (add_functions): Change ieor from GFC_STD_GNU to
        GFC_STD_F95.
        GFC_STD_F95.
        * iresolve.c (gfc_resolve_iand, gfc_resolve_ieor, gfc_resolve_ior):
        * iresolve.c (gfc_resolve_iand, gfc_resolve_ieor, gfc_resolve_ior):
        Promote arguments to same kind.
        Promote arguments to same kind.
2004-12-12  Steven G. Kargl  
2004-12-12  Steven G. Kargl  
        Paul Brook  
        Paul Brook  
        PR fortran/16222
        PR fortran/16222
        * resolve.c (gfc_resolve_iterator_expr): New function.
        * resolve.c (gfc_resolve_iterator_expr): New function.
        (gfc_resolve_iterator): Use it.  Add real_ok argument.  Convert
        (gfc_resolve_iterator): Use it.  Add real_ok argument.  Convert
        start, end and stride to correct type.
        start, end and stride to correct type.
        (resolve_code): Pass extra argument.
        (resolve_code): Pass extra argument.
        * array.c (resolve_array_list): Pass extra argument.
        * array.c (resolve_array_list): Pass extra argument.
        * gfortran.h (gfc_resolve): Add prototype.
        * gfortran.h (gfc_resolve): Add prototype.
        * trans-stmt.c (gfc_trans_do): Remove redundant type conversions.
        * trans-stmt.c (gfc_trans_do): Remove redundant type conversions.
        Handle real type iterators.
        Handle real type iterators.
2004-12-11  Tobias Schlueter  
2004-12-11  Tobias Schlueter  
        PR fortran/17175
        PR fortran/17175
        * iresolve.c (gfc_resolve_scale): Convert 'I' argument if not of
        * iresolve.c (gfc_resolve_scale): Convert 'I' argument if not of
        same kind as C's 'int'.
        same kind as C's 'int'.
        (gfc_resolve_set_exponent): Convert 'I' argument if not of kind 4.
        (gfc_resolve_set_exponent): Convert 'I' argument if not of kind 4.
2004-12-08  Richard Henderson  
2004-12-08  Richard Henderson  
        * intrinsic.c (gfc_convert_type_warn): Propagate the input shape
        * intrinsic.c (gfc_convert_type_warn): Propagate the input shape
        to the output expression.
        to the output expression.
        * iresolve.c (gfc_resolve_cshift, gfc_resolve_eoshift): Suppress
        * iresolve.c (gfc_resolve_cshift, gfc_resolve_eoshift): Suppress
        warning conversion.
        warning conversion.
        (gfc_resolve_reshape): Force convert SHAPE and ORDER parameters
        (gfc_resolve_reshape): Force convert SHAPE and ORDER parameters
        to index kind.
        to index kind.
2004-12-08  Tobias Schlueter  
2004-12-08  Tobias Schlueter  
        PR fortran/18826
        PR fortran/18826
        * resolve.c (resolve_code): Impose correct restrictions on
        * resolve.c (resolve_code): Impose correct restrictions on
        assigned variable.
        assigned variable.
        * decl.c (gfc_match_end): Use locus of END when eos is an error.
        * decl.c (gfc_match_end): Use locus of END when eos is an error.
2004-12-02  Steven G. Kargl  
2004-12-02  Steven G. Kargl  
        Paul Brook  
        Paul Brook  
        * check.c (gfc_check_flush, gfc_check_fnum): New functions.
        * check.c (gfc_check_flush, gfc_check_fnum): New functions.
        (gfc_check_fstat, gfc_check_fstat_sub): New functions.
        (gfc_check_fstat, gfc_check_fstat_sub): New functions.
        (gfc_check_stat, gfc_check_stat_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
        * gfortran.h (GFC_ISYM_FNUM,GFC_ISYM_FSTAT,GFC_ISYM_STAT): New symbols
        * intrinsic.c (add_functions,add_subroutines): Add flush, fnum,
        * intrinsic.c (add_functions,add_subroutines): Add flush, fnum,
        fstat, and stat to intrinsics symbol tables.
        fstat, and stat to intrinsics symbol tables.
        * intrinsic.h (gfc_check_flush, gfc_resolve_stat_sub): Add prototypes.
        * intrinsic.h (gfc_check_flush, gfc_resolve_stat_sub): Add prototypes.
        (gfc_resolve_fstat_sub, gfc_resolve_stat): Ditto.
        (gfc_resolve_fstat_sub, gfc_resolve_stat): Ditto.
        * iresolve.c (gfc_resolve_fnum, gfc_resolve_fstat): New functions.
        * iresolve.c (gfc_resolve_fnum, gfc_resolve_fstat): New functions.
        (gfc_resolve_stat, gfc_resolve_flush): New functions.
        (gfc_resolve_stat, gfc_resolve_flush): New functions.
        (gfc_resolve_stat_sub,gfc_resolve_fstat_sub): New functions
        (gfc_resolve_stat_sub,gfc_resolve_fstat_sub): New functions
        * trans-intrinsic.c (gfc_conv_intrinsic_function): Add new intrinsics.
        * trans-intrinsic.c (gfc_conv_intrinsic_function): Add new intrinsics.
2004-12-02  Steven G. Kargl  
2004-12-02  Steven G. Kargl  
        * intrinsic.c: Fix and add comments, fix function declarations
        * intrinsic.c: Fix and add comments, fix function declarations
        (OPTIONAL,REQUIRED): New symbols
        (OPTIONAL,REQUIRED): New symbols
        (add_functions,add_subroutines): Use symbols
        (add_functions,add_subroutines): Use symbols
        (gmp.h): Remove unused include
        (gmp.h): Remove unused include
2004-11-25  Joseph S. Myers  
2004-11-25  Joseph S. Myers  
        * f95-lang.c, gfortranspec.c, trans-decl.c: Avoid ` as left quote
        * f95-lang.c, gfortranspec.c, trans-decl.c: Avoid ` as left quote
        in diagnostics.
        in diagnostics.
2004-11-24  Steven Bosscher  
2004-11-24  Steven Bosscher  
        * options.c (gfc_post_options): Don't clear flag_inline_functions.
        * options.c (gfc_post_options): Don't clear flag_inline_functions.
2004-11-20  Steven G. Kargl  
2004-11-20  Steven G. Kargl  
        * check.c (gfc_check_getcwd_sub): Fix seg fault.
        * check.c (gfc_check_getcwd_sub): Fix seg fault.
        * check.c (gfc_check_exit,gfc_check_umask,gfc_check_umask_sub,
        * check.c (gfc_check_exit,gfc_check_umask,gfc_check_umask_sub,
        gfc_check_unlink,gfc_check_unlink_sub): New functions
        gfc_check_unlink,gfc_check_unlink_sub): New functions
        * gfortran.h (GFC_ISYM_UMASK,GFC_ISYM_UNLINK): New symbols
        * gfortran.h (GFC_ISYM_UMASK,GFC_ISYM_UNLINK): New symbols
        * intrinsic.c (add_functions,add_subroutines): Add umask, unlink,
        * intrinsic.c (add_functions,add_subroutines): Add umask, unlink,
        exit to intrinsics symbol tables.
        exit to intrinsics symbol tables.
        * intrinsic.h (gfc_check_umask,gfc_check_unlink,gfc_check_exit,
        * intrinsic.h (gfc_check_umask,gfc_check_unlink,gfc_check_exit,
        gfc_check_umask_sub,gfc_check_unlink_sub,gfc_resolve_umask,
        gfc_check_umask_sub,gfc_check_unlink_sub,gfc_resolve_umask,
        gfc_resolve_unlink,gfc_resolve_exit,gfc_resolve_umask_sub,
        gfc_resolve_unlink,gfc_resolve_exit,gfc_resolve_umask_sub,
        gfc_resolve_unlink_sub): Add and sort prototypes.
        gfc_resolve_unlink_sub): Add and sort prototypes.
        * iresolve.c (gfc_resolve_umask,gfc_resolve_unlink,gfc_resolve_exit,
        * iresolve.c (gfc_resolve_umask,gfc_resolve_unlink,gfc_resolve_exit,
        gfc_resolve_umask_sub,gfc_resolve_unlink_sub): New functions
        gfc_resolve_umask_sub,gfc_resolve_unlink_sub): New functions
        * trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbols
        * trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbols
2004-11-16  Paul Brook  
2004-11-16  Paul Brook  
        PR fortran/13010
        PR fortran/13010
        * trans-array.c (gfc_trans_allocate_temp_array): Use gfc_get_dtype.
        * trans-array.c (gfc_trans_allocate_temp_array): Use gfc_get_dtype.
        (gfc_array_init_size, gfc_conv_expr_descriptor): Ditto.
        (gfc_array_init_size, gfc_conv_expr_descriptor): Ditto.
        * trans-types.c (gfc_get_dtype): Accept array type rather than element
        * trans-types.c (gfc_get_dtype): Accept array type rather than element
        type.
        type.
        (gfc_get_nodesc_array_type): Don't set GFC_TYPE_ARRAY_DTYPE.
        (gfc_get_nodesc_array_type): Don't set GFC_TYPE_ARRAY_DTYPE.
        (gfc_get_array_type_bounds): Ditto.
        (gfc_get_array_type_bounds): Ditto.
        (gfc_get_derived_type): Recurse into derived type pointers.
        (gfc_get_derived_type): Recurse into derived type pointers.
        * trans-types.h (gfc_get_dtype): Add prototype.
        * trans-types.h (gfc_get_dtype): Add prototype.
        * trans.h (GFC_TYPE_ARRAY_DTYPE): Add comment.
        * trans.h (GFC_TYPE_ARRAY_DTYPE): Add comment.
2004-11-15  Paul Brook  
2004-11-15  Paul Brook  
        * trans-types.c (gfc_get_dtype): Remove obsolete TODO.
        * trans-types.c (gfc_get_dtype): Remove obsolete TODO.
2004-11-10  Paul Brook  
2004-11-10  Paul Brook  
        PR fortran/18375
        PR fortran/18375
        * trans-expr.c (gfc_trans_subarray_assign): Free shape before ss.
        * trans-expr.c (gfc_trans_subarray_assign): Free shape before ss.
        * trans-io.c (transfer_array_component): Ditto.
        * trans-io.c (transfer_array_component): Ditto.
2004-11-10  Paul Brook  
2004-11-10  Paul Brook  
        * invoke.texi: Fix typo.
        * invoke.texi: Fix typo.
2004-11-08  Kazu Hirata  
2004-11-08  Kazu Hirata  
        * arith.c, array.c, decl.c, expr.c, f95-lang.c, gfortran.h,
        * arith.c, array.c, decl.c, expr.c, f95-lang.c, gfortran.h,
        gfortranspec.c, interface.c, intrinsic.c, iresolve.c, match.c,
        gfortranspec.c, interface.c, intrinsic.c, iresolve.c, match.c,
        module.c, parse.c, parse.h, primary.c, resolve.c, scanner.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-array.c, trans-array.h, trans-expr.c, trans-intrinsic.c,
        trans-io.c, trans-stmt.c, trans.h: Fix comment formatting.
        trans-io.c, trans-stmt.c, trans.h: Fix comment formatting.
2004-11-06  Tobias Schlueter  
2004-11-06  Tobias Schlueter  
        PR fortran/18023
        PR fortran/18023
        * io.c (resolve_tag): Tighten up exception for assigned FORMAT.
        * io.c (resolve_tag): Tighten up exception for assigned FORMAT.
2004-11-06  Kazu Hirata  
2004-11-06  Kazu Hirata  
        * gfortranspec.c: Replace GNU CC with GCC.
        * gfortranspec.c: Replace GNU CC with GCC.
2004-11-05  Tobias Schlueter  
2004-11-05  Tobias Schlueter  
        * gfortranspec.c (lang_specific_driver): Change year to 2004.
        * gfortranspec.c (lang_specific_driver): Change year to 2004.
2004-11-05  Tobias Schlueter  
2004-11-05  Tobias Schlueter  
        PR fortran/18111
        PR fortran/18111
        *  trans-decl.c (create_function_arglist): Set DECL_ARTIFICIAL for
        *  trans-decl.c (create_function_arglist): Set DECL_ARTIFICIAL for
        hidden parameters.
        hidden parameters.
2004-11-05  Tobias Schlueter  
2004-11-05  Tobias Schlueter  
        PR fortran/15164
        PR fortran/15164
        * trans-decl.c (gfc_finish_var_decl): Don't declare arguments to
        * trans-decl.c (gfc_finish_var_decl): Don't declare arguments to
        module procedures as if they were module variables.
        module procedures as if they were module variables.
2004-11-03  Tobias Schlueter  
2004-11-03  Tobias Schlueter  
        PR fortran/17535
        PR fortran/17535
        PR fortran/17583
        PR fortran/17583
        PR fortran/17713
        PR fortran/17713
        * module.c (write_symbol1): Set module_name for dummy arguments.
        * module.c (write_symbol1): Set module_name for dummy arguments.
2004-11-02  Paul Brook  
2004-11-02  Paul Brook  
        * intrinsic.c (check_intrinsic_standard): Include error locus.
        * intrinsic.c (check_intrinsic_standard): Include error locus.
        Remove VLA.
        Remove VLA.
        (gfc_intrinsic_func_interface, gfc_intrinsic_sub_interface): Pass
        (gfc_intrinsic_func_interface, gfc_intrinsic_sub_interface): Pass
        locus to check_intrinsic_standard.
        locus to check_intrinsic_standard.
2004-10-31  Janne Blomqvist  
2004-10-31  Janne Blomqvist  
        PR fortran/17590
        PR fortran/17590
        * gfortran.h: Change GFC_STD_* flags to more appropriate
        * gfortran.h: Change GFC_STD_* flags to more appropriate
        ones. (struct gfc_intrinsic_isym): Add field for standard. (struct
        ones. (struct gfc_intrinsic_isym): Add field for standard. (struct
        gfc_option_t): Add field for warning about use of nonstandard
        gfc_option_t): Add field for warning about use of nonstandard
        intrinsics.
        intrinsics.
        * intrinsic.c (add_sym): Add parameter for standard version, check
        * intrinsic.c (add_sym): Add parameter for standard version, check
        this against current standard.
        this against current standard.
        (add_sym_0): Pass standard parameter to add_sym.
        (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_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_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.
        (add_sym_4, add_sym_4s, add_sym_5, add_sym_5s): Ditto.
        (make_generic): Add parameter for standard, check this
        (make_generic): Add parameter for standard, check this
        against currently selected standard.
        against currently selected standard.
        (add_functions, add_subroutines): Add parameter to tell which
        (add_functions, add_subroutines): Add parameter to tell which
        standard an intrinsic belongs to.
        standard an intrinsic belongs to.
        (check_intrinsic_standard): New function.
        (check_intrinsic_standard): New function.
        (gfc_intrinsic_func_interface): Add call to check_intrinsic_standard.
        (gfc_intrinsic_func_interface): Add call to check_intrinsic_standard.
        (gfc_intrinsic_sub_interface): Ditto.
        (gfc_intrinsic_sub_interface): Ditto.
        * lang.opt: Add Wnonstd-intrinsics option.
        * lang.opt: Add Wnonstd-intrinsics option.
        * options.c (gfc_init_options): Change to use new GFC_STD_* flags,
        * options.c (gfc_init_options): Change to use new GFC_STD_* flags,
        init new warning.
        init new warning.
        (set_Wall): Add warning about nonstd intrinsics.
        (set_Wall): Add warning about nonstd intrinsics.
        (gfc_handle_option): Change to use new GFC_STD_* flags,
        (gfc_handle_option): Change to use new GFC_STD_* flags,
        handle new warning.
        handle new warning.
        * invoke.texi: Update manual to include -Wnonstd-intrinsics.
        * invoke.texi: Update manual to include -Wnonstd-intrinsics.
2004-10-30  Andrew Pinski  
2004-10-30  Andrew Pinski  
        * f95-lang.c (lang_tree_node): Add chain_next to be the TREE_CHAIN.
        * f95-lang.c (lang_tree_node): Add chain_next to be the TREE_CHAIN.
2004-10-30  Tobias Schlueter  
2004-10-30  Tobias Schlueter  
        * simplify.c (twos_complement): Calculate mask in GMP arithmetic.
        * simplify.c (twos_complement): Calculate mask in GMP arithmetic.
2004-10-30  Tobias Schlueter  
2004-10-30  Tobias Schlueter  
        * trans.c (gfc_trans_code): Set global locus after recursing. Fix
        * trans.c (gfc_trans_code): Set global locus after recursing. Fix
        comment typo.
        comment typo.
2004-10-30  Canqun Yang  
2004-10-30  Canqun Yang  
        * check.c (gfc_check_rand): Allow missing optional argument.
        * check.c (gfc_check_rand): Allow missing optional argument.
        (gfc_check_irand): Ditto.
        (gfc_check_irand): Ditto.
        * intrinsic.c (add_functions): Set arg optional flag for {i,}rand.
        * intrinsic.c (add_functions): Set arg optional flag for {i,}rand.
2004-10-28  Scott Robert Ladd  
2004-10-28  Scott Robert Ladd  
        PR fortran/13490, PR fortran/17912
        PR fortran/13490, PR fortran/17912
        * gcc/fortran/gfortran.h: Added pedantic_min_int to gfc_integer_info
        * gcc/fortran/gfortran.h: Added pedantic_min_int to gfc_integer_info
        * gcc/fortran/gfortran.h: Added ARITH_ASYMMETRIC to arith
        * gcc/fortran/gfortran.h: Added ARITH_ASYMMETRIC to arith
        * gcc/fortran/arith.c: Added support for an "asymmetric integer"
        * gcc/fortran/arith.c: Added support for an "asymmetric integer"
        warning when compiling with pedantic.
        warning when compiling with pedantic.
        * gcc/fortran/arith.c: Set minimum integer values to reflect
        * gcc/fortran/arith.c: Set minimum integer values to reflect
        realities of two's complement signed integers. Added
        realities of two's complement signed integers. Added
        pedantic minimum.
        pedantic minimum.
2004-10-17  Andrew Pinski  
2004-10-17  Andrew Pinski  
        * Make-lang.in (F95_ADDITIONAL_OBJS): Kill.
        * Make-lang.in (F95_ADDITIONAL_OBJS): Kill.
        (f951): Do not depend on F95_ADDITIONAL_OBJS and don't
        (f951): Do not depend on F95_ADDITIONAL_OBJS and don't
        link it in.
        link it in.
2004-10-14  Tobias Schlueter  
2004-10-14  Tobias Schlueter  
        * trans-decl.c (generate_local_decl): Simplify logic, fix comment
        * trans-decl.c (generate_local_decl): Simplify logic, fix comment
        typo.
        typo.
        (gfc_generate_function_code): Fix formatting issue.
        (gfc_generate_function_code): Fix formatting issue.
2004-10-10  Tobias Schlueter  
2004-10-10  Tobias Schlueter  
        * module.c: Fix formatting issues.
        * module.c: Fix formatting issues.
2004-10-09  Tobias Schlueter  
2004-10-09  Tobias Schlueter  
        * module.c (mio_interface_rest): Set where member of interface
        * module.c (mio_interface_rest): Set where member of interface
        while loading.
        while loading.
2004-10-08  Andrew Pinski  
2004-10-08  Andrew Pinski  
        PR fortran/17901
        PR fortran/17901
        * options.c (gfc_handle_option): Add break after handing the
        * options.c (gfc_handle_option): Add break after handing the
        J/M option.
        J/M option.
2004-10-08  Tobias Schlueter  
2004-10-08  Tobias Schlueter  
        * arith.c: Fix formatting issues.
        * arith.c: Fix formatting issues.
2004-10-07  Tobias Schlueter  
2004-10-07  Tobias Schlueter  
        PR fortran/17676
        PR fortran/17676
        * resolve.c (resolve_operator): Use correct operator name in message.
        * resolve.c (resolve_operator): Use correct operator name in message.
2004-10-07  Tobias Schlueter  
2004-10-07  Tobias Schlueter  
        * primary.c (match_boz_constant): Allow kind parameter suffixes.
        * primary.c (match_boz_constant): Allow kind parameter suffixes.
        Move standard warning further to the front.
        Move standard warning further to the front.
2004-10-07  Kazu Hirata  
2004-10-07  Kazu Hirata  
        * trans-stmt.c: Fix a comment typo.
        * trans-stmt.c: Fix a comment typo.
2004-10-07  Paul Brook  
2004-10-07  Paul Brook  
        PR fortran/17678
        PR fortran/17678
        * trans-array.c (gfc_trans_deferred_array): Leave use associated
        * trans-array.c (gfc_trans_deferred_array): Leave use associated
        variables alone.
        variables alone.
2004-10-06  Tobias Schlueter  
2004-10-06  Tobias Schlueter  
        PR fortran/17568
        PR fortran/17568
        * simplify.c (twos_complement): New function.
        * simplify.c (twos_complement): New function.
        (gfc_simplify_ishft, gfc_simplify_ishftc): Revise.
        (gfc_simplify_ishft, gfc_simplify_ishftc): Revise.
        * simplify.c (gfc_simplify_abs): Use mpfr_hypot for CABS.
        * simplify.c (gfc_simplify_abs): Use mpfr_hypot for CABS.
2004-10-06  Paul Brook  
2004-10-06  Paul Brook  
        * trans-stmt.c (gfc_trans_simple_do): New function.
        * trans-stmt.c (gfc_trans_simple_do): New function.
        (gfc_trans_do): Use it.  Evaluate iteration bounds before entering
        (gfc_trans_do): Use it.  Evaluate iteration bounds before entering
        loop.  Update comments.
        loop.  Update comments.
2004-10-04  Tobias Schlueter  
2004-10-04  Tobias Schlueter  
        PR fortran/17283
        PR fortran/17283
        * iresolve.c (gfc_resolve_pack): Choose function depending if mask
        * iresolve.c (gfc_resolve_pack): Choose function depending if mask
        is scalar.
        is scalar.
        PR fortran/17631
        PR fortran/17631
        * intrinsic.c (add_sym_5): Remove.
        * intrinsic.c (add_sym_5): Remove.
        (add_subroutines): Add resolution function for MVBITS.
        (add_subroutines): Add resolution function for MVBITS.
        * intrinsic.h (gfc_resolve_mvbits): Declare resolution function for
        * intrinsic.h (gfc_resolve_mvbits): Declare resolution function for
        MVBITS
        MVBITS
        * iresolve.c (gfc_resolve_mvbits): New function.
        * iresolve.c (gfc_resolve_mvbits): New function.
        (gfc_resolve_random_number): Remove empty line at end of function.
        (gfc_resolve_random_number): Remove empty line at end of function.
        * trans-const.c (gfc_build_cstring_const): New function.
        * trans-const.c (gfc_build_cstring_const): New function.
        (gfc_init_cst): Use new function.
        (gfc_init_cst): Use new function.
        * trans-const.h (gfc_build_cstring_const): Add prototype.
        * trans-const.h (gfc_build_cstring_const): Add prototype.
        * trans-io.c (set_string, set_error_locus): Use new function.
        * trans-io.c (set_string, set_error_locus): Use new function.
        * trans-stmt.c (gfc_trans_goto): Use new function.
        * trans-stmt.c (gfc_trans_goto): Use new function.
        PR fortran/17708
        PR fortran/17708
        * parse.c (accept_statement): Don't treat END DO like END IF and
        * parse.c (accept_statement): Don't treat END DO like END IF and
        END SELECT.
        END SELECT.
        (parse_do_block): Generate possible END DO label inside END DO
        (parse_do_block): Generate possible END DO label inside END DO
        block.
        block.
        PR fortran/17776
        PR fortran/17776
        * check.c (gfc_check_system_sub): New function.
        * check.c (gfc_check_system_sub): New function.
        * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SYSTEM.
        * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SYSTEM.
        * intrinsic.c (add_functions): Add 'system'.
        * intrinsic.c (add_functions): Add 'system'.
        (add_subroutines): Add 'system'.
        (add_subroutines): Add 'system'.
        * intrinsic.h (gfc_check_etime_sub, gfc_check_getcwd_sub):
        * intrinsic.h (gfc_check_etime_sub, gfc_check_getcwd_sub):
        Move prototypes to other suborutines.
        Move prototypes to other suborutines.
        (gfc_check_system_sub, gfc_resolve_system, gfc_resolve_system_sub):
        (gfc_check_system_sub, gfc_resolve_system, gfc_resolve_system_sub):
        Add prototype.
        Add prototype.
        (gfc_resolve_system_clock): Fix formatting of prototype.
        (gfc_resolve_system_clock): Fix formatting of prototype.
        * iresolve.c (gfc_resolve_system, gfc_resolve_system_sub): New
        * iresolve.c (gfc_resolve_system, gfc_resolve_system_sub): New
        functions.
        functions.
        * trans-intrinsic.c (gfc_conv_intrinsic_function): Deal with
        * trans-intrinsic.c (gfc_conv_intrinsic_function): Deal with
        GFC_ISYM_SYSTEM.
        GFC_ISYM_SYSTEM.
2004-10-04  Erik Schnetter  
2004-10-04  Erik Schnetter  
        * scanner.c (preprocessor_line): Accept preprocessor lines without
        * scanner.c (preprocessor_line): Accept preprocessor lines without
        file names.  Check file names for closing quotes.  Handle escaped
        file names.  Check file names for closing quotes.  Handle escaped
        quotes in file names.
        quotes in file names.
2004-10-04  Tobias Schlueter  
2004-10-04  Tobias Schlueter  
        Paul Brook  
        Paul Brook  
        * trans-array.c (gfc_conv_expr_descriptor): Check for substriungs.
        * trans-array.c (gfc_conv_expr_descriptor): Check for substriungs.
        Use gfc_get_expr_charlen.
        Use gfc_get_expr_charlen.
        * trans-expr.c (gfc_get_expr_charlen): New function.
        * trans-expr.c (gfc_get_expr_charlen): New function.
        * trans.h (gfc_get_expr_charlen): Add prototype.
        * trans.h (gfc_get_expr_charlen): Add prototype.
2004-10-04  Kazu Hirata  
2004-10-04  Kazu Hirata  
        * trans-intrinsic.c: Fix a comment typo.
        * trans-intrinsic.c: Fix a comment typo.
2004-10-03  Tobias Schlueter  
2004-10-03  Tobias Schlueter  
        * simplify.c (range_check): Remove blank line at beginning of function.
        * simplify.c (range_check): Remove blank line at beginning of function.
        (gfc_simplify_dint): Same at end of function.
        (gfc_simplify_dint): Same at end of function.
        (gfc_simplify_exponent, gfc_simplify_fraction): Simplify calculations.
        (gfc_simplify_exponent, gfc_simplify_fraction): Simplify calculations.
        (gfc_simplify_bound): Fix indentation.
        (gfc_simplify_bound): Fix indentation.
        (gfc_simplify_log10): Simplify calculation.
        (gfc_simplify_log10): Simplify calculation.
        (gfc_simplify_min, gfc_simplify_max): Remove blank line at beginning
        (gfc_simplify_min, gfc_simplify_max): Remove blank line at beginning
        of function.
        of function.
        (gfc_simplify_nearest): Same at end of function.
        (gfc_simplify_nearest): Same at end of function.
        (gfc_simplify_nint, gfc_simplify_idnint): Same at beginning of
        (gfc_simplify_nint, gfc_simplify_idnint): Same at beginning of
        function.
        function.
        (gfc_simplify_rrspacing, gfc_simplify_set_exponent,
        (gfc_simplify_rrspacing, gfc_simplify_set_exponent,
        gfc_simplify_spacing): Simplify calulations.
        gfc_simplify_spacing): Simplify calulations.
2004-10-03  Feng Wang  
2004-10-03  Feng Wang  
        * trans-intrinsic.c: Fix comments on spacing and rrspacing
        * trans-intrinsic.c: Fix comments on spacing and rrspacing
        (gfc_conv_intrinsic_rrspacing): Add fold on constant trees.
        (gfc_conv_intrinsic_rrspacing): Add fold on constant trees.
2004-10-01  Jan Hubicka  
2004-10-01  Jan Hubicka  
        * f95-lang.c (gfc_expand_function): Update call of
        * f95-lang.c (gfc_expand_function): Update call of
        tree_rest_of_compilation.
        tree_rest_of_compilation.
        * trans-decl.c (gfc_generate_constructors): Likewise.
        * trans-decl.c (gfc_generate_constructors): Likewise.
2004-09-26  Tobias Schlueter  
2004-09-26  Tobias Schlueter  
        * trans-intrinsic.c: Comment fixes.
        * trans-intrinsic.c: Comment fixes.
2004-09-25  Tobias Schlueter  
2004-09-25  Tobias Schlueter  
        * decl.c (add_init_expr_to_sym, variable_decl): Comment fixes.
        * decl.c (add_init_expr_to_sym, variable_decl): Comment fixes.
2004-09-24  Tobias Schlueter  
2004-09-24  Tobias Schlueter  
        * trans-types.c (gfc_return_by_reference): Remove superfluous
        * trans-types.c (gfc_return_by_reference): Remove superfluous
        assertion.
        assertion.
        * intrinsic.h (gfc_resolve_getcwd): Update prototype.
        * intrinsic.h (gfc_resolve_getcwd): Update prototype.
        * iresolve.c (gfc_resolve_getcwd): Add second argument to function.
        * iresolve.c (gfc_resolve_getcwd): Add second argument to function.
        PR fortran/17615
        PR fortran/17615
        * trans-expr.c (gfc_trans_arrayfunc_assign): Look at resolved
        * trans-expr.c (gfc_trans_arrayfunc_assign): Look at resolved
        function to determine return type.
        function to determine return type.
2004-09-20  Jan Hubicka  
2004-09-20  Jan Hubicka  
        * trans-decl.c (build_entry_thunks): Finalize the function; do not lower
        * trans-decl.c (build_entry_thunks): Finalize the function; do not lower
        tree.
        tree.
        (gfc_generate_function_code): Likewise.
        (gfc_generate_function_code): Likewise.
2004-09-20  Tobias Schlueter  
2004-09-20  Tobias Schlueter  
        PR fortran/15957
        PR fortran/15957
        * simplify.c (gfc_simplify_reshape): Set shape of return value
        * simplify.c (gfc_simplify_reshape): Set shape of return value
        correctly.
        correctly.
2004-09-17  Jeffrey D. Oldham  
2004-09-17  Jeffrey D. Oldham  
            Zack Weinberg  
            Zack Weinberg  
        * f95-lang.c, trans-expr.c, trans.c: Update for new tree-class
        * f95-lang.c, trans-expr.c, trans.c: Update for new tree-class
        enumeration constants.
        enumeration constants.
2004-09-17  Paul Brook  
2004-09-17  Paul Brook  
        * gfortran.h (struct gfc_linebuf): Don't use C99 empty arrays.
        * gfortran.h (struct gfc_linebuf): Don't use C99 empty arrays.
        (gfc_linebuf_header_size): Define.
        (gfc_linebuf_header_size): Define.
        * scanner.c (load_file): Use it.
        * scanner.c (load_file): Use it.
2004-09-16  Kazu Hirata  
2004-09-16  Kazu Hirata  
        * array.c, data.c, decl.c, dependency.c, error.c, f95-lang.c,
        * 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,
        interface.c, intrinsic.c, io.c, misc.c, module.c, parse.h,
        resolve.c, scanner.c, trans-array.c, trans-array.h,
        resolve.c, scanner.c, trans-array.c, trans-array.h,
        trans-common.c, trans-const.h, trans-decl.c, trans-expr.c,
        trans-common.c, trans-const.h, trans-decl.c, trans-expr.c,
        trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.c,
        trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.c,
        trans.h: Fix comment typos.  Follow spelling conventions.
        trans.h: Fix comment typos.  Follow spelling conventions.
2004-09-16  Victor Leikehman  
2004-09-16  Victor Leikehman  
        PR/15364
        PR/15364
        * trans-io.c (transfer_array_component): New function.
        * trans-io.c (transfer_array_component): New function.
        (transfer_expr): For array fields, call transfer_array_component.
        (transfer_expr): For array fields, call transfer_array_component.
2004-09-16  Kazu Hirata  
2004-09-16  Kazu Hirata  
        * gfortran.texi: Fix a typo.
        * gfortran.texi: Fix a typo.
2004-09-15  Aaron W. LaFramboise  
2004-09-15  Aaron W. LaFramboise  
        * parse.c (eof_buf): Rename eof to eof_buf.
        * parse.c (eof_buf): Rename eof to eof_buf.
        (unexpected_eof): Same.
        (unexpected_eof): Same.
        (gfc_parse_file): Same.
        (gfc_parse_file): Same.
2004-09-15  Steven G. Kargl  
2004-09-15  Steven G. Kargl  
        * check.c (gfc_check_getcwd_sub): New function.
        * check.c (gfc_check_getcwd_sub): New function.
        * gfortran.h (GFC_ISYM_GETCWD): New symbol.
        * gfortran.h (GFC_ISYM_GETCWD): New symbol.
        * intrinsic.c (add_functions): Add function definition;
        * intrinsic.c (add_functions): Add function definition;
        Use symbol.
        Use symbol.
        * intrinsic.c (add_subroutines): Add subroutine definitions.
        * intrinsic.c (add_subroutines): Add subroutine definitions.
        * intrinsic.h: Add prototypes.
        * intrinsic.h: Add prototypes.
        * iresolve.c (gfc_resolve_getcwd, gfc_resolve_getcwd_sub):
        * iresolve.c (gfc_resolve_getcwd, gfc_resolve_getcwd_sub):
        New functions.
        New functions.
        * trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbol.
        * trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbol.
2004-09-15  Tobias Schlueter  
2004-09-15  Tobias Schlueter  
        PR fortran/16485
        PR fortran/16485
        * module.c (write_symbol): Don't fill in module name here.
        * module.c (write_symbol): Don't fill in module name here.
        (write_symbol0): Fill in here instead.
        (write_symbol0): Fill in here instead.
2004-09-14  Kazu Hirata  
2004-09-14  Kazu Hirata  
        * data.c, decl.c, f95-lang.c, gfortran.h, match.c,
        * data.c, decl.c, f95-lang.c, gfortran.h, match.c,
        trans-array.c, trans-common.c, trans-expr.c,
        trans-array.c, trans-common.c, trans-expr.c,
        trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.h: Fix
        trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.h: Fix
        comment typos.  Follow spelling conventions.
        comment typos.  Follow spelling conventions.
2004-09-09  Paul Brook  
2004-09-09  Paul Brook  
        * scanner.c (get_file): Add ATTRIBUTE_UNUSED.
        * scanner.c (get_file): Add ATTRIBUTE_UNUSED.
2004-09-08  Paul Brook  
2004-09-08  Paul Brook  
        * array.c: Don't include assert.h.
        * array.c: Don't include assert.h.
        * data.c: Don't include assert.h.  Replace assert and abort with
        * data.c: Don't include assert.h.  Replace assert and abort with
        gcc_assert and gcc_unreachable.
        gcc_assert and gcc_unreachable.
        * dependency.c: Ditto.
        * dependency.c: Ditto.
        * f95-lang.c: Ditto.
        * f95-lang.c: Ditto.
        * iresolve.c: Ditto.
        * iresolve.c: Ditto.
        * resolve.c: Ditto.
        * resolve.c: Ditto.
        * simplify.c: Ditto.
        * simplify.c: Ditto.
        * symbol.c: Ditto.
        * symbol.c: Ditto.
        * trans-array.c: Ditto.
        * trans-array.c: Ditto.
        * trans-common.c: Ditto.
        * trans-common.c: Ditto.
        * trans-const.c: Ditto.
        * trans-const.c: Ditto.
        * trans-decl.c: Ditto.
        * trans-decl.c: Ditto.
        * trans-expr.c: Ditto.
        * trans-expr.c: Ditto.
        * trans-intrinsic.c: Ditto.
        * trans-intrinsic.c: Ditto.
        * trans-io.c: Ditto.
        * trans-io.c: Ditto.
        * trans-stmt.c: Ditto.
        * trans-stmt.c: Ditto.
        * trans-types.c: Ditto.
        * trans-types.c: Ditto.
        * trans.c: Ditto.
        * trans.c: Ditto.
2004-09-07  Per Bothner  
2004-09-07  Per Bothner  
        Paul Brook  
        Paul Brook  
        * error.c (show_locus): Handle mapped locations.
        * error.c (show_locus): Handle mapped locations.
        * f95-lang.c (gfc_be_parse_file): Initialize mapped locations.
        * f95-lang.c (gfc_be_parse_file): Initialize mapped locations.
        * gfortran.h: Include input.h.
        * gfortran.h: Include input.h.
        (struct gfc_linebuf): Use source_location.
        (struct gfc_linebuf): Use source_location.
        * scanner.c (get_file): Initialize linemap.
        * scanner.c (get_file): Initialize linemap.
        (preprocessor_line): Pass extra argument to get_file.
        (preprocessor_line): Pass extra argument to get_file.
        (load_file): Ditto.  Setup linemap.
        (load_file): Ditto.  Setup linemap.
        (gfc_new_file): Handle mapped locations.
        (gfc_new_file): Handle mapped locations.
        * trans-common.c (build_field, build_equiv_decl, build_common_decl):
        * trans-common.c (build_field, build_equiv_decl, build_common_decl):
        Set decl source locations.
        Set decl source locations.
        (gfc_trans_common): Set blank common block location.
        (gfc_trans_common): Set blank common block location.
        * trans-decl.c (gfc_set_decl_location): New function.
        * trans-decl.c (gfc_set_decl_location): New function.
        (gfc_get_label_decl, gfc_get_symbol_decl): Use it.
        (gfc_get_label_decl, gfc_get_symbol_decl): Use it.
        (trans_function_start): Move call to gfc_set_backend_locus..
        (trans_function_start): Move call to gfc_set_backend_locus..
        (build_function_decl): ... to here.
        (build_function_decl): ... to here.
        (build_entry_thunks): Set and restore the backend locus.
        (build_entry_thunks): Set and restore the backend locus.
        (gfc_generate_constructors): Remove excess arguments to
        (gfc_generate_constructors): Remove excess arguments to
        init_function_start.
        init_function_start.
        (gfc_generate_block_data): Add comments.  Set the decl locus.
        (gfc_generate_block_data): Add comments.  Set the decl locus.
        * trans-io.c (set_error_locus): Handle mapped locations.
        * trans-io.c (set_error_locus): Handle mapped locations.
        * trans.c (gfc_get_backend_locus, gfc_get_backend_locus): Ditto.
        * trans.c (gfc_get_backend_locus, gfc_get_backend_locus): Ditto.
        (gfc_trans_code): Use SET_EXPR_LOCATION.
        (gfc_trans_code): Use SET_EXPR_LOCATION.
        (gfc_generate_code): Override the location of the new symbol.
        (gfc_generate_code): Override the location of the new symbol.
        * trans.h (gfc_set_decl_location): Add prototype.
        * trans.h (gfc_set_decl_location): Add prototype.
2004-08-31  Paul Brook  
2004-08-31  Paul Brook  
        * trans-types.c (gfc_type_for_mode): Return NULL for unknown modes.
        * trans-types.c (gfc_type_for_mode): Return NULL for unknown modes.
2004-09-01  Tobias Schlueter  
2004-09-01  Tobias Schlueter  
        PR fortran/15327
        PR fortran/15327
        * trans-intrinsic.c (gfc_conv_intrinsic_merge): Do the right thing for
        * trans-intrinsic.c (gfc_conv_intrinsic_merge): Do the right thing for
        strings.
        strings.
2004-09-01  Tobias Schlueter  
2004-09-01  Tobias Schlueter  
        PR fortran/16400
        PR fortran/16400
        PR fortran/16404
        PR fortran/16404
        (port from g95)
        (port from g95)
        * resolve.c (resolve_transfer): New function.
        * resolve.c (resolve_transfer): New function.
        (resolve_code): Call resolve_transfer in case of EXEC_TRANSFER.
        (resolve_code): Call resolve_transfer in case of EXEC_TRANSFER.
2004-08-31  Tobias Schlueter  
2004-08-31  Tobias Schlueter  
        PR fortran/16579
        PR fortran/16579
        * trans-types.c (gfc_init_types): Make gfc_character1_type_node an
        * trans-types.c (gfc_init_types): Make gfc_character1_type_node an
        unsigned char.
        unsigned char.
2004-08-31  Tobias Schlueter  
2004-08-31  Tobias Schlueter  
        * CONTRIB, NEWS, README, TODO: Remove obsolete files.
        * CONTRIB, NEWS, README, TODO: Remove obsolete files.
2004-08-31  Tobias Schlueter  
2004-08-31  Tobias Schlueter  
        PR fortran/17244
        PR fortran/17244
        * trans-types.c (gfc_return_by_reference): Remove TODO error,
        * trans-types.c (gfc_return_by_reference): Remove TODO error,
        add comment pointing out possible issue WRT compatibility with g77.
        add comment pointing out possible issue WRT compatibility with g77.
2004-08-31  Tobias Schlueter  
2004-08-31  Tobias Schlueter  
        * trans-decl.c, trans-expr.c, trans-io.c, trans-types.c: Replace
        * trans-decl.c, trans-expr.c, trans-io.c, trans-types.c: Replace
        all occurences of 'gfc_strlen_type_node' by
        all occurences of 'gfc_strlen_type_node' by
        'gfc_charlen_type_node'.
        'gfc_charlen_type_node'.
        * trans-types.h: Same. Also update comment accordingly.
        * trans-types.h: Same. Also update comment accordingly.
2004-08-31  Tobias Schlueter  
2004-08-31  Tobias Schlueter  
        * primary.c: Update copyright boilerplate to say GCC.
        * primary.c: Update copyright boilerplate to say GCC.
        * f95-lang.c: Change initial comment to say gfortran.
        * f95-lang.c: Change initial comment to say gfortran.
2004-08-31  Paul Brook  
2004-08-31  Paul Brook  
        * trans-types.h: Add comments.
        * trans-types.h: Add comments.
        (intmax_type_node, string_type_node, const_string_type_node): Remove.
        (intmax_type_node, string_type_node, const_string_type_node): Remove.
2004-08-30  Richard Henderson  
2004-08-30  Richard Henderson  
        * Make-lang.in (fortran/f95-lang.o): Update dependencies.
        * Make-lang.in (fortran/f95-lang.o): Update dependencies.
        (fortran/trans-decl.o, fortran/trans-types.o): Likewise.
        (fortran/trans-decl.o, fortran/trans-types.o): Likewise.
        * gfortran.h (gfc_integer_info): Add c_char, c_short, c_int,
        * gfortran.h (gfc_integer_info): Add c_char, c_short, c_int,
        c_long, c_long_long.
        c_long, c_long_long.
        (gfc_logical_info): Add c_bool.
        (gfc_logical_info): Add c_bool.
        (gfc_real_info): Add mode_precision, c_float, c_double, c_long_double.
        (gfc_real_info): Add mode_precision, c_float, c_double, c_long_double.
        * trans-array.c (gfc_array_allocate): Use TYPE_PRECISION
        * trans-array.c (gfc_array_allocate): Use TYPE_PRECISION
        rather than gfc_int[48]_type_node for allocate choice.
        rather than gfc_int[48]_type_node for allocate choice.
        * trans-decl.c (gfc_build_intrinsic_function_decls): Cache
        * trans-decl.c (gfc_build_intrinsic_function_decls): Cache
        local copies of some kind type nodes.
        local copies of some kind type nodes.
        (gfc_build_builtin_function_decls): Likewise.
        (gfc_build_builtin_function_decls): Likewise.
        * trans-expr.c (gfc_conv_power_op): Likewise.
        * trans-expr.c (gfc_conv_power_op): Likewise.
        * trans-intrinsic.c (gfc_conv_intrinsic_index,
        * trans-intrinsic.c (gfc_conv_intrinsic_index,
        gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify,
        gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify,
        gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat): Likewise.
        gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat): Likewise.
        * trans-stmt.c (gfc_trans_pause, gfc_trans_stop,
        * trans-stmt.c (gfc_trans_pause, gfc_trans_stop,
        gfc_trans_character_select, gfc_trans_allocate): Likewise.
        gfc_trans_character_select, gfc_trans_allocate): Likewise.
        * trans-io.c (gfc_pint4_type_node): Move into ...
        * trans-io.c (gfc_pint4_type_node): Move into ...
        (gfc_build_io_library_fndecls): ... here.  Cache local copies of
        (gfc_build_io_library_fndecls): ... here.  Cache local copies of
        some kind type nodes.
        some kind type nodes.
        * trans-types.c (gfc_type_nodes): Remove.
        * trans-types.c (gfc_type_nodes): Remove.
        (gfc_character1_type_node, gfc_strlen_type_node): New.
        (gfc_character1_type_node, gfc_strlen_type_node): New.
        (gfc_integer_types, gfc_logical_types): New.
        (gfc_integer_types, gfc_logical_types): New.
        (gfc_real_types, gfc_complex_types): New.
        (gfc_real_types, gfc_complex_types): New.
        (gfc_init_kinds): Fill in real mode_precision.
        (gfc_init_kinds): Fill in real mode_precision.
        (gfc_build_int_type, gfc_build_real_type): New.
        (gfc_build_int_type, gfc_build_real_type): New.
        (gfc_build_complex_type, gfc_build_logical_type): New.
        (gfc_build_complex_type, gfc_build_logical_type): New.
        (c_size_t_size): New.
        (c_size_t_size): New.
        (gfc_init_types): Loop over kinds.
        (gfc_init_types): Loop over kinds.
        (gfc_get_int_type, gfc_get_real_type): Use gfc_validate_kind.
        (gfc_get_int_type, gfc_get_real_type): Use gfc_validate_kind.
        (gfc_get_complex_type, gfc_get_logical_type): Likewise.
        (gfc_get_complex_type, gfc_get_logical_type): Likewise.
        (gfc_get_character_type_len): Likewise.
        (gfc_get_character_type_len): Likewise.
        (gfc_type_for_size): Loop over kinds; use a reduced set of
        (gfc_type_for_size): Loop over kinds; use a reduced set of
        unsigned type nodes.
        unsigned type nodes.
        (gfc_type_for_mode): Loop over kinds.
        (gfc_type_for_mode): Loop over kinds.
        (gfc_signed_or_unsigned_type): Use gfc_type_for_size.
        (gfc_signed_or_unsigned_type): Use gfc_type_for_size.
        (gfc_unsigned_type, gfc_signed_type): Use gfc_signed_or_unsigned_type.
        (gfc_unsigned_type, gfc_signed_type): Use gfc_signed_or_unsigned_type.
        * trans-types.h (F95_INT1_TYPE, F95_INT2_TYPE, F95_INT4_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_INT8_TYPE, F95_INT16_TYPE, F95_REAL4_TYPE, F95_REAL8_TYPE,
        F95_REAl16_TYPE, F95_COMPLEX4_TYPE, F95_COMPLEX8_TYPE,
        F95_REAl16_TYPE, F95_COMPLEX4_TYPE, F95_COMPLEX8_TYPE,
        F95_COMPLEX16_TYPE, F95_LOGICAL1_TYPE, F95_LOGICAL2_TYPE,
        F95_COMPLEX16_TYPE, F95_LOGICAL1_TYPE, F95_LOGICAL2_TYPE,
        F95_LOGICAL4_TYPE, F95_LOGICAL8_TYPE, F95_LOGICAL16_TYPE,
        F95_LOGICAL4_TYPE, F95_LOGICAL8_TYPE, F95_LOGICAL16_TYPE,
        F95_CHARACTER1_TYPE, NUM_F95_TYPES, gfc_type_nodes,
        F95_CHARACTER1_TYPE, NUM_F95_TYPES, gfc_type_nodes,
        gfc_int1_type_node, gfc_int2_type_node, gfc_int4_type_node,
        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_int8_type_node, gfc_int16_type_node, gfc_real4_type_node,
        gfc_real8_type_node, gfc_real16_type_node, gfc_complex4_type_node,
        gfc_real8_type_node, gfc_real16_type_node, gfc_complex4_type_node,
        gfc_complex8_type_node, gfc_complex16_type_node,
        gfc_complex8_type_node, gfc_complex16_type_node,
        gfc_logical1_type_node, gfc_logical2_type_node,
        gfc_logical1_type_node, gfc_logical2_type_node,
        gfc_logical4_type_node, gfc_logical8_type_node,
        gfc_logical4_type_node, gfc_logical8_type_node,
        gfc_logical16_type_node, gfc_strlen_kind): Remove.
        gfc_logical16_type_node, gfc_strlen_kind): Remove.
        (gfc_character1_type_node): Turn in to a variable.
        (gfc_character1_type_node): Turn in to a variable.
        (gfc_strlen_type_node): Likewise.
        (gfc_strlen_type_node): Likewise.
2004-08-30  Tobias Schlueter  
2004-08-30  Tobias Schlueter  
        * gfortran.h (gfc_namespace): Add new field is_block_data.
        * gfortran.h (gfc_namespace): Add new field is_block_data.
        * parse.c (accept_statement): Remove special handling for BLOCK DATA.
        * parse.c (accept_statement): Remove special handling for BLOCK DATA.
        (parse_block_data): Record BLOCK DATA name, set is_block_data field.
        (parse_block_data): Record BLOCK DATA name, set is_block_data field.
        * trans.c (gfc_generate_code): Handle BLOCK DATA units.
        * trans.c (gfc_generate_code): Handle BLOCK DATA units.
        * trans.h (gfc_generate_block_data): Add prototype.
        * trans.h (gfc_generate_block_data): Add prototype.
        * trans-decl.c (gfc_generate_block_data): New function.
        * trans-decl.c (gfc_generate_block_data): New function.
2004-08-29  Richard Henderson  
2004-08-29  Richard Henderson  
        * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_export.
        * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_export.
        * trans-types.c (gfc_init_kinds): Reject integer kinds larger
        * trans-types.c (gfc_init_kinds): Reject integer kinds larger
        than two HOST_WIDE_INT.
        than two HOST_WIDE_INT.
2004-08-29  Tobias Schlueter  
2004-08-29  Tobias Schlueter  
        PR fortran/13910
        PR fortran/13910
        * decl.c (free_variable, free_value, gfc_free_data, var_list,
        * decl.c (free_variable, free_value, gfc_free_data, var_list,
        var_element, top_var_list, match_data_constant, top_val_list,
        var_element, top_var_list, match_data_constant, top_val_list,
        gfc_match_data): Move here from match.c.
        gfc_match_data): Move here from match.c.
        (match_old_style_init): New function.
        (match_old_style_init): New function.
        (variable_decl): Match old-style initialization.
        (variable_decl): Match old-style initialization.
        * expr.c (gfc_get_variable_expr): New function.
        * expr.c (gfc_get_variable_expr): New function.
        * gfortran.h (gfc_get_variable_expr): Add prototype.
        * gfortran.h (gfc_get_variable_expr): Add prototype.
        * gfortran.texi: Start documentation for supported extensions.
        * gfortran.texi: Start documentation for supported extensions.
        * match.c: Remove the functions moved to decl.c.
        * match.c: Remove the functions moved to decl.c.
        * match.h (gfc_match_data): Move prototype to under decl.c.
        * match.h (gfc_match_data): Move prototype to under decl.c.
        * symbol.c (gfc_find_sym_tree, gfc_find_symbol): Add/correct
        * symbol.c (gfc_find_sym_tree, gfc_find_symbol): Add/correct
        comments.
        comments.
2004-08-29  Steven G. Kargl  
2004-08-29  Steven G. Kargl  
        Paul Brook  
        Paul Brook  
        * check.c (gfc_check_besn, gfc_check_g77_math1): New functions.
        * check.c (gfc_check_besn, gfc_check_g77_math1): New functions.
        * f95-lang.c (DO_DEFINE_MATH_BUILTIN): Define.
        * f95-lang.c (DO_DEFINE_MATH_BUILTIN): Define.
        (DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it.
        (DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it.
        (build_builtin_fntypes): New function.
        (build_builtin_fntypes): New function.
        (gfc_init_builtin_functions): Use it.
        (gfc_init_builtin_functions): Use it.
        * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_{J,Y}{0,1,N}
        * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_{J,Y}{0,1,N}
        and GFC_ISYM_ERF{,C}.
        and GFC_ISYM_ERF{,C}.
        (gfc_c_int_kind): Declare.
        (gfc_c_int_kind): Declare.
        * intrinsic.c (add_functions): Add [d]bes* and [d]erf*.
        * intrinsic.c (add_functions): Add [d]bes* and [d]erf*.
        * intrinsic.h (gfc_check_besn, gfc_check_g77_math1, gfc_resolve_besn,
        * intrinsic.h (gfc_check_besn, gfc_check_g77_math1, gfc_resolve_besn,
        gfc_resolve_g77_math1): Add prototypes.
        gfc_resolve_g77_math1): Add prototypes.
        * resolve.c (gfc_resolve_besn, gfc_resolve_g77_math1): New functions.
        * resolve.c (gfc_resolve_besn, gfc_resolve_g77_math1): New functions.
        * mathbuiltins.def: Add comment.  Change third argument.  Use
        * mathbuiltins.def: Add comment.  Change third argument.  Use
        DEFINE_MATH_BUILTIN_C.  Add bessel and error functions.
        DEFINE_MATH_BUILTIN_C.  Add bessel and error functions.
        * trans-intrinsic.c (BUILT_IN_FUNCTION): Define.
        * trans-intrinsic.c (BUILT_IN_FUNCTION): Define.
        (DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it.
        (DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it.
        * trans-types.c (gfc_c_int_kind): Declare.
        * trans-types.c (gfc_c_int_kind): Declare.
        (gfc_init_kinds): Set it.
        (gfc_init_kinds): Set it.
2004-08-29  Steven G. Kargl  
2004-08-29  Steven G. Kargl  
        Paul Brook  
        Paul Brook  
        * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_GET?ID.
        * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_GET?ID.
        (gfc_check_f, gfc_simplify_f): Add f0.
        (gfc_check_f, gfc_simplify_f): Add f0.
        * intrinsic.c (do_check): Call f0.  Flatten.
        * intrinsic.c (do_check): Call f0.  Flatten.
        (add_sym_0): Fix prototype.  Set f0.
        (add_sym_0): Fix prototype.  Set f0.
        (add_functions): Add getgid, getgid and getuid.
        (add_functions): Add getgid, getgid and getuid.
        (resolve_intrinsic): Remove obsolete comment.
        (resolve_intrinsic): Remove obsolete comment.
        (do_simplify): Call f0.
        (do_simplify): Call f0.
        * intrinsic.h (gfc_resolve_getgid, gfc_resolve_getpid,
        * intrinsic.h (gfc_resolve_getgid, gfc_resolve_getpid,
        gfc_resolve_getuid): Add prototypes.
        gfc_resolve_getuid): Add prototypes.
        * iresolve.c (gfc_resolve_getgid, gfc_resolve_getpid,
        * iresolve.c (gfc_resolve_getgid, gfc_resolve_getpid,
        gfc_resolve_getuid): New functions.
        gfc_resolve_getuid): New functions.
        * trans-intrinsic.c (gfc_conv_intrinsic_function): Handle
        * trans-intrinsic.c (gfc_conv_intrinsic_function): Handle
        GFC_ISYM_GET?ID.
        GFC_ISYM_GET?ID.
2004-08-28  Tobias Schlueter  
2004-08-28  Tobias Schlueter  
        * error.c (gfc_error_init_1): Remove blank line in front of
        * error.c (gfc_error_init_1): Remove blank line in front of
        function body. Add missing blank.
        function body. Add missing blank.
        (gfc_buffer_error, error_char, error_string): Remove blank line in
        (gfc_buffer_error, error_char, error_string): Remove blank line in
        front of function body.
        front of function body.
        (show_locus): Add comma in comment.
        (show_locus): Add comma in comment.
        (gfc_clear_warning, gfc_warning_check, gfc_clear_error,
        (gfc_clear_warning, gfc_warning_check, gfc_clear_error,
        gfc_push_error, gfc_pop_error): Remove blank line in front of
        gfc_push_error, gfc_pop_error): Remove blank line in front of
        function body.
        function body.
        (gfc_get_errors): Typo fix in comment in front of function. Remove
        (gfc_get_errors): Typo fix in comment in front of function. Remove
        blank line in front of function body.
        blank line in front of function body.
2004-08-27  Tobias Schlueter  
2004-08-27  Tobias Schlueter  
        * gfortran.h (gfc_default_*_kind): Remove prototypes, add extern
        * gfortran.h (gfc_default_*_kind): Remove prototypes, add extern
        variable declaration of same name.
        variable declaration of same name.
        * arith.c, check.c, decl.c, dump_parse_tree.c, expr.c,
        * arith.c, check.c, decl.c, dump_parse_tree.c, expr.c,
        intrinsic.c, io.c, iresolve.c, match.c, options.c, primary.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:
        resolve.c, simplify.c, symbol.c, trans-const.c, trans-io.c:
        Replace all calls to gfc_default_*_kind with variable accesses.
        Replace all calls to gfc_default_*_kind with variable accesses.
        * trans-types.c: Same as above.
        * trans-types.c: Same as above.
        (gfc_default_*_kind_1): Rename to gfc_default_*_kind, remove
        (gfc_default_*_kind_1): Rename to gfc_default_*_kind, remove
        static qualifier. Replace all occurences.
        static qualifier. Replace all occurences.
        (gfc_default_*_kind): Remove functions.
        (gfc_default_*_kind): Remove functions.
2004-08-26  Richard Henderson  
2004-08-26  Richard Henderson  
        * arith.c: Include system.h, not real system headers.
        * arith.c: Include system.h, not real system headers.
        (MPZ_NULL, MPF_NULL, DEF_GFC_INTEGER_KIND, DEF_GFC_LOGICAL_KIND,
        (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,
        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_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_QP_PREC, GFC_QP_EMIN, GFC_QP_EMAX): Remove.
        (gfc_integer_kinds, gfc_logical_kinds, gfc_real_kinds,
        (gfc_integer_kinds, gfc_logical_kinds, gfc_real_kinds,
        gfc_index_integer_kind, gfc_default_integer_kind,
        gfc_index_integer_kind, gfc_default_integer_kind,
        gfc_default_real_kind,gfc_default_double_kind,
        gfc_default_real_kind,gfc_default_double_kind,
        gfc_default_character_kind, gfc_default_logical_kind,
        gfc_default_character_kind, gfc_default_logical_kind,
        gfc_default_complex_kind, validate_integer, validate_real,
        gfc_default_complex_kind, validate_integer, validate_real,
        validate_logical, validate_character,
        validate_logical, validate_character,
        gfc_validate_kind): Move to trans-types.c.
        gfc_validate_kind): Move to trans-types.c.
        (gfc_set_model_kind): Use gfc_validate_kind.
        (gfc_set_model_kind): Use gfc_validate_kind.
        (gfc_set_model): Just copy the current precision to default.
        (gfc_set_model): Just copy the current precision to default.
        (gfc_arith_init_1): Use mpfr precision 128 for integer setup.
        (gfc_arith_init_1): Use mpfr precision 128 for integer setup.
        * f95-lang.c (gfc_init_decl_processing): Invoke gfc_init_kinds.
        * f95-lang.c (gfc_init_decl_processing): Invoke gfc_init_kinds.
        * gfortran.h: Update file commentary.
        * gfortran.h: Update file commentary.
        * trans-types.c (MAX_INT_KINDS, MAX_REAL_KINDS): New.
        * trans-types.c (MAX_INT_KINDS, MAX_REAL_KINDS): New.
        (gfc_default_integer_kind_1, gfc_default_real_kind_1,
        (gfc_default_integer_kind_1, gfc_default_real_kind_1,
        gfc_default_double_kind_1, gfc_default_character_kind_1,
        gfc_default_double_kind_1, gfc_default_character_kind_1,
        gfc_default_logical_kind_1, gfc_default_complex_kind_1): New.
        gfc_default_logical_kind_1, gfc_default_complex_kind_1): New.
        (gfc_init_kinds): New.
        (gfc_init_kinds): New.
        (gfc_init_types): Don't set gfc_index_integer_kind here.
        (gfc_init_types): Don't set gfc_index_integer_kind here.
        * trans-types.h (gfc_init_kinds): Declare.
        * trans-types.h (gfc_init_kinds): Declare.
        * doc/invoke.texi: Clarify DOUBLE PRECISION behaviour wrt -r8.
        * doc/invoke.texi: Clarify DOUBLE PRECISION behaviour wrt -r8.
2004-08-26  Tobias Schlueter  
2004-08-26  Tobias Schlueter  
        * check.c (gfc_check_atan2): New function.
        * check.c (gfc_check_atan2): New function.
        * intrinsic.c (add_functions): Use gfc_check_atan2 for ATAN2
        * intrinsic.c (add_functions): Use gfc_check_atan2 for ATAN2
        * intrinsic.h (gfc_check_atan2): Add prototype.
        * intrinsic.h (gfc_check_atan2): Add prototype.
2004-08-25  Richard Henderson  
2004-08-25  Richard Henderson  
        * arith.c (gfc_validate_kind): Add may_fail argument; abort if
        * arith.c (gfc_validate_kind): Add may_fail argument; abort if
        false and we don't validate the kind.
        false and we don't validate the kind.
        (gfc_check_integer_range, gfc_check_real_range): Update to match.
        (gfc_check_integer_range, gfc_check_real_range): Update to match.
        * check.c (kind_check): Likewise.
        * check.c (kind_check): Likewise.
        * decl.c (gfc_match_old_kind_spec, gfc_match_kind_spec): Likewise.
        * decl.c (gfc_match_old_kind_spec, gfc_match_kind_spec): Likewise.
        (match_char_spec, match_logical_spec): Likewise.
        (match_char_spec, match_logical_spec): Likewise.
        * gfortran.h (gfc_validate_kind): Likewise.
        * gfortran.h (gfc_validate_kind): Likewise.
        * options.c (gfc_handle_option): Likewise.
        * options.c (gfc_handle_option): Likewise.
        * primary.c (match_integer_constant, match_real_constant,
        * primary.c (match_integer_constant, match_real_constant,
        match_string_constant, match_logical_constant,
        match_string_constant, match_logical_constant,
        match_const_complex_part): Likewise.
        match_const_complex_part): Likewise.
        * simplify.c (get_kind, gfc_simplify_bit_size, gfc_simplify_digits,
        * simplify.c (get_kind, gfc_simplify_bit_size, gfc_simplify_digits,
        gfc_simplify_epsilon, gfc_simplify_huge, gfc_simplify_ibclr,
        gfc_simplify_epsilon, gfc_simplify_huge, gfc_simplify_ibclr,
        gfc_simplify_ibset, gfc_simplify_ishft, gfc_simplify_ishftc,
        gfc_simplify_ibset, gfc_simplify_ishft, gfc_simplify_ishftc,
        gfc_simplify_maxexponent, gfc_simplify_minexponent,
        gfc_simplify_maxexponent, gfc_simplify_minexponent,
        gfc_simplify_nearest, gfc_simplify_not, gfc_simplify_precision,
        gfc_simplify_nearest, gfc_simplify_not, gfc_simplify_precision,
        gfc_simplify_radix, gfc_simplify_range, gfc_simplify_rrspacing,
        gfc_simplify_radix, gfc_simplify_range, gfc_simplify_rrspacing,
        gfc_simplify_scale, gfc_simplify_spacing, gfc_simplify_tan,
        gfc_simplify_scale, gfc_simplify_spacing, gfc_simplify_tan,
        gfc_simplify_tiny): Likewise.
        gfc_simplify_tiny): Likewise.
        * trans-intrinsic.c (gfc_conv_intrinsic_aint, gfc_conv_intrinsic_mod,
        * trans-intrinsic.c (gfc_conv_intrinsic_aint, gfc_conv_intrinsic_mod,
        gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval,
        gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval,
        prepare_arg_info): Likewise.
        prepare_arg_info): Likewise.
2004-08-25  Tobias Schlueter  
2004-08-25  Tobias Schlueter  
        * expr.c (gfc_check_assign): Add comment. Add new warning.
        * expr.c (gfc_check_assign): Add comment. Add new warning.
        * trans-expr.c (gfc_conv_function_call): Correctly dereference
        * trans-expr.c (gfc_conv_function_call): Correctly dereference
        result of pointer valued function when not in pointer assignment.
        result of pointer valued function when not in pointer assignment.
2004-08-25  Paul Brook  
2004-08-25  Paul Brook  
        * config-lang.in: Remove dead commented line.
        * config-lang.in: Remove dead commented line.
        * module.c: Replace g95 with gfortran in comment.
        * module.c: Replace g95 with gfortran in comment.
2004-08-25  Paul Brook  
2004-08-25  Paul Brook  
        PR fortran/17190
        PR fortran/17190
        * arith.c (gfc_mpfr_to_mpz): Workaround mpfr bug.
        * arith.c (gfc_mpfr_to_mpz): Workaround mpfr bug.
2004-08-25  Paul Brook  
2004-08-25  Paul Brook  
        PR fortran/17144
        PR fortran/17144
        * trans-array.c (gfc_trans_allocate_temp_array): Remove
        * trans-array.c (gfc_trans_allocate_temp_array): Remove
        string_length argument.
        string_length argument.
        (gfc_trans_array_ctor_element): New function.
        (gfc_trans_array_ctor_element): New function.
        (gfc_trans_array_constructor_subarray): Use it.
        (gfc_trans_array_constructor_subarray): Use it.
        (gfc_trans_array_constructor_value): Ditto.  Handle constant
        (gfc_trans_array_constructor_value): Ditto.  Handle constant
        character arrays.
        character arrays.
        (get_array_ctor_var_strlen, get_array_ctor_strlen): New functions.
        (get_array_ctor_var_strlen, get_array_ctor_strlen): New functions.
        (gfc_trans_array_constructor): Use them.
        (gfc_trans_array_constructor): Use them.
        (gfc_add_loop_ss_code): Update to new gfc_ss layout.
        (gfc_add_loop_ss_code): Update to new gfc_ss layout.
        (gfc_conv_ss_descriptor): Remember section string length.
        (gfc_conv_ss_descriptor): Remember section string length.
        (gfc_conv_scalarized_array_ref): Ditto.  Remove dead code.
        (gfc_conv_scalarized_array_ref): Ditto.  Remove dead code.
        (gfc_conv_resolve_dependencies): Update to new gfc_ss layout.
        (gfc_conv_resolve_dependencies): Update to new gfc_ss layout.
        (gfc_conv_expr_descriptor): Ditto.
        (gfc_conv_expr_descriptor): Ditto.
        (gfc_conv_loop_setup): Ditto.  Spelling fixes.
        (gfc_conv_loop_setup): Ditto.  Spelling fixes.
        * trans-array.h (gfc_trans_allocate_temp_array): Update prototype.
        * trans-array.h (gfc_trans_allocate_temp_array): Update prototype.
        * trans-const.c (gfc_conv_constant):  Update to new gfc_ss layout.
        * trans-const.c (gfc_conv_constant):  Update to new gfc_ss layout.
        * trans-expr.c (gfc_conv_component_ref): Turn error into ICE.
        * trans-expr.c (gfc_conv_component_ref): Turn error into ICE.
        (gfc_conv_variable): Set string_length from section.
        (gfc_conv_variable): Set string_length from section.
        (gfc_conv_function_call): Remove extra argument.
        (gfc_conv_function_call): Remove extra argument.
        (gfc_conv_expr, gfc_conv_expr_reference): Update to new gfc_ss layout.
        (gfc_conv_expr, gfc_conv_expr_reference): Update to new gfc_ss layout.
        * trans-types.c (gfc_get_character_type_len): New function.
        * trans-types.c (gfc_get_character_type_len): New function.
        (gfc_get_character_type): Use it.
        (gfc_get_character_type): Use it.
        (gfc_get_dtype): Return zero for internal types.
        (gfc_get_dtype): Return zero for internal types.
        * trans-types.h (gfc_get_character_type_len): Add prototype.
        * trans-types.h (gfc_get_character_type_len): Add prototype.
        * trans.h (struct gfc_ss): Move string_length out of union.
        * trans.h (struct gfc_ss): Move string_length out of union.
2004-08-25  Tobias Schlueter  
2004-08-25  Tobias Schlueter  
        * trans.h (build2_v, build3_v): New macros.
        * trans.h (build2_v, build3_v): New macros.
        (build_v): Remove.
        (build_v): Remove.
        * f95-lang.c (gfc_truthvalue_conversion): Use build2 instead of
        * f95-lang.c (gfc_truthvalue_conversion): Use build2 instead of
        build.
        build.
        * trans-array.c (gfc_conv_descriptor_data,
        * trans-array.c (gfc_conv_descriptor_data,
        gfc_conv_descriptor_offset, gfc_conv_descriptor_dimension,
        gfc_conv_descriptor_offset, gfc_conv_descriptor_dimension,
        gfc_conv_descriptor_stride, gfc_conv_descriptor_lbound,
        gfc_conv_descriptor_stride, gfc_conv_descriptor_lbound,
        gfc_conv_descriptor_ubound, gfc_trans_allocate_array_storage,
        gfc_conv_descriptor_ubound, gfc_trans_allocate_array_storage,
        gfc_trans_allocate_temp_array,
        gfc_trans_allocate_temp_array,
        gfc_trans_array_constructor_subarray,
        gfc_trans_array_constructor_subarray,
        gfc_trans_array_constructor_value, gfc_conv_array_index_ref,
        gfc_trans_array_constructor_value, gfc_conv_array_index_ref,
        gfc_trans_array_bound_check, gfc_conv_array_index_offset,
        gfc_trans_array_bound_check, gfc_conv_array_index_offset,
        gfc_conv_scalarized_array_ref, gfc_conv_array_ref,
        gfc_conv_scalarized_array_ref, gfc_conv_array_ref,
        gfc_conv_array_ref, gfc_trans_preloop_setup,
        gfc_conv_array_ref, gfc_trans_preloop_setup,
        gfc_trans_scalarized_loop_end, gfc_conv_ss_startstride,
        gfc_trans_scalarized_loop_end, gfc_conv_ss_startstride,
        gfc_conv_loop_setup, gfc_array_init_size,
        gfc_conv_loop_setup, gfc_array_init_size,
        gfc_conv_array_initializer, gfc_trans_array_bounds,
        gfc_conv_array_initializer, gfc_trans_array_bounds,
        gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
        gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
        gfc_conv_expr_descriptor, gfc_conv_array_parameter,
        gfc_conv_expr_descriptor, gfc_conv_array_parameter,
        gfc_trans_deferred_array): Use buildN and buildN_v macros instead
        gfc_trans_deferred_array): Use buildN and buildN_v macros instead
        of build and build_v as appropriate.
        of build and build_v as appropriate.
        * trans-common.c (create_common): Same.
        * trans-common.c (create_common): Same.
        * trans-decl.c (gfc_trans_auto_character_variable,
        * trans-decl.c (gfc_trans_auto_character_variable,
        gfc_trans_entry_master_switch, gfc_generate_function_code): Same.
        gfc_trans_entry_master_switch, gfc_generate_function_code): Same.
        * trans-expr.c (gfc_conv_expr_present, gfc_conv_substring,
        * trans-expr.c (gfc_conv_expr_present, gfc_conv_substring,
        gfc_conv_component_ref, gfc_conv_unary_op, gfc_conv_powi,
        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_cst_int_power, gfc_conv_string_tmp, gfc_conv_concat_op,
        gfc_conv_expr_op, gfc_conv_function_call,
        gfc_conv_expr_op, gfc_conv_function_call,
        gfc_trans_structure_assign): Same.
        gfc_trans_structure_assign): Same.
        * trans-intrinsic.c (build_fixbound_expr, build_round_expr,
        * trans-intrinsic.c (build_fixbound_expr, build_round_expr,
        gfc_conv_intrinsic_aint, gfc_conv_intrinsic_bound,
        gfc_conv_intrinsic_aint, gfc_conv_intrinsic_bound,
        gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod,
        gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod,
        gfc_conv_intrinsic_dim, gfc_conv_intrinsic_sign,
        gfc_conv_intrinsic_dim, gfc_conv_intrinsic_sign,
        gfc_conv_intrinsic_dprod, gfc_conv_intrinsic_minmax,
        gfc_conv_intrinsic_dprod, gfc_conv_intrinsic_minmax,
        gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count,
        gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count,
        gfc_conv_intrinsic_arith, gfc_conv_intrinsic_minmaxloc,
        gfc_conv_intrinsic_arith, gfc_conv_intrinsic_minmaxloc,
        gfc_conv_intrinsic_minmaxval, gfc_conv_intrinsic_btest,
        gfc_conv_intrinsic_minmaxval, gfc_conv_intrinsic_btest,
        gfc_conv_intrinsic_bitop, gfc_conv_intrinsic_singlebitop,
        gfc_conv_intrinsic_bitop, gfc_conv_intrinsic_singlebitop,
        gfc_conv_intrinsic_ibits, gfc_conv_intrinsic_ishft,
        gfc_conv_intrinsic_ibits, gfc_conv_intrinsic_ishft,
        gfc_conv_intrinsic_merge, gfc_conv_intrinsic_strcmp,
        gfc_conv_intrinsic_merge, gfc_conv_intrinsic_strcmp,
        gfc_conv_allocated, gfc_conv_associated, prepare_arg_info,
        gfc_conv_allocated, gfc_conv_associated, prepare_arg_info,
        gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_rrspacing,
        gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_rrspacing,
        gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat,
        gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat,
        gfc_conv_intrinsic_iargc): Same.
        gfc_conv_intrinsic_iargc): Same.
        * trans-io.c (set_parameter_value, set_parameter_ref, set_string,
        * trans-io.c (set_parameter_value, set_parameter_ref, set_string,
        set_flag, add_case, io_result, transfer_namelist_element,
        set_flag, add_case, io_result, transfer_namelist_element,
        transfer_expr): Same.
        transfer_expr): Same.
        * trans-stmt.c (gfc_trans_goto, gfc_trans_return, gfc_trans_if_1,
        * 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_arithmetic_if, gfc_trans_do, gfc_trans_do_while,
        gfc_trans_integer_select, gfc_trans_logical_select,
        gfc_trans_integer_select, gfc_trans_logical_select,
        gfc_trans_character_select, gfc_trans_forall_loop,
        gfc_trans_character_select, gfc_trans_forall_loop,
        gfc_trans_nested_forall_loop, gfc_do_allocate,
        gfc_trans_nested_forall_loop, gfc_do_allocate,
        generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp,
        generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp,
        compute_inner_temp_size, compute_overall_iter_number,
        compute_inner_temp_size, compute_overall_iter_number,
        allocate_temp_for_forall_nest, gfc_trans_pointer_assign_need_temp,
        allocate_temp_for_forall_nest, gfc_trans_pointer_assign_need_temp,
        gfc_trans_forall_1, gfc_evaluate_where_mask,
        gfc_trans_forall_1, gfc_evaluate_where_mask,
        gfc_trans_where_assign, gfc_trans_allocate): Same.
        gfc_trans_where_assign, gfc_trans_allocate): Same.
        * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Same.
        * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Same.
        * trans.c (gfc_add_modify_expr, gfc_finish_block,
        * trans.c (gfc_add_modify_expr, gfc_finish_block,
        gfc_build_array_ref, gfc_build_function_call,
        gfc_build_array_ref, gfc_build_function_call,
        gfc_trans_runtime_check): Same.
        gfc_trans_runtime_check): Same.
2004-08-25  Tobias Schlueter  
2004-08-25  Tobias Schlueter  
        * trans-const.c (gfc_conv_mpz_to_tree): Change call to
        * trans-const.c (gfc_conv_mpz_to_tree): Change call to
        build_int_cst to build_int_cst_wide in accordance to Nathan's
        build_int_cst to build_int_cst_wide in accordance to Nathan's
        previous patch.
        previous patch.
2004-08-25  Nathan Sidwell  
2004-08-25  Nathan Sidwell  
        * trans-array.c (gfc_trans_array_constructor_value): Adjust
        * trans-array.c (gfc_trans_array_constructor_value): Adjust
        build_int_cst calls.
        build_int_cst calls.
        * trans-const.c (gfc_build_string_const, gfc_init_constants,
        * trans-const.c (gfc_build_string_const, gfc_init_constants,
        gfc_conv_mpz_to_tree, gfc_conv_constant_to_tree): Likewise.
        gfc_conv_mpz_to_tree, gfc_conv_constant_to_tree): Likewise.
        * trans-decl.c (gfc_get_symbol_decl, build_entry_thunks,
        * trans-decl.c (gfc_get_symbol_decl, build_entry_thunks,
        gfc_trans_entry_master_switch): Likewise.
        gfc_trans_entry_master_switch): Likewise.
        * trans-intrinsic.c (gfc_conv_intrinsic_ibits,
        * trans-intrinsic.c (gfc_conv_intrinsic_ibits,
        gfc_conv_intrinsic_len, prepare_arg_info): Likewise.
        gfc_conv_intrinsic_len, prepare_arg_info): Likewise.
        * trans-io.c (add_case, set_error_locus,
        * trans-io.c (add_case, set_error_locus,
        transfer_namelist_element, transfer_expr): Likewise.
        transfer_namelist_element, transfer_expr): Likewise.
        * trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause,
        * trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause,
        gfc_trans_stop, gfc_trans_character_select): Likewise.
        gfc_trans_stop, gfc_trans_character_select): Likewise.
        * trans-types.c (gfc_init_types, gfc_get_dtype): Likewise.
        * trans-types.c (gfc_init_types, gfc_get_dtype): Likewise.
        * trans.c (gfc_trans_runtime_check): Likewise.
        * trans.c (gfc_trans_runtime_check): Likewise.
2004-08-24  Tobias Schlueter  
2004-08-24  Tobias Schlueter  
        * trans-decl.c, trans-types.c: Add and remove blank lines as
        * trans-decl.c, trans-types.c: Add and remove blank lines as
        required.
        required.
2004-08-24  Richard Henderson  
2004-08-24  Richard Henderson  
        * trans-const.c (gfc_conv_mpz_to_tree): Fix 64-bit shift warning.
        * trans-const.c (gfc_conv_mpz_to_tree): Fix 64-bit shift warning.
2004-08-24  Tobias Schlueter  
2004-08-24  Tobias Schlueter  
        * resolve.c (merge_argument_lists): Revert unintentionally
        * resolve.c (merge_argument_lists): Revert unintentionally
        committed change.
        committed change.
2004-08-24  Tobias Schlueter  
2004-08-24  Tobias Schlueter  
        * trans-decl.c (build_function_decl): Fix spelling in comment.
        * trans-decl.c (build_function_decl): Fix spelling in comment.
        (build_entry_thunks): Remove code with no function.
        (build_entry_thunks): Remove code with no function.
        (gfc_build_intrinsic_function_decls): Remove empty line.
        (gfc_build_intrinsic_function_decls): Remove empty line.
        * resolve.c (resolve_entries): Fix a bunch of comment typos.
        * resolve.c (resolve_entries): Fix a bunch of comment typos.
2004-08-24  Nathan Sidwell  
2004-08-24  Nathan Sidwell  
        * f95-lang.c (gfc_init_decl_processing): Adjust
        * f95-lang.c (gfc_init_decl_processing): Adjust
        build_common_tree_nodes call.
        build_common_tree_nodes call.
2004-08-24  Tobias Schlueter  
2004-08-24  Tobias Schlueter  
        * trans-types.c: Spelling and formatting fixes.
        * trans-types.c: Spelling and formatting fixes.
2004-08-23  Richard Henderson  
2004-08-23  Richard Henderson  
        * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_getlimbn instead
        * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_getlimbn instead
        of going through an intermediate string.  Fix 32/64 int/long bug.
        of going through an intermediate string.  Fix 32/64 int/long bug.
2004-08-23  Eric Christopher  
2004-08-23  Eric Christopher  
        * trans-types.c (gfc_type_for_mode): Remove VECTOR_TYPE_SUPPORTED_P
        * trans-types.c (gfc_type_for_mode): Remove VECTOR_TYPE_SUPPORTED_P
        usage. Use build_vector_type_for_mode for vector types.
        usage. Use build_vector_type_for_mode for vector types.
2004-08-22  Richard Henderson  
2004-08-22  Richard Henderson  
        PR 13465
        PR 13465
        * data.c (find_con_by_offset): Search ordered list; handle
        * data.c (find_con_by_offset): Search ordered list; handle
        elements with repeat counts.
        elements with repeat counts.
        (gfc_assign_data_value_range): New.
        (gfc_assign_data_value_range): New.
        * gfortran.h (struct gfc_data_value): Make repeat unsigned.
        * gfortran.h (struct gfc_data_value): Make repeat unsigned.
        (gfc_assign_data_value_range): Declare.
        (gfc_assign_data_value_range): Declare.
        * match.c (top_val_list): Extract repeat count into a temporary.
        * match.c (top_val_list): Extract repeat count into a temporary.
        * resolve.c (values): Make left unsigned.
        * resolve.c (values): Make left unsigned.
        (next_data_value): Don't decrement left.
        (next_data_value): Don't decrement left.
        (check_data_variable): Use gfc_assign_data_value_range.
        (check_data_variable): Use gfc_assign_data_value_range.
2004-08-22  Tobias Schlueter  
2004-08-22  Tobias Schlueter  
        * trans-const.c, trans-decl.c, trans-expr.c: Spelling fixes.
        * trans-const.c, trans-decl.c, trans-expr.c: Spelling fixes.
2004-08-22  Tobias Schlueter  
2004-08-22  Tobias Schlueter  
        * check.c (gfc_check_reduction): Rename to ...
        * check.c (gfc_check_reduction): Rename to ...
        (check_reduction): ... this. Make static. Don't check type of
        (check_reduction): ... this. Make static. Don't check type of
        first argument.
        first argument.
        (gfc_check_minval_maxval, gfc_check_prodcut_sum): New functions.
        (gfc_check_minval_maxval, gfc_check_prodcut_sum): New functions.
        * intrinsic.c (add_functions): Change MAXVAL, MINVAL, PRODUCT and
        * intrinsic.c (add_functions): Change MAXVAL, MINVAL, PRODUCT and
        SUM to use new check functions.
        SUM to use new check functions.
        (check_specific): Change logic to call new functions.
        (check_specific): Change logic to call new functions.
        * intrinsic.h (gfc_check_minval_maxval, gfc_check_product_sum):
        * intrinsic.h (gfc_check_minval_maxval, gfc_check_product_sum):
        Add prototypes.
        Add prototypes.
        (gfc_check_reduction): Remove prototype.
        (gfc_check_reduction): Remove prototype.
2004-08-20  Paul Brook  
2004-08-20  Paul Brook  
        Canqun Yang  
        Canqun Yang  
        PR fortran/17077
        PR fortran/17077
        * trans-array.c (gfc_conv_array_parameter): Pass correct pointer
        * trans-array.c (gfc_conv_array_parameter): Pass correct pointer
        for automatic arrays.
        for automatic arrays.
        * trans-types.c (gfc_get_nodesc_array_type): Add comment.
        * trans-types.c (gfc_get_nodesc_array_type): Add comment.
2004-08-19  Tobias Schlueter  
2004-08-19  Tobias Schlueter  
        (Port from g95)
        (Port from g95)
        PR fortran/17074
        PR fortran/17074
        * match.c (match_simple_forall, match_simple_where): Forward-declare.
        * match.c (match_simple_forall, match_simple_where): Forward-declare.
        (gfc_match_if): Order statement list alphabetically, add WHERE and
        (gfc_match_if): Order statement list alphabetically, add WHERE and
        FORALL, remove double PAUSE.
        FORALL, remove double PAUSE.
        (gfc_match_simple_where, match_forall_header,
        (gfc_match_simple_where, match_forall_header,
        gfc_match_simple_forall): New functions.
        gfc_match_simple_forall): New functions.
        (gfc_match_forall): Use match_forall_header.
        (gfc_match_forall): Use match_forall_header.
2004-08-19  Paul Brook  
2004-08-19  Paul Brook  
        PR fortran/17091
        PR fortran/17091
        * gfortran.h (gfc_access): Give ACCESS_UNKNOWN value 0.
        * gfortran.h (gfc_access): Give ACCESS_UNKNOWN value 0.
        * symbol.c (gfc_clear_attr): Use memset.
        * symbol.c (gfc_clear_attr): Use memset.
2004-08-19  Paul Brook  
2004-08-19  Paul Brook  
        PR fortran/14976
        PR fortran/14976
        PR fortran/16228
        PR fortran/16228
        * data.c (assign_substring_data_value): Remove.
        * data.c (assign_substring_data_value): Remove.
        (create_character_intializer): New function.
        (create_character_intializer): New function.
        (gfc_assign_data_value): Track the typespec for the current
        (gfc_assign_data_value): Track the typespec for the current
        subobject.  Use create_character_intializer.
        subobject.  Use create_character_intializer.
2004-08-19  Erik Schnetter  
2004-08-19  Erik Schnetter  
        PR fortran/16946
        PR fortran/16946
        * check.c (gfc_check_reduction): New function.
        * check.c (gfc_check_reduction): New function.
        (gfc_check_minval_maxval): Removed.
        (gfc_check_minval_maxval): Removed.
        (gfc_check_product): Removed.
        (gfc_check_product): Removed.
        (gfc_check_sum): Removed.
        (gfc_check_sum): Removed.
        * intrinsic.h: Add/remove declarations for these.
        * intrinsic.h: Add/remove declarations for these.
        * gfortran.h: Add field f3red to union gfc_check_f.
        * gfortran.h: Add field f3red to union gfc_check_f.
        * intrinsic.c (add_sym_3red): New function.
        * intrinsic.c (add_sym_3red): New function.
        (add_functions): Register maxval, minval, product, and sum intrinsics
        (add_functions): Register maxval, minval, product, and sum intrinsics
        through add_sym_3red.
        through add_sym_3red.
        (check_specific): Handle f3red union field.
        (check_specific): Handle f3red union field.
        * iresolve.c: Whitespace change.
        * iresolve.c: Whitespace change.
2004-08-18  Paul Brook  
2004-08-18  Paul Brook  
        * trans-types.c (gfc_sym_type): Use pointer types for optional args.
        * trans-types.c (gfc_sym_type): Use pointer types for optional args.
2004-08-18  Victor Leikehman  
2004-08-18  Victor Leikehman  
        PR fortran/13278
        PR fortran/13278
        * trans-io.c (transfer_namelist_element): New. Recursively handle
        * trans-io.c (transfer_namelist_element): New. Recursively handle
        derived-type variables.  Pass string lengths.
        derived-type variables.  Pass string lengths.
        (build_dt): Code moved to build_namelist, with some
        (build_dt): Code moved to build_namelist, with some
        changes and additions.
        changes and additions.
        (gfc_build_io_library_fndecls): Declare the fifth
        (gfc_build_io_library_fndecls): Declare the fifth
        argument in st_set_nml_var_char -- string_length.
        argument in st_set_nml_var_char -- string_length.
2004-08-17  Paul Brook  
2004-08-17  Paul Brook  
        Tobias Schlueter  
        Tobias Schlueter  
        PR fortran/13082
        PR fortran/13082
        * decl.c (get_proc_name): Update mystery comment.
        * decl.c (get_proc_name): Update mystery comment.
        (gfc_match_entry): Check for errors earlier.  Add entry point to list.
        (gfc_match_entry): Check for errors earlier.  Add entry point to list.
        * dump-parse-tree.c (gfc_show_code_node): Print EXEC_ENTRY nodes.
        * dump-parse-tree.c (gfc_show_code_node): Print EXEC_ENTRY nodes.
        * gfortran.h (symbol_attribute): Add entry_master.  Document entry.
        * gfortran.h (symbol_attribute): Add entry_master.  Document entry.
        (struct gfc_entry_list): Define.
        (struct gfc_entry_list): Define.
        (gfc_get_entry_list): Define.
        (gfc_get_entry_list): Define.
        (struct gfc_namespace): Add refs and entries.
        (struct gfc_namespace): Add refs and entries.
        (enum gfc_exec_op): Add EXEC_ENTRY.
        (enum gfc_exec_op): Add EXEC_ENTRY.
        (struct gfc_code): Add ext.entry.
        (struct gfc_code): Add ext.entry.
        * module.c (ab_attribute, attr_bits): Remove AB_ENTRY.
        * module.c (ab_attribute, attr_bits): Remove AB_ENTRY.
        (mio_symbol_attribute): Don't save/reture addr->entry.
        (mio_symbol_attribute): Don't save/reture addr->entry.
        (mio_namespace_ref): Refcount namespaces.
        (mio_namespace_ref): Refcount namespaces.
        * parse.c (accept_statement): Handle ST_ENTRY.
        * parse.c (accept_statement): Handle ST_ENTRY.
        (gfc_fixup_sibling_symbols): Mark symbol as referenced.
        (gfc_fixup_sibling_symbols): Mark symbol as referenced.
        (parse_contained): Fixup sibling references to entry points
        (parse_contained): Fixup sibling references to entry points
        after parsing the procedure body.
        after parsing the procedure body.
        * resolve.c (resolve_contained_fntype): New function.
        * resolve.c (resolve_contained_fntype): New function.
        (merge_argument_lists, resolve_entries): New functions.
        (merge_argument_lists, resolve_entries): New functions.
        (resolve_contained_functions): Use them.
        (resolve_contained_functions): Use them.
        (resolve_code): Handle EXEC_ENTRY.
        (resolve_code): Handle EXEC_ENTRY.
        (gfc_resolve): Call resolve_entries.
        (gfc_resolve): Call resolve_entries.
        * st.c (gfc_free_statement): Handle EXEC_ENTRY.
        * st.c (gfc_free_statement): Handle EXEC_ENTRY.
        * symbol.c (gfc_get_namespace): Refcount namespaces.
        * symbol.c (gfc_get_namespace): Refcount namespaces.
        (gfc_free_namespace): Ditto.
        (gfc_free_namespace): Ditto.
        * trans-array.c (gfc_trans_dummy_array_bias): Treat all args as
        * trans-array.c (gfc_trans_dummy_array_bias): Treat all args as
        optional when multiple entry points are present.
        optional when multiple entry points are present.
        * trans-decl.c (gfc_get_symbol_decl): Remove incorrect check.
        * trans-decl.c (gfc_get_symbol_decl): Remove incorrect check.
        (gfc_get_extern_function_decl): Add assertion.  Fix coment.
        (gfc_get_extern_function_decl): Add assertion.  Fix coment.
        (create_function_arglist, trans_function_start, build_entry_thunks):
        (create_function_arglist, trans_function_start, build_entry_thunks):
        New functions.
        New functions.
        (gfc_build_function_decl): Rename ...
        (gfc_build_function_decl): Rename ...
        (build_function_decl): ... to this.
        (build_function_decl): ... to this.
        (gfc_create_function_decl): New function.
        (gfc_create_function_decl): New function.
        (gfc_generate_contained_functions): Use it.
        (gfc_generate_contained_functions): Use it.
        (gfc_trans_entry_master_switch): New function.
        (gfc_trans_entry_master_switch): New function.
        (gfc_generate_function_code): Use new functions.
        (gfc_generate_function_code): Use new functions.
        * trans-stmt.c (gfc_trans_entry): New function.
        * trans-stmt.c (gfc_trans_entry): New function.
        * trans-stmt.h (gfc_trans_entry): Add prototype.
        * trans-stmt.h (gfc_trans_entry): Add prototype.
        * trans-types.c (gfc_get_function_type): Add entry point argument.
        * trans-types.c (gfc_get_function_type): Add entry point argument.
        * trans.c (gfc_trans_code): Handle EXEC_ENTRY.
        * trans.c (gfc_trans_code): Handle EXEC_ENTRY.
        (gfc_generate_module_code): Call gfc_create_function_decl.
        (gfc_generate_module_code): Call gfc_create_function_decl.
        * trans.h (gfc_build_function_decl): Remove.
        * trans.h (gfc_build_function_decl): Remove.
        (gfc_create_function_decl): Add prototype.
        (gfc_create_function_decl): Add prototype.
2004-08-15  Andrew Pinski  
2004-08-15  Andrew Pinski  
        PR fortran/17030
        PR fortran/17030
        * f95-lang.c (gfc_init_builtin_functions): Initialize the builtins
        * f95-lang.c (gfc_init_builtin_functions): Initialize the builtins
        for cabs{,f} and copysign{,f}.
        for cabs{,f} and copysign{,f}.
        * trans-decl.c (gfor_fndecl_math_cabsf): Delete.
        * trans-decl.c (gfor_fndecl_math_cabsf): Delete.
        (gfor_fndecl_math_cabs): Delete.
        (gfor_fndecl_math_cabs): Delete.
        (gfor_fndecl_math_sign4): Delete.
        (gfor_fndecl_math_sign4): Delete.
        (gfor_fndecl_math_sign8): Delete.
        (gfor_fndecl_math_sign8): Delete.
        (gfc_build_intrinsic_function_decls): Remove the
        (gfc_build_intrinsic_function_decls): Remove the
        initializing of cabs{,f} and copysign{,f} functions.
        initializing of cabs{,f} and copysign{,f} functions.
        * trans-intrinsic.c (gfc_conv_intrinsic_abs): Use the builtins
        * trans-intrinsic.c (gfc_conv_intrinsic_abs): Use the builtins
        instead of the functions definitions.
        instead of the functions definitions.
        (gfc_conv_intrinsic_sign): Likewise.
        (gfc_conv_intrinsic_sign): Likewise.
        * trans.h (gfor_fndecl_math_cabsf): Delete.
        * trans.h (gfor_fndecl_math_cabsf): Delete.
        (gfor_fndecl_math_cabs): Delete.
        (gfor_fndecl_math_cabs): Delete.
        (gfor_fndecl_math_sign4): Delete.
        (gfor_fndecl_math_sign4): Delete.
        (gfor_fndecl_math_sign8): Delete.
        (gfor_fndecl_math_sign8): Delete.
2004-08-15  Nathan Sidwell  
2004-08-15  Nathan Sidwell  
        * trans-array.c (gfc_trans_array_constructor_value): Use
        * trans-array.c (gfc_trans_array_constructor_value): Use
        build_int_cst.
        build_int_cst.
        * trans-const.c (gfc_build_string_const,
        * trans-const.c (gfc_build_string_const,
        gfc_init_constants, gfc_conv_mpz_to_tree,
        gfc_init_constants, gfc_conv_mpz_to_tree,
        gfc_conv_constant_to_tree): Likewise.
        gfc_conv_constant_to_tree): Likewise.
        * trans-decl.c (gfc_get_symbol_decl): Likewise.
        * trans-decl.c (gfc_get_symbol_decl): Likewise.
        * trans-intrinsic.c (gfc_conv_intrinsic_ibits,
        * trans-intrinsic.c (gfc_conv_intrinsic_ibits,
        gfc_conv_intrinsic_len, prepare_arg_info): Likewise.
        gfc_conv_intrinsic_len, prepare_arg_info): Likewise.
        * trans-io.c (add_case, set_error_locus, build_dt,
        * trans-io.c (add_case, set_error_locus, build_dt,
        transfer_expr): Likewise.
        transfer_expr): Likewise.
        * trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause,
        * trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause,
        gfc_trans_stop, gfc_trans_character_select): Likewise.
        gfc_trans_stop, gfc_trans_character_select): Likewise.
        * trans-types.c (gfc_init_types, gfc_get_dtype): Likewise.
        * trans-types.c (gfc_init_types, gfc_get_dtype): Likewise.
        * trans.c (gfc_trans_runtime_check): Likewise.
        * trans.c (gfc_trans_runtime_check): Likewise.
2004-08-14  Paul Brook  
2004-08-14  Paul Brook  
        * trans-decl.c (gfc_build_function_decl): Remove dead code.
        * trans-decl.c (gfc_build_function_decl): Remove dead code.
2004-08-14  Paul Brook  
2004-08-14  Paul Brook  
        * trans-arry.c (gfc_trans_auto_array_allocation): Remove unused var.
        * trans-arry.c (gfc_trans_auto_array_allocation): Remove unused var.
2004-08-13  Tobias Schlueter  
2004-08-13  Tobias Schlueter  
        * gfortran.h: Add comments.
        * gfortran.h: Add comments.
        * parse.c (parse_contained): Fix comment typo.
        * parse.c (parse_contained): Fix comment typo.
        * resolve.c (was_declared): Ditto.
        * resolve.c (was_declared): Ditto.
        * symbol.c: Ditto.
        * symbol.c: Ditto.
2004-08-11  Paul Brook  
2004-08-11  Paul Brook  
        PR fortran/16917
        PR fortran/16917
        * intrinsic.c (add_functions): Add dfloat as an alias for dble.
        * intrinsic.c (add_functions): Add dfloat as an alias for dble.
2004-08-10  Richard Henderson  
2004-08-10  Richard Henderson  
        * f95-lang.c (gfc_init_builtin_functions): Remove
        * f95-lang.c (gfc_init_builtin_functions): Remove
         __builtin_stack_alloc, add __builtin_alloca.
         __builtin_stack_alloc, add __builtin_alloca.
        * trans-array.c (gfc_trans_auto_array_allocation): Use DECL_EXPR.
        * trans-array.c (gfc_trans_auto_array_allocation): Use DECL_EXPR.
        * trans-decl.c (gfc_trans_auto_character_variable): Likewise.
        * trans-decl.c (gfc_trans_auto_character_variable): Likewise.
2004-08-10  Paul Brook  
2004-08-10  Paul Brook  
        * trans-io.c (transfer_expr): Handle pointters.
        * trans-io.c (transfer_expr): Handle pointters.
2004-08-10  Paul Brook  
2004-08-10  Paul Brook  
        PR fortran/16919
        PR fortran/16919
        * trans-array.c (gfc_add_loop_ss_code): Handle GFC_SS_COMPONENT.
        * trans-array.c (gfc_add_loop_ss_code): Handle GFC_SS_COMPONENT.
        (gfc_conv_array_index_offset): Allow "temporary" with nonzero delta.
        (gfc_conv_array_index_offset): Allow "temporary" with nonzero delta.
        (gfc_trans_preloop_setup, gfc_trans_scalarized_loop_boundary):
        (gfc_trans_preloop_setup, gfc_trans_scalarized_loop_boundary):
        Handle GFC_SS_COMPONENT.
        Handle GFC_SS_COMPONENT.
        (gfc_conv_ss_startstride): Ditto.  Set ss->shape.
        (gfc_conv_ss_startstride): Ditto.  Set ss->shape.
        (gfc_conv_loop_setup): Tweak commends. Remove dead code.
        (gfc_conv_loop_setup): Tweak commends. Remove dead code.
        Use ss->shape.
        Use ss->shape.
        (gfc_conv_array_initializer): Call specific initializer routines.
        (gfc_conv_array_initializer): Call specific initializer routines.
        * trans-expr.c (gfc_trans_structure_assign): New function.
        * trans-expr.c (gfc_trans_structure_assign): New function.
        (gfc_trans_subarray_assign): New function.
        (gfc_trans_subarray_assign): New function.
        (gfc_trans_subcomponent_assign): New fucntion
        (gfc_trans_subcomponent_assign): New fucntion
        (gfc_conv_structure): Use them.
        (gfc_conv_structure): Use them.
        * trans.h (gfc_ss_type): Add GFC_SS_COMPONENT.
        * trans.h (gfc_ss_type): Add GFC_SS_COMPONENT.
        (gfc_ss): Add shape.
        (gfc_ss): Add shape.
2004-08-08  Victor Leikehman  
2004-08-08  Victor Leikehman  
        * simplify.c (gfc_simplify_shape): Bugfix.
        * simplify.c (gfc_simplify_shape): Bugfix.
        * expr.c (gfc_copy_shape_excluding): New function.
        * expr.c (gfc_copy_shape_excluding): New function.
        * gfortran.h (gfc_get_shape): Bugfix.
        * gfortran.h (gfc_get_shape): Bugfix.
        (gfc_copy_shape_excluding): Added declaration.
        (gfc_copy_shape_excluding): Added declaration.
        * iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count,
        * iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count,
        gfc_resolve_cshift, gfc_resolve_eoshift, gfc_resolve_lbound,
        gfc_resolve_cshift, gfc_resolve_eoshift, gfc_resolve_lbound,
        gfc_resolve_ubound, gfc_resolve_transpose): Added compile
        gfc_resolve_ubound, gfc_resolve_transpose): Added compile
        time resolution of shape.
        time resolution of shape.
2004-08-06  Janne Blomqvist  
2004-08-06  Janne Blomqvist  
        * intrinsic.c (add_subroutines): Add getenv and
        * intrinsic.c (add_subroutines): Add getenv and
        get_environment_variable. (add_sym_5s): New function.
        get_environment_variable. (add_sym_5s): New function.
        * intrinsic.h (gfc_resolve_get_environment_variable): Add
        * intrinsic.h (gfc_resolve_get_environment_variable): Add
        prototype.
        prototype.
        * iresolve.c (gfc_resolve_get_environment_variable): New
        * iresolve.c (gfc_resolve_get_environment_variable): New
        function.
        function.
2004-08-06  Feng Wang  
2004-08-06  Feng Wang  
        * f95-lang.c (gfc_init_builtin_functions): Fix the number of
        * f95-lang.c (gfc_init_builtin_functions): Fix the number of
        __builtin_pow[f] arguments.
        __builtin_pow[f] arguments.
2004-08-06  Steven G. Kargl  
2004-08-06  Steven G. Kargl  
        * arith.c: Add #define for model numbers.  Remove global GMP variables.
        * arith.c: Add #define for model numbers.  Remove global GMP variables.
        (natural_logarithm,common_logarithm,exponential,sine,
        (natural_logarithm,common_logarithm,exponential,sine,
        cosine,arctangent,hypercos,hypersine ): Remove.
        cosine,arctangent,hypercos,hypersine ): Remove.
        (gfc_mpfr_to_mpz,gfc_set_model_kind,gfc_set_model): New functions.
        (gfc_mpfr_to_mpz,gfc_set_model_kind,gfc_set_model): New functions.
        (arctangent2,gfc_arith_init_1,gfc_arith_done_1
        (arctangent2,gfc_arith_init_1,gfc_arith_done_1
        gfc_check_real_range, gfc_constant_result, gfc_range_check,
        gfc_check_real_range, gfc_constant_result, gfc_range_check,
        gfc_arith_uminus,gfc_arith_plus, gfc_arith_minus, gfc_arith_times,
        gfc_arith_uminus,gfc_arith_plus, gfc_arith_minus, gfc_arith_times,
        gfc_arith_divide,complex_reciprocal,complex_pow_ui,
        gfc_arith_divide,complex_reciprocal,complex_pow_ui,
        gfc_arith_power,gfc_compare_expr,compare_complex,gfc_convert_real,
        gfc_arith_power,gfc_compare_expr,compare_complex,gfc_convert_real,
        gfc_convert_complex,gfc_int2real,gfc_int2complex,
        gfc_convert_complex,gfc_int2real,gfc_int2complex,
        gfc_real2int,gfc_real2real,gfc_real2complex,
        gfc_real2int,gfc_real2real,gfc_real2complex,
        gfc_complex2int,gfc_complex2real,gfc_complex2complex): Convert GMP
        gfc_complex2int,gfc_complex2real,gfc_complex2complex): Convert GMP
        to MPFR, use new functions.
        to MPFR, use new functions.
        * arith.h: Remove extern global variables.
        * arith.h: Remove extern global variables.
        (natural_logarithm,common_logarithm,exponential, sine, cosine,
        (natural_logarithm,common_logarithm,exponential, sine, cosine,
        arctangent,hypercos,hypersine): Remove prototypes.
        arctangent,hypercos,hypersine): Remove prototypes.
        (arctangent2): Update prototype from GMP to MPFR.
        (arctangent2): Update prototype from GMP to MPFR.
        (gfc_mpfr_to_mpz, gfc_set_model_kind,gfc_set_model): Add prototypes.
        (gfc_mpfr_to_mpz, gfc_set_model_kind,gfc_set_model): Add prototypes.
        * dump-parse-tree.c (gfc_show_expr): Convert GMP to MPFR.
        * dump-parse-tree.c (gfc_show_expr): Convert GMP to MPFR.
        * expr.c (free_expr0,gfc_copy_expr): Convert GMP to MPFR.
        * expr.c (free_expr0,gfc_copy_expr): Convert GMP to MPFR.
        * gfortran.h (GFC_REAL_BITS): Remove.
        * gfortran.h (GFC_REAL_BITS): Remove.
        (arith): Add ARITH_NAN.
        (arith): Add ARITH_NAN.
        Include mpfr.h.  Define GFC_RND_MODE.
        Include mpfr.h.  Define GFC_RND_MODE.
        Rename GCC_GFORTRAN_H GFC_GFC_H.
        Rename GCC_GFORTRAN_H GFC_GFC_H.
        (gfc_expr): Convert GMP to MPFR.
        (gfc_expr): Convert GMP to MPFR.
        * module.c: Add arith.h, correct type in comment.
        * module.c: Add arith.h, correct type in comment.
        (mio_gmp_real): Convert GMP to MPFR.
        (mio_gmp_real): Convert GMP to MPFR.
        (mio_expr):  Use gfc_set_model_kind().
        (mio_expr):  Use gfc_set_model_kind().
        * primary.c:  Update copyright date with 2004.
        * primary.c:  Update copyright date with 2004.
        (match_real_constant,match_const_complex_part): Convert GMP to MPFR.
        (match_real_constant,match_const_complex_part): Convert GMP to MPFR.
        * simplify.c: Remove global GMP variables
        * simplify.c: Remove global GMP variables
        (gfc_simplify_abs,gfc_simplify_acos,gfc_simplify_aimag,
        (gfc_simplify_abs,gfc_simplify_acos,gfc_simplify_aimag,
        gfc_simplify_aint,gfc_simplify_dint,gfc_simplify_anint,
        gfc_simplify_aint,gfc_simplify_dint,gfc_simplify_anint,
        gfc_simplify_dnint,gfc_simplify_asin,gfc_simplify_atan,
        gfc_simplify_dnint,gfc_simplify_asin,gfc_simplify_atan,
        gfc_simplify_atan2,gfc_simplify_ceiling,simplify_cmplx,
        gfc_simplify_atan2,gfc_simplify_ceiling,simplify_cmplx,
        gfc_simplify_conjg,gfc_simplify_cos,gfc_simplify_cosh,
        gfc_simplify_conjg,gfc_simplify_cos,gfc_simplify_cosh,
        gfc_simplify_dim,gfc_simplify_dprod,gfc_simplify_epsilon,
        gfc_simplify_dim,gfc_simplify_dprod,gfc_simplify_epsilon,
        gfc_simplify_exp,gfc_simplify_exponent,gfc_simplify_floor,
        gfc_simplify_exp,gfc_simplify_exponent,gfc_simplify_floor,
        gfc_simplify_fraction,gfc_simplify_huge,gfc_simplify_int,
        gfc_simplify_fraction,gfc_simplify_huge,gfc_simplify_int,
        gfc_simplify_ifix,gfc_simplify_idint,gfc_simplify_log,
        gfc_simplify_ifix,gfc_simplify_idint,gfc_simplify_log,
        gfc_simplify_log10,simplify_min_max,gfc_simplify_mod,
        gfc_simplify_log10,simplify_min_max,gfc_simplify_mod,
        gfc_simplify_modulo,gfc_simplify_nearest,simplify_nint,
        gfc_simplify_modulo,gfc_simplify_nearest,simplify_nint,
        gfc_simplify_rrspacing,gfc_simplify_scale,
        gfc_simplify_rrspacing,gfc_simplify_scale,
        gfc_simplify_set_exponent,gfc_simplify_sign,gfc_simplify_sin,
        gfc_simplify_set_exponent,gfc_simplify_sign,gfc_simplify_sin,
        gfc_simplify_sinh,gfc_simplify_spacing,gfc_simplify_sqrt,
        gfc_simplify_sinh,gfc_simplify_spacing,gfc_simplify_sqrt,
        gfc_simplify_tan,gfc_simplify_tanh,gfc_simplify_tiny,
        gfc_simplify_tan,gfc_simplify_tanh,gfc_simplify_tiny,
        gfc_simplify_init_1,gfc_simplify_done_1):  Convert GMP to MPFR.
        gfc_simplify_init_1,gfc_simplify_done_1):  Convert GMP to MPFR.
        Use new functions.
        Use new functions.
        * trans-const.c (gfc_conv_mpfr_to_tree): Rename from
        * trans-const.c (gfc_conv_mpfr_to_tree): Rename from
        gfc_conv_mpf_to_tree.  Convert it to use MPFR
        gfc_conv_mpf_to_tree.  Convert it to use MPFR
        (gfc_conv_constant_to_tree): Use it.
        (gfc_conv_constant_to_tree): Use it.
        * trans-const.h: Update prototype for gfc_conv_mpfr_to_tree().
        * trans-const.h: Update prototype for gfc_conv_mpfr_to_tree().
        * trans-intrinsic.c: Add arith.h, remove gmp.h
        * trans-intrinsic.c: Add arith.h, remove gmp.h
        (gfc_conv_intrinsic_aint,gfc_conv_intrinsic_mod): Convert GMP to MPFR.
        (gfc_conv_intrinsic_aint,gfc_conv_intrinsic_mod): Convert GMP to MPFR.
2004-08-06  Victor Leikehman  
2004-08-06  Victor Leikehman  
        Paul Brook  
        Paul Brook  
        * trans-array.c (gfc_trans_allocate_array_storage,
        * trans-array.c (gfc_trans_allocate_array_storage,
        gfc_trans_allocate_temp_array, gfc_add_loop_ss_code,
        gfc_trans_allocate_temp_array, gfc_add_loop_ss_code,
        gfc_conv_loop_setup): For functions, if the shape of the result
        gfc_conv_loop_setup): For functions, if the shape of the result
        is not known in compile-time, generate an empty array descriptor for
        is not known in compile-time, generate an empty array descriptor for
        the result and let the callee to allocate the memory.
        the result and let the callee to allocate the memory.
        (gfc_trans_dummy_array_bias): Do nothing for pointers.
        (gfc_trans_dummy_array_bias): Do nothing for pointers.
        (gfc_conv_expr_descriptor): Use function return values directly.
        (gfc_conv_expr_descriptor): Use function return values directly.
        * trans-expr.c (gfc_conv_function_call): Always add byref call
        * trans-expr.c (gfc_conv_function_call): Always add byref call
        insn to pre chain.
        insn to pre chain.
        (gfc_trans_pointer_assignment): Add comments.
        (gfc_trans_pointer_assignment): Add comments.
        (gfc_trans_arrayfunc_assign): Don't chain on expression.
        (gfc_trans_arrayfunc_assign): Don't chain on expression.
2004-08-01  Roger Sayle  
2004-08-01  Roger Sayle  
        * options.c (gfc_init_options): Don't warn about the use GNU
        * options.c (gfc_init_options): Don't warn about the use GNU
        extensions by default.
        extensions by default.
        (gfc_post_options): Warn about GNU extensions with -pedantic.
        (gfc_post_options): Warn about GNU extensions with -pedantic.
        (gfc_handle_option): Don't warn about GNU extensions with -std=gnu.
        (gfc_handle_option): Don't warn about GNU extensions with -std=gnu.
2004-07-30  Richard Henderson  
2004-07-30  Richard Henderson  
        * trans-expr.c (gfc_conv_expr_reference): Create a CONST_DECL
        * trans-expr.c (gfc_conv_expr_reference): Create a CONST_DECL
        for TREE_CONSTANTs.
        for TREE_CONSTANTs.
2004-07-25  Richard Henderson  
2004-07-25  Richard Henderson  
        * trans-decl.c (gfc_build_function_decl): Set DECL_ARTIFICIAL
        * trans-decl.c (gfc_build_function_decl): Set DECL_ARTIFICIAL
        and DECL_IGNORED_P on RESULT_DECL.
        and DECL_IGNORED_P on RESULT_DECL.
        (gfc_generate_constructors): Likewise.
        (gfc_generate_constructors): Likewise.
2004-07-18  Tobias Schlueter  
2004-07-18  Tobias Schlueter  
        PR fortran/16465
        PR fortran/16465
        * lang.opt (ffixed-line-length-none, ffixed-line-length-): New
        * lang.opt (ffixed-line-length-none, ffixed-line-length-): New
        options.
        options.
        (ffixed-line-length-80, ffixed-line-length-132): Remove.
        (ffixed-line-length-80, ffixed-line-length-132): Remove.
        * options.c (gfc_handle_options): Deal with changed options.
        * options.c (gfc_handle_options): Deal with changed options.
        * scanner.c (load_line): Change second arg to 'char **',
        * scanner.c (load_line): Change second arg to 'char **',
        allocate if pointing to NULL. Keep track of buffer's length.
        allocate if pointing to NULL. Keep track of buffer's length.
        Adapt buffer size to overlong lines. Pad lines to full length
        Adapt buffer size to overlong lines. Pad lines to full length
        in fixed form.
        in fixed form.
        (load_file): Adapt to new interface of load_line.
        (load_file): Adapt to new interface of load_line.
2004-07-17  Joseph S. Myers  
2004-07-17  Joseph S. Myers  
        * trans.h (builtin_function): Declare.
        * trans.h (builtin_function): Declare.
2004-07-16  Tobias Schlueter  
2004-07-16  Tobias Schlueter  
        PR fortran/16404
        PR fortran/16404
        (parts ported from g95)
        (parts ported from g95)
        * parse.h (gfc_state_data): New field do_variable.
        * parse.h (gfc_state_data): New field do_variable.
        (gfc_check_do_variable): Add prototype.
        (gfc_check_do_variable): Add prototype.
        * parse.c (push_state): Initialize field 'do_variable'.
        * parse.c (push_state): Initialize field 'do_variable'.
        (gfc_check_do_variable): New function.
        (gfc_check_do_variable): New function.
        (parse_do_block): Remember do iterator variable.
        (parse_do_block): Remember do iterator variable.
        (parse_file): Initialize field 'do_variable'.
        (parse_file): Initialize field 'do_variable'.
        * match.c (gfc_match_assignment, gfc_match_do,
        * match.c (gfc_match_assignment, gfc_match_do,
        gfc_match_allocate, gfc_match_nullify, gfc_match_deallocate):
        gfc_match_allocate, gfc_match_nullify, gfc_match_deallocate):
        Add previously missing checks.
        Add previously missing checks.
        (gfc_match_return): Reformat error message.
        (gfc_match_return): Reformat error message.
        * io.c (match_out_tag): New function.
        * io.c (match_out_tag): New function.
        (match_open_element, match_close_element,
        (match_open_element, match_close_element,
        match_file_element, match_dt_element): Call match_out_tag
        match_file_element, match_dt_element): Call match_out_tag
        instead of match_vtag where appropriate.
        instead of match_vtag where appropriate.
        (match_io_iterator, match_io_element): Add missing check.
        (match_io_iterator, match_io_element): Add missing check.
        (match_io): Reformat error message.
        (match_io): Reformat error message.
        (match_inquire_element): Call match_out_tag where appropriate.
        (match_inquire_element): Call match_out_tag where appropriate.
        * parse.c (gfc_check_do_variable): Fix error locus.
        * parse.c (gfc_check_do_variable): Fix error locus.
2004-07-15  Tobias Schlueter  
2004-07-15  Tobias Schlueter  
        PR fortran/15129
        PR fortran/15129
        * trans-decl.c (gfc_build_function_decl): Create a new chardecl
        * trans-decl.c (gfc_build_function_decl): Create a new chardecl
        for every assumed length character dummy argument.
        for every assumed length character dummy argument.
        PR fortran/15140
        PR fortran/15140
        * trans-decl.c (gfc_trans_deferred_vars): Remove bogus assertion.
        * trans-decl.c (gfc_trans_deferred_vars): Remove bogus assertion.
        PR fortran/13792
        PR fortran/13792
        * simplify.c (gfc_simplify_bound): Copy the bound expression.
        * simplify.c (gfc_simplify_bound): Copy the bound expression.
2004-07-15  Tobias Schlueter  
2004-07-15  Tobias Schlueter  
        PR fortran/15324
        PR fortran/15324
        * trans-array.c gfc_trans_g77_array,
        * trans-array.c gfc_trans_g77_array,
        gfc_trans_dummy_array_bias): Don't call gfc_trans_string_init
        gfc_trans_dummy_array_bias): Don't call gfc_trans_string_init
        for assumed length characters.
        for assumed length characters.
        (gfc_conv_expr_descriptor): Set se->string_length if dealing
        (gfc_conv_expr_descriptor): Set se->string_length if dealing
        with a character expression.
        with a character expression.
        (gfc_cvonv_array_parameter): Pass string length when passing
        (gfc_cvonv_array_parameter): Pass string length when passing
        character array according to g77 conventions.
        character array according to g77 conventions.
2004-07-12  Paul Brook  
2004-07-12  Paul Brook  
        * expr.c (gfc_check_assign_symbol): Handle pointer assignments.
        * expr.c (gfc_check_assign_symbol): Handle pointer assignments.
        * trans-array.c (gfc_trans_auto_array_allocation): Remove
        * trans-array.c (gfc_trans_auto_array_allocation): Remove
        initialization code.
        initialization code.
        * trans-common.c (create_common): Use gfc_conv_initializer.
        * trans-common.c (create_common): Use gfc_conv_initializer.
        * trans-decl.c (gfc_get_symbol_decl): Use gfc_conv_initializer.
        * trans-decl.c (gfc_get_symbol_decl): Use gfc_conv_initializer.
        * trans-expr.c (gfc_conv_initializer): New function.
        * trans-expr.c (gfc_conv_initializer): New function.
        (gfc_conv_structure): Use it.
        (gfc_conv_structure): Use it.
        * trans.h (gfc_conv_initializer): Add prototype.
        * trans.h (gfc_conv_initializer): Add prototype.
2004-07-11  Paul Brook  
2004-07-11  Paul Brook  
        PR fortran/15986
        PR fortran/15986
        * parse.c (gfc_fixup_sibling_symbols): Also look for untyped
        * parse.c (gfc_fixup_sibling_symbols): Also look for untyped
        variables.
        variables.
        (parse_contained): Mark contained symbols as referenced.
        (parse_contained): Mark contained symbols as referenced.
2004-07-11  Tobias Schlueter  
2004-07-11  Tobias Schlueter  
        PR fortran/16455
        PR fortran/16455
        * module.c (gfc_dump_module, gfc_use_module): Print locus
        * module.c (gfc_dump_module, gfc_use_module): Print locus
        when opening of module file fails.
        when opening of module file fails.
        PR fortran/16404
        PR fortran/16404
        * io.c (match_io): Flag 'WRITE(...), ...' as extension.
        * io.c (match_io): Flag 'WRITE(...), ...' as extension.
        PR fortran/16404
        PR fortran/16404
        * match.c (gfc_match_program): A program name is obligatory.
        * match.c (gfc_match_program): A program name is obligatory.
        (gfc_match_return): RETURN in main program is an extension.
        (gfc_match_return): RETURN in main program is an extension.
        (gfc_match_block_data): A space is required before a block data
        (gfc_match_block_data): A space is required before a block data
        name.
        name.
        PR fortran/16433
        PR fortran/16433
        * primary.c (match_boz_constant): Call gfc_notify_std only if
        * primary.c (match_boz_constant): Call gfc_notify_std only if
        we actually have a non-standard boz-literal-constant.
        we actually have a non-standard boz-literal-constant.
        PR fortran/15754
        PR fortran/15754
        * expr.c (gfc_check_assign): Print ranks if incompatible. Issue
        * expr.c (gfc_check_assign): Print ranks if incompatible. Issue
        warning if assigning NULL().
        warning if assigning NULL().
2004-07-11  Joseph S. Myers  
2004-07-11  Joseph S. Myers  
        * f95-lang.c (set_block): Remove.
        * f95-lang.c (set_block): Remove.
        (gfc_clear_binding_stack): New.
        (gfc_clear_binding_stack): New.
        (LANG_HOOKS_CLEAR_BINDING_STACK): Define.
        (LANG_HOOKS_CLEAR_BINDING_STACK): Define.
        (struct binding_level): Remove block_created_by_back_end.
        (struct binding_level): Remove block_created_by_back_end.
        (clear_binding_level): Likewise.
        (clear_binding_level): Likewise.
        (poplevel): Don't handle block_created_by_back_end.
        (poplevel): Don't handle block_created_by_back_end.
2004-07-10  Tobias Schlueter  
2004-07-10  Tobias Schlueter  
        * trans-decl.c (gfc_create_module_variable): Nothing to do if
        * trans-decl.c (gfc_create_module_variable): Nothing to do if
        symbol is in common, because we ...
        symbol is in common, because we ...
        (gfc_generate_module_vars): Call gfc_trans_common.
        (gfc_generate_module_vars): Call gfc_trans_common.
2004-07-10  Paul Brook  
2004-07-10  Paul Brook  
        * trans-array.c (gfc_build_null_descriptor): New function.
        * trans-array.c (gfc_build_null_descriptor): New function.
        (gfc_trans_static_array_pointer): Use it.
        (gfc_trans_static_array_pointer): Use it.
        * trans-array.h (gfc_build_null_descriptor): Add prototype.
        * trans-array.h (gfc_build_null_descriptor): Add prototype.
        * trans-expr.c (gfc_conv_structure): Handle array pointers.
        * trans-expr.c (gfc_conv_structure): Handle array pointers.
2004-07-10  Tobias Schlueter  
2004-07-10  Tobias Schlueter  
        PR fortran/16336
        PR fortran/16336
        * decl.c (gfc_match_save): Use-associated common block
        * decl.c (gfc_match_save): Use-associated common block
        doesn't collide.
        doesn't collide.
        * gfortran.h (gfc_common_head): Add new field 'name'.
        * gfortran.h (gfc_common_head): Add new field 'name'.
        Fix typo in comment after #endif.
        Fix typo in comment after #endif.
        * match.c (gfc_get_common): Add new argument from_common,
        * match.c (gfc_get_common): Add new argument from_common,
        mangle name if flag is set, fill in new field in structure
        mangle name if flag is set, fill in new field in structure
        gfc_common_head.
        gfc_common_head.
        (match_common): Set new arg in call to gfc_get_common,
        (match_common): Set new arg in call to gfc_get_common,
        use-associated common block doesn't collide.
        use-associated common block doesn't collide.
        * match.h (gfc_get_common): Adapt prototype.
        * match.h (gfc_get_common): Adapt prototype.
        * module.c (load_commons): Set new arg in call to
        * module.c (load_commons): Set new arg in call to
        gfc_get_common.
        gfc_get_common.
        * symbol.c (free_common_tree): New function.
        * symbol.c (free_common_tree): New function.
        (gfc_free_namespace): Call new function.
        (gfc_free_namespace): Call new function.
        * trans-common.c (several functions): Remove argument
        * trans-common.c (several functions): Remove argument
        'name', use name from gfc_common_head instead.
        'name', use name from gfc_common_head instead.
2004-07-10  Tobias Schlueter  
2004-07-10  Tobias Schlueter  
        * expr.c (gfc_check_pointer_assign): Verify that rank of the LHS
        * expr.c (gfc_check_pointer_assign): Verify that rank of the LHS
        and RHS match. Return early if the RHS is NULL().
        and RHS match. Return early if the RHS is NULL().
        PR fortran/16336
        PR fortran/16336
        * match.c (match_common): Fix error reporting for used common.
        * match.c (match_common): Fix error reporting for used common.
        PR fortran/15969
        PR fortran/15969
        * trans-expr.c (gfc_conv_structure): Handle initialization
        * trans-expr.c (gfc_conv_structure): Handle initialization
        of scalar pointer components.
        of scalar pointer components.
        * parse.c (decode_statement): Fix matching of BLOCK DATA.
        * parse.c (decode_statement): Fix matching of BLOCK DATA.
        * trans-decl.c (generate_local_decl): Remove workaround obsoleted
        * trans-decl.c (generate_local_decl): Remove workaround obsoleted
        by fix for PR 15481.
        by fix for PR 15481.
2004-07-10  Tobias Schlueter  
2004-07-10  Tobias Schlueter  
        * trans-common.c: Fix whitespace issues, make variable names
        * trans-common.c: Fix whitespace issues, make variable names
        more readable.
        more readable.
        (create_common): Additionally, make loop logic more obvious.
        (create_common): Additionally, make loop logic more obvious.
2004-07-10  Tobias Schlueter  
2004-07-10  Tobias Schlueter  
        Paul Brook  
        Paul Brook  
        PR fortran/13415
        PR fortran/13415
        * trans-common.c (calculate_length): Remove ...
        * trans-common.c (calculate_length): Remove ...
        (get_segment_info): Merge into here.  Save field type.
        (get_segment_info): Merge into here.  Save field type.
        (build_field): Use saved type.
        (build_field): Use saved type.
        (create_common, new_condition, new_segment, finish_equivalences):
        (create_common, new_condition, new_segment, finish_equivalences):
        Use new get_segment_info.
        Use new get_segment_info.
        * trans-types.c: Update comment.
        * trans-types.c: Update comment.
2004-07-09  Tobias Schlueter  
2004-07-09  Tobias Schlueter  
        PR fortran/14077
        PR fortran/14077
        * moduele.c (mio_symbol): Don't I/O initial values unless
        * moduele.c (mio_symbol): Don't I/O initial values unless
        symbol is a parameter.
        symbol is a parameter.
2004-07-09  Tobias Schlueter  
2004-07-09  Tobias Schlueter  
        PR fortran/13201
        PR fortran/13201
        * resolve.c (resolve_symbol): Verify that the shape of a
        * resolve.c (resolve_symbol): Verify that the shape of a
        parameter array is not only explicit, but also constant.
        parameter array is not only explicit, but also constant.
        * array.c (gfc_is_compile_time_shape): New function.
        * array.c (gfc_is_compile_time_shape): New function.
        * gfortran.h (gfc_is_compile_time_shape): Add prototype.
        * gfortran.h (gfc_is_compile_time_shape): Add prototype.
2004-07-09  Tobias Schlueter  
2004-07-09  Tobias Schlueter  
        PR fortran/15481
        PR fortran/15481
        PR fortran/13372
        PR fortran/13372
        PR fortran/13575
        PR fortran/13575
        PR fortran/15978
        PR fortran/15978
        * module.c (write_symbol, write_symtree): Remove workaround.
        * module.c (write_symbol, write_symtree): Remove workaround.
        * primary.c (match_actual_arglist): Enhance comment.
        * primary.c (match_actual_arglist): Enhance comment.
        (gfc_match_rvalue): Handle function call with first argument
        (gfc_match_rvalue): Handle function call with first argument
        a keyword argument correctly.
        a keyword argument correctly.
        * resolve.c (resolve_symbol): Change call to
        * resolve.c (resolve_symbol): Change call to
        gfc_set_default_type to issue error if no implicit type
        gfc_set_default_type to issue error if no implicit type
        can be found.
        can be found.
        * trans-decl.c (gfc_create_module_variable): Remove workaround.
        * trans-decl.c (gfc_create_module_variable): Remove workaround.
2004-07-08  Paul Brook  
2004-07-08  Paul Brook  
        * intrinsic.c (add_sym_4s): New function.
        * intrinsic.c (add_sym_4s): New function.
        (add_subroutines): Change gfc_add_sym_? to gfc_add_sym_?s.
        (add_subroutines): Change gfc_add_sym_? to gfc_add_sym_?s.
2004-07-04  Janne Blomqvist  
2004-07-04  Janne Blomqvist  
        Paul Brook  
        Paul Brook  
        PR fortran/15280
        PR fortran/15280
        PR fortran/15665
        PR fortran/15665
        * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_IARGC and
        * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_IARGC and
        GFC_ISYM_COMMAND_ARGUMENT_COUNT.
        GFC_ISYM_COMMAND_ARGUMENT_COUNT.
        * intrinsic.c (add_functions):  Identify iargc.  Add
        * intrinsic.c (add_functions):  Identify iargc.  Add
        command_argument_count.
        command_argument_count.
        (add_subroutines): Resolve getarg.  Add get_command and
        (add_subroutines): Resolve getarg.  Add get_command and
        get_command_argument.
        get_command_argument.
        * intrinsic.h (gfc_resolve_getarg, gfc_resolve_get_command,
        * intrinsic.h (gfc_resolve_getarg, gfc_resolve_get_command,
        gfc_resolve_get_command_argument): Add prototypes.
        gfc_resolve_get_command_argument): Add prototypes.
        * iresolve.c (gfc_resolve_getarg, gfc_resolve_get_command,
        * iresolve.c (gfc_resolve_getarg, gfc_resolve_get_command,
        gfc_resolve_get_command_argument): New functions.
        gfc_resolve_get_command_argument): New functions.
        * trans-decl.c (gfor_fndecl_iargc): New variable.
        * trans-decl.c (gfor_fndecl_iargc): New variable.
        (gfc_build_intrinsic_function_decls): Set it.
        (gfc_build_intrinsic_function_decls): Set it.
        * trans-intrinsic.c (gfc_conv_intrinsic_iargc): New function.
        * trans-intrinsic.c (gfc_conv_intrinsic_iargc): New function.
        (gfc_conv_intrinsic_function): Use it.
        (gfc_conv_intrinsic_function): Use it.
        * trans.h (gfor_fndecl_iargc): Declare.
        * trans.h (gfor_fndecl_iargc): Declare.
2004-07-04  Matthias Klose  
2004-07-04  Matthias Klose  
        * Make-lang.in: Generate and install gfortran man page.
        * Make-lang.in: Generate and install gfortran man page.
        * invoke.texi: Remove extra '@c man end'.
        * invoke.texi: Remove extra '@c man end'.
2004-07-04  Richard Henderson  
2004-07-04  Richard Henderson  
        * f95-lang.c (gfc_mark_addressable): Don't put_var_into_stack.
        * f95-lang.c (gfc_mark_addressable): Don't put_var_into_stack.
2004-07-04  Paul Brook  
2004-07-04  Paul Brook  
        * decl.c (gfc_match_implicit_range): Don't use typespec.
        * decl.c (gfc_match_implicit_range): Don't use typespec.
        (gfc_match_implicit): Handle character selectors.
        (gfc_match_implicit): Handle character selectors.
        * gfortran.h (gfc_set_implicit): Remove prototype.
        * gfortran.h (gfc_set_implicit): Remove prototype.
        (gfc_add_new_implicit_range, gfc_merge_new_implicit): Update.
        (gfc_add_new_implicit_range, gfc_merge_new_implicit): Update.
        * parse.c (accept_statement): Don't call gfc_set_implicit.
        * parse.c (accept_statement): Don't call gfc_set_implicit.
        * symbol.c (new_ts): Remove.
        * symbol.c (new_ts): Remove.
        (gfc_set_implicit_none): Use same loop bounds as other functions.
        (gfc_set_implicit_none): Use same loop bounds as other functions.
        (gfc_set_implicit): Remove.
        (gfc_set_implicit): Remove.
        (gfc_clear_new_implicit, gfc_add_new_implicit_range): Only set flags.
        (gfc_clear_new_implicit, gfc_add_new_implicit_range): Only set flags.
        (gfc_merge_new_implicit): Combine with gfc_set_implicit.
        (gfc_merge_new_implicit): Combine with gfc_set_implicit.
2004-06-30  Richard Henderson  
2004-06-30  Richard Henderson  
        * match.c (var_element): Remove unused variable.
        * match.c (var_element): Remove unused variable.
        * trans-decl.c (gfc_generate_function_code): Don't set
        * trans-decl.c (gfc_generate_function_code): Don't set
        x_whole_function_mode_p.
        x_whole_function_mode_p.
        (gfc_generate_constructors): Likewise.
        (gfc_generate_constructors): Likewise.
2004-06-30  Richard Henderson  
2004-06-30  Richard Henderson  
        * trans-decl.c (gfc_generate_function_code): Don't set
        * trans-decl.c (gfc_generate_function_code): Don't set
        immediate_size_expand.
        immediate_size_expand.
        (gfc_generate_constructors): Likewise.
        (gfc_generate_constructors): Likewise.
2004-06-30  Tobias Schlueter  
2004-06-30  Tobias Schlueter  
        PR fortran/16161
        PR fortran/16161
        * decl.c (gfc_match_type_spec): Rename second argument to
        * decl.c (gfc_match_type_spec): Rename second argument to
        'implicit_flag', reverse meaning. Don't match_char_spec if
        'implicit_flag', reverse meaning. Don't match_char_spec if
        'implicit_flag' is set. Rename to ...
        'implicit_flag' is set. Rename to ...
        (match_type_spec): ... this.
        (match_type_spec): ... this.
        (gfc_match_implicit_none, match_implicit_range): Move here
        (gfc_match_implicit_none, match_implicit_range): Move here
        from match.c.
        from match.c.
        (gfc_match_implicit): Move here from match.c, try to
        (gfc_match_implicit): Move here from match.c, try to
        match_char_len if match_implicit_range doesn't succeed for
        match_char_len if match_implicit_range doesn't succeed for
        CHARACTER implicits. Call renamed fucntion match_type_spec.
        CHARACTER implicits. Call renamed fucntion match_type_spec.
        (gfc_match_data_decl, match_prefix): Call renamed function
        (gfc_match_data_decl, match_prefix): Call renamed function
        match_type_spec.
        match_type_spec.
        * match.c (gfc_match_implicit_none, match_implicit_range,
        * match.c (gfc_match_implicit_none, match_implicit_range,
        gfc_match_implicit): Move to decl.c.
        gfc_match_implicit): Move to decl.c.
        * match.h (gfc_match_implicit_none, gfc_match_implicit):
        * match.h (gfc_match_implicit_none, gfc_match_implicit):
        Move protoypes to section 'decl.c'.
        Move protoypes to section 'decl.c'.
        (gfc_match_type_spec): Remove prototype.
        (gfc_match_type_spec): Remove prototype.
2004-06-29  Tobias Schlueter  
2004-06-29  Tobias Schlueter  
        * decl.c, interface.c, symbol.c, trans-common.c: Add 2004 to
        * decl.c, interface.c, symbol.c, trans-common.c: Add 2004 to
        copyright years.
        copyright years.
2004-06-29  Steven Bosscher  
2004-06-29  Steven Bosscher  
        Make sure types in assignments are compatible.  Mostly mechanical.
        Make sure types in assignments are compatible.  Mostly mechanical.
        * trans-const.h (gfc_index_one_node): New define.
        * trans-const.h (gfc_index_one_node): New define.
        * trans-array.c (gfc_trans_allocate_array_storage,
        * trans-array.c (gfc_trans_allocate_array_storage,
        gfc_trans_allocate_temp_array, gfc_trans_array_constructor_subarray,
        gfc_trans_allocate_temp_array, gfc_trans_array_constructor_subarray,
        gfc_trans_array_constructor_value, gfc_trans_array_constructor,
        gfc_trans_array_constructor_value, gfc_trans_array_constructor,
        gfc_conv_array_ubound, gfc_conv_array_ref,
        gfc_conv_array_ubound, gfc_conv_array_ref,
        gfc_trans_scalarized_loop_end, gfc_conv_section_startstride,
        gfc_trans_scalarized_loop_end, gfc_conv_section_startstride,
        gfc_conv_ss_startstride, gfc_conv_loop_setup, gfc_array_init_size,
        gfc_conv_ss_startstride, gfc_conv_loop_setup, gfc_array_init_size,
        gfc_trans_array_bounds, gfc_trans_dummy_array_bias,
        gfc_trans_array_bounds, gfc_trans_dummy_array_bias,
        gfc_conv_expr_descriptor, gfc_trans_deferred_array): Use the correct
        gfc_conv_expr_descriptor, gfc_trans_deferred_array): Use the correct
        types in assignments, conversions and conditionals for expressions.
        types in assignments, conversions and conditionals for expressions.
        * trans-expr.c (gfc_conv_expr_present, gfc_conv_substring,
        * 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_unary_op, gfc_conv_cst_int_power, gfc_conv_string_tmp,
        gfc_conv_function_call, gfc_trans_pointer_assignment,
        gfc_conv_function_call, gfc_trans_pointer_assignment,
        gfc_trans_scalar_assign): Likewise.
        gfc_trans_scalar_assign): Likewise.
        * trans-intrinsic.c (build_fixbound_expr, gfc_conv_intrinsic_bound,
        * trans-intrinsic.c (build_fixbound_expr, gfc_conv_intrinsic_bound,
        gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count,
        gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count,
        gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_btest,
        gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_btest,
        gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ishft,
        gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ishft,
        gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_strcmp,
        gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_strcmp,
        gfc_conv_allocated, gfc_conv_associated,
        gfc_conv_allocated, gfc_conv_associated,
        gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_trim): Likewise.
        gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_trim): Likewise.
        * trans-io.c (set_string): Likewise.
        * trans-io.c (set_string): Likewise.
        * trans-stmt.c (gfc_trans_do, gfc_trans_forall_loop,
        * trans-stmt.c (gfc_trans_do, gfc_trans_forall_loop,
        gfc_do_allocate, generate_loop_for_temp_to_lhs,
        gfc_do_allocate, generate_loop_for_temp_to_lhs,
        generate_loop_for_rhs_to_temp, compute_inner_temp_size,
        generate_loop_for_rhs_to_temp, compute_inner_temp_size,
        compute_overall_iter_number, gfc_trans_assign_need_temp,
        compute_overall_iter_number, gfc_trans_assign_need_temp,
        gfc_trans_pointer_assign_need_temp, gfc_trans_forall_1,
        gfc_trans_pointer_assign_need_temp, gfc_trans_forall_1,
        gfc_evaluate_where_mask, gfc_trans_where_assign,
        gfc_evaluate_where_mask, gfc_trans_where_assign,
        gfc_trans_where_2): Likewise.
        gfc_trans_where_2): Likewise.
        * trans-types.c (gfc_get_character_type, gfc_build_array_type,
        * trans-types.c (gfc_get_character_type, gfc_build_array_type,
        gfc_get_nodesc_array_type, gfc_get_array_type_bounds): Likewise.
        gfc_get_nodesc_array_type, gfc_get_array_type_bounds): Likewise.
        * trans.c (gfc_add_modify_expr): Add sanity check that types
        * trans.c (gfc_add_modify_expr): Add sanity check that types
        for the lhs and rhs are the same for scalar assignments.
        for the lhs and rhs are the same for scalar assignments.
2004-06-29  Tobias Schlueter  
2004-06-29  Tobias Schlueter  
        * dump-parse-tree.c (show_common): New function.
        * dump-parse-tree.c (show_common): New function.
        (gfc_show_namespace): Show commons.
        (gfc_show_namespace): Show commons.
2004-06-29  Tobias Schlueter  
2004-06-29  Tobias Schlueter  
        Andrew Vaught  
        Andrew Vaught  
        PR fortran/13249
        PR fortran/13249
        PR fortran/15481
        PR fortran/15481
        * decl.c (gfc_match_save): Adapt to new common structures,
        * decl.c (gfc_match_save): Adapt to new common structures,
        don't allow saving USE-associated common.
        don't allow saving USE-associated common.
        * dump-parse-tree (gfc_show_attr): (saved_)common are not
        * dump-parse-tree (gfc_show_attr): (saved_)common are not
        symbol attributes any longer.
        symbol attributes any longer.
        (gfc_show_symbol): Don't show old-style commons any longer.
        (gfc_show_symbol): Don't show old-style commons any longer.
        (gfc_show_namespace): Adapt call to gfc_traverse_symtree to new
        (gfc_show_namespace): Adapt call to gfc_traverse_symtree to new
        interface.
        interface.
        * gfortran.h (symbol_attribute): Remove common and saved_common
        * gfortran.h (symbol_attribute): Remove common and saved_common
        attributes.
        attributes.
        (gfc_symbol): Remove common_head element.
        (gfc_symbol): Remove common_head element.
        (gfc_common_head): New struct.
        (gfc_common_head): New struct.
        (gfc_get_common_head): New macro.
        (gfc_get_common_head): New macro.
        (gfc_symtree): Add field 'common' to union.
        (gfc_symtree): Add field 'common' to union.
        (gfc_namespace): Add field 'common_root'; change type of field
        (gfc_namespace): Add field 'common_root'; change type of field
        'blank_common' to blank_common.
        'blank_common' to blank_common.
        (gfc_add_data): New prototype.
        (gfc_add_data): New prototype.
        (gfc_traverse_symtree): Expect a symtree as first argument
        (gfc_traverse_symtree): Expect a symtree as first argument
        instead of namespace.
        instead of namespace.
        * match.c (gfc_get_common): New function.
        * match.c (gfc_get_common): New function.
        (match_common_name): Change to take char * as argument, adapt,
        (match_common_name): Change to take char * as argument, adapt,
        fix bug with empty name.
        fix bug with empty name.
        (gfc_match_common): Adapt to new data structures. Disallow
        (gfc_match_common): Adapt to new data structures. Disallow
        redeclaration of USE-associated COMMON-block. Fix bug with
        redeclaration of USE-associated COMMON-block. Fix bug with
        empty common.
        empty common.
        (var_element): Adapt to new common structures.
        (var_element): Adapt to new common structures.
        * match.h (gfc_get_common): Declare.
        * match.h (gfc_get_common): Declare.
        * module.c: Add 2004 to copyright years, add commons to module
        * module.c: Add 2004 to copyright years, add commons to module
        file layout description.
        file layout description.
        (ab_attribute, attr_bits, mio_symbol_attributes): Remove code
        (ab_attribute, attr_bits, mio_symbol_attributes): Remove code
        for removed attributes.
        for removed attributes.
        (mio_symbol): Adapt to new way of storing common relations.
        (mio_symbol): Adapt to new way of storing common relations.
        (load_commons): New function.
        (load_commons): New function.
        (read_module): Skip common list on first pass, load_commons at
        (read_module): Skip common list on first pass, load_commons at
        second.
        second.
        (write_commons): New function.
        (write_commons): New function.
        (write_module): Call write_commons().
        (write_module): Call write_commons().
        * symbol.c (gfc_add_saved_comon, gfc_add_common): Remove
        * symbol.c (gfc_add_saved_comon, gfc_add_common): Remove
        functions related to removed attributes.
        functions related to removed attributes.
        (gfc_add_data): New function.
        (gfc_add_data): New function.
        (gfc_clear_attr): Don't set removed attributes.
        (gfc_clear_attr): Don't set removed attributes.
        (gfc_copy_attr): Don't copy removed attributes.
        (gfc_copy_attr): Don't copy removed attributes.
        (traverse_symtree): Remove.
        (traverse_symtree): Remove.
        (gfc_traverse_symtree): Don't traverse symbol
        (gfc_traverse_symtree): Don't traverse symbol
        tree of the passed namespace, but require a symtree to be passed
        tree of the passed namespace, but require a symtree to be passed
        instead. Unify with traverse_symtree.
        instead. Unify with traverse_symtree.
        (gfc_traverse_ns): Call gfc_traverse_symtree according to new
        (gfc_traverse_ns): Call gfc_traverse_symtree according to new
        interface.
        interface.
        (save_symbol): Remove setting of removed attribute.
        (save_symbol): Remove setting of removed attribute.
        * trans-common.c (gfc_sym_mangled_common_id): Change to
        * trans-common.c (gfc_sym_mangled_common_id): Change to
        take 'char *' argument instead of 'gfc_symbol'.
        take 'char *' argument instead of 'gfc_symbol'.
        (build_common_decl, new_segment, translate_common): Adapt to new
        (build_common_decl, new_segment, translate_common): Adapt to new
        data structures, add new
        data structures, add new
        argument name.
        argument name.
        (create_common): Adapt to new data structures, add new
        (create_common): Adapt to new data structures, add new
        argument name. Fix typo in intialization of derived types.
        argument name. Fix typo in intialization of derived types.
        (finish_equivalences): Add second argument in call to
        (finish_equivalences): Add second argument in call to
        create_common.
        create_common.
        (named_common): take 'gfc_symtree' instead of 'gfc_symbol'.
        (named_common): take 'gfc_symtree' instead of 'gfc_symbol'.
        (gfc_trans_common): Adapt to new data structures.
        (gfc_trans_common): Adapt to new data structures.
        * trans-decl.c (gfc_create_module_variables): Remove test for
        * trans-decl.c (gfc_create_module_variables): Remove test for
        removed attribute.
        removed attribute.
2004-06-29  Tobias Schlueter  
2004-06-29  Tobias Schlueter  
        * io.c: Add 2004 to copyright years.
        * io.c: Add 2004 to copyright years.
2004-06-29  Tobias Schlueter  
2004-06-29  Tobias Schlueter  
        Andrew Vaught  
        Andrew Vaught  
        * gfortran.h (gfc_gsymbol): New typedef.
        * gfortran.h (gfc_gsymbol): New typedef.
        (gfc_gsym_root): New variable.
        (gfc_gsym_root): New variable.
        (gfc_get_gsymbol, gfc_find_gsym): New prototypes.
        (gfc_get_gsymbol, gfc_find_gsym): New prototypes.
        * parse.c (global_used): New function.
        * parse.c (global_used): New function.
        (parse_block_data): Check for double empty BLOCK DATA,
        (parse_block_data): Check for double empty BLOCK DATA,
        use global symbol table.
        use global symbol table.
        (parse_module): Use global symbol table.
        (parse_module): Use global symbol table.
        (add_global_procedure, add_global_program): New functions.
        (add_global_procedure, add_global_program): New functions.
        (gfc_parse_file): Use global symbol table.
        (gfc_parse_file): Use global symbol table.
        * symbol.c (gfc_gsym_root): New variable.
        * symbol.c (gfc_gsym_root): New variable.
        (gfc_find_gsym, gsym_compare, gfc_get_gsymbol): New
        (gfc_find_gsym, gsym_compare, gfc_get_gsymbol): New
        functions.
        functions.
2004-06-29  Tobias Schlueter  
2004-06-29  Tobias Schlueter  
        * module.c (mio_gmp_real): Correct writing of negative numbers.
        * module.c (mio_gmp_real): Correct writing of negative numbers.
2004-06-29  Tobias Schlueter  
2004-06-29  Tobias Schlueter  
        PR fortran/15963
        PR fortran/15963
        * expr.c (check_intrinsic_op): Allow comparison of characters.
        * expr.c (check_intrinsic_op): Allow comparison of characters.
        Make logic easier.
        Make logic easier.
2004-06-26  Tobias Schlueter  
2004-06-26  Tobias Schlueter  
        Andrew Vaught  
        Andrew Vaught  
        * decl.c (contained_procedure): New function.
        * decl.c (contained_procedure): New function.
        (match_end): Verify correctness of END STATEMENT in
        (match_end): Verify correctness of END STATEMENT in
        all cases.
        all cases.
2004-06-26  Tobias Schlueter  
2004-06-26  Tobias Schlueter  
        Andrew Vaught  
        Andrew Vaught  
        PR fortran/15190
        PR fortran/15190
        * decl.c (gfc_match_type_spec), io.c (match_io), parse.c
        * decl.c (gfc_match_type_spec), io.c (match_io), parse.c
        (decode_statement): Enforce required space in free-form.
        (decode_statement): Enforce required space in free-form.
2004-06-22  Richard Kenner  
2004-06-22  Richard Kenner  
        * f95-lang.c (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Deleted.
        * f95-lang.c (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Deleted.
        * trans-array.c (gfc_conv_descriptor_data): Add operand
        * trans-array.c (gfc_conv_descriptor_data): Add operand
        for COMPONENT_REF.
        for COMPONENT_REF.
        (gfc_conv_descriptor_offset, gfc_conv_descriptor_dtype): Likewise.
        (gfc_conv_descriptor_offset, gfc_conv_descriptor_dtype): Likewise.
        (gfc_conv_descriptor_dimension, gfc_conv_descriptor_stride): Likewise.
        (gfc_conv_descriptor_dimension, gfc_conv_descriptor_stride): Likewise.
        (gfc_conv_descriptor_lbound, gfc_conv_descriptor_ubound): Likewise.
        (gfc_conv_descriptor_lbound, gfc_conv_descriptor_ubound): Likewise.
        * trans-common.c (create_common): Likewise.
        * trans-common.c (create_common): Likewise.
        * trans-expr.c (gfc_conv_component_ref): Likewise.
        * trans-expr.c (gfc_conv_component_ref): Likewise.
        * trans-io.c (set_parameter_value): Likewise.
        * trans-io.c (set_parameter_value): Likewise.
        (set_parameter_ref, set_string, set_flag, io_result): Likewise.
        (set_parameter_ref, set_string, set_flag, io_result): Likewise.
        (transfer_expr): Likewise.
        (transfer_expr): Likewise.
        * trans-decl.c (gfc_trans_auto_character_variable):
        * trans-decl.c (gfc_trans_auto_character_variable):
        Set up to get DECL_SIZE and DECL_SIZE_UNIT gimplified.
        Set up to get DECL_SIZE and DECL_SIZE_UNIT gimplified.
        (gfc_gimplify_function): New function.
        (gfc_gimplify_function): New function.
        (gfc_generate_function-code): Properly handle nested functions.
        (gfc_generate_function-code): Properly handle nested functions.
        * trans.c (gfc_build_array_ref): Add two new operands for ARRAY_REF.
        * trans.c (gfc_build_array_ref): Add two new operands for ARRAY_REF.
2004-06-22  Janne Blomqvist  
2004-06-22  Janne Blomqvist  
        PR fortran/15750
        PR fortran/15750
        * io.c (gfc_match_inquire): Bugfix for iolength related stuff.
        * io.c (gfc_match_inquire): Bugfix for iolength related stuff.
        (gfc_resolve_inquire): Resolve the iolength tag.  Return
        (gfc_resolve_inquire): Resolve the iolength tag.  Return
        SUCCESS at end of function if no failure has occured.
        SUCCESS at end of function if no failure has occured.
        * resolve.c (resolve_code): Resolve if iolength is encountered.
        * resolve.c (resolve_code): Resolve if iolength is encountered.
        * trans-io.c: (ioparm_iolength, iocall_iolength,
        * trans-io.c: (ioparm_iolength, iocall_iolength,
        iocall_iolength_done): New variables.
        iocall_iolength_done): New variables.
        (last_dt): Add IOLENGTH.
        (last_dt): Add IOLENGTH.
        (gfc_build_io_library_fndecls ): Set iolength related variables.
        (gfc_build_io_library_fndecls ): Set iolength related variables.
        (gfc_trans_iolength): Implement.
        (gfc_trans_iolength): Implement.
        (gfc_trans_dt_end): Treat iolength as a third form of data transfer.
        (gfc_trans_dt_end): Treat iolength as a third form of data transfer.
2004-06-21  Tobias Schlueter  
2004-06-21  Tobias Schlueter  
        PR fortran/15511
        PR fortran/15511
        * scanner.c (load_line): Don't truncate preprocessor lines.
        * scanner.c (load_line): Don't truncate preprocessor lines.
        Reformat error message.
        Reformat error message.
        (preprocessor_line): Issue warning in case of malformed
        (preprocessor_line): Issue warning in case of malformed
        preprocessor line.
        preprocessor line.
2004-06-21  Tobias Schlueter  
2004-06-21  Tobias Schlueter  
        * resolve.c (resolve_symbol): Add comment in function body.
        * resolve.c (resolve_symbol): Add comment in function body.
        (check_data_variable): Change type of mark to ar_type, adapt code
        (check_data_variable): Change type of mark to ar_type, adapt code
        accordingly.
        accordingly.
2004-06-21  Tobias Schlueter  
2004-06-21  Tobias Schlueter  
        * array.c (gfc_insert_constructor): Avoid redundant call to
        * array.c (gfc_insert_constructor): Avoid redundant call to
        mpz_comp. Add 2004 to copyright years.
        mpz_comp. Add 2004 to copyright years.
2004-06-21  Joseph S. Myers  
2004-06-21  Joseph S. Myers  
        * trans.h (stmtblock_t): Change has_scope to unsigned int.
        * trans.h (stmtblock_t): Change has_scope to unsigned int.
2004-06-20  Steven G. Kargl  
2004-06-20  Steven G. Kargl  
        * arith.c (gfc_range_check): correct complex underflow.
        * arith.c (gfc_range_check): correct complex underflow.
2004-06-15  Tobias Schlueter  
2004-06-15  Tobias Schlueter  
        PR fortran/15962
        PR fortran/15962
        * match.c (match_case_selector): Call gfc_match_init_expr
        * match.c (match_case_selector): Call gfc_match_init_expr
        instead of gfc_match_expr.
        instead of gfc_match_expr.
        * resolve.c (validate_case_label_expr): No need to check for
        * resolve.c (validate_case_label_expr): No need to check for
        constant, since it wouldn't have been matched with the fix to
        constant, since it wouldn't have been matched with the fix to
        match.c.
        match.c.
2004-06-14  Tobias Schlueter  
2004-06-14  Tobias Schlueter  
        PR fortran/15211
        PR fortran/15211
        * trans-intrinsic.c (gfc_conv_intrinsic_len): Deal with arrays
        * trans-intrinsic.c (gfc_conv_intrinsic_len): Deal with arrays
        of strings.
        of strings.
2004-06-14  Tobias Schlueter  
2004-06-14  Tobias Schlueter  
        PR fortran/15510
        PR fortran/15510
        * trans-deecl.c (generate_local_decl): Do not issue warning for
        * trans-deecl.c (generate_local_decl): Do not issue warning for
        unused variables if they're use associated.
        unused variables if they're use associated.
2004-06-14  Tobias Schlueter  
2004-06-14  Tobias Schlueter  
        Andrew Vaught  
        Andrew Vaught  
        PR fortran/14928
        PR fortran/14928
        * gfortran.h (gfc_check_f): Add new field f3ml.
        * gfortran.h (gfc_check_f): Add new field f3ml.
        * check.c (gfc_check_minloc_maxloc): Take argument list instead
        * check.c (gfc_check_minloc_maxloc): Take argument list instead
        of individual arguments, reorder if necessary.
        of individual arguments, reorder if necessary.
        * intrinsic.h (gfc_check_minloc_maxloc): ... adapt prototype.
        * intrinsic.h (gfc_check_minloc_maxloc): ... adapt prototype.
        * intrinsic.c (add_sym_3ml): New function.
        * intrinsic.c (add_sym_3ml): New function.
        (add_functions): Change to add_sym_3ml for MINLOC, MAXLOC.
        (add_functions): Change to add_sym_3ml for MINLOC, MAXLOC.
        (check_specific): Catch special case MINLOC, MAXLOC.
        (check_specific): Catch special case MINLOC, MAXLOC.
2004-06-14  Paul Brook  
2004-06-14  Paul Brook  
        * intrinsic.c (add_sym_2s): Use correct function types.
        * intrinsic.c (add_sym_2s): Use correct function types.
2004-06-12  Tobias Schlueter  
2004-06-12  Tobias Schlueter  
        * Make-lang.in (F95_OBJS, F95_PARSER_OBJS): Alphabetize.  Move data.c
        * Make-lang.in (F95_OBJS, F95_PARSER_OBJS): Alphabetize.  Move data.c
        * data.c (gfc_get_section_index):  Remove dependency on trans.h.
        * data.c (gfc_get_section_index):  Remove dependency on trans.h.
2004-06-12  Steven G. Kargl  
2004-06-12  Steven G. Kargl  
        * check.c (gfc_check_second_sub, gfc_check_irand, gfc_check_rand
        * check.c (gfc_check_second_sub, gfc_check_irand, gfc_check_rand
        gfc_check_srand, gfc_check_etime, gfc_check_etime_sub): New functions.
        gfc_check_srand, gfc_check_etime, gfc_check_etime_sub): New functions.
        * gfortran.h (gfc_generic_isym_id): New symbols GFC_ISYM_ETIME,
        * gfortran.h (gfc_generic_isym_id): New symbols GFC_ISYM_ETIME,
        GFC_ISYM_IRAND, GFC_ISYM_RAND, GFC_ISYM_SECOND.
        GFC_ISYM_IRAND, GFC_ISYM_RAND, GFC_ISYM_SECOND.
        * trans-intrinsic.c:  Use symbols.
        * trans-intrinsic.c:  Use symbols.
        * intrinsic.c (add_sym_2s): New function.
        * intrinsic.c (add_sym_2s): New function.
        * intrinsic.c: Add etime, dtime, irand, rand, second, srand.
        * intrinsic.c: Add etime, dtime, irand, rand, second, srand.
        * intrinsic.h: Function prototypes.
        * intrinsic.h: Function prototypes.
        * iresolve.c (gfc_resolve_etime_sub, gfc_resolve_second_sub
        * iresolve.c (gfc_resolve_etime_sub, gfc_resolve_second_sub
        gfc_resolve_srand):  New functions.
        gfc_resolve_srand):  New functions.
2004-06-12  Tobias Schlueter  
2004-06-12  Tobias Schlueter  
        PR fortran/14957
        PR fortran/14957
        * decl.c (gfc_match_end): Require END {SUBROUTINE|FUNCTION} for
        * decl.c (gfc_match_end): Require END {SUBROUTINE|FUNCTION} for
        contained procedure.
        contained procedure.
2004-06-12  Tobias Schlueter  
2004-06-12  Tobias Schlueter  
        PR fortran/12841
        PR fortran/12841
        * interface.c (compare_parameter, compare_actual_formal): Don't
        * interface.c (compare_parameter, compare_actual_formal): Don't
        check types and array shapes for NULL()
        check types and array shapes for NULL()
        * trans-expr.c (conv_function_call): No double indirection for
        * trans-expr.c (conv_function_call): No double indirection for
        NULL()
        NULL()
2004-06-09  Toon Moene  
2004-06-09  Toon Moene  
        * trans-expr.c (gfc_conv_cst_int_power): Compute
        * trans-expr.c (gfc_conv_cst_int_power): Compute
        x**(-n) by converting it to (1/x)**n instead of
        x**(-n) by converting it to (1/x)**n instead of
        1/x**n.
        1/x**n.
2004-06-09  Tobias Schlueter  
2004-06-09  Tobias Schlueter  
        PR fortran/13372
        PR fortran/13372
        * module.c (write_symbol, write_symtree): Don't write symbols
        * module.c (write_symbol, write_symtree): Don't write symbols
        wrongly added to namespace.
        wrongly added to namespace.
        * trans-decl.c (gfc_create_module_variable): Don't create a
        * trans-decl.c (gfc_create_module_variable): Don't create a
        backend decl for a symbol incorrectly added to namespace.
        backend decl for a symbol incorrectly added to namespace.
2004-06-09  Tobias Schlueter  
2004-06-09  Tobias Schlueter  
        PR fortran/13201
        PR fortran/13201
        * resolve.c (resolve_symbol): Verify that parameter array has an
        * resolve.c (resolve_symbol): Verify that parameter array has an
        explicit shape. Fix typos and coding style issues in surrounding
        explicit shape. Fix typos and coding style issues in surrounding
        lines.
        lines.
2004-06-05  Tobias Schlueter  
2004-06-05  Tobias Schlueter  
        PR fortran/15478
        PR fortran/15478
        * gfortran.texi: The documentation doesn't contain infomration on
        * gfortran.texi: The documentation doesn't contain infomration on
        how to report bugs, and shouldn't, so remove the line which
        how to report bugs, and shouldn't, so remove the line which
        says it does.
        says it does.
2004-06-05  Tobias Schlueter  
2004-06-05  Tobias Schlueter  
        * intrinsic.c (sort_actual): Keep track of type of missing
        * intrinsic.c (sort_actual): Keep track of type of missing
        arguments. (Missing from previous commit.)
        arguments. (Missing from previous commit.)
2004-06-03  Tobias Schlueter  
2004-06-03  Tobias Schlueter  
        * gfortran.h (gfc_actual_arglist): New field missing_arg_type.
        * gfortran.h (gfc_actual_arglist): New field missing_arg_type.
        * interface.c (compare_actual_formal): Keep type of omitted
        * interface.c (compare_actual_formal): Keep type of omitted
        optional arguments.
        optional arguments.
        * trans-expr.c (gfc_conv_function_call): Add string length
        * trans-expr.c (gfc_conv_function_call): Add string length
        argument for omitted string argument.
        argument for omitted string argument.
2004-06-03  Paul Brook  
2004-06-03  Paul Brook  
        * trans.c (gfc_finish_block, gfc_add_expr_to_block): Build statement
        * trans.c (gfc_finish_block, gfc_add_expr_to_block): Build statement
        lists instead of compound expr chains.
        lists instead of compound expr chains.
        (gfc_trans_code): Annotate statement lists.
        (gfc_trans_code): Annotate statement lists.
2004-06-03  Tobias Schlueter  
2004-06-03  Tobias Schlueter  
        * trans-array.c: Fix spelling in comments.
        * trans-array.c: Fix spelling in comments.
2004-06-02  Tobias Schlueter  
2004-06-02  Tobias Schlueter  
        PR fortran/15557
        PR fortran/15557
        * data.c (assign_substring_data_value): New function.
        * data.c (assign_substring_data_value): New function.
        (gfc_assign_data_value): Call the new function if we're dealing
        (gfc_assign_data_value): Call the new function if we're dealing
        with a substring LHS.
        with a substring LHS.
2004-06-01  Tobias Schlueter  
2004-06-01  Tobias Schlueter  
        PR fortran/15477
        PR fortran/15477
        * gfortran.h (GFC_VERSION): Remove.
        * gfortran.h (GFC_VERSION): Remove.
        * gfortran.texi (version-gfortran): Remove, replace by version-GCC
        * gfortran.texi (version-gfortran): Remove, replace by version-GCC
        where used.
        where used.
2004-05-31  Tobias Schlueter  
2004-05-31  Tobias Schlueter  
        * trans-types.c: Fix spelling & layout in comments.
        * trans-types.c: Fix spelling & layout in comments.
2004-05-30  Tobias Schlueter  
2004-05-30  Tobias Schlueter  
        PR fortran/14067
        PR fortran/14067
        * trans-const.c (gfc_conv_string_init): Allow variable string
        * trans-const.c (gfc_conv_string_init): Allow variable string
        length lower than initialization string length.
        length lower than initialization string length.
2004-05-30  Paul Brook  
2004-05-30  Paul Brook  
        PR fortran/15620
        PR fortran/15620
        * trans-decl.c (gfc_shadow_sym, gfc_restore_sym): New functions.
        * trans-decl.c (gfc_shadow_sym, gfc_restore_sym): New functions.
        * trans-expr.c (gfc_trans_string_copy): New function.
        * trans-expr.c (gfc_trans_string_copy): New function.
        (gfc_conv_statement_function): Use them.  Create temp vars.  Enforce
        (gfc_conv_statement_function): Use them.  Create temp vars.  Enforce
        character lengths.
        character lengths.
        (gfc_conv_string_parameter): Use gfc_trans_string_copy.
        (gfc_conv_string_parameter): Use gfc_trans_string_copy.
        * trans-stmt.c (gfc_trans_forall_1): Use gfc_{shadow,restore}_sym.
        * trans-stmt.c (gfc_trans_forall_1): Use gfc_{shadow,restore}_sym.
        * trans.h (struct gfc_saved_var): Define.
        * trans.h (struct gfc_saved_var): Define.
        (gfc_shadow_sym, gfc_restore_sym): Add prototypes.
        (gfc_shadow_sym, gfc_restore_sym): Add prototypes.
2004-05-30  Steven G. Kargl  
2004-05-30  Steven G. Kargl  
        * iresolve.c (gfc_resolve_random_number): Clean up conditional.
        * iresolve.c (gfc_resolve_random_number): Clean up conditional.
2004-05-29  Steven G. Kargl  
2004-05-29  Steven G. Kargl  
        * simplify.c (gfc_simplify_log): Remove useless line of code.
        * simplify.c (gfc_simplify_log): Remove useless line of code.
2004-05-29  Paul Brook  
2004-05-29  Paul Brook  
        * trans-common.c (find_equivalence): Find multiple rules.
        * trans-common.c (find_equivalence): Find multiple rules.
2004-05-27  Tobias Schlueter  
2004-05-27  Tobias Schlueter  
        * gfortran.h (gfc_current_locus, gfc_set_locus): Remove.
        * gfortran.h (gfc_current_locus, gfc_set_locus): Remove.
        (gfc_current_locus): Declare new global variable.
        (gfc_current_locus): Declare new global variable.
        * scanner.c (gfc_current_locus, gfc_set_locus): Remove.
        * scanner.c (gfc_current_locus, gfc_set_locus): Remove.
        (gfc_current_locus1): Rename ...
        (gfc_current_locus1): Rename ...
        (gfc_current_locus): ... to this.
        (gfc_current_locus): ... to this.
        (gfc_at_eof, gfc_at_bol, gfc_at_eol, gfc_advance_line, next_char,
        (gfc_at_eof, gfc_at_bol, gfc_at_eol, gfc_advance_line, next_char,
        skip_fixed_comments, skip_free_comments, gfc_next_char_literal,
        skip_fixed_comments, skip_free_comments, gfc_next_char_literal,
        gfc_peek_char, gfc_gobble_whitespace, gfc_new_file): Use
        gfc_peek_char, gfc_gobble_whitespace, gfc_new_file): Use
        gfc_current_locus instead of gfc_current_locus1, gfc_set_locus()
        gfc_current_locus instead of gfc_current_locus1, gfc_set_locus()
        and gfc_current_locus(), respectively.
        and gfc_current_locus(), respectively.
        * array.c (match_subscript, gfc_match_array_ref, match_array_list,
        * array.c (match_subscript, gfc_match_array_ref, match_array_list,
        match_array_cons_element, gfc_match_array_constructor):
        match_array_cons_element, gfc_match_array_constructor):
        Read/modify gfc_current_locus instead of calling gfc_set_locus()
        Read/modify gfc_current_locus instead of calling gfc_set_locus()
        and gfc_current_locus().
        and gfc_current_locus().
        * decl.c (gfc_match_null, variable_decl, gfc_match_kind_spec,
        * decl.c (gfc_match_null, variable_decl, gfc_match_kind_spec,
        match_attr_spec, gfc_match_function_decl, gfc_match_end,
        match_attr_spec, gfc_match_function_decl, gfc_match_end,
        attr_decl1, gfc_match_save): Likewise.
        attr_decl1, gfc_match_save): Likewise.
        * error.c (error_print, gfc_internal_error): Likewise.
        * error.c (error_print, gfc_internal_error): Likewise.
        * expr.c (gfc_int_expr, gfc_default_logical_kind): Likewise.
        * expr.c (gfc_int_expr, gfc_default_logical_kind): Likewise.
        * interface.c (gfc_add_interface): Likewise.
        * interface.c (gfc_add_interface): Likewise.
        * io.c (gfc_match_format, match_dt_format, match_dt_element,
        * io.c (gfc_match_format, match_dt_format, match_dt_element,
        match_io_iterator, match_io): Likewise.
        match_io_iterator, match_io): Likewise.
        * match.c (gfc_match_space, gfc_match_eos,
        * match.c (gfc_match_space, gfc_match_eos,
        gfc_match_small_literal_int, gfc_match_st_label,
        gfc_match_small_literal_int, gfc_match_st_label,
        gfc_match_strings, gfc_match_name, gfc_match_iterator,
        gfc_match_strings, gfc_match_name, gfc_match_iterator,
        gfc_match_char, gfc_match, gfc_match_assignment,
        gfc_match_char, gfc_match, gfc_match_assignment,
        gfc_match_pointer_assignment, gfc_match_if, gfc_match_do,
        gfc_match_pointer_assignment, gfc_match_if, gfc_match_do,
        gfc_match_nullify, gfc_match_call, match_implicit_range,
        gfc_match_nullify, gfc_match_call, match_implicit_range,
        gfc_match_implicit, gfc_match_data, match_case_selector,
        gfc_match_implicit, gfc_match_data, match_case_selector,
        gfc_match_case, match_forall_iterator): Likewise.
        gfc_match_case, match_forall_iterator): Likewise.
        * matchexp.c (gfc_match_defined_op_name, next_operator,
        * matchexp.c (gfc_match_defined_op_name, next_operator,
        match_level_1, match_mult_operand, match_ext_mult_operand,
        match_level_1, match_mult_operand, match_ext_mult_operand,
        match_add_operand, match_ext_add_operand, match_level_2,
        match_add_operand, match_ext_add_operand, match_level_2,
        match_level_3, match_level_4, match_and_operand, match_or_operand,
        match_level_3, match_level_4, match_and_operand, match_or_operand,
        match_equiv_operand, match_level_5, gfc_match_expr): Likewise.
        match_equiv_operand, match_level_5, gfc_match_expr): Likewise.
        * module.c (gfc_match_use, mio_array_ref, mio_expr): Likewise.
        * module.c (gfc_match_use, mio_array_ref, mio_expr): Likewise.
        * parse.c (match_word, decode_statement, next_free, next_fixed,
        * parse.c (match_word, decode_statement, next_free, next_fixed,
        add_statement, verify_st_order, parse_if_block, gfc_parse_file):
        add_statement, verify_st_order, parse_if_block, gfc_parse_file):
        Likewise.
        Likewise.
        * primary.c (match_digits, match_integer_constant,
        * primary.c (match_digits, match_integer_constant,
        match_boz_constant, match_real_constant, match_substring,
        match_boz_constant, match_real_constant, match_substring,
        next_string_char, match_charkind_name, match_string_constant,
        next_string_char, match_charkind_name, match_string_constant,
        match_logical_constant, match_const_complex_part,
        match_logical_constant, match_const_complex_part,
        match_complex_constant, match_actual_arg, match_keyword_arg,
        match_complex_constant, match_actual_arg, match_keyword_arg,
        gfc_match_actual_arglist, gfc_match_structure_constructor,
        gfc_match_actual_arglist, gfc_match_structure_constructor,
        gfc_match_rvalue, gfc_match_variable): Likewise.
        gfc_match_rvalue, gfc_match_variable): Likewise.
        * st.c (gfc_get_code): Likewise.
        * st.c (gfc_get_code): Likewise.
        * symbol.c (check_conflict, check_used, check_done,
        * symbol.c (check_conflict, check_used, check_done,
        duplicate_attr, add_flavor, gfc_add_procedure, gfc_add_intent,
        duplicate_attr, add_flavor, gfc_add_procedure, gfc_add_intent,
        gfc_add_access, gfc_add_explicit_interface, gfc_add_type,
        gfc_add_access, gfc_add_explicit_interface, gfc_add_type,
        gfc_add_component, gfc_reference_st_label, gfc_new_symbol): Likewise.
        gfc_add_component, gfc_reference_st_label, gfc_new_symbol): Likewise.
2004-05-26  Roger Sayle  
2004-05-26  Roger Sayle  
        * io.c (format_asterisk): Silence compiler warnings by correcting
        * io.c (format_asterisk): Silence compiler warnings by correcting
        the number of elements of a "locus" initializer.
        the number of elements of a "locus" initializer.
2004-05-25  Roger Sayle  
2004-05-25  Roger Sayle  
        PR fortran/13912
        PR fortran/13912
        * matchexp.c: Allow unary operators after arithmetic operators
        * matchexp.c: Allow unary operators after arithmetic operators
        as a GNU extension.
        as a GNU extension.
        (match_ext_mult_operand, match_ext_add_operand): New functions.
        (match_ext_mult_operand, match_ext_add_operand): New functions.
        (match_mult_operand): Tweak to call match_ext_mult_operand.
        (match_mult_operand): Tweak to call match_ext_mult_operand.
        (match_add_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.
        (match_level_2): Rearrange to call match_ext_add_operand.
2004-05-25  Paul Brook  
2004-05-25  Paul Brook  
        * expr.c (check_inquiry): Remove bogus tests.
        * expr.c (check_inquiry): Remove bogus tests.
2004-05-23  Paul Brook  
2004-05-23  Paul Brook  
        PR fortran/13773
        PR fortran/13773
        * expr.c (restricted_args): Remove redundant checks/argument.
        * expr.c (restricted_args): Remove redundant checks/argument.
        (external_spec_function): Update to match.
        (external_spec_function): Update to match.
        (restricted_intrinsic): Rewrite.
        (restricted_intrinsic): Rewrite.
2004-05-23  Paul Brook  
2004-05-23  Paul Brook  
        Victor Leikehman  
        Victor Leikehman  
        * gfortran.h (struct gfc_symbol): Add equiv_built.
        * gfortran.h (struct gfc_symbol): Add equiv_built.
        * trans-common.c: Change int to HOST_WIDE_INT.  Capitalize error
        * trans-common.c: Change int to HOST_WIDE_INT.  Capitalize error
        messages.
        messages.
        (current_length): Remove.
        (current_length): Remove.
        (add_segments): New function.
        (add_segments): New function.
        (build_equiv_decl): Create initialized common blocks.
        (build_equiv_decl): Create initialized common blocks.
        (build_common_decl): Always add decl to bindings.
        (build_common_decl): Always add decl to bindings.
        (create_common): Create initializers.
        (create_common): Create initializers.
        (find_segment_info): Reformat to match coding conventions.
        (find_segment_info): Reformat to match coding conventions.
        (new_condition): Use add_segments.
        (new_condition): Use add_segments.
        (add_condition, find_equivalence, add_equivalences): Move iteration
        (add_condition, find_equivalence, add_equivalences): Move iteration
        inside functions.  Only process each segment once.
        inside functions.  Only process each segment once.
        (new_segment, finish_equivalences, translate_common): Simplify.
        (new_segment, finish_equivalences, translate_common): Simplify.
2004-05-23  Steven G. Kargl  
2004-05-23  Steven G. Kargl  
        * check.c (gfc_check_random_seed): Issue for too many arguments.
        * check.c (gfc_check_random_seed): Issue for too many arguments.
2004-05-22  Steven G. Kargl  
2004-05-22  Steven G. Kargl  
        * intrinsic.c (add_subroutines): Use add_sym_3s for random_seed.
        * intrinsic.c (add_subroutines): Use add_sym_3s for random_seed.
2004-05-22  Paul Brook  
2004-05-22  Paul Brook  
        * dump-parse-tree.c (gfc_show_equiv): New function.
        * dump-parse-tree.c (gfc_show_equiv): New function.
        (gfc_show_namespace): Use it.
        (gfc_show_namespace): Use it.
2004-05-22  Victor Leikehman  
2004-05-22  Victor Leikehman  
        PR fortran/13249
        PR fortran/13249
        * symbol.c (gfc_add_common): Disable checks to work around other more
        * symbol.c (gfc_add_common): Disable checks to work around other more
        fundamental inadequacies.
        fundamental inadequacies.
2004-05-22  Tobias Schlüter  
2004-05-22  Tobias Schlüter  
        * trans-decl.c (gfc_get_extern_function_decl): Set DECL_IS_PURE
        * trans-decl.c (gfc_get_extern_function_decl): Set DECL_IS_PURE
        only for functions.
        only for functions.
        (gfc_build_function_decl): Likewise.
        (gfc_build_function_decl): Likewise.
2004-05-22  Steven G. Kargl  
2004-05-22  Steven G. Kargl  
        * check.c (gfc_check_system_clock): New function.
        * check.c (gfc_check_system_clock): New function.
        * intrinsic.c (add_sym_3s): New function.
        * intrinsic.c (add_sym_3s): New function.
        (add_subroutines): Use it.
        (add_subroutines): Use it.
        * intrinsic.h (gfc_check_system_clock, gfc_resolve_system_clock):
        * intrinsic.h (gfc_check_system_clock, gfc_resolve_system_clock):
        Add prototypes.
        Add prototypes.
        * iresolve.c (gfc_resolve_system_clock): New function.
        * iresolve.c (gfc_resolve_system_clock): New function.
2004-05-22  Steven G. Kargl  
2004-05-22  Steven G. Kargl  
        * invoke.texi: Document -Wunderflow and spell check.
        * invoke.texi: Document -Wunderflow and spell check.
        * lang.opt: Add Wunderflow.
        * lang.opt: Add Wunderflow.
        * gfortran.h (gfc_option_t): Add warn_underflow option.
        * gfortran.h (gfc_option_t): Add warn_underflow option.
        * options.c (gfc_init_options, set_Wall): Use it.
        * options.c (gfc_init_options, set_Wall): Use it.
        * primary.c (match_real_constant): Explicitly handle UNDERFLOW.
        * primary.c (match_real_constant): Explicitly handle UNDERFLOW.
        * arith.c (gfc_arith_uminus, gfc_arith_plus, gfc_arith_minus,
        * arith.c (gfc_arith_uminus, gfc_arith_plus, gfc_arith_minus,
        gfc_arith_times, gfc_arith_divide, gfc_arith_power, gfc_real2real,
        gfc_arith_times, gfc_arith_divide, gfc_arith_power, gfc_real2real,
        gfc_real2complex, gfc_complex2real, gfc_complex2complex): Ditto.
        gfc_real2complex, gfc_complex2real, gfc_complex2complex): Ditto.
        * arith.c (common_logarithm): Fix typo in comment.
        * arith.c (common_logarithm): Fix typo in comment.
2004-05-21  Roger Sayle  
2004-05-21  Roger Sayle  
        * io.c (check_format): As a GNU extension, allow the comma after a
        * 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
        string literal to be optional in a format.  Use gfc_notify_std to
        issue an error/warning as appropriate.
        issue an error/warning as appropriate.
2004-05-21  Roger Sayle  
2004-05-21  Roger Sayle  
        * io.c (check_format): Use gfc_notify_std to determine whether to
        * io.c (check_format): Use gfc_notify_std to determine whether to
        issue an error/warning for omitting the digits from the X format.
        issue an error/warning for omitting the digits from the X format.
2004-05-20  Roger Sayle  
2004-05-20  Roger Sayle  
        * io.c (check_format): Allow the number before the X format to
        * io.c (check_format): Allow the number before the X format to
        be optional when not -pedantic.
        be optional when not -pedantic.
2004-05-18  Feng Wang  
2004-05-18  Feng Wang  
        Paul Brook  
        Paul Brook  
        * f95-lang.c (gfc_init_builtin_functions): Use vold_list_node.
        * f95-lang.c (gfc_init_builtin_functions): Use vold_list_node.
        Create decls for __builtin_pow{,f}.
        Create decls for __builtin_pow{,f}.
        * gfortran.h (PREFIX_LEN): Define.
        * gfortran.h (PREFIX_LEN): Define.
        * trans-decl.c (gfor_fndecl_math_powi): Add.
        * trans-decl.c (gfor_fndecl_math_powi): Add.
        (gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.
        (gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.
        (gfc_build_intrinsic_function_decls): Create decls for powi.
        (gfc_build_intrinsic_function_decls): Create decls for powi.
        * trans-expr.c (powi_table): Add.
        * trans-expr.c (powi_table): Add.
        (gfc_conv_integer_power): Remove.
        (gfc_conv_integer_power): Remove.
        (gfc_conv_powi): New function.
        (gfc_conv_powi): New function.
        (gfc_conv_cst_int_power): New function.
        (gfc_conv_cst_int_power): New function.
        (gfc_conv_power_op): Use new powi routines.
        (gfc_conv_power_op): Use new powi routines.
        * trans.h (struct gfc_powdecl_list): Add.
        * trans.h (struct gfc_powdecl_list): Add.
        (gfor_fndecl_math_powi): Add.
        (gfor_fndecl_math_powi): Add.
        (gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.
        (gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.
2004-05-18  Tobias Schlueter  
2004-05-18  Tobias Schlueter  
        * trans.c, trans-decl.c: Fix comment typos.
        * trans.c, trans-decl.c: Fix comment typos.
2004-05-18  Tobias Schlueter  
2004-05-18  Tobias Schlueter  
        * trans-const.c (gfc_conv_mpf_to_tree): Fix typo.
        * trans-const.c (gfc_conv_mpf_to_tree): Fix typo.
2004-05-18  Steve Kargl  
2004-05-18  Steve Kargl  
        * arith.c (gfc_int2complex): Fix incorrect range checking.
        * arith.c (gfc_int2complex): Fix incorrect range checking.
2004-05-18  Paul Brook  
2004-05-18  Paul Brook  
        PR fortran/13930
        PR fortran/13930
        * decl.c (add_init_expr_to_sym): Remove incorrect check.
        * decl.c (add_init_expr_to_sym): Remove incorrect check.
        (default_initializer): Move to expr.c.
        (default_initializer): Move to expr.c.
        (variable_decl): Don't assign default initializer to variables.
        (variable_decl): Don't assign default initializer to variables.
        * expr.c (gfc_default_initializer): Move to here.
        * expr.c (gfc_default_initializer): Move to here.
        * gfortran.h (gfc_default_initializer): Add prototype.
        * gfortran.h (gfc_default_initializer): Add prototype.
        * resolve.c (resolve_symbol): Check for illegal initializers.
        * resolve.c (resolve_symbol): Check for illegal initializers.
        Assign default initializer.
        Assign default initializer.
2004-05-17  Steve Kargl  
2004-05-17  Steve Kargl  
        * arith.c (gfc_arith_power): Complex number raised to 0 power is 1.
        * arith.c (gfc_arith_power): Complex number raised to 0 power is 1.
2004-05-17  Steve Kargl  
2004-05-17  Steve Kargl  
        * arith.c (gfc_real2complex): Range checking wrong part of complex
        * arith.c (gfc_real2complex): Range checking wrong part of complex
        number.
        number.
2004-05-16  Paul Brook  
2004-05-16  Paul Brook  
        * options.c (gfc_handle_module_path_options): Fix buffer overrun.
        * options.c (gfc_handle_module_path_options): Fix buffer overrun.
2004-05-16  Paul Brook  
2004-05-16  Paul Brook  
        * arith.c (gfc_range_check): Fix logic error.
        * arith.c (gfc_range_check): Fix logic error.
2004-05-16  Steve Kargl  
2004-05-16  Steve Kargl  
        * arith.c: Fix comment typos.
        * arith.c: Fix comment typos.
2004-05-15  Tobias Schlueter  
2004-05-15  Tobias Schlueter  
        PR fortran/13742
        PR fortran/13742
        * decl.c (add_init_expr_to_sym): Verify that COMMON variable is
        * decl.c (add_init_expr_to_sym): Verify that COMMON variable is
        not initialized in a disallowed fashion.
        not initialized in a disallowed fashion.
        * match.c (gfc_match_common): Likewise.
        * match.c (gfc_match_common): Likewise.
        (var_element): Verify that variable is not in the blank COMMON,
        (var_element): Verify that variable is not in the blank COMMON,
        if it is in a common.
        if it is in a common.
2004-05-15  Joseph S. Myers  
2004-05-15  Joseph S. Myers  
        * Make-lang.in (f95.generated-manpages): Remove.
        * Make-lang.in (f95.generated-manpages): Remove.
        (f95.srcextra): New.
        (f95.srcextra): New.
        (f95.info, fortran/gfortran.info, fortran/gfortran.dvi,
        (f95.info, fortran/gfortran.info, fortran/gfortran.dvi,
        f95.maintainer-clean): Generate info and dvi files in objdir/doc.
        f95.maintainer-clean): Generate info and dvi files in objdir/doc.
        (f95.dvi): Remove.
        (f95.dvi): Remove.
        (dvi): New.
        (dvi): New.
        (f95.install-info): Remove.
        (f95.install-info): Remove.
        (install-info): New.
        (install-info): New.
2004-05-15  Victor Leikehman  
2004-05-15  Victor Leikehman  
        * decl.c (add_init_expr_to_sym): Check for variable size arrays.
        * decl.c (add_init_expr_to_sym): Check for variable size arrays.
2004-05-15  Tobias Schlueter  
2004-05-15  Tobias Schlueter  
        * primary.c (match_boz_constant): Use gfc_notify_std() for
        * primary.c (match_boz_constant): Use gfc_notify_std() for
        issuing a warning or an error.
        issuing a warning or an error.
2004-05-15  Tobias Schlueter  
2004-05-15  Tobias Schlueter  
        PR fortran/13826
        PR fortran/13826
        * primary.c (match_structure_constructor): Rename ...
        * primary.c (match_structure_constructor): Rename ...
        (gfc_match_structure_constructor): ... to this. Make non-static.
        (gfc_match_structure_constructor): ... to this. Make non-static.
        (gfc_match_rvalue): Call renamed function.
        (gfc_match_rvalue): Call renamed function.
        * match.h (gfc_match_structure_constructor): Declare.
        * match.h (gfc_match_structure_constructor): Declare.
        * match.c (gfc_match_data_constant): Handle structure
        * match.c (gfc_match_data_constant): Handle structure
        constructor.
        constructor.
2004-05-15  Tobias Schlueter  
2004-05-15  Tobias Schlueter  
        PR fortran/13702
        PR fortran/13702
        (Port from g95)
        (Port from g95)
        * gfortran.h (gfc_linebuf): New typedef.
        * gfortran.h (gfc_linebuf): New typedef.
        (linebuf): Remove.
        (linebuf): Remove.
        (gfc_file): Revamped, use new gfc_linebuf.
        (gfc_file): Revamped, use new gfc_linebuf.
        (locus): Revamped, use new types.
        (locus): Revamped, use new types.
        (gfc_current_file): Remove.
        (gfc_current_file): Remove.
        (gfc_current_form, gfc_source_file): New global variables.
        (gfc_current_form, gfc_source_file): New global variables.
        * match.c (gfc_match_space, gfc_match_strings): Use
        * match.c (gfc_match_space, gfc_match_strings): Use
        gfc_current_form to find source form.
        gfc_current_form to find source form.
        * module.c (gfc_dump_module): Use gfc_source_file when printing
        * module.c (gfc_dump_module): Use gfc_source_file when printing
        module header.
        module header.
        * error.c (show_locus, show_loci) Use new data structures to print
        * error.c (show_locus, show_loci) Use new data structures to print
        locus.
        locus.
        * scanner.c (first_file, first_duplicated_file, gfc_current_file):
        * scanner.c (first_file, first_duplicated_file, gfc_current_file):
        Remove.
        Remove.
        (file_head, current_file, gfc_current_form, line_head, line_tail,
        (file_head, current_file, gfc_current_form, line_head, line_tail,
        gfc_current_locus1, gfc_source_file): New global variables.
        gfc_current_locus1, gfc_source_file): New global variables.
        (gfc_scanner_init1): Set new global variables.
        (gfc_scanner_init1): Set new global variables.
        (gfc_scanner_done1): Free new data structures.
        (gfc_scanner_done1): Free new data structures.
        (gfc_current_locus): Return pointer to gfc_current_locus1.
        (gfc_current_locus): Return pointer to gfc_current_locus1.
        (gfc_set_locus): Set gfc_current_locus1.
        (gfc_set_locus): Set gfc_current_locus1.
        (gfc_at_eof): Set new variables.
        (gfc_at_eof): Set new variables.
        (gfc_at_bol, gfc_at_eol, gfc_advance_line, gfc_next_char): Adapt
        (gfc_at_bol, gfc_at_eol, gfc_advance_line, gfc_next_char): Adapt
        to new locus structure.
        to new locus structure.
        (gfc_check_include): Remove.
        (gfc_check_include): Remove.
        (skip_free_comments, skip_fixed_comments): Use gfc_current_locus1.
        (skip_free_comments, skip_fixed_comments): Use gfc_current_locus1.
        (gfc_skip_comments): Use gfc_current_form, find locus with
        (gfc_skip_comments): Use gfc_current_form, find locus with
        gfc_current_locus1.
        gfc_current_locus1.
        (gfc_next_char): Use gfc_current_form.
        (gfc_next_char): Use gfc_current_form.
        (gfc_peek_char, gfc_gobble_whitespace): Use gfc_current_locus1.
        (gfc_peek_char, gfc_gobble_whitespace): Use gfc_current_locus1.
        (load_line): Use gfc_current_form. Recognize ^Z as EOF. Fix
        (load_line): Use gfc_current_form. Recognize ^Z as EOF. Fix
        comment formatting.
        comment formatting.
        (get_file): New function.
        (get_file): New function.
        (preprocessor_line, include_line): New functions.
        (preprocessor_line, include_line): New functions.
        (load_file): Move down, rewrite to match new data structures.
        (load_file): Move down, rewrite to match new data structures.
        (gfc_new_file): 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
        * parse.c (next_statement): Remove code which is now useless. Use
        gfc_source_form and gfc_source_file where appropriate.
        gfc_source_form and gfc_source_file where appropriate.
        * trans-decl.c (gfc_get_label_decl): adapt to new data structures
        * trans-decl.c (gfc_get_label_decl): adapt to new data structures
        when determining locus of frontend code.
        when determining locus of frontend code.
        * trans-io.c (set_error_locus): Same.
        * trans-io.c (set_error_locus): Same.
        * trans.c (gfc_get_backend_locus, gfc_set_backend_locus): Likewise.
        * trans.c (gfc_get_backend_locus, gfc_set_backend_locus): Likewise.
        * lang-specs.h (@f77-cpp-input, @f95-cpp-input): Remove '-P' from
        * lang-specs.h (@f77-cpp-input, @f95-cpp-input): Remove '-P' from
        preprocessor flags.
        preprocessor flags.
        (all): Add missing initializers.
        (all): Add missing initializers.
2004-05-15  Tobias Schlueter  
2004-05-15  Tobias Schlueter  
        * Make-lang.in (trans-common.o): Remove redundant dependency.
        * Make-lang.in (trans-common.o): Remove redundant dependency.
        (data.c): Replace object file name ...
        (data.c): Replace object file name ...
        (data.o): ... by the correct one.
        (data.o): ... by the correct one.
2004-05-14  Tobias Schlueter  
2004-05-14  Tobias Schlueter  
        * dump-parse-tree.c (gfc_show_array_ref): Print colon only
        * dump-parse-tree.c (gfc_show_array_ref): Print colon only
        for ranges when dumping array references.
        for ranges when dumping array references.
2004-05-14  Victor Leikehman  
2004-05-14  Victor Leikehman  
        * decl.c (variable_decl): Always apply default initializer.
        * decl.c (variable_decl): Always apply default initializer.
2004-05-08  Tobias Schlüter  
2004-05-08  Tobias Schlüter  
        PR fortran/15206
        PR fortran/15206
        * trans-intrinsic.c (gfc_conv_intrinsic_rrspacing): Fixed to
        * trans-intrinsic.c (gfc_conv_intrinsic_rrspacing): Fixed to
        handle zero correctly.
        handle zero correctly.
2004-05-14  Tobias Schlueter  
2004-05-14  Tobias Schlueter  
        * match.c (gfc_match): Eliminate dead code.
        * match.c (gfc_match): Eliminate dead code.
2004-05-14  Tobias Schlueter  
2004-05-14  Tobias Schlueter  
        * parse.c (gfc_statement_next_fixed): (Change from Andy's tree)
        * parse.c (gfc_statement_next_fixed): (Change from Andy's tree)
        Detect bad continuation line in fixed form sources.
        Detect bad continuation line in fixed form sources.
2004-05-14  Tobias Schlueter  
2004-05-14  Tobias Schlueter  
        PR fortran/15205
        PR fortran/15205
        * iresolve.c (gfc_resolve_nearest): Add new function.
        * iresolve.c (gfc_resolve_nearest): Add new function.
        * intrinsic.h: ... declare it here.
        * intrinsic.h: ... declare it here.
        * intrinsic.c (add_functions): ... add it as resolving function
        * intrinsic.c (add_functions): ... add it as resolving function
        for NEAREST.
        for NEAREST.
2004-05-14  Tobias Schlueter  
2004-05-14  Tobias Schlueter  
        PR fortran/14066
        PR fortran/14066
        * match.c (gfc_match_do): Allow infinite loops with
        * match.c (gfc_match_do): Allow infinite loops with
        label-do-stmt. Do not enforce space after comma.
        label-do-stmt. Do not enforce space after comma.
2004-05-14  Tobias Schlueter  
2004-05-14  Tobias Schlueter  
        PR fortran/15051
        PR fortran/15051
        * parse.c (parse_interface): Allow empty INTERFACE, remove
        * parse.c (parse_interface): Allow empty INTERFACE, remove
        seen_body.
        seen_body.
2004-05-14  Tobias Schlueter  
2004-05-14  Tobias Schlueter  
        * Make-lang.in, arith.c, arith.h, array.c, bbt.c, check.c,
        * 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,
        decl.c, dependency.c, dependency.h, dump-parse-tree.c, error.c,
        expr.c, f95-lang.c, gfortran.h, interface.c, intrinsic.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,
        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,
        matchexp.c, misc.c, module.c, options.c, parse.c, parse.h,
        primary.c, resolve.c, scanner.c, simplify.c, st.c, symbol.c,
        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-array.c, trans-array.h, trans-common.c, trans-const.c,
        trans-const.h, trans-decl.c, trans-expr.c, trans-intrinsic.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-io.c, trans-stmt.c, trans-stmt.h, trans-types.c,
        trans-types.h, trans.c, trans.h: Update copyright years and
        trans-types.h, trans.c, trans.h: Update copyright years and
        boilerplate.
        boilerplate.
        * data.c: Likewise, also removed two whitespace-only lines.
        * data.c: Likewise, also removed two whitespace-only lines.
        * gfortranspec.c, lang.opt: Update copyright years.
        * gfortranspec.c, lang.opt: Update copyright years.
2004-05-14  Tobias Schlueter  
2004-05-14  Tobias Schlueter  
        PR fortran/14568
        PR fortran/14568
        * trans-decl.c (generate_local_decl): Don't warn for unused
        * trans-decl.c (generate_local_decl): Don't warn for unused
        variables which are in common blocks.
        variables which are in common blocks.
2004-05-13  Diego Novillo  
2004-05-13  Diego Novillo  
        * Make-lang.in, f95-lang.c, trans-array.c, trans-decl.c,
        * 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-expr.c, trans-intrinsic.c, trans-io.c, trans-stmt.c,
        trans.c: Rename tree-simple.[ch] to tree-gimple.[ch].
        trans.c: Rename tree-simple.[ch] to tree-gimple.[ch].
2004-05-13  Victor Leikehman  
2004-05-13  Victor Leikehman  
        PR fortran/15314
        PR fortran/15314
        * trans-expr.c (gfc_conv_structure): Use field type, not expr type.
        * trans-expr.c (gfc_conv_structure): Use field type, not expr type.
2004-05-13  Joseph S. Myers  
2004-05-13  Joseph S. Myers  
        * gfortran.texi: Use @table @emph instead of @itemize @emph.
        * gfortran.texi: Use @table @emph instead of @itemize @emph.
        Remove "set DEVELOPMENT".
        Remove "set DEVELOPMENT".
        (Compiling GFORTRAN): Remove.
        (Compiling GFORTRAN): Remove.
2004-05-09  Tobias Schlüter  
2004-05-09  Tobias Schlüter  
        * array.c (match_subscript, match_array_ref): Add comments
        * array.c (match_subscript, match_array_ref): Add comments
        explaining argument 'init'.
        explaining argument 'init'.
        * decl.c, f95-lang.c, match.c, resolve.c, trans-array.c,
        * decl.c, f95-lang.c, match.c, resolve.c, trans-array.c,
        trans-expr.c, trans.c: Fix some typos in comments.
        trans-expr.c, trans.c: Fix some typos in comments.
        * dump-parse-tree.c (gfc_show_expr): Remove wrong comment.
        * dump-parse-tree.c (gfc_show_expr): Remove wrong comment.
        * primary.c (match_digits, match_integer_constant): Add comment
        * primary.c (match_digits, match_integer_constant): Add comment
        explaining signflag.
        explaining signflag.
2004-05-01  Tobias Schlüter  
2004-05-01  Tobias Schlüter  
        PR fortran/13940
        PR fortran/13940
        * primary.c: Include system.h and flags.h, needed for pedantic.
        * primary.c: Include system.h and flags.h, needed for pedantic.
        (match_boz_constant): Allow "x" for hexadecimal constants, warn if
        (match_boz_constant): Allow "x" for hexadecimal constants, warn if
        pedantic is set.
        pedantic is set.
2004-05-01  Tobias Schlüter  
2004-05-01  Tobias Schlüter  
        PR fortran/13940
        PR fortran/13940
        * match.c (match_data_constant): Handle case where
        * match.c (match_data_constant): Handle case where
        gfc_find_symbol sets sym to NULL
        gfc_find_symbol sets sym to NULL
2004-04-28  Tobias Schlüter  
2004-04-28  Tobias Schlüter  
        * Make-lang.in (f95-lang.o, trans-intrinsic.o): Add missing
        * Make-lang.in (f95-lang.o, trans-intrinsic.o): Add missing
        dependency on mathbuiltins.def
        dependency on mathbuiltins.def
2004-04-24  Victor Leikehman  
2004-04-24  Victor Leikehman  
        * trans-io.c (transfer_expr): Implemented recursive printing
        * trans-io.c (transfer_expr): Implemented recursive printing
        of derived types.
        of derived types.
2004-04-24  Andrew Pinski  
2004-04-24  Andrew Pinski  
        * gfortranspec.c: Do not include multilib.h.
        * gfortranspec.c: Do not include multilib.h.
2004-04-24  Tobias Schlüter  
2004-04-24  Tobias Schlüter  
        * trans-intrinsic.c: Fix comment, this is not trans-expr.c. Add
        * trans-intrinsic.c: Fix comment, this is not trans-expr.c. Add
        2004 to copyright years.
        2004 to copyright years.
        * trans-expr.c, trans-decl.c: Comment update, we now generate
        * trans-expr.c, trans-decl.c: Comment update, we now generate
        GENERIC, not SIMPLE. Add 2004 to copyright years.
        GENERIC, not SIMPLE. Add 2004 to copyright years.
2004-04-24  Paul Brook  
2004-04-24  Paul Brook  
        * Make-lang.in (gfortranspec.o): Add dependency on $(TM_H).
        * Make-lang.in (gfortranspec.o): Add dependency on $(TM_H).
2004-04-24  Feng Wang  
2004-04-24  Feng Wang  
        PR 14817
        PR 14817
        * arith.c (gfc_arith_divide): Fix complex divide.
        * arith.c (gfc_arith_divide): Fix complex divide.
2004-04-23  Andrew Pinski  
2004-04-23  Andrew Pinski  
        * gfortranspec.c: Include the target headers.
        * gfortranspec.c: Include the target headers.
2004-04-18  Feng Wang  
2004-04-18  Feng Wang  
        PR fortran/14921
        PR fortran/14921
        PR fortran/14540
        PR fortran/14540
        * arith.c (arctangent2): New function.
        * arith.c (arctangent2): New function.
        * arith.h (arctangent2): Add function prototype.
        * arith.h (arctangent2): Add function prototype.
        * simplify.c (gfc_simplify_atan2): Use it.
        * simplify.c (gfc_simplify_atan2): Use it.
        (gfc_simplify_log): Use it.
        (gfc_simplify_log): Use it.
2004-04-12  Diego Novillo  
2004-04-12  Diego Novillo  
        * fortran/f95-lang.c (gfc_expand_stmt): Remove.
        * fortran/f95-lang.c (gfc_expand_stmt): Remove.
        (LANG_HOOKS_RTL_EXPAND_STMT): Remove.
        (LANG_HOOKS_RTL_EXPAND_STMT): Remove.
2004-04-11  Bud Davis  
2004-04-11  Bud Davis  
        PR fortran/14872
        PR fortran/14872
        * trans-io.c (build_dt): Change REC to value.
        * trans-io.c (build_dt): Change REC to value.
2004-04-11  Feng Wang  
2004-04-11  Feng Wang  
        PR 14394
        PR 14394
        * trans-const.c (gfc_conv_mpf_to_tree): Loosen the maximum digits of
        * trans-const.c (gfc_conv_mpf_to_tree): Loosen the maximum digits of
        the real value when converting mpf to string.
        the real value when converting mpf to string.
2004-04-11  Feng Wang  
2004-04-11  Feng Wang  
        PR 14395
        PR 14395
        * trans-intrinsic.c (gfc_conv_intrinsic_cmplx): Fix the imag part of
        * trans-intrinsic.c (gfc_conv_intrinsic_cmplx): Fix the imag part of
        the result.
        the result.
2004-04-11  Feng Wang  
2004-04-11  Feng Wang  
        PR fortran/14377
        PR fortran/14377
        * simplify.c (simplify_min_max): Convert the type of the result.
        * simplify.c (simplify_min_max): Convert the type of the result.
2004-04-11  Paul Brook  
2004-04-11  Paul Brook  
        * gfortran.texi: Use full target triplet.
        * gfortran.texi: Use full target triplet.
2004-04-11  Paul Brook  
2004-04-11  Paul Brook  
        * Make-lang.in (GFORTRAN_TEXI): Set it.
        * Make-lang.in (GFORTRAN_TEXI): Set it.
        (fortran/dfortran.dvi): Use it.  Add fortran to include paths.
        (fortran/dfortran.dvi): Use it.  Add fortran to include paths.
        (fortran/gfortran.info): Ditto.
        (fortran/gfortran.info): Ditto.
        * gfortran.texi: Major update.
        * gfortran.texi: Major update.
        * invoke.texi: New file.
        * invoke.texi: New file.
2004-04-10  Paul Brook  
2004-04-10  Paul Brook  
        * trans-array.c (gfc_trans_allocate_temp_array,
        * trans-array.c (gfc_trans_allocate_temp_array,
        gfc_conv_tmp_array_ref): Don't use GFC_DECL_STRING.
        gfc_conv_tmp_array_ref): Don't use GFC_DECL_STRING.
        * trans-decl.c (gfc_build_dummy_array_decl,
        * trans-decl.c (gfc_build_dummy_array_decl,
        gfc_get_symbol_decl, gfc_build_function_decl,
        gfc_get_symbol_decl, gfc_build_function_decl,
        gfc_create_module_variable): Ditto.
        gfc_create_module_variable): Ditto.
        * trans-expr.c (gfc_conv_variable): Ditto.
        * trans-expr.c (gfc_conv_variable): Ditto.
        * trans-intrinsic.c (gfc_conv_intrinsic_len): Ditto.
        * trans-intrinsic.c (gfc_conv_intrinsic_len): Ditto.
        * trans.h (GFC_DECL_STRING): Remove.
        * trans.h (GFC_DECL_STRING): Remove.
        (GFC_DECL_PACKED_ARRAY, GFC_DECL_PARTIAL_PACKED_ARRAY,
        (GFC_DECL_PACKED_ARRAY, GFC_DECL_PARTIAL_PACKED_ARRAY,
        GFC_DECL_ASSIGN): Renumber flags.
        GFC_DECL_ASSIGN): Renumber flags.
2004-04-05  Paul Brook  
2004-04-05  Paul Brook  
        PR 13252
        PR 13252
        PR 14081
        PR 14081
        * f95-lang.c (gfc_init_builtin_functions): Add stack_alloc, stack_save
        * f95-lang.c (gfc_init_builtin_functions): Add stack_alloc, stack_save
        and stack_restore.
        and stack_restore.
        * gfortran.h (struct gfc_charlen): Add backend_decl.
        * gfortran.h (struct gfc_charlen): Add backend_decl.
        * trans-array.c (gfc_trans_allocate_temp_array,
        * trans-array.c (gfc_trans_allocate_temp_array,
        gfc_conv_temp_array_ref, gfc_conv_resolve_dependencies,
        gfc_conv_temp_array_ref, gfc_conv_resolve_dependencies,
        (gfc_conv_loop_setup, gfc_array_allocate, gfc_conv_array_init_size):
        (gfc_conv_loop_setup, gfc_array_allocate, gfc_conv_array_init_size):
        Remove old, broken string handling.
        Remove old, broken string handling.
        (gfc_trans_auto_array_allocation, gfc_trans_g77_array,
        (gfc_trans_auto_array_allocation, gfc_trans_g77_array,
        gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor,
        gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor,
        gfc_trans_deferred_array): Handle character arrays.
        gfc_trans_deferred_array): Handle character arrays.
        * trans-const.c (gfc_conv_const_charlen): New function.
        * trans-const.c (gfc_conv_const_charlen): New function.
        * trans-const.h (gfc_conv_const_charlen): Add prototype.
        * trans-const.h (gfc_conv_const_charlen): Add prototype.
        * trans-decl.c (gfc_finish_var_decl): Don't mark automatic variables
        * trans-decl.c (gfc_finish_var_decl): Don't mark automatic variables
        as static.
        as static.
        (gfc_build_dummy_array_decl): Handle arrays with unknown element size.
        (gfc_build_dummy_array_decl): Handle arrays with unknown element size.
        (gfc_create_string_length): New function.
        (gfc_create_string_length): New function.
        (gfc_get_symbol_decl): Create lengths for character variables.
        (gfc_get_symbol_decl): Create lengths for character variables.
        (gfc_get_fake_result_decl): Ditto.
        (gfc_get_fake_result_decl): Ditto.
        (gfc_build_function_decl): Only set length for assumed length
        (gfc_build_function_decl): Only set length for assumed length
        character arguments.
        character arguments.
        (gfc_trans_dummy_character): New function.
        (gfc_trans_dummy_character): New function.
        (gfc_trans_auto_character_variable): Rewrite.
        (gfc_trans_auto_character_variable): Rewrite.
        (gfc_trans_deferred_vars): Handle more types of character variable.
        (gfc_trans_deferred_vars): Handle more types of character variable.
        (gfc_create_module_variable): String lengths have moved.
        (gfc_create_module_variable): String lengths have moved.
        (gfc_generate_function_code): Initialize deferred var chain earlier.
        (gfc_generate_function_code): Initialize deferred var chain earlier.
        * trans-expr.c (gfc_conv_init_string_length): Rename ...
        * trans-expr.c (gfc_conv_init_string_length): Rename ...
        (gfc_trans_init_string_length):  ... to this.
        (gfc_trans_init_string_length):  ... to this.
        (gfc_conv_component_ref, gfc_conv_variable, gfc_conv_concat_op,
        (gfc_conv_component_ref, gfc_conv_variable, gfc_conv_concat_op,
        gfc_conv_function_call): Update to new format for character variables.
        gfc_conv_function_call): Update to new format for character variables.
        (gfc_conv_string_length): Remove.
        (gfc_conv_string_length): Remove.
        (gfc_conv_string_parameter): Update assertion.
        (gfc_conv_string_parameter): Update assertion.
        * trans-intrinsic.c (gfc_conv_intrinsic_len): Use new location.
        * trans-intrinsic.c (gfc_conv_intrinsic_len): Use new location.
        * trans-io.c (set_string): Use new macro names.
        * trans-io.c (set_string): Use new macro names.
        * trans-stmt.c (gfc_trans_label_assign. gfc_trans_goto): Ditto.
        * trans-stmt.c (gfc_trans_label_assign. gfc_trans_goto): Ditto.
        * trans-types.c (gfc_get_character_type): Use existing length expr.
        * trans-types.c (gfc_get_character_type): Use existing length expr.
        (gfc_is_nodesc_array): Make public.
        (gfc_is_nodesc_array): Make public.
        (gfc_get_dtype_cst): Rename ...
        (gfc_get_dtype_cst): Rename ...
        (gfc_get_dtype): ... to this.  Handle unknown size arrays.
        (gfc_get_dtype): ... to this.  Handle unknown size arrays.
        (gfc_get_nodesc_array_type): Use new name.
        (gfc_get_nodesc_array_type): Use new name.
        (gfc_sym_type): New character variable code.
        (gfc_sym_type): New character variable code.
        (gfc_get_derived_type): Ditto.
        (gfc_get_derived_type): Ditto.
        (gfc_get_function_type): Evaluate character variable lengths.
        (gfc_get_function_type): Evaluate character variable lengths.
        * trans-types.h (gfc_strlen_kind): Define.
        * trans-types.h (gfc_strlen_kind): Define.
        (gfc_is_nodesc_array): Add prototype.
        (gfc_is_nodesc_array): Add prototype.
        * trans.h: Update prototypes.
        * trans.h: Update prototypes.
        (struct lang_type): Update comments.
        (struct lang_type): Update comments.
        (GFC_DECL_STRING_LEN): New name for GFC_DECL_STRING_LENGTH.
        (GFC_DECL_STRING_LEN): New name for GFC_DECL_STRING_LENGTH.
        (GFC_KNOWN_SIZE_STRING_TYPE): Remove.
        (GFC_KNOWN_SIZE_STRING_TYPE): Remove.
2004-04-04  Paul Brook  
2004-04-04  Paul Brook  
        * gfortran.h (struct gfc_option_t): Remove flag_g77_calls.
        * gfortran.h (struct gfc_option_t): Remove flag_g77_calls.
        * options.c (gfc_init.options, gfc_handle_option): Ditto.
        * options.c (gfc_init.options, gfc_handle_option): Ditto.
        * trans-expr.c (gfc_conv_function_call): Ditto.
        * trans-expr.c (gfc_conv_function_call): Ditto.
        * trans-types.c (gfc_is_nodesc_array): Ditto
        * trans-types.c (gfc_is_nodesc_array): Ditto
        * lang.opt (fg77-calls): Remove.
        * lang.opt (fg77-calls): Remove.
2004-04-04  Paul Brook  
2004-04-04  Paul Brook  
        * trans-array.c (OFFSET_FIELD): Rename from BASE_FIELD.
        * trans-array.c (OFFSET_FIELD): Rename from BASE_FIELD.
        (gfc_conv_descriptor_base): Rename ...
        (gfc_conv_descriptor_base): Rename ...
        (gfc_conv_descriptor_offset): ... to this.
        (gfc_conv_descriptor_offset): ... to this.
        (gfc_trans_allocate_array_storage): Set offset to zero.
        (gfc_trans_allocate_array_storage): Set offset to zero.
        (gfc_conv_array_base): Rename ...
        (gfc_conv_array_base): Rename ...
        (gfc_conv_array_offset): ... to this.
        (gfc_conv_array_offset): ... to this.
        (gfc_conv_array_index_ref): Add offset parameter.
        (gfc_conv_array_index_ref): Add offset parameter.
        (gfc_conv_array_ref): Include offset.
        (gfc_conv_array_ref): Include offset.
        (gfc_trans_preloop_setup): Use existing offset.
        (gfc_trans_preloop_setup): Use existing offset.
        (gfc_trans_allocate_temp_array,  gfc_array_allocate,
        (gfc_trans_allocate_temp_array,  gfc_array_allocate,
        gfc_trans_auto_array_allocation, gfc_trans_g77_array,
        gfc_trans_auto_array_allocation, gfc_trans_g77_array,
        gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor,
        gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor,
        gfc_conf_ss_descriptor): Set offset.
        gfc_conf_ss_descriptor): Set offset.
        * trans-array.h: Rename prototypes.
        * trans-array.h: Rename prototypes.
        * trans-const.h (gfc_index_zero_node): Define.
        * trans-const.h (gfc_index_zero_node): Define.
        * trans-decl.c (gfc_build_qualified_array): Change base to offset.
        * trans-decl.c (gfc_build_qualified_array): Change base to offset.
        * trans-types.c (gfc_get_array_type_bounds): Ditto.
        * trans-types.c (gfc_get_array_type_bounds): Ditto.
        (gfc_get_nodesc_array_type): Calculate offset before upper bound.
        (gfc_get_nodesc_array_type): Calculate offset before upper bound.
2004-03-25  Diego Novillo  
2004-03-25  Diego Novillo  
        * convert.c (convert): Don't handle WITH_RECORD_EXPR.
        * convert.c (convert): Don't handle WITH_RECORD_EXPR.
2004-03-24  Bud Davis  
2004-03-24  Bud Davis  
        PR 14055
        PR 14055
        * arith.c (gfc_convert_integer,gfc_convert_real):  Removed leading '+'
        * arith.c (gfc_convert_integer,gfc_convert_real):  Removed leading '+'
        before conversion by gmp library call.
        before conversion by gmp library call.
2004-03-24  Bud Davis  
2004-03-24  Bud Davis  
        PR 12921
        PR 12921
        * trans-io.c (gfc_trans_open): Change RECL= to a value parameter.
        * trans-io.c (gfc_trans_open): Change RECL= to a value parameter.
2004-02-24  Richard Henderson  
2004-02-24  Richard Henderson  
        * trans-array.c (gfc_trans_dummy_array_bias): Fix typo.
        * trans-array.c (gfc_trans_dummy_array_bias): Fix typo.
2004-02-19  Loren J. Rittle  
2004-02-19  Loren J. Rittle  
        * Make-lang.in ($(srcdir)/fortran/gfortran.info): Move...
        * Make-lang.in ($(srcdir)/fortran/gfortran.info): Move...
        (fortran/gfortran.info): ... to here.
        (fortran/gfortran.info): ... to here.
        (f95.srcinfo): New.
        (f95.srcinfo): New.
2004-02-16  Richard Henderson  
2004-02-16  Richard Henderson  
        * Make-lang.in (f95-lang.o, trans-decl.o): Depend on cgraph.h.
        * Make-lang.in (f95-lang.o, trans-decl.o): Depend on cgraph.h.
        * f95-lang.c (LANG_HOOKS_EXPAND_DECL): Remove.
        * f95-lang.c (LANG_HOOKS_EXPAND_DECL): Remove.
        (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): New.
        (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): New.
        (gfc_expand_function): Rename from expand_function_body, make static,
        (gfc_expand_function): Rename from expand_function_body, make static,
        don't do anything except invoke tree_rest_of_compilation.
        don't do anything except invoke tree_rest_of_compilation.
        (gfc_be_parse_file): Invoke cgraph.
        (gfc_be_parse_file): Invoke cgraph.
        (gfc_expand_decl): Remove.
        (gfc_expand_decl): Remove.
        (gfc_init_builtin_functions): Add __builtin_init_trampoline and
        (gfc_init_builtin_functions): Add __builtin_init_trampoline and
        __builtin_adjust_trampoline.
        __builtin_adjust_trampoline.
        * trans-decl.c (gfc_get_extern_function_decl): Don't set DECL_CONTEXT.
        * trans-decl.c (gfc_get_extern_function_decl): Don't set DECL_CONTEXT.
        (gfc_finalize): New.
        (gfc_finalize): New.
        (gfc_generate_function_code): Use it.  Lower nested functions.
        (gfc_generate_function_code): Use it.  Lower nested functions.
        * trans-expr.c (gfc_conv_function_call): Add static chain operand
        * trans-expr.c (gfc_conv_function_call): Add static chain operand
        to call_expr.
        to call_expr.
        * trans.c (gfc_build_function_call): Likewise.
        * trans.c (gfc_build_function_call): Likewise.
        * trans.h (expand_function_body): Remove.
        * trans.h (expand_function_body): Remove.
2004-02-15  Victor Leikehman  
2004-02-15  Victor Leikehman  
        PR gfortran/13433
        PR gfortran/13433
        * trans-decl.c (gfc_build_function_decl) For functions
        * trans-decl.c (gfc_build_function_decl) For functions
        returning CHARACTER pass an extra length argument,
        returning CHARACTER pass an extra length argument,
        following g77 calling conventions.
        following g77 calling conventions.
        * trans-types.c (gfc_get_function_type) Ditto.
        * trans-types.c (gfc_get_function_type) Ditto.
        * trans-expr.c (gfc_conv_function_call) Ditto.
        * trans-expr.c (gfc_conv_function_call) Ditto.
2004-02-14  Paul Brook  
2004-02-14  Paul Brook  
        * f95-lang.c (gfc_init_builtin_functions): Build chain properly.
        * f95-lang.c (gfc_init_builtin_functions): Build chain properly.
2004-02-12  Paul Brook  
2004-02-12  Paul Brook  
        * BUGS: Remove.
        * BUGS: Remove.
2004-02-08  Steve Kargl  
2004-02-08  Steve Kargl  
        * gfortran.texi: Fix typos.
        * gfortran.texi: Fix typos.
2004-02-07  Bud Davis  
2004-02-07  Bud Davis  
        PR gfortran/13909
        PR gfortran/13909
        * intrinsic.c (add_conversions) Use logical conversion instead
        * intrinsic.c (add_conversions) Use logical conversion instead
        of real.
        of real.
        * trans-types.c (gfc_get_logical_type) implemented logical*1
        * trans-types.c (gfc_get_logical_type) implemented logical*1
        and logical*2.
        and logical*2.
2004-01-17  Paul Brook  
2004-01-17  Paul Brook  
        * lang-specs.h: Remove %
        * lang-specs.h: Remove %
2004-01-15  Toon Moene  
2004-01-15  Toon Moene  
        * lang-specs.h: Enable preprocessing of source files
        * lang-specs.h: Enable preprocessing of source files
        ending in .F, .fpp, .FPP, .F90 and .F95.
        ending in .F, .fpp, .FPP, .F90 and .F95.
2004-01-13  Toon Moene  
2004-01-13  Toon Moene  
        PR fortran/12912
        PR fortran/12912
        * lang-specs.h: Enable compilation of files ending
        * lang-specs.h: Enable compilation of files ending
        in .f, .for and .FOR.
        in .f, .for and .FOR.
2004-01-11  Paul Brook  
2004-01-11  Paul Brook  
        * trans-stmt.c (gfc_trans_if_1): New function.
        * trans-stmt.c (gfc_trans_if_1): New function.
        (gfc_trans_if): Use it.
        (gfc_trans_if): Use it.
2004-01-11  Erik Schnetter  
2004-01-11  Erik Schnetter  
        * gfortran.h (GFC_MAX_SYMBOL_LEN): Increase.
        * gfortran.h (GFC_MAX_SYMBOL_LEN): Increase.
        (gfc_option_t): Add max_identifier_length.
        (gfc_option_t): Add max_identifier_length.
        * lang.opt: Add fmax-identifier-length.
        * lang.opt: Add fmax-identifier-length.
        * match.c (parse_name): Use limit.
        * match.c (parse_name): Use limit.
        * options.c (gfc_init_options): Set max_identifier_length.
        * options.c (gfc_init_options): Set max_identifier_length.
        (gfc_handle_option): Ditto.
        (gfc_handle_option): Ditto.
2004-01-11  Feng Wang  
2004-01-11  Feng Wang  
        * intrinsic.c (add_functions): Add resolve function to dcmplx.
        * intrinsic.c (add_functions): Add resolve function to dcmplx.
        * intrinsic.h (gfc_resolve_dcmplx): Add prototype.
        * intrinsic.h (gfc_resolve_dcmplx): Add prototype.
        * iresolve.c (gfc_resolve_dcmplx): New function.
        * iresolve.c (gfc_resolve_dcmplx): New function.
2004-01-10  Paul Brook  
2004-01-10  Paul Brook  
        * trans-decl.c (gfc_get_symbol_decl): Don't set subroutine attr.
        * trans-decl.c (gfc_get_symbol_decl): Don't set subroutine attr.
        * trans-types.c (gfc_sym_type): Handle external dummy procedures.
        * trans-types.c (gfc_sym_type): Handle external dummy procedures.
        (gfc_return_by_reference): Correct condition.
        (gfc_return_by_reference): Correct condition.
        (gfc_get_function_type): Ditto.
        (gfc_get_function_type): Ditto.
2004-01-10  Paul Brook  
2004-01-10  Paul Brook  
        * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Convert mismatched
        * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Convert mismatched
        types.
        types.
2004-01-10  Huang Chun  
2004-01-10  Huang Chun  
        * iresolve.c: Use correct kind.
        * iresolve.c: Use correct kind.
2004-01-10  Huang Chun  
2004-01-10  Huang Chun  
        PR fortran/13467
        PR fortran/13467
        * trans-decl.c (gfc_create_module_variable):  Output array valued
        * trans-decl.c (gfc_create_module_variable):  Output array valued
        parameters.
        parameters.
2004-01-10  Paul Brook  
2004-01-10  Paul Brook  
        * resolve.c (resolve_branch): Get error message right way round.
        * resolve.c (resolve_branch): Get error message right way round.
2004-01-10  Canqun Yang  
2004-01-10  Canqun Yang  
        * trans-array (gfc_conv_loop_setup): Adjust comment to track
        * trans-array (gfc_conv_loop_setup): Adjust comment to track
        reality.
        reality.
        (gfc_array_allocate): Don't count size of element twice.
        (gfc_array_allocate): Don't count size of element twice.
2004-01-04  Paul Brook  
2004-01-04  Paul Brook  
        * lang.opt (i8, r8, std=*): Remove RejectNegative.
        * lang.opt (i8, r8, std=*): Remove RejectNegative.
2004-01-04  Paul Brook  
2004-01-04  Paul Brook  
        * error.c (gfc_notify_std): New function.
        * error.c (gfc_notify_std): New function.
        * gfortran.h (gfc_notify_std): Declare.
        * gfortran.h (gfc_notify_std): Declare.
        (GFC_STD_*): Define.
        (GFC_STD_*): Define.
        (gfc_option_t): Add warn_std and allow_std.
        (gfc_option_t): Add warn_std and allow_std.
        * intrinsic.c (gfc_init_expr_extensions): Fix logic.
        * intrinsic.c (gfc_init_expr_extensions): Fix logic.
        (gfc_intrinsic_func_interface): Use gfc_notify_std.
        (gfc_intrinsic_func_interface): Use gfc_notify_std.
        * check.c (check_rest): Use gfc_notify_std.
        * check.c (check_rest): Use gfc_notify_std.
        * match.c (gfc_match_pause): Ditto.
        * match.c (gfc_match_pause): Ditto.
        (gfc_match_assign): Ditto.
        (gfc_match_assign): Ditto.
        (gfc_match_goto): Ditto.
        (gfc_match_goto): Ditto.
        * resolve.c (resolve_branch): Ditto.
        * resolve.c (resolve_branch): Ditto.
        * lang.opt: Add std= and w.
        * lang.opt: Add std= and w.
        * options.c (gfc_init_options): Set allow_std and warn_std.
        * options.c (gfc_init_options): Set allow_std and warn_std.
        (gfc_handle_option): Handle OPT_std_* and OPT_w.
        (gfc_handle_option): Handle OPT_std_* and OPT_w.
2004-01-01  Paul Brook  
2004-01-01  Paul Brook  
        * array.c (gfc_append_constructor): Take constructor, not expression.
        * array.c (gfc_append_constructor): Take constructor, not expression.
        * data.c (struct gfc_expr_stack): Remove.
        * data.c (struct gfc_expr_stack): Remove.
        (expr_stack): Remove.
        (expr_stack): Remove.
        (find_con_by_offset): Rename from find_expr_in_con.
        (find_con_by_offset): Rename from find_expr_in_con.
        (find_con_by_component): Rename from find_component_in_con.
        (find_con_by_component): Rename from find_component_in_con.
        (gfc_get_expr_stack): Remove.
        (gfc_get_expr_stack): Remove.
        (gfc_assign_data_value): Rewrite.
        (gfc_assign_data_value): Rewrite.
        (gfc_expr_push): Remove.
        (gfc_expr_push): Remove.
        (gfc_expr_pop): Remove.
        (gfc_expr_pop): Remove.
        (gfc_advance_section): Rename from
        (gfc_advance_section): Rename from
        gfc_modify_index_and_calculate_offset.  Handle unbounded sections.
        gfc_modify_index_and_calculate_offset.  Handle unbounded sections.
        (gfc_get_section_index): Handle unbounded sections.
        (gfc_get_section_index): Handle unbounded sections.
        * gfortran.h: Update prototypes.
        * gfortran.h: Update prototypes.
        * resolve.c (check_data_variable): Array section maight not be the
        * resolve.c (check_data_variable): Array section maight not be the
        last ref.
        last ref.
2004-01-01  Paul Brook  
2004-01-01  Paul Brook  
        PR fortran/13432
        PR fortran/13432
        * resolve.c (resolve_symbol): Allow assumed length function results.
        * resolve.c (resolve_symbol): Allow assumed length function results.
2004-01-01  Steve Kargl  
2004-01-01  Steve Kargl  
        * match.c (gfc_match_pause): Fix spelling.
        * match.c (gfc_match_pause): Fix spelling.
2004-01-01  Steven Bosscher  
2004-01-01  Steven Bosscher  
        PR fortran/13251
        PR fortran/13251
        * trans-expr.c (gfc_conv_variable): Take the type kind of a substring
        * trans-expr.c (gfc_conv_variable): Take the type kind of a substring
        reference from the expression.
        reference from the expression.


Copyright (C) 2004 Free Software Foundation, Inc.
Copyright (C) 2004 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
notice and this notice are preserved.
 
 

powered by: WebSVN 2.1.0

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