From 5873154d20d44a71135a99c8a92f8389a3ce0bb5 Mon Sep 17 00:00:00 2001 From: "Steven G. Kargl" Date: Sun, 1 Jan 2006 17:04:47 +0000 Subject: [PATCH] * Split the ChangeLog into years. From-SVN: r109224 --- gcc/fortran/ChangeLog | 9249 +----------------------------------- gcc/fortran/ChangeLog-2002 | 333 ++ gcc/fortran/ChangeLog-2003 | 2339 +++++++++ gcc/fortran/ChangeLog-2004 | 2846 +++++++++++ gcc/fortran/ChangeLog-2005 | 3723 +++++++++++++++ 5 files changed, 9247 insertions(+), 9243 deletions(-) create mode 100644 gcc/fortran/ChangeLog-2002 create mode 100644 gcc/fortran/ChangeLog-2003 create mode 100644 gcc/fortran/ChangeLog-2004 create mode 100644 gcc/fortran/ChangeLog-2005 diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 4d7e648d672..c8c82da8679 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,9244 +1,7 @@ -2005-12-30 Erik Edelmann +2006-01-01 Steven G. Kargl - PR fortran/22607 - * trans-decl.c(gfc_get_extern_function_decl): Don't set - DECL_IS_PURE (fndecl) = 1 for return-by-reference - functions. - - fortran/PR 25396 - * interface.c (gfc_extend_expr): Initialize - e->value.function.name to NULL. - -2005-12-29 Paul Thomas - - PR fortran/25532 - * trans-types.c (copy_dt_decls_ifequal): Copy declarations for - components of derived type components by recursing into - gfc_get_derived_type. - -2005-12-28 Andrew Pinski - - PR fortran/25587 - * trans-io.c (gfc_build_st_parameter): Correct off by one error. - -2005-12-28 Rafael Ávila de Espíndola - - * Make-lang.in: Remove distdir from comment. - -2005-12-24 Paul Thomas - - PR fortran/25029 - PR fortran/21256 - * resolve.c (check_assumed_size_reference, resolve_assumed_size_actual): - Remove because of regressions caused by patch. - (resolve_function, resolve_call, resolve_variable): Remove assumed size - checks because of regressionscaused by patch. - -2005-12-23 Paul Thomas - - PR fortran/25029 - PR fortran/21256 - *resolve.c(resolve_function): Remove assumed size checking for SIZE - and UBOUND and rely on their built-in checking. - -2005-12-22 Tobias Schl"uter - - PR fortran/18990 - * gfortran.h (gfc_charlen): Add resolved field. - * expr.c (gfc_specification_expr): Accept NULL argument. - * resolve.c (gfc_resolve_charlen, gfc_resolve_derived): New. - (gfc_resolve_symbol): Resolve derived type definitions. Use - resolve_charlen to resolve character lengths. - -2005-12-22 Paul Thomas - - PR fortran/20889 - *resolve.c(resolve_structure_cons): Do not attempt to convert - the type of mismatched pointer type components, except when - the constructor component is BT_UNKNOWN; emit error instead. - - PR fortran/25029 - PR fortran/21256 - *resolve.c(check_assumed_size_reference): New function to check for upper - bound in assumed size array references. - (resolve_assumed_size_actual): New function to do a very restricted scan - of actual argument expressions of those procedures for which incomplete - assumed size array references are not allowed. - (resolve_function, resolve_call): Switch off assumed size checking of - actual arguments, except for elemental procedures and array valued - intrinsics; excepting LBOUND. - (resolve_variable): Call check_assumed_size_reference. - - PR fortran/19362 - PR fortran/20244 - PR fortran/20864 - PR fortran/25391 - *interface.c(gfc_compare_types): Broken into two. - (gfc_compare_derived_types): Second half of gfc_compare_types with - corrections for a missing check that module name is non-NULL and - a check for private components. - *symbol.c(gfc_free_dt_list): New function. - (gfc_free_namespace): Call gfc_free_dt_list. - *resolve.c(resolve_symbol): Build the list of derived types in the - symbols namespace. - *gfortran.h: Define the structure type gfc_dt_list. Add a new field, - derived_types to gfc_namespace. Provide a prototye for the new - function gfc_compare_derived_types. - *trans_types.c(gfc_get_derived_type): Test for the derived type being - available in the host namespace. In this case, the host backend - declaration is used for the structure and its components. If an - unbuilt, equal structure that is not use associated is found in the - host namespace, build it there and then. On exit,traverse the - namespace of the derived type to see if there are equal but unbuilt. - If so, copy the structure and its component declarations. - (copy_dt_decls_ifequal): New functions to copy declarations to other - equal structure types. - - PR fortran/20862 - * io.c (gfc_match_format): Make the appearance of a format statement - in a module specification block an error. - - PR fortran/23152 - * match.c (gfc_match_namelist): Set assumed shape arrays in - namelists as std=GFC_STD_GNU and assumed size arrays as an - unconditional error. - - PR fortran/25069 - * match.c (gfc_match_namelist): Set the respecification of a USE - associated namelist group as std=GFC_STD_GNU. Permit the concatenation - on no error. - - PR fortran/25053 - PR fortran/25063 - PR fortran/25064 - PR fortran/25066 - PR fortran/25067 - PR fortran/25068 - PR fortran/25307 - * io.c (resolve_tag): Change std on IOSTAT != default integer to - GFC_STD_GNU and change message accordingly. Add same error for - SIZE. - (match_dt_element, gfortran.h): Add field err_where to gfc_dt and - set it when tags are being matched. - (gfc_resolve_dt): Remove tests that can be done before resolution - and add some of the new ones here. - (check_io_constraints): New function that checks for most of the - data transfer constraints. Some of these were previously done in - match_io, from where this function is called, and some were done - in gfc_resolve_dt. - (match_io): Remove most of the tests of constraints and add the - call to check_io_constraints. - -2005-12-21 Erik Edelmann - - PR fortran/25423 - * parse.c (parse_where_block): break instead of "fall - through" after parsing nested WHERE construct. - -2005-12-18 Paul Thomas - - PR fortran/25018 - *expr.c(check_inquiry): Return FAILURE if there is no symtree to - provide a name. Error/warning for assumed character length argument - to LEN for an initialization expression, using GFC_GNU_STD. Add an - argument to flag that the expression is not restricted. - (check_init_expr): Improve the message for a failing variable. - (gfc_match_init_expr): Call check_enquiry again to make sure that - unsimplified expressions are not causing unnecessary errors. - -2005-12-17 Steven G. Kargl - Tobias Schlueter - - PR fortran/25458 - * simplify.c (gfc_simplify_ibset, gfc_simplify_not): Add call to - twos_complement. - -2005-12-17 Steven G. Kargl - - * decl.c (gfc_match_old_kind_spec,match_type_spec): Use gfc_std_notify - to report nonstandard intrinsic type declarations. - -2005-12-16 Jerry DeLisle - - PR fortran/24268 - * io.c (format_lex): Allow whitespace within text of format specifier. - -2005-12-16 Steven G. Kargl - - PR fortran/25106 - PR fortran/25055 - * match.c (gfc_match_small_literal_int): Add cnt argument; - (gfc_match_st_label,gfc_match_stopcode): Account for cnt argument. - * match.h (gfc_match_small_literal_int): Update prototype. - * decl.c (match_char_length,gfc_match_old_kind_spec): Account for cnt. - * parse.c (next_free): Ditto. - * primary.c (match_kind_param): Ditto. - -2005-12-16 Richard Guenther - - * trans.h (tree): Remove declaration of gfc_build_function_call. - * trans.c (gfc_build_function_call): Remove. - (gfc_build_array_ref): Use build_function_call_expr. - (gfc_trans_runtime_check): Likewise. - * trans-array.c (gfc_trans_allocate_array_storage): Likewise. - (gfc_grow_array): Likewise. - (gfc_trans_array_ctor_element): Likewise. - (gfc_trans_array_constructor_value): Likewise. - (gfc_array_allocate): Likewise. - (gfc_array_deallocate): Likewise. - (gfc_trans_auto_array_allocation): Likewise. - (gfc_trans_dummy_array_bias): Likewise. - (gfc_conv_array_parameter): Likewise. - * trans-expr.c (gfc_conv_power_op): Likewise. - (gfc_conv_string_tmp): Likewise. - (gfc_conv_concat_op): Likewise. - (gfc_conv_expr_op): Likewise. - (gfc_trans_string_copy): Likewise. - * trans-decl.c (build_entry_thunks): Likewise. - (gfc_generate_function_code): Likewise. - (gfc_generate_constructors): Likewise. - * trans-io.c (gfc_trans_open): Likewise. - (gfc_trans_close): Likewise. - (build_filepos): Likewise. - (gfc_trans_inquire): Likewise. - (transfer_namelist_element): Likewise. - (build_dt): Likewise. - (gfc_trans_dt_end): Likewise. - (transfer_expr): Likewise. - (transfer_array_desc): Likewise. - * trans-stmt.c (gfc_trans_pause): Likewise. - (gfc_trans_stop): Likewise. - (gfc_trans_character_select): Likewise. - (gfc_do_allocate): Likewise. - (gfc_trans_assign_need_temp): Likewise. - (gfc_trans_pointer_assign_need_temp): Likewise. - (gfc_trans_forall_1): Likewise. - (gfc_trans_where): Likewise. - (gfc_trans_allocate): Likewise. - (gfc_trans_deallocate): Likewise. - * trans-intrinsic.c (gfc_conv_intrinsic_aint): Likewise. - (gfc_conv_intrinsic_lib_function): Likewise. - (gfc_conv_intrinsic_exponent): Likewise. - (gfc_conv_intrinsic_abs): Likewise. - (gfc_conv_intrinsic_sign): Likewise. - (gfc_conv_intrinsic_ctime): Likewise. - (gfc_conv_intrinsic_fdate): Likewise. - (gfc_conv_intrinsic_ttynam): Likewise. - (gfc_conv_intrinsic_ishftc): Likewise. - (gfc_conv_intrinsic_len_trim): Likewise. - (gfc_conv_intrinsic_index): Likewise. - (gfc_conv_intrinsic_size): Likewise. - (gfc_conv_intrinsic_strcmp): Likewise. - (gfc_conv_intrinsic_adjust): Likewise. - (gfc_conv_associated): Likewise. - (gfc_conv_intrinsic_scan): Likewise. - (gfc_conv_intrinsic_verify): Likewise. - (call_builtin_clz): Likewise. - (gfc_conv_intrinsic_si_kind): Likewise. - (gfc_conv_intrinsic_sr_kind): Likewise. - (gfc_conv_intrinsic_trim): Likewise. - (gfc_conv_intrinsic_repeat): Likewise. - (gfc_conv_intrinsic_iargc): Likewise. - -2005-12-16 Richard Guenther - - * trans.h (gfc_build_indirect_ref): Remove declaration. - * trans.c (gfc_build_indirect_ref): Remove. - * trans-array.c (gfc_trans_array_ctor_element): Use - build_fold_indirect_ref instead of gfc_build_indirect_ref. - (gfc_trans_array_constructor_value): Likewise. - (gfc_conv_array_index_offset): Likewise. - (gfc_conv_scalarized_array_ref): Likewise. - (gfc_conv_array_ref): Likewise. - (gfc_trans_dummy_array_bias): Likewise. - (gfc_conv_expr_descriptor): Likewise. - (gfc_conv_array_parameter): Likewise. - * trans-decl.c (gfc_finish_cray_pointee): Likewise. - (gfc_get_symbol_decl): Likewise. - * trans-expr.c (gfc_conv_substring): Likewise. - (gfc_conv_component_ref): Likewise. - (gfc_conv_variable): Likewise. - (gfc_add_interface_mapping): Likewise. - (gfc_conv_function_call): Likewise. - * trans-intrinsic.c (gfc_conv_intrinsic_ichar): Likewise. - (gfc_conv_intrinsic_transfer): Likewise. - * trans-io.c (nml_get_addr_expr): Likewise. - (transfer_namelist_element): Likewise. - (transfer_expr): Likewise. - * trans-stmt.c (gfc_trans_nested_forall_loop): Likewise. - (allocate_temp_for_forall_nest_1): Likewise. - (gfc_trans_forall_1): Likewise. - -2005-12-16 Richard Guenther - - * trans-array.c (gfc_conv_descriptor_data_addr): Use - build_fold_addr_expr where appropriate. - (gfc_trans_allocate_array_storage): Likewise. - (gfc_trans_array_constructor_value): Likewise. - (gfc_conv_array_data): Likewise. - (gfc_conv_expr_descriptor): Likewise. - (gfc_conv_array_parameter): Likewise. - * trans-expr.c (gfc_conv_variable): Likewise. - (gfc_conv_function_val): Likewise. - (gfc_conv_function_call): Likewise. - (gfc_conv_expr_reference): Likewise. - * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Likewise. - (gfc_conv_intrinsic_fdate): Likewise. - (gfc_conv_intrinsic_ttynam): Likewise. - (gfc_conv_intrinsic_si_kind): Likewise. - (gfc_conv_intrinsic_trim): Likewise. - * trans-io.c (set_parameter_ref): Likewise. - (gfc_convert_array_to_string): Likewise. - (gfc_trans_open): Likewise. - (gfc_trans_close): Likewise. - (build_filepos): Likewise. - (gfc_trans_inquire): Likewise. - (nml_get_addr_expr): Likewise. - (transfer_namelist_element): Likewise. - (build_dt): Likewise. - (gfc_trans_dt_end): Likewise. - (transfer_array_component): Likewise. - (transfer_expr): Likewise. - (transfer_array_desc): Likewise. - (gfc_trans_transfer): Likewise. - * trans-stmt.c (gfc_trans_allocate): Likewise. - (gfc_trans_deallocate): Likewise. - -2005-12-16 Kazu Hirata - - * dependency.c, resolve.c, trans-array.c: Fix comment typos. - * gfortran.texi: Fix typos. - -2005-12-14 Erik Edelmann - - PR fortran/18197 - * resolve.c (resolve_formal_arglist): Remove code to set - the type of a function symbol from it's result symbol. - -2005-12-13 Richard Guenther - - * trans-expr.c (gfc_conv_substring): Use fold_build2 and - build_int_cst. - -2005-12-13 Richard Sandiford - - * Make-lang.in (fortran/trans-resolve.o): Depend on - fortran/dependency.h. - * gfortran.h (gfc_expr): Add an "inline_noncopying_intrinsic" flag. - * dependency.h (gfc_get_noncopying_intrinsic_argument): Declare. - (gfc_check_fncall_dependency): Change prototype. - * dependency.c (gfc_get_noncopying_intrinsic_argument): New function. - (gfc_check_argument_var_dependency): New function, split from - gfc_check_fncall_dependency. - (gfc_check_argument_dependency): New function. - (gfc_check_fncall_dependency): Replace the expression parameter with - separate symbol and argument list parameters. Generalize the function - to handle dependencies for any type of expression, not just variables. - Accept a further argument giving the intent of the expression being - tested. Ignore intent(in) arguments if that expression is also - intent(in). - * resolve.c: Include dependency.h. - (find_noncopying_intrinsics): New function. - (resolve_function, resolve_call): Call it on success. - * trans-array.h (gfc_conv_array_transpose): Declare. - (gfc_check_fncall_dependency): Remove prototype. - * trans-array.c (gfc_conv_array_transpose): New function. - * trans-intrinsic.c (gfc_conv_intrinsic_function): Don't use the - libcall handling if the expression is to be evaluated inline. - Add a case for handling inline transpose()s. - * trans-expr.c (gfc_trans_arrayfunc_assign): Adjust for the new - interface provided by gfc_check_fncall_dependency. - -2005-12-12 Steven G. Kargl - - PR fortran/25078 - * match.c (gfc_match_equivalence): Count number of objects. - -2005-12-11 Aldy Hernandez - - * lang.opt: Add RejectNegative to ffixed-form and ffree-form. - -2005-12-10 Francois-Xavier Coudert - - PR fortran/25068 - * io.c (resolve_tag): Add correct diagnostic for F2003 feature. - -2005-12-10 Thomas Koenig - - PR fortran/23815 - * io.c (top level): Add convert to io_tag. - (resolve_tag): convert is GFC_STD_GNU. - (match_open_element): Add convert. - (gfc_free_open): Likewise. - (gfc_resolve_open): Likewise. - (gfc_free_inquire): Likewise. - (match_inquire_element): Likewise. - * dump-parse-tree.c (gfc_show_code_node): Add - convet for open and inquire. - gfortran.h: Add convert to gfc_open and gfc_inquire. - * trans-io.c (gfc_trans_open): Add convert. - (gfc_trans_inquire): Likewise. - * ioparm.def: Add convert to open and inquire. - * gfortran.texi: Document CONVERT. - -2005-12-09 Roger Sayle - - PR fortran/22527 - * f95-lang.c (gfc_truthvalue_conversion): Use a zero of the correct - integer type when building an inequality. - -2005-12-09 Richard Guenther - - * f95-lang.c (build_builtin_fntypes): Use correct - return types, as indicated by comments. - -2005-12-08 Erik Edelmann - - PR fortran/25292 - * check.c (gfc_check_associated): Allow function results - as actual arguments to ASSOCIATED. Moved a misplaced - comment. - -2005-12-07 Rafael Ávila de Espíndola - - * Make-lang.in (fortran.all.build, fortran.install-normal): Remove. - -2005-12-07 Rafael Ávila de Espíndola - - * Make-lang.in: Remove all dependencies on s-gtype, except for - gt-fortran-trans.h. - -2005-12-03 Francois-Xavier Coudert - - PR fortran/25106 - * parse.c (next_free): Use new prototype for gfc_match_st_label. - Correctly emit hard error if a label is zero. - * match.c (gfc_match_st_label): Never allow zero as a valid - label. - (gfc_match, gfc_match_do, gfc_match_goto): Use new prototype for - gfc_match_st_label. - * primary.c (): Use new prototype for gfc_match_st_label. - * io.c (): Likewise. - * match.h: Likewise. - -2005-12-02 Richard Guenther - - * trans.h (build1_v): Use build1, not build to build the - void typed tree. - -2005-12-01 Erik Schnetter - - * decl.c (gfc_match_old_kind_spec): Improve handling of old style - COMPLEX*N - -2005-12-01 Paul Thomas - - PR fortran/24789 - * trans-decl.c (gfc_get_symbol_decl): Move the expression for - unit size of automatic character length, dummy pointer array - elements down a few lines from the version that fixed PR15809. - -2005-11-30 Bernhard Fischer - - PR fortran/21302 - * lang.opt: New options -ffree-line-length- and -ffree-line-length-none. - * gfortran.h: Add free_line_length and add description of - free_line_length and fixed_line_length. - * options.c (gfc_init_options, gfc_handle_option): Initialize - and set free_line_length and fixed_line_length. - * scanner.c (load_line): Set free_line_length to 132 and - fixed_line_length to 72 or user requested values. - * scanner.c: Typo in comment. - * invoke.texi: Document -ffree-line-length- and - -ffree-line-length-none - -2005-11-30 Paul Thomas - - PR fortran/15809 - * trans-decl.c (gfc_get_symbol_decl): In the case of automatic - character length, dummy pointer arrays, build an expression for - unit size of the array elements, to be picked up and used in the - descriptor dtype. - * trans-io.c (gfc_trans_transfer): Modify the detection of - components of derived type arrays to use the gfc_expr references - instead of the array descriptor dtype. This allows the latter - to contain expressions. - -2005-11-30 Erik Edelmann - - PR fortran/15809 - * trans-array.c (gfc_trans_deferred_array): Allow PARM_DECLs past - in addition to VAR_DECLs. - -2005-11-29 Jakub Jelinek - - * io.c (gfc_resolve_open): RESOLVE_TAG access field as well. - -2005-11-27 Bernhard Fischer - - * gfortran.h: remove superfluous whitespace and use GNU - comment-style for the documentation of backend_decl. - -2005-11-27 Steven G. Kargl - - PR fortran/24917 - * primary.c (match_boz_constant): Implement postfix BOZ constants; - (match_string_constant): Peek for b, o, z, and x - -2005-11-27 Francois-Xavier Coudert - - PR fortran/23912 - * iresolve.c (gfc_resolve_dim, gfc_resolve_mod, - gfc_resolve_modulo): When arguments have different kinds, fold - the lower one to the largest kind. - * check.c (gfc_check_a_p): Arguments of different kinds is not - a hard error, but an extension. - * simplify.c (gfc_simplify_dim, gfc_simplify_mod, - gfc_simplify_modulo): When arguments have different kinds, fold - the lower one to the largest kind. - -2005-11-21 Jakub Jelinek - - PR fortran/14943 - PR fortran/21647 - * Make-lang.in (fortran/trans-io.o): Depend on fortran/ioparm.def. - * dump-parse-tree.c (gfc_show_code_node): Dump c->block for - EXEC_{READ,WRITE,IOLENGTH} nodes. - * io.c (terminate_io, match_io, gfc_match_inquire): Put data - transfer commands into EXEC_{READ,WRITE,IOLENGTH}'s code->block. - * resolve.c (resolve_blocks): Handle EXEC_{READ,WRITE,IOLENGTH}. - * trans-io.c (ioparm_unit, ioparm_err, ioparm_end, ioparm_eor, - ioparm_list_format, ioparm_library_return, ioparm_iostat, - ioparm_exist, ioparm_opened, ioparm_number, ioparm_named, - ioparm_rec, ioparm_nextrec, ioparm_size, ioparm_recl_in, - ioparm_recl_out, ioparm_iolength, ioparm_file, ioparm_file_len, - ioparm_status, ioparm_status_len, ioparm_access, ioparm_access_len, - ioparm_form, ioparm_form_len, ioparm_blank, ioparm_blank_len, - ioparm_position, ioparm_position_len, ioparm_action, - ioparm_action_len, ioparm_delim, ioparm_delim_len, ioparm_pad, - ioparm_pad_len, ioparm_format, ioparm_format_len, ioparm_advance, - ioparm_advance_len, ioparm_name, ioparm_name_len, - ioparm_internal_unit, ioparm_internal_unit_len, - ioparm_internal_unit_desc, ioparm_sequential, ioparm_sequential_len, - ioparm_direct, ioparm_direct_len, ioparm_formatted, - ioparm_formatted_len, ioparm_unformatted, ioparm_unformatted_len, - ioparm_read, ioparm_read_len, ioparm_write, ioparm_write_len, - ioparm_readwrite, ioparm_readwrite_len, ioparm_namelist_name, - ioparm_namelist_name_len, ioparm_namelist_read_mode, ioparm_iomsg, - ioparm_iomsg_len, ioparm_var): Remove. - (enum ioparam_type, enum iofield_type, enum iofield, - enum iocall): New enums. - (gfc_st_parameter_field, gfc_st_parameter): New typedefs. - (st_parameter, st_parameter_field, iocall): New variables. - (ADD_FIELD, ADD_STRING): Remove. - (dt_parm, dt_post_end_block): New variables. - (gfc_build_st_parameter): New function. - (gfc_build_io_library_fndecls): Use it. Initialize iocall - array rather than ioparm_*, add extra first arguments to - the function types. - (set_parameter_const): New function. - (set_parameter_value): Add type argument, return a bitmask. - Changed to set a field in automatic structure variable rather - than set a field in a global _gfortran_ioparm variable. - (set_parameter_ref): Likewise. If requested var has different - size than what field should point to, call with a temporary and - then copy into the user variable. Add postblock argument. - (set_string): Remove var_len argument, add type argument, return - a bitmask. Changed to set fields in automatic structure variable - rather than set a field in a global _gfortran_ioparm variable. - (set_internal_unit): Remove iunit, iunit_len, iunit_desc arguments, - add var argument. Return a bitmask. Changed to set fields in - automatic structure variable rather than set a field in a global - _gfortran_ioparm variable. - (set_flag): Removed. - (io_result): Add var argument. Changed to read common.flags field - from automatic structure variable and bitwise AND it with 3. - (set_error_locus): Add var argument. Changed to set fields in - automatic structure variable rather than set a field in a global - _gfortran_{filename,line} variables. - (gfc_trans_open): Use gfc_start_block rather than gfc_init_block. - Create a temporary st_parameter_* structure. Adjust callers of - all above mentioned functions. Pass address of the temporary - variable as first argument to the generated function call. - Use iocall array rather than ioparm_* separate variables. - (gfc_trans_close, build_filepos, gfc_trans_inquire): Likewise. - (build_dt): Likewise. Change first argument to tree from tree *. - Don't dereference code->ext.dt if last_dt == INQUIRE. Emit - IOLENGTH argument setup here. Set dt_parm/dt_post_end_block - variables and gfc_trans_code the nested data transfer commands - in code->block. - (gfc_trans_iolength): Just set last_dt and call build_dt immediately. - (transfer_namelist_element): Pass address of dt_parm variable - to generated functions. Use iocall array rather than ioparm_* - separate variables. - (gfc_trans_backspace, gfc_trans_endfile, gfc_trans_rewind, - gfc_trans_flush, gfc_trans_read, gfc_trans_write): Use iocall array - rather than ioparm_* separate variables. - (gfc_trans_dt_end): Likewise. Pass address of dt_parm variable - as first argument to generated function. Adjust io_result caller. - Prepend dt_post_end_block before io_result code. - (transfer_expr): Use iocall array rather than ioparm_* separate - variables. Pass address of dt_parm variables as first argument - to generated functions. - * ioparm.def: New file. - -2005-11-21 Paul Thomas - - PR fortran/24223 - * resolve.c (resolve_contained_fntype) Error if an internal - function is assumed character length. - - PR fortran/24705 - * trans-decl.c (gfc_create_module_variable) Skip ICE in - when backend decl has been built and the symbol is marked - as being in an equivalence statement. - -2005-11-20 Toon Moene - - * invoke.texi: Remove superfluous @item. - -2005-11-19 Janne Blomqvist - - PR fortran/24862 - * trans-io.c (gfc_trans_transfer): Handle arrays of derived type. - -2005-11-17 Francois-Xavier Coudert - - PR fortran/20811 - * scanner.c (gfc_open_included_file): Add an extra include_cwd - argument. Only include files in the current working directory if - its value is true. - * gfortran.h: Change prototype for gfc_open_included_file. - (load_file): Don't search for include files in the current working - directory. - * options.c (gfc_post_options): Add the directory of the source file - to the list of paths for included files. - * module.c (gfc_use_module): Look for module files in the current - directory. - -2005-11-16 Alan Modra - - PR fortran/24096 - * trans-types.c (gfc_init_kinds): Use one less for max_exponent - of IBM extended double format. - -2005-11-13 Francois-Xavier Coudert - - * intrinsic.c (add_functions): Add COMPLEX, FTELL, FGETC, FGET, - FPUTC, FPUT, AND, XOR and OR intrinsic functions. - (add_subroutines): Add FGETC, FGET, FPUTC, FPUT and FTELL intrinsic - subroutines. - * gfortran.h: Add GFC_ISYM_AND, GFC_ISYM_COMPLEX, GFC_ISYM_FGET, - GFC_ISYM_FGETC, GFC_ISYM_FPUT, GFC_ISYM_FPUTC, GFC_ISYM_FTELL, - GFC_ISYM_OR, GFC_ISYM_XOR. - * iresolve.c (gfc_resolve_and, gfc_resolve_complex, - gfc_resolve_or, gfc_resolve_fgetc, gfc_resolve_fget, - gfc_resolve_fputc, gfc_resolve_fput, gfc_resolve_ftell, - gfc_resolve_xor, gfc_resolve_fgetc_sub, gfc_resolve_fget_sub, - gfc_resolve_fputc_sub, gfc_resolve_fput_sub, gfc_resolve_ftell_sub): - New functions. - * check.c (gfc_check_complex, gfc_check_fgetputc_sub, - gfc_check_fgetputc, gfc_check_fgetput_sub, gfc_check_fgetput, - gfc_check_ftell, gfc_check_ftell_sub, gfc_check_and): New functions. - * simplify.c (gfc_simplify_and, gfc_simplify_complex, gfc_simplify_or, - gfc_simplify_xor): New functions. - * trans-intrinsic.c (gfc_conv_intrinsic_function): Add cases for - GFC_ISYM_AND, GFC_ISYM_COMPLEX, GFC_ISYM_FGET, GFC_ISYM_FGETC, - GFC_ISYM_FPUT, GFC_ISYM_FPUTC, GFC_ISYM_FTELL, GFC_ISYM_OR and - GFC_ISYM_XOR. - * intrinsic.h: Add prototypes for all functions added to iresolve.c, - simplify.c and check.c. - -2005-11-10 Paul Thomas - Steven G. Kargl - - PR fortran/15976 - * resolve.c (resolve_symbol): Disallow automatic arrays in module scope. - -2005-11-10 Paul Thomas - - PR fortran/24655 - PR fortran/24755 - * match.c (recursive_stmt_fcn): Add checks that symtree exists - for the expression to weed out inline intrinsic functions and - parameters. - - PR fortran/24409 - * module.c (mio_symtree_ref): Correct the patch of 0923 so that - a symbol is not substituted for by a the symbol for the module - itself and to prevent the promotion of a formal argument. - -2005-11-10 Tobias Schl"uter - - PR fortran/24643 - * primary.c (match_varspec): Check for implicitly typed CHARACTER - variables before matching substrings. - -2005-11-09 Steven G. Kargl - - * trans-intrinsic.c: Typo in comment. - -2005-11-09 Erik Edelmann - - PR fortran/22607 - * trans-decl.c(build_function_decl): Don't set - DECL_IS_PURE (fndecl) = 1 for return-by-reference - functions. - -2005-11-08 Tobias Schl"uter - - * dump-parse-tree.c: Fix comment typo, add a few blank lines. - -2005-11-07 Steven G. Kargl - - * error.c: Use flag_fatal_error. - * invoke.texi: Remove -Werror from list of options. - -2005-11-06 Paul Thomas - - PR fortran/24534 - * resolve.c (resolve_symbol): Exclude case of PRIVATE declared - within derived type from error associated with PRIVATE type - components within derived type. - - PR fortran/20838 - PR fortran/20840 - * gfortran.h: Add prototype for gfc_has_vector_index. - * io.c (gfc_resolve_dt): Error if internal unit has a vector index. - * expr.c (gfc_has_vector_index): New function to check if any of - the array references of an expression have vector inidices. - (gfc_check_pointer_assign): Error if internal unit has a vector index. - - PR fortran/17737 - * data.c (gfc_assign_data_value): Remove gcc_assert that caused the ICE - and replace by a standard dependent warning/error if overwriting an - existing initialization. - * decl.c (gfc_data_variable): Remove old error for already initialized - variable and the unused error check for common block variables. Add - error for hots associated variable and standard dependent error for - common block variables, outside of blockdata. - * symbol.c (check_conflict): Add constraints for DATA statement. - -2005-11-06 Janne Blomqvist - - PR fortran/24174 - PR fortran/24305 - * fortran/trans-io.c (gfc_build_io_library_fndecls): Add kind - argument to transfer_array. - (transfer_array_desc): Add kind argument. - -2005-11-06 Francois-Xavier Coudert - - * intrinsic.c (add_functions): Add ctime and fdate intrinsics. - (add_subroutines): Likewise. - * intrinsic.h: Prototypes for gfc_check_ctime, - gfc_check_ctime_sub, gfc_check_fdate_sub, gfc_resolve_ctime, - gfc_resolve_fdate, gfc_resolve_ctime_sub, gfc_resolve_fdate_sub. - * gfortran.h: Add GFC_ISYM_CTIME and GFC_ISYM_FDATE. - * iresolve.c (gfc_resolve_ctime, gfc_resolve_fdate, - gfc_resolve_ctime_sub, gfc_resolve_fdate_sub): New functions. - * trans-decl.c (gfc_build_intrinsic_function_decls): Add - gfor_fndecl_fdate and gfor_fndecl_ctime. - * check.c (gfc_check_ctime, gfc_check_ctime_sub, - gfc_check_fdate_sub): New functions. - * trans-intrinsic.c (gfc_conv_intrinsic_ctime, - gfc_conv_intrinsic_fdate): New functions. - (gfc_conv_intrinsic_function): Add cases for GFC_ISYM_CTIME - and GFC_ISYM_FDATE. - * intrinsic.texi: Documentation for the new CTIME and FDATE - intrinsics. - * trans.h: Declarations for gfor_fndecl_ctime and gfor_fndecl_fdate. - -2005-11-05 Kazu Hirata - - * decl.c, trans-decl.c: Fix comment typos. - * gfortran.texi: Fix a typo. - -2005-11-05 Francois-Xavier Coudert - - * intrinsic.c (add_functions): Add function version of TTYNAM. - * intrinsic.h: Add prototypes for gfc_check_ttynam and - gfc_resolve_ttynam. - * gfortran.h: Add case for GFC_ISYM_TTYNAM. - * iresolve.c (gfc_resolve_ttynam): New function. - * trans-decl.c (gfc_build_intrinsic_function_decls): Add a tree - for function call to library ttynam. - * check.c (gfc_check_ttynam): New function. - * trans-intrinsic.c (gfc_conv_intrinsic_ttynam): New function. - (): Call gfc_conv_intrinsic_ttynam. - * trans.h: Add prototype for gfor_fndecl_ttynam. - -2005-11-04 Steven G. Kargl - - PR fortran/24636 - * match.c (gfc_match_stopcode): Set stop_code = -1. - -2005-11-04 Francois-Xavier Coudert - - PR fortran/18452 - * lang-specs.h: Pass -lang-fortran to the preprocessor. - -2005-11-02 Andrew Pinski - - PR fortran/18157 - * trans-array.c (gfc_conv_resolve_dependencies): Use the correct - type for the temporary array. - * trans-expr.c (gfc_trans_assignment): Pass lss - instead of lss_section - to gfc_conv_resolve_dependencies to get the - correct type. - -2005-11-02 Tobias Schl"uter - - * decl.c (gfc_match_entry): Function entries don't need an argument - list if there's no RESULT clause. - -2005-11-01 Tobias Schl"uter - - PR fortran/24008 - * decl.c (gfc_match_entry): Function entries need an argument list. - -2005-11-01 Erik Edelmann - - PR 24245 - * trans.c (gfc_generate_code): Move code to create a main - program symbol from here ... - * parse.c (main_program_symbol): ... to this new - function, setting the locus from gfc_current_locus - instead of ns->code->loc. - (gfc_parse_file): Call main_program_symbol for main programs. - -2005-11-01 Tobias Schl"uter - - PR fortran/24404 - * resolve.c (resolve_symbol): Output symbol names in more error - messages, clarify error message. - -2005-11-01 Tobias Schl"uter - - * dump-parse-tree.c (show_symtree): Revert change unintentionally - committed in r106246. - -2005-11-01 Paul Thomas - - PR fortran/21565 - * symbol.c (check_conflict): An object cannot be in a namelist and in - block data. - - PR fortran/18737 - * resolve.c (resolve_symbol): Set the error flag to - gfc_set_default_type, in the case of an external symbol, so that - an error message is emitted if IMPLICIT NONE is set. - - PR fortran/14994 - * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SECNDS to enum. - * check.c (gfc_check_secnds): New function. - * intrinsic.c (add_functions): Add call to secnds. - * iresolve.c (gfc_resolve_secnds): New function. - * trans-intrinsic (gfc_conv_intrinsic_function): Add call to - secnds via case GFC_ISYM_SECNDS. - * intrinsic.texi: Add documentation for secnds. - -2005-10-31 Andreas Schwab - - * Make-lang.in (GFORTRAN_TARGET_INSTALL_NAME): Define. - (GFORTRAN_CROSS_NAME): Remove. - (fortran.install-common): Correctly install a cross compiler. - (fortran.uninstall): Use GFORTRAN_TARGET_INSTALL_NAME instead of - GFORTRAN_CROSS_NAME. - -2005-10-30 Erik Edelmann - - * gfortran.texi: Update contributors. - -2005-10-30 Erik Edelmann - - PR fortran/18883 - * trans-decl.c (gfc_finish_var_decl): Add decl to the - current function, rather than the parent. Make - assertion accept fake result variables. - * trans-expr.c (gfc_conv_variable): If the character - length of an ENTRY isn't set, get the length from - the master function instead. - -2005-10-30 Thomas Koenig - - * gfortran.texi: Remove reservations about I/O usability. Document - that array intrinsics mostly work. - -2005-10-30 Tobias Schl"uter - - * gfortran.texi: Move license stuff to back. Add information - on ENUM and ENUMERATOR. - * invoke.texi: Document -fshort-enums. - -2005-10-30 Gaurav Gautam - Tobias Schl"uter - - * arith.c (gfc_enum_initializer): New function. - (gfc_check_integer_range): Made extern. - * decl.c (enumerator_history): New typedef. - (last_initializer, enum_history, max_enum): New variables. - (create_enum_history, gfc_free_enum_history): New functions. - (add_init_expr_to_sym): Call create_enum_history if parsing ENUM. - (variable_decl): Modified to parse enumerator definition. - (match_attr_spec): Add PARAMETER attribute to ENUMERATORs. - (gfc_match_data_decl): Issues error, if match_type_spec do not - return desired return values. - (set_enum_kind, gfc_match_enum, gfc_match_enumerator_def): New - functions. - (gfc_match_end): Deal with END ENUM. - * gfortran.h (gfc_statement): ST_ENUM, ST_ENUMERATOR, ST_END_ENUM - added. - (symbol_attribute): Bit field for enumerator added. - (gfc_options): Add fshort_enums. - (gfc_enum_initializer, gfc_check_integer_range): Add prototypes. - * options.c: Include target.h - (gfc_init_options): Initialize fshort_enums. - (gfc_handle_option): Deal with fshort_enums. - * parse.c (decode_statement): Match ENUM and ENUMERATOR statement. - (gfc_ascii_statement): Deal with the enumerator statements. - (parse_enum): New function to parse enum construct. - (parse_spec): Added case ST_ENUM. - * parse.h (gfc_compile_state): COMP_ENUM added. - (gfc_match_enum, gfc_match_enumerator_def, gfc_free_enum_history): - Prototype added. - * symbol.c (gfc_copy_attr): Copy enumeration attribute. - * lang.opt (fshort-enums): Option added. - -2005-10-30 Francois-Xavier Coudert - - * check.c (gfc_check_malloc, gfc_check_free): New functions. - * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_MALLOC. - * intrinsic.c (add_functions): Add symbols for MALLOC function. - (add_subroutines): Add symbol for FREE subroutine. - * intrinsic.h: Prototypes for gfc_check_malloc, gfc_check_free, - gfc_resolve_malloc and gfc_resolve_free. - * intrinsic.texi: Add doc for FREE and MALLOC intrinsics. - * iresolve.c (gfc_resolve_malloc, gfc_resolve_free): New - functions. - * trans-intrinsic.c (gfc_conv_intrinsic_function): Add case for - GFC_ISYM_MALLOC. - -2005-10-30 Steven Bosscher - - * gfortran.texi: Update contributors. - -2005-10-29 Steven Bosscher - - * interface.c: Fix previous checkin (an incomplete patch - was commited for me). - -2005-10-29 Joseph S. Myers - - * intrinsic.texi: Remove empty @cindex line. - -2005-10-28 Francois-Xavier Coudert - - * check.c (gfc_check_alarm_sub, gfc_check_signal, - gfc_check_signal_sub): New functions. - * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SIGNAL. - * intrinsic.c (add_functions): Add signal intrinsic. - (add_subroutines): Add signal and alarm intrinsics. - * intrinsic.texi: Document the new intrinsics. - * iresolve.c (gfc_resolve_signal, gfc_resolve_alarm_sub, - gfc_resolve_signal_sub): New functions. - * trans-intrinsic.c (gfc_conv_intrinsic_function): Add case - for GFC_ISYM_SIGNAL. - * intrinsic.h: Add prototypes for gfc_check_alarm_sub, - gfc_check_signal, gfc_check_signal_sub, gfc_resolve_signal, - gfc_resolve_alarm_sub, gfc_resolve_signal_sub. - -2005-10-28 Steven Bosscher - - PR fortran/24545 - * interface.c (gfc_match_end_interface): Fix typo in - INTERFACE_USER_OP case. - -2005-10-26 Francois-Xavier Coudert - - PR fortran/15586 - * resolve.c (resolve_symbol): Remove the use of whynot, so that - error messages are not built from pieces. - -2005-10-26 Paul Thomas - - PR fortran/24158 - * decl.c (gfc_match_data_decl): Correct broken bit of code - that prevents undefined derived types from being used as - components of another derived type. - * resolve.c (resolve_symbol): Add backstop error when derived - type variables arrive here with a type that has no components. - -2005-10-25 Jakub Jelinek - - * trans.h (gfc_conv_cray_pointee): Remove. - * trans-expr.c (gfc_conv_variable): Revert 2005-10-24 change. - * trans-array.c (gfc_conv_array_parameter): Likewise. - * trans-decl.c (gfc_conv_cray_pointee): Remove. - (gfc_finish_cray_pointee): New function. - (gfc_finish_var_decl): Use it. Don't return early for Cray - pointees. - (gfc_create_module_variable): Revert 2005-10-24 change. - * decl.c (cray_pointer_decl): Update comment. - * gfortran.texi: Don't mention Cray pointees aren't visible in the - debugger. - - * symbol.c (check_conflict): Add conflict between cray_pointee - and in_common resp. in_equivalence. - * resolve.c (resolve_equivalence): Revert 2005-10-24 change. - - * module.c (ab_attribute): Add AB_CRAY_POINTER and AB_CRAY_POINTEE. - (attr_bits): Likewise. - (mio_symbol_attribute): Save and restore cray_pointe{r,e} attributes. - (mio_symbol): For cray_pointee write/read cp_pointer reference. - -2005-10-25 Feng Wang - - PR fortran/22290 - * trans-decl.c (gfc_add_assign_aux_vars): New function. Add two - auxiliary variables. - (gfc_get_symbol_decl): Use it when a variable, including dummy - argument, is assigned a label. - (gfc_trans_assign_aux_var): New function. Set initial value of - the auxiliary variable explicitly. - (gfc_trans_deferred_vars): Use it. - * trans-stmt.c (gfc_conv_label_variable): Handle dummy argument. - -2005-10-24 Asher Langton - - PR fortran/17031 - PR fortran/22282 - * check.c (gfc_check_loc): New function. - * decl.c (variable_decl): New variables cp_as and sym. Added a - check for variables that have already been declared as Cray - Pointers, so we can get the necessary attributes without adding - a new symbol. - (attr_decl1): Added code to catch pointee symbols and "fix" - their array specs. - (cray_pointer_decl): New method. - (gfc_match_pointer): Added Cray pointer parsing code. - (gfc_mod_pointee_as): New method. - * expr.c (gfc_check_assign): Added a check to catch vector-type - assignments to pointees with an unspecified final dimension. - * gfortran.h: (GFC_ISYM_LOC): New. - (symbol_attribute): Added cray_pointer and cray_pointee bits. - (gfc_array_spec): Added cray_pointee and cp_was_assumed bools. - (gfc_symbol): Added gfc_symbol *cp_pointer. - (gfc_option): Added flag_cray_pointer. - (gfc_add_cray_pointee): Declare. - (gfc_add_cray_pointer ): Declare. - (gfc_mod_pointee_as): Declare. - * intrinsic.c (add_functions): Add code for loc() intrinsic. - * intrinsic.h (gfc_check_loc): Declare. - (gfc_resolve_loc): Declare. - * iresolve.c (gfc_resolve_loc): New. - * lang.opt: Added fcray-pointer flag. - * options.c (gfc_init_options): Initialized. - gfc_match_option.flag_cray_pointer. - (gfc_handle_option): Deal with -fcray-pointer. - * parse.c:(resolve_equivalence): Added code prohibiting Cray - pointees in equivalence statements. - * resolve.c (resolve_array_ref): Added code to prevent bounds - checking for Cray Pointee arrays. - (resolve_equivalence): Prohibited pointees in equivalence - statements. - * symbol.c (check_conflict): Added Cray pointer/pointee - attribute checking. - (gfc_add_cray_pointer): New. - (gfc_add_cray_pointee): New. - (gfc_copy_attr): New code for Cray pointers and pointees. - * trans-array.c (gfc_trans_auto_array_allocation): Added code to - prevent space from being allocated for pointees. - (gfc_conv_array_parameter): Added code to catch pointees and - correctly set their base address. - * trans-decl.c (gfc_finish_var_decl): Added code to prevent - pointee declarations from making it to the back end. - (gfc_create_module_variable): Same. - * trans-expr.c (gfc_conv_variable): Added code to detect and - translate pointees. - (gfc_conv_cray_pointee): New. - * trans-intrinsic.c (gfc_conv_intrinsic_loc): New. - (gfc_conv_intrinsic_function): Added entry point for loc - translation. - * trans.h (gfc_conv_cray_pointee): Declare. - - * gfortran.texi: Added section on Cray pointers, removed Cray - pointers from list of proposed extensions. - * intrinsic.texi: Added documentation for loc intrinsic. - * invoke.texi: Documented -fcray-pointer flag. - -2005-10-24 Asher Langton - - * decl.c (gfc_match_save): Changed duplicate SAVE errors to - warnings in the absence of strict standard conformance - * symbol.c (gfc_add_save): Same. - -2005-10-24 Francois-Xavier Coudert - - PR fortran/15586 - * arith.c (gfc_arith_error): Change message to include locus. - (check_result, eval_intrinsic, gfc_int2int, gfc_real2real, - gfc_real2complex, gfc_complex2real, gfc_complex2complex): Use - the new gfc_arith_error. - (arith_error): Rewrite full error messages instead of building - them from pieces. - * check.c (must_be): Removed. - (type_check, numeric_check, int_or_real_check, real_or_complex_check, - kind_check, double_check, logical_array_check, array_check, - scalar_check, same_type_check, rank_check, kind_value_check, - variable_check, gfc_check_allocated, gfc_check_associated, - gfc_check_cmplx, gfc_check_dcmplx, gfc_check_dot_product, - gfc_check_index, gfc_check_kind, gfc_check_matmul, gfc_check_null, - gfc_check_pack, gfc_check_precision, gfc_check_present, - gfc_check_spread): Rewrite full error messages instead of - building them from pieces. - * decl.c (gfc_match_entry): Rewrite full error messages instead - of building them from pieces. - * parse.c (gfc_state_name): Remove. - * parse.h: Remove prototype for gfc_state_name. - -2005-10-23 Andrew Pinski - - PR fortran/23635 - * check.c (gfc_check_ichar_iachar): Move the code around so - that the check on the length is after check for - references. - -2005-10-23 Asher Langton - - * decl.c (match_type_spec): Add a BYTE type as an extension. - -2005-10-23 Paul Thomas - - PR fortran/18022 - * trans-expr.c (gfc_trans_arrayfunc_assign): Return NULL - if there is a component ref during an array ref to force - use of temporary in assignment. - - PR fortran/24311 - PR fortran/24384 - * fortran/iresolve.c (check_charlen_present): New function to - add a charlen to the typespec, in the case of constant - expressions. - (gfc_resolve_merge, gfc_resolve_spread): Call.the above. - (gfc_resolve_spread): Make calls to library functions that - handle the case of the spread intrinsic with a scalar source. - -2005-10-22 Erik Edelmann - - PR fortran/24426 - * decl.c (variable_decl): Don't assign default initializers to - pointers. - -2005-10-21 Jakub Jelinek - - * interface.c (compare_actual_formal): Issue error when attempting - to pass an assumed-size array as assumed-shape array argument. - -2005-10-20 Erik Edelmann - - PR fortran/21625 - * resolve.c (expr_to_initialize): New function. - (resolve_allocate_expr): Take current statement as new - argument. Add default initializers to variables of - derived types, if they need it. - (resolve_code): Provide current statement as argument to - resolve_allocate_expr(). - -2005-10-19 Paul Thomas - - PR fortran/24440 - * resolve.c (resolve_symbol): Correct error in check for - assumed size array with default initializer by testing - for arrayspec before dereferencing it. - -2005-10-17 Paul Thomas - - PR fortran/23446 - * gfortran.h: Primitive for gfc_is_formal_arg. - * resolve.c(gfc_is_formal_arg): New function to signal across - several function calls that formal argument lists are being - processed. - (resolve_formal_arglist): Set/reset the flag for gfc_is_formal_arg. - *expr.c(check_restricted): Add check, via gfc_is_formal_arg, if - symbol is part of an formal argument declaration. - - PR fortran/21459 - * decl.c (add_init_expr_to_sym): Make a new character - length for each variable, when the expression is NULL - and link to cl_list. - - PR fortran/20866 - * match.c (recursive_stmt_fcn): New function that tests if - a statement function resurses through itself or other other - statement functions. - (gfc_match_st_function): Call recursive_stmt_fcn to check - if this is recursive and to raise error if so. - - PR fortran/20849 - PR fortran/20853 - * resolve.c (resolve_symbol): Errors for assumed size arrays - with default initializer and for external objects with an - initializer. - - PR fortran/20837 - * decl.c (match_attr_spec): Prevent PUBLIC from being used - outside a module. - -2005-10-16 Erik Edelmann - - PR 22273 - * expr.c (check_inquiry): Add "len" to inquiry_function. - -2005-10-14 Jakub Jelinek - - * primary.c (match_boz_constant): Add missing break after gfc_error. - -2005-10-12 Paul Thomas - - PR fortran/24092 - * trans-types.c (gfc_get_derived_type): Insert code to obtain backend - declaration for derived types, building if necessary. Return the - derived type if the fields have been built by this process. Otherwise, - continue as before but using the already obtained backend_decls for the - derived type components. Change the gcc_assert to act on the field. - -2005-10-12 Paul Thomas - - PR fortran/18082 - * decl.c (variable_decl): Make a new copy of the character - length for each variable, when the expression is not a - constant. - -2005-10-12 Francois-Xavier Coudert - - * gfortran.h: Add bitmasks for different FPE traps. Add fpe - member to options_t. - * invoke.texi: Document the new -ffpe-trap option. - * lang.opt: Add -ffpe-trap option. - * options.c (gfc_init_options): Initialize the FPE option. - (gfc_handle_fpe_trap_option): New function to parse the argument - of the -ffpe-trap option. - (gfc_handle_option): Add case for -ffpe-trap. - * trans-decl.c: Declare a tree for the set_fpe library function. - (gfc_build_builtin_function_decls): Build this tree. - (gfc_generate_function_code): Generate a call to set_fpe at - the beginning of the main program. - * trans.h: New tree for the set_fpe library function. - -2005-10-12 Paul Thomas - - PR fortran/20847 - PR fortran/20856 - * symbol.c (check_conflict): Prevent common variables and - function results from having the SAVE attribute,as required - by the standard. - -2005-10-12 Paul Thomas - - PR fortran/24207 - * resolve.c (resolve_symbol): Exclude use and host associated - symbols from the test for private objects in a public namelist. - -2005-10-12 Jakub Jelinek - - * trans-common.c (build_field): Fix comment typo. - (create_common): Set backend_decl of COMMON or EQUIVALENCEd - variables to a VAR_DECL with the COMPONENT_REF in - DECL_HAS_VALUE_EXPR rather than COMPONENT_REF directly. - * f95-lang.c (gfc_expand_function): Emit debug info for - EQUIVALENCEd variables if the equiv union is going to be output. - -2005-10-11 Steven G. Kargl - - PR fortran/20786 - * iresolve.c (gfc_resolve_aint, gfc_resolve_anint): Type conversion - of the argument. - -2005-10-11 Jakub Jelinek - - * f95-lang.c (gfc_init_decl_processing): Initialize - void_list_node. - -2005-10-07 Erik Edelmann - - PR 18568 - * resolve.c (find_array_spec): Search through the list of - components in the symbol of the type instead of the symbol of the - variable. - -2005-10-05 Richard Guenther - - PR fortran/24176 - * parse.c (gfc_parse_file): Exit early for empty files. - -2005-10-03 Steve Ellcey - - * fortran/trans-types.c (gfc_init_kinds): Only pass float, double, - and long double floating point types through to Fortran compiler. - -2005-10-03 Francois-Xavier Coudert - - PR fortran/20120 - * f95-lang.c (DO_DEFINE_MATH_BUILTIN): Add support for long - double builtin function. - (gfc_init_builtin_functions): Add mfunc_longdouble, - mfunc_clongdouble and func_clongdouble_longdouble trees. Build - them for round, trunc, cabs, copysign and pow functions. - * iresolve.c (gfc_resolve_reshape, gfc_resolve_transpose): Add - case for kind 10 and 16. - * trans-decl.c: Add trees for cpowl10, cpowl16, ishftc16, - exponent10 and exponent16. - (gfc_build_intrinsic_function_decls): Build nodes for int16, - real10, real16, complex10 and complex16 types. Build all possible - combinations for function _gfortran_pow_?n_?n. Build function - calls cpowl10, cpowl16, ishftc16, exponent10 and exponent16. - * trans-expr.c (gfc_conv_power_op): Add case for integer(16), - real(10) and real(16). - * trans-intrinsic.c: Add suppport for long double builtin - functions in BUILT_IN_FUNCTION, LIBM_FUNCTION and LIBF_FUNCTION - macros. - (gfc_conv_intrinsic_aint): Add case for integer(16), real(10) and - real(16) kinds. - (gfc_build_intrinsic_lib_fndecls): Add support for real10_decl - and real16_decl in library functions. - (gfc_get_intrinsic_lib_fndecl): Add cases for real and complex - kinds 10 and 16. - (gfc_conv_intrinsic_exponent): Add cases for real(10) and real(16) - kinds. - (gfc_conv_intrinsic_sign): Likewise. - (gfc_conv_intrinsic_ishftc): Add case for integer(16) kind. - * trans-types.c (gfc_get_int_type, gfc_get_real_type, - gfc_get_complex_type, gfc_get_logical_type): Doesn't error out in - the case of kinds not available. - * trans.h: Declare trees for cpowl10, cpowl16, ishftc16, - exponent10 and exponent16. - -2005-10-01 Paul Thomas - - PR fortran/16404 - PR fortran/20835 - PR fortran/20890 - PR fortran/20899 - PR fortran/20900 - PR fortran/20901 - PR fortran/20902 - * gfortran.h: Prototype for gfc_add_in_equivalence. - * match.c (gfc_match_equivalence): Make a structure component - an explicit,rather than a syntax, error in an equivalence - group. Call gfc_add_in_equivalence to add the constraints - imposed in check_conflict. - * resolve.c (resolve_symbol): Add constraints: No public - structures with private-type components and no public - procedures with private-type dummy arguments. - (resolve_equivalence_derived): Add constraint that prevents - a structure equivalence member from having a default - initializer. - (sequence_type): New static function to determine whether an - object is default numeric, default character, non-default - or mixed sequence. Add corresponding enum typespec. - (resolve_equivalence): Add constraints to equivalence groups - or their members: No more than one initialized member and - that different types are not equivalenced for std=f95. All - the simple constraints have been moved to check_conflict. - * symbol.c (check_conflict): Simple equivalence constraints - added, including those removed from resolve_symbol. - (gfc_add_in_equivalence): New function to interface calls - match_equivalence to check_conflict. - -2005-09-27 Jakub Jelinek - - PR fortran/18518 - * trans-common.c (build_equiv_decl): Add IS_SAVED argument. - If it is true, set TREE_STATIC on the decl. - (create_common): If any symbol in equivalence has SAVE attribute, - pass true as last argument to build_equiv_decl. - -2005-09-24 Janne Blomqvist - - * trans-io.c (gfc_build_io_library_fndecls): Add entry - iocall_x_array for transfer_array. - (transfer_array_desc): New function. - (gfc_trans_transfer): Add code to call transfer_array_desc. - -2005-09-26 Jakub Jelinek - - PR fortran/23677 - * symbol.c (gfc_is_var_automatic): Return true if character length - is non-constant rather than constant. - * resolve.c (gfc_resolve): Don't handle !gfc_option.flag_automatic - here. - * options.c (gfc_post_options): Set gfc_option.flag_max_stack_var_size - to 0 for -fno-automatic. - -2005-09-23 Paul Thomas - - PR fortran/16861 - * module.c (mio_component_ref): Return if the symbol is NULL - and wait for another iteration during module reads. - (mio_symtree_ref): Suppress the writing of contained symbols, - when a symbol is available in the main namespace. - (read_module): Restrict scope of special treatment of contained - symbols to variables only and suppress redundant call to - find_true_name. - -2005-09-22 Steven G. Kargl - - PR fortran/24005 - * interface.c (check_interface1): Fix NULL dereference. - -2005-09-22 Erik Edelmann - - PR fortran/23843 - * resolve.c (derived_inaccessible): New function. - (resolve_transfer): Use it to check for private - components. - -2005-09-22 Steven G. Kargl - - PR fortran/23516 - * intrinsic.c (add_function): Add IMAG, IMAGPART, and REALPART - intrinsics. - * intrinsic.h: Prototypes for gfc_simplify_realpart and - gfc_resolve_realpart. - * intrinsic.texi: Document intrinsic procedures. - * simplify.c (gfc_simplify_realpart): New function. - * irseolve.c (gfc_resolve_realpart): New function. - -2005-09-21 Erik Edelmann - - PR fortran/19929 - * trans-stmt.c (gfc_trans_deallocate): Check if the - object to be deallocated is an array by looking at - expr->rank instead of expr->symtree->n.sym->attr.dimension. - -2005-09-20 Tobias Schl"uter - - PR fortran/23420 - * io.c (resolve_tag): Don't allow non-CHARACTER constants as formats. - (match_io): Fix usage of gfc_find_symbol. - -2005-09-20 Jakub Jelinek - - PR fortran/23663 - * primary.c (match_actual_arg): Handle ENTRY the same way - as FUNCTION. - -2005-09-18 Francois-Xavier Coudert - - * Make-lang.in: Make check-fortran alias for check-gfortran. - -2005-09-18 Andreas Jaeger - - * module.c (read_module): Add missed line from last patch. - -2005-09-18 Erik Edelmann - - PR fortran/15975 - * resolve.c (resolve_symbol): Don't assign default - initializer to pointers. - -2005-09-18 Paul Thomas - - PR fortran/16861 - * module.c (read_module): Give symbols from module procedures - different true_name entries to those from the module proper. - -2005-09-17 Francois-Xavier Coudert - - PR fortran/15586 - * arith.c (gfc_arith_error): Add translation support for error - messages. - * array.c (gfc_match_array_ref): Likewise. - (gfc_match_array_spec): Likewise. - * check.c (must_be): Add msgid convention to third argument. - (same_type_check): Add translation support for error message. - (rank_check): Likewise. - (kind_value_check): Likewise. - (gfc_check_associated): Correct typo. - (gfc_check_reshape): Add translation support for error message. - (gfc_check_spread): Likewise. - * error.c (error_printf): Add nocmsgid convention to argument. - (gfc_warning, gfc_notify_std, gfc_warning_now, gfc_warning_check) - (gfc_error, gfc_error_now): Likewise. - (gfc_status): Add cmsgid convention to argument. - * expr.c (gfc_extract_int): Add translation support for error - messages. - (gfc_check_conformance): Add msgid convention to argument. - (gfc_check_pointer_assign): Correct tabbing. - * gfortran.h: Include intl.h header. Remove prototype for gfc_article. - * gfortranspec.c: Include intl.h header. - (lang_specific_driver): Add translation support for --version. - * io.c (check_format): Add translation support for error message. - (format_item_1): Likewise. - (data_desc): Likewise. - * matchexp.c: Likewise. - * misc.c (gfc_article): Remove function. - * module.c (bad_module): Use msgid convention. Add translation support - for error messages. - (require_atom): Add translation support for error messages. - * parse.c (gfc_ascii_statement): Likewise. - (gfc_state_name): Likewise. - * primary.c (match_boz_constant): Reorganise error messages for - translations. - * resolve.c (resolve_entries): Likewise. - (resolve_operator): Add translation support for error messages. - (gfc_resolve_expr): Use msgid convention. Reorganise error messages - for translations. - (resolve_symbol): Add translation support for error messages. - * symbol.c (gfc_add_procedure): Remove use of gfc_article function. - * trans-const.c (gfc_build_string_const): Use msgid convention. - -2005-09-16 Paul Brook - - PR fortran/23906 - * dependency.c (transform_sections): Divide by correct value. - Elaborate comment. - -2005-09-14 Paul Thomas - - PR fortran/21875 Internal Unit Array I/O, NIST - * fortran/trans-io.c (gfc_build_io_library_fndecls): Add field for - array descriptor to IOPARM structure. - * fortran/trans-io.c (set_internal_unit): New function to generate code - to store the character (array) and the character length for an internal - unit. - * fortran/trans-io (build_dt): Use the new function set_internal_unit. - -2005-09-14 Paul Thomas - - PR fortran/19358 - * trans-array.c (gfc_trans_dummy_array_bias): correct the typo - which uses dim[i].upper for lbound, rather than dim[i].lower. - -2005-09-13 Erik Edelmann - - PR fortran/17740 - * trans-expr.c (gfc_trans_arrayfunc_assign): Check value - of attr.elemental for specific function instead of generic name. - -2005-09-13 Richard Sandiford - - PR fortran/18899 - * trans-intrinsic.c (gfc_conv_intrinsic_bound): Move initialization - of argse. Remove now-redundant want_pointer assignment. - * trans-array.c (gfc_conv_expr_descriptor): When not assigning to - a pointer, keep the original bounds of a full array reference. - -2005-09-13 Richard Sandiford - - PR target/19269 - * iresolve.c (gfc_resolve_cshift, gfc_resolve_eoshift) - (gfc_resolve_pack, gfc_resolve_reshape, gfc_resolve_spread) - (gfc_resolve_transpose, gfc_resolve_unpack): Add "_char" to the name - for character-based operations. - (gfc_resolve_pack): Remove ATTRIBUTE_UNUSED from array argument. - (gfc_resolve_unpack): Copy the whole typespec from the vector. - * trans-array.c (gfc_conv_expr_descriptor): In the EXPR_FUNCTION - case, get the string length from the scalarization state. - -2005-09-14 Francois-Xavier Coudert - - * Make-lang.in: Change targets prefixes from f95 to fortran. - * config-lang.in: Change language name to "fortran". - * lang.opt: Change language name to "fortran". - * options.c: Change CL_F95 to CL_Fortran. - -2005-09-09 Thomas Koenig - - gfortran.texi: Document IOSTAT= specifier. - -2005-09-09 Thomas Koenig - - * gfortran.h: Add iomsg to gfc_open, gfc_close, gfc_filepos, - gfc_inquire and gfc_dt. - * dump-parse-tree.c (gfc_show_code_node): Add iomsg - for open, close, file positioning, inquire and namelist. - * io.c (io_tag): Add tag_iomsg. - (resolve_tag): Add standards warning for iomsg. - (match_open_element): Add iomsg. - (gfc_free_open): Add iomsg. - (gfc_resolve_open): Add iomsg. - (gfc_free_close): Add iomsg. - (match_close_element): Add iomsg. - (gfc_resolve_close): Add iomsg. - (gfc_free_filepos): Add iomsg. - (match_file_element): Add iomsg. - (gfc_resolve_filepos): Add iostat and iomsg. - (match-dt_element): Add iomsg. - (gfc_free_dt): Add iomsg. - (gfc_resolve_dt): Add iomsg. - (gfc_free_inquire): Add iomsg. - (match_inquire_element): Add iomsg. - (gfc_resolve_inquire): Add iomsg. - * trans_io.c: Add ioparm_iomsg and ioparm_iomsg_len. - (gfc_build_io_library_fndecls): Add iomsg as last field. - (gfc_trans_open): Add iomsg. - (gfc_trans_close): Add iomsg. - (build_fileos): Call set_string for iomsg. - (gfc_trans_inquire): Add iomsg. - (build_dt): Add iomsg. - -2005-09-09 Richard Sandiford - - * match.h (gfc_match_equiv_variable): Declare. - -2005-09-09 Richard Sandiford - - PR fortran/19239 - * Makefile.in (fortran/trans-expr.o): Depend on dependency.h. - * dependency.h (gfc_ref_needs_temporary_p): Declare. - * dependency.c (gfc_ref_needs_temporary_p): New function. - (gfc_check_fncall_dependency): Use it instead of inlined check. - By so doing, take advantage of the fact that character substrings - within an array reference also need a temporary. - * trans.h (GFC_SS_VECTOR): Adjust comment. - * trans-array.c (gfc_free_ss): Remove GFC_SS_VECTOR case. - (gfc_set_vector_loop_bounds): New function. - (gfc_add_loop_ss_code): Call it after evaluating the subscripts of - a GFC_SS_SECTION. Deal with the GFC_SS_VECTOR case by evaluating - the vector expression and caching its descriptor for use within - the loop. - (gfc_conv_array_index_ref, gfc_conv_vector_array_index): Delete. - (gfc_conv_array_index_offset): Handle scalar, vector and range - dimensions as separate cases of a switch statement. In the vector - case, use the loop variable to calculate a vector index and use the - referenced element as the dimension's index. Perform bounds checking - on this final index. - (gfc_conv_section_upper_bound): Return null for vector indexes. - (gfc_conv_section_startstride): Give vector indexes a start value - of 0 and a stride of 1. - (gfc_conv_ss_startstride): Adjust for new GFC_SS_VECTOR representation. - (gfc_conv_expr_descriptor): Expand comments. Generalize the - handling of the !want_pointer && !direct_byref case. Use - gfc_ref_needs_temporary_p to decide whether the variable case - needs a temporary. - (gfc_walk_variable_expr): Handle DIMEN_VECTOR by creating a - GFC_SS_VECTOR index. - * trans-expr.c: Include dependency.h. - (gfc_trans_arrayfunc_assign): Fail if the target needs a temporary. - -2005-09-09 Richard Sandiford - - PR fortran/21104 - * trans.h (gfc_interface_sym_mapping, gfc_interface_mapping): Moved - from trans-expr.c. - (gfc_init_interface_mapping, gfc_free_interface_mapping) - (gfc_add_interface_mapping, gfc_finish_interface_mapping) - (gfc_apply_interface_mapping): Declare. - * trans-array.h (gfc_set_loop_bounds_from_array_spec): Declare. - (gfc_trans_allocate_temp_array): Add pre and post block arguments. - * trans-array.c (gfc_set_loop_bounds_from_array_spec): New function. - (gfc_trans_allocate_array_storage): Replace loop argument with - separate pre and post blocks. - (gfc_trans_allocate_temp_array): Add pre and post block arguments. - Update call to gfc_trans_allocate_array_storage. - (gfc_trans_array_constructor, gfc_conv_loop_setup): Adjust for new - interface to gfc_trans_allocate_temp_array. - * trans-expr.c (gfc_interface_sym_mapping, gfc_interface_mapping): - Moved to trans.h. - (gfc_init_interface_mapping, gfc_free_interface_mapping) - (gfc_add_interface_mapping, gfc_finish_interface_mapping) - (gfc_apply_interface_mapping): Make extern. - (gfc_conv_function_call): Build an interface mapping for array - return values too. Call gfc_set_loop_bounds_from_array_spec. - Adjust call to gfc_trans_allocate_temp_array so that code is - added to SE rather than LOOP. - -2005-09-09 Richard Sandiford - - PR fortran/12840 - * trans.h (gfor_fndecl_internal_realloc): Declare. - (gfor_fndecl_internal_realloc64): Declare. - * trans-decl.c (gfor_fndecl_internal_realloc): New variable. - (gfor_fndecl_internal_realloc64): New variable. - (gfc_build_builtin_function_decls): Initialize them. - * trans-array.h (gfc_trans_allocate_temp_array): Add a fourth argument. - * trans-array.c (gfc_trans_allocate_array_storage): Add an argument - to say whether the array can grow later. Don't allocate the array - on the stack if so. Don't call malloc for zero-sized arrays. - (gfc_trans_allocate_temp_array): Add a similar argument here. - Pass it along to gfc_trans_allocate_array_storage. - (gfc_get_iteration_count, gfc_grow_array): New functions. - (gfc_iterator_has_dynamic_bounds): New function. - (gfc_get_array_constructor_element_size): New function. - (gfc_get_array_constructor_size): New function. - (gfc_trans_array_ctor_element): Replace pointer argument with - a descriptor tree. - (gfc_trans_array_constructor_subarray): Likewise. Take an extra - argument to say whether the variable-sized part of the constructor - must be allocated using realloc. Grow the array when this - argument is true. - (gfc_trans_array_constructor_value): Likewise. - (gfc_get_array_cons_size): Delete. - (gfc_trans_array_constructor): If the loop bound has not been set, - split the allocation into a static part and a dynamic part. Set - loop->to to the bounds for static part before allocating the - temporary. Adjust call to gfc_trans_array_constructor_value. - (gfc_conv_loop_setup): Allow any constructor to determine the - loop bounds. Check whether the constructor has a dynamic size - and prefer to use something else if so. Expect the loop bound - to be set later. Adjust call to gfc_trans_allocate_temp_array. - * trans-expr.c (gfc_conv_function_call): Adjust another call here. - -2005-09-09 Paul Thomas - - PR fortran/18878 - * module.c (find_use_name_n): Based on original - find_use_name. Either counts number of use names for a - given real name or returns use name n. - (find_use_name, number_use_names): Interfaces to the - function find_use_name_n. - (read_module): Add the logic and calls to these functions, - so that mutiple reuses of the same real name are loaded. - -2005-09-09 Paul Thomas - - PR fortran/22304 - PR fortran/23270 - PR fortran/18870 - PR fortran/16511 - PR fortran/17917 - * gfortran.h: Move definition of BLANK_COMMON_NAME from trans- - common.c so that it is accessible to module.c. Add common_head - field to gfc_symbol structure. Add field for the equivalence - name AND new attr field, in_equivalence. - * match.c (gfc_match_common, gfc_match_equivalence): In loops - that flag common block equivalences, emit an error if the - common blocks are different, using sym->common_head as the - common block identifier. Ensure that symbols that are equivalence - associated with a common block are marked as being in_common. - * module.c (write_blank_common): New. - (write_common): Use unmangled common block name. - (load_equiv): New function ported from g95. - (read_module): Call load_equiv. - (write_equiv): New function ported from g95. Correct - string referencing for gfc functions. Give module - equivalences a unique name. - (write_module): Call write_equiv and write_blank_common. - * primary.c (match_variable) Old gfc_match_variable, made - static and third argument provided to indicate if parent - namespace to be visited or not. - (gfc_match_variable) New. Interface to match_variable. - (gfc_match_equiv_variable) New. Interface to match_variable. - * trans-common.c (finish_equivalences): Provide the call - to create_common with a gfc_common_header so that - module equivalences are made external, rather than local. - (find_equivalences): Ensure that all members in common block - equivalences are marked as used. This prevents the subsequent - call to this function from making local unions. - * trans-decl.c (gfc_generate_function_code): Move the call to - gfc_generate_contained_functions to after the call to - gfc_trans_common so the use-associated, contained common - blocks produce the correct references. - (gfc_create_module_variable): Return for equivalenced symbols - with existing backend declaration. - -2005-09-08 Tobias Schl"uter - - PR fortran/23765 - * match.c (gfc_match_common): Remove unnecessary / wrong special - cases for end-of-statement. - -2005-09-08 Janne Blomqvist - - * gfortran.texi: Add section about implemented F2003 features. - -2005-09-08 Richard Sandiford - - PR fortran/15326 - * trans-array.c (gfc_add_loop_ss_code): Set ss->string_length in - the GFC_SS_FUNCTION case too. - * trans-expr.c (gfc_conv_function_val): Allow symbols to be bound - to function pointers as well as function decls. - (gfc_interface_sym_mapping, gfc_interface_mapping): New structures. - (gfc_init_interface_mapping, gfc_free_interface_mapping) - (gfc_get_interface_mapping_charlen, gfc_get_interface_mapping_array) - (gfc_set_interface_mapping_bounds, gfc_add_interface_mapping) - (gfc_finish_interface_mapping, gfc_apply_interface_mapping_to_cons) - (gfc_apply_interface_mapping_to_ref) - (gfc_apply_interface_mapping_to_expr) - (gfc_apply_interface_mapping): New functions. - (gfc_conv_function_call): Evaluate the arguments before working - out where the result should go. Make the null pointer case provide - the string length in parmse.string_length. Cope with non-constant - string lengths, using the above functions to evaluate such lengths. - Use a temporary typespec; don't assign to sym->cl->backend_decl. - Don't assign to se->string_length when returning a cached array - descriptor. - -2005-09-08 Richard Sandiford - - PR fortran/19928 - * trans-array.c (gfc_conv_array_ref): Call gfc_advance_se_ss_chain - after handling scalarized references. Make "indexse" inherit from - "se" when handling AR_ELEMENTs. - (gfc_walk_variable_expr): Add GFC_SS_SCALAR entries for each - substring or scalar reference that follows an array section. - * trans-expr.c (gfc_conv_variable): When called from within a - scalarization loop, start out with "ref" pointing to the scalarized - part of the reference. Don't call gfc_advance_se_ss_chain here. - -2005-09-07 Richard Sandiford - - PR fortran/23373 - * trans-expr.c (gfc_trans_pointer_assignment): Assign to a temporary - descriptor if the rhs is not a null pointer or variable. - -2005-09-07 Thomas Koenig - - PR fortran/20848 - * symbol.c(check_conflict): Add conflict for parameter/save, - -2005-09-06 Richard Sandiford - - PR fortran/19269 - * simplify.c (gfc_simplify_transpose): Set the result's typespec from - the source, not the first element of the return value. - -2005-09-04 Tobias Schl"uter - - PR fortran/23661 - * io.c (match_io): Correctly backup if PRINT followed by - symbol which is not a namelist. Force blank between PRINT - and namelist in free form. - -2005-08-31 Francois-Xavier Coudert - - PR fortran/20592 - * gfortran.h (gfc_option_t): Add flag_automatic. - * invoke.texi: Document the -fno-automatic option. - * lang.opt: Add a -fautomatic option. - * options.c (gfc_init_options): Default for -fautomatic is on. - (gfc_handle_option): Add handling of -fautomatic option. - * resolve.c (gfc_resolve): When -fno-automatic is used, mark - needed variables as SAVE. - -2005-08-27 Erik Edelmann - - * trans-array.c (gfc_trans_deferred_array): Fix comments. - -2005-08-27 Erik Schnetter - - * primary.c (match_charkind_name): Fix typo in comment leading to - function. - -2005-08-25 Erik Edelmann - - PR fortran/20363 - * symbol.c (find_special): Remove. - (build_sym, add_init_expr, attr_decl1): Remove calls to - find_special in favor of calls to gfc_get_symbol. - -2005-08-24 Thomas Koenig - - PR fortran/17758 - * gfortran.h (symbol_attribute): Add noreturn to the structure. - (gfc_intrinsic_sym): Add noreturn to the structure. - * intrinsic.c (make_noreturn): New function. - (add_subroutines): Mark subroutines abort and exit as noreturn. - (gfc_intrinsic_sub_interface): Copy noreturn attribute from - isym to the resolved symbol. - * trans-decl.c (gfc_get_extern_function_decl): Set function - as VOLATILE (== noreturn) if the noreturn attribute is set. - -2005-08-21 Steven G. Kargl - - * decl.c: Typo in comment. - -2005-08-21 Steven G. Kargl - - * array.c: Bump GFC_MAX_AC_EXPAND from 100 to 65535. - -2005-08-21 Tobias Schl"uter - - * gfortran.h (gfc_option_t): Remove source field. Add - flag_d_lines field. - (gfc_new_file): Remove arguments in prototype. - (gfc_source_file): Make 'const char *'. - * f95-lang.c (gfc_init): Use gfc_source_file instead of - gfc_option.source. Call gfc_new_file without arguments. - * invoke.texi: Document new options '-fd-lines-as-code' and - '-fd-lines-as-comment'. - * lang.opt: Add new options. Alphabetize. - * options.c (gfc_init_options): Initialize gfc_source_file instead - of gfc_option.source. Initialize gfc_option.flag_d_lines. - (form_from_filename): Move here from scanner.c. Make - 'filename' argument 'const'. - (gfc_post_options): Set gfc_source_file. Determine source form. - Warn if 'd-lines*' are used in free form. - * scanner.c (gfc_source_file): Constify. - (skip_fixed_comments): Deal with d-lines. - (get_file): Constify argument 'name'. - (load_file): Constify argument 'filename'. - (form_from_filename): Moved to options.c. - (gfc_new_file): Remove arguments. Don't initialize - gfc_source_file, don't determine source form. - * trans-const.c (gfc_init_constants): Use gfc_source_file instead - of gfc_option.source. - -2005-08-19 Steven G. Kargl - - PR fortran/23065 - * gfortran.h: Remove PATH_MAX definition. - * module.c (write_module, gfc_dump_module): Use alloca to allocate - buffers. - * scanner.c (gfc_release_include_path, form_from_filename): Ditto. - -2004-08-16 Huang Chun - - * trans-expr.c (gfc_conv_power_op): Evaluate the expression before - expand. - -2005-08-14 Asher Langton - - * parse.c (match): Enclose macro in do...while(0) and braces. - -2005-08-14 Paul Thomas - - PR fortran/21432. - * gfortran.texi: Document PRINT namelist. - -2005-08-14 Paul Thomas - - PR fortran/21432. - * io.c (match_io): Add code to implement PRINT namelist. - -2005-08-14 Canqun Yang - - * trans-stmt.c (gfc_trans_arithmetic_if): Optimized in case of equal - labels. - -2005-08-11 Francois-Xavier Coudert - Steven Bosscher - - PR libfortran/20006 - * gfortran.h: Add is_main_program member to symbol_attribute. - * trans-decl: Add a gfor_fndecl_set_std tree. - (gfc_build_builtin_function_decls): Create it. - (gfc_generate_function_code): Add this call at the beginning of - the main program. - * trans.c (gfc_generate_code): Move main_program and attr. - * trans.h: Add declaration for gfor_fndecl_set_std. - -2005-08-10 Thomas Koenig - - PR libfortran/22143 - gfortran.h: Declare new function gfc_resolve_dim_arg. - resolve.c: New function gfc_resolve_dim_arg. - iresolve.c (gfc_resolve_all): Use gfc_resolve_dim_arg. - (gfc_resolve_any): Likewise. - (gfc_resolve_count): Likewise. - (gfc_resolve_cshift): Likewise. If the kind of shift is less - gfc_default_integer_kind, convert it to default integer type. - (gfc_resolve_eoshift): Likewise. - (gfc_resolve_maxloc): Use gfc_resolve_dim_arg. - (gfc_resolve_maxval): Likewise. - (gfc_resolve_minloc): Likewise. - (gfc_resolve_minval): Likewise. - (gfc_resolve_product): Likewise. - (gfc_resolve_spread): Likewise. - (gfc_resolve_sum): Likewise. - -2005-08-09 Francois-Xavier Coudert - - * check.c (gfc_check_ttynam_sub, gfc_check_isatty): Add check - functions for new intrinsics TTYNAM and ISATTY. - * intrinsic.c (add_functions, add_subroutines): Add new - intrinsics. - * intrinsic.h: Add prototypes for new check and resolve - functions. - * iresolve.c (gfc_resolve_isatty, gfc_resolve_ttynam_sub): New - resolve functions for intrinsics TTYNAM and ISATTY. - * gfortran.h (gfc_generic_isym_id): Add symbol for ISATTY. - * trans-intrinsic.c: Add case for GFC_ISYM_ISATTY. - -2005-08-09 Jakub Jelinek - - * scanner.c (preprocessor_line): Don't write beyond the end of flag - buffer. - -2005-08-07 Janne Blomqvist - - PR fortran/22390 - * dump-parse-tree.c (gfc_show_code_node): Add case for FLUSH. - * gfortran.h: Add enums for FLUSH. - * io.c (gfc_free_filepos,match_file_element,match_filepos): Modify - comment appropriately. (gfc_match_flush): New function. - * match.c (gfc_match_if): Add match for flush. - * match.h: Add prototype. - * parse.c (decode_statement): Add flush to 'f' case. - (next_statement): Add case for flush. (gfc_ascii_statement): Likewise. - * resolve.c (resolve_code): Add flush case. - * st.c (gfc_free_statement): Add flush case. - * trans-io.c: Add prototype for flush. - (gfc_build_io_library_fndecls): Build fndecl for flush. - (gfc_trans_flush): New function. - * trans-stmt.h: Add prototype. - * trans.c (gfc_trans_code): Add case for flush. - -2005-08-06 Francois-Xavier Coudert - - * primary.c (match_hollerith_constant): Fix typo. - -2005-08-06 Kazu Hirata - - * decl.c, dump-parse-tree.c, gfortran.texi, intrinsic.texi, - invoke.texi, resolve.c, trans-array.c, trans-array.h, - trans-common.c, trans-expr.c, trans-io.c, trans.h: Fix - comment/doc typos. Follow spelling conventions. - -2005-08-06 Jakub Jelinek - - PR fortran/18833 - PR fortran/20850 - * primary.c (match_varspec): If equiv_flag, don't look at sym's - attributes, call gfc_match_array_ref up to twice and don't do any - substring or component processing. - * resolve.c (resolve_equivalence): Transform REF_ARRAY into - REF_SUBSTRING or nothing if needed. Check that substrings - don't have zero length. - -2005-08-05 Thomas Koenig - - * trans-expr.c (gfc_build_builtin_function_decls): Mark - stop_numeric and stop_string as non-returning. - -2005-08-04 Paul Brook - - * trans-expr.c (gfc_conv_expr, gfc_conv_expr_type): Update comments. - (gfc_conv_expr_lhs): Fix assertion. - (gfc_conv_expr_val): Merge post block. Set se.expr to new value. - -2005-08-02 David Edelsohn - - PR fortran/22491 - * expr.c (simplify_parameter_variable): Do not copy the subobject - references if the expression value is a constant. - - * expr.c (gfc_simplify_expr): Evaluate constant substrings. - -2005-07-31 Jerry DeLisle - - * intrinsic.texi: Add documentation for exponent, floor, and fnum and - fix description of ceiling in index. - -2005-07-31 Steven Bosscher - - * trans-decl.c (gfc_build_builtin_function_decls): Give the internal - malloc functions the 'malloc' attribute. Give runtime_error the - 'noreturn' attribute. - -2005-07-31 Steven Bosscher - - * trans-stmt.c (gfc_trans_goto): Jump to the known label instead - of the assigned goto variable. - -2005-07-29 Steven Bosscher - - * trans-types.h (gfc_array_range_type): Add missing GTY decl for this. - -2005-07-28 Andrew Pinski - - * fortran/f95-lang.c (language_function): Remove - named_labels, shadowed_labels, returns_value, returns_abnormally, - warn_about_return_type, and extern_inline fields. - (named_labels): Remove variable. - (gfc_init_decl_processing): Remove setting of named_labels. - -2005-07-27 Volker Reichelt - - PR fortran/22503 - * resolve.c (resolve_operator): Improve diagnostic for comparison - of logicals with invalid operator. - -2005-07-25 Jakub Jelinek - - PR fortran/20063 - * data.c (gfc_assign_data_value_range): Call - create_character_initializer if last_ts is a character type. - -2005-07-22 Manfred Hollstein - - * match.c (gfc_match_symbol): Fix uninitialised warnings. - * matchexp.c (gfc_match_expr): Likewise. - -2005-07-20 Giovanni Bajo - - Make CONSTRUCTOR use VEC to store initializers. - * trans-array.c (gfc_build_null_descriptor, - gfc_trans_array_constructor_value, gfc_conv_array_initializer): - Update to cope with VEC in CONSTRUCTOR_ELTS. - * trans-common.c (create_common): Likewise. - * trans-expr.c (gfc_conv_structure): Likewise. - * trans-stmt.c (gfc_trans_character_select): Use - build_constructor_from_list instead of build_constructor. - -2005-07-19 Paul Thomas - - PR fortran/16940 - * resolve.c (resolve_symbol): A symbol with FL_UNKNOWN - is matched against interfaces in parent namespaces. If there - the symtree is set to point to the interface. - -2005-07-16 David Edelsohn - - PR fortran/21730 - * decl.c (do_parm): Adjust character initializer to character length - of symbol before assigning. - -2005-07-14 Steve Ellcey - - * trans-types.c (MAX_REAL_KINDS): Increase from 4 to 5. - -2005-07-14 Jakub Jelinek - - * gfortran.h (MAX_ERROR_MESSAGE): Remove. - (gfc_error_buf): Add allocated and index fields. Change message - field from array to a pointer. - * error.c (use_warning_buffer, error_ptr, warning_ptr): Remove. - (cur_error_buffer): New variable. - (error_char): Use cur_error_buffer->{message,index} instead of - {warning,error}_{buffer.message,ptr}. Reallocate message buffer - if too small. - (gfc_warning, gfc_notify_std, gfc_error, gfc_error_now): Setup - cur_error_buffer and its index rather than {warning,error}_ptr - and use_warning_buffer. - (gfc_warning_check, gfc_error_check): Don't print anything if - message is NULL. - (gfc_push_error): Allocate saved message with xstrdup. - (gfc_pop_error): Free saved message with gfc_free. - (gfc_free_error): New function. - * primary.c (match_complex_constant): Call gfc_free_error if - gfc_pop_error will not be called. - * match.c (gfc_match_st_function): Likewise. - - PR fortran/22417 - * scanner.c (preprocessor_line): Don't treat flag 3 as the start of a new - file. Fix file left but not entered warning. - -2005-07-14 Feng Wang - Steven G. Kargl - - * array.c (resolve_character_array_constructor): Allocate gfc_charlen - for the array and attach to namespace list for automatic deallocation. - -2005-07-13 Andreas Schwab - - * Make-lang.in (fortran/dependency.o): Depend on - $(GFORTRAN_TRANS_DEPS). - -2005-07-11 Jakub Jelinek - - * trans-stmt.c (gfc_trans_forall_loop): Clear maskindex before - the outermost loop. - (gfc_trans_assign_need_temp, gfc_trans_pointer_assign_need_temp, - gfc_trans_forall_1, gfc_evaluate_where_mask, gfc_trans_where_2): - Don't clear maskindexes here. - -2005-07-08 Daniel Berlin - - * trans-decl.c (create_function_arglist): DECL_ARG_TYPE_AS_WRITTEN - is removed. - -2005-07-08 Jakub Jelinek - - * primary.c (gfc_match_rvalue): Handle ENTRY the same way - as FUNCTION. - -2005-07-07 Jakub Jelinek - - * scanner.c (load_line): Add pbuflen argument, don't make - buflen static. If maxlen == 0 or preprocessor_flag, - don't truncate at buflen, but at maxlen. In xrealloc add - 1 byte at the end for the terminating '\0'. Don't fill - with spaces up to buflen, but gfc_option.fixed_line_length. - (load_file): Adjust load_line caller. Add line_len variable. - - * scanner.c (preprocessor_line): Only set current_file->line when errors - have not been encountered. Warn and don't crash if a file leave - preprocessor line has no corresponding entering line. Formatting. - -2005-07-07 Steven Bosscher - - * primary.c (match_hollerith_constant): Use int, not unsigned int, - for the hollerith length. Fix indentation. - -2005-07-07 Feng Wang - - PR fortran/16531 - PR fortran/15966 - PR fortran/18781 - * arith.c (gfc_hollerith2int, gfc_hollerith2real, - gfc_hollerith2complex, gfc_hollerith2character, gfc_hollerith2logical): - New functions. - (eval_intrinsic): Don't evaluate if Hollerith constant arguments exist. - * arith.h (gfc_hollerith2int, gfc_hollerith2real, - gfc_hollerith2complex, gfc_hollerith2character, gfc_hollerith2logical): - Add prototypes. - * expr.c (free_expr0): Free memery allocated for Hollerith constant. - (gfc_copy_expr): Allocate and copy string if Expr is from Hollerith. - (gfc_check_assign): Enable conversion from Hollerith to other. - * gfortran.h (bt): Add BT_HOLLERITH. - (gfc_expr): Add from_H flag. - * intrinsic.c (gfc_type_letter): Return 'h' for BT_HOLLERITH. - (add_conversions): Add conversions from Hollerith constant to other. - (do_simplify): Don't simplify if Hollerith constant arguments exist. - * io.c (resolve_tag): Enable array in FORMAT tag under GFC_STD_GNU. - * misc.c (gfc_basetype_name): Return "HOLLERITH" for BT_HOLLERITH. - (gfc_type_name): Print "HOLLERITH" for BT_HOLLERITH. - * primary.c (match_hollerith_constant): New function. - (gfc_match_literal_constant): Add match Hollerith before Integer. - * simplify.c (gfc_convert_constant): Add conversion from Hollerith - to other. - * trans-const.c (gfc_conv_constant_to_tree): Use VIEW_CONVERT_EXPR to - convert Hollerith constant to tree. - * trans-io.c (gfc_convert_array_to_string): Get array's address and - length to set string expr. - (set_string): Deal with array assigned Hollerith constant and character - array. - * gfortran.texi: Document Hollerith constants as extention support. - -2005-07-07 Feng Wang - - PR fortran/22327 - * trans-array.c (gfc_trans_array_constructor_value): Fix index of data. - -2005-07-07 Jakub Jelinek - - * decl.c (gfc_match_entry): Allow ENTRY without parentheses - even in FUNCTIONs. - -2005-07-03 Kazu Hirata - - * gfortran.texi, intrinsic.texi: Fix typos. - * symbol.c: Fix a comment typo. - -2005-07-03 Kaveh R. Ghazi - - * error.c (error_printf, error_print): Use ATTRIBUTE_GCC_GFC. - * gfortran.h (ATTRIBUTE_GCC_GFC): New. - (gfc_warning, gfc_warning_now, gfc_error, gfc_error_now, - gfc_fatal_error, gfc_internal_error, gfc_notify_std): Use - ATTRIBUTE_GCC_GFC. - -2005-07-03 Francois-Xavier Coudert - - PR fortran/20842 - * io.c (match_dt_element): Do not allow END tag in PRINT or - WRITE statement. - -2005-07-02 Joseph S. Myers - - * lang.opt: Remove "." from end of help texts. - -2005-07-01 Jerry DeLisle - - * gfortran.texi: Fix typos and grammar. - * invoke.texi: Fix typos and grammar. - * intrinsic.texi: Add documentaion for eoshift, epsilon, etime, and - exit. Fixed alignment of text for dtime syntax. Fixed a few line - lengths. - -2005-06-25 Jakub Jelinek - - * trans-stmt.c (gfc_trans_forall_1): Prefer to use smaller logical - type than boolean_type_node. - -2005-06-25 Kelley Cook - - * all files: Update FSF address in copyright headers. - -2005-06-24 Jerry DeLisle - - PR fortran/21915 - * gfortran.h: Add symbols for new intrinsic functions. - * intrinsic.c: Add new functions acosh, asinh, and atanh. - * intrinsic.h: Add prototypes for the new functions. - * iresolve.c (gfc_resolve_acosh): New function. - (gfc_resolve_asinh): New function. - (gfc_resolve_atanh): New function. - * mathbuiltins.def: Add defines. - * simplify.c (gfc_simplify_acosh): New function. - (gfc_simplify_asinh): New function. - (gfc_simplify_atanh): New function. - -2005-06-24 Feng Wang - - * simplify.c (gfc_simplify_modulo): Don't clear before get result. - -2005-06-22 Paul Brook - - PR fortran/21034 - * symbol.c (gfc_is_var_automatic): New function. - (save_symbol): Use it. - -2005-06-21 Tobias Schlueter - Paul Thomas - - PR fortran/22010 - Port from g95. - * module.c (mio_namelist): New function. Correct to set - namelist_tail and to give error on renaming namelist by use - association. - (mio_symbol): Call mio_namelist. - -2005-06-19 Francois-Xavier Coudert - - * gfortran.h: Add flag_backslash compile-time option. - * lang.opt: Add support for -fbackslash option. - * options.c: Likewise. - * primary.c: Implement behavior for -fno-backslash. - * invoke.texi: Add doc for -fbackslash option. - * gfortran.texi: Remove mention of -fno-backslash as a - possible extension. - -2005-06-20 Steven G. Kargl - (port from g95) - - PR fortran/21257 - * match.c (gfc_match_label): Detect duplicate labels. - - -2005-06-20 Erik Edelmann - - * intrinsic.c (check_intrinsic_standard): Fix spelling error - in a warning message. - -2005-06-18 Erik Edelman - Steven G. Kargl - - PR fortran/19926 - * primary.c (gfc_match_rvalue): expr_type can be EXPR_CONSTANT - for an array; check that sym->as is NULL. - - -2005-06-18 Steven G. Kargl - - * intrinsic.c (gfc_intrinsic_func_interface): Enable errors for generic - functions whose simplification routine return FAILURE. - -2005-06-13 Geoffrey Keating - - * Make-lang.in (fortran.install-man): Doesn't depend on installdirs. - (rule for installing f95.1 manpage): Does depend on installdirs. - -2005-06-13 Jakub Jelinek - - PR fortran/22038 - * trans-stmt.c (gfc_trans_forall_loop): Only increment maskindex - in the innermost loop. - - * trans-expr.c (gfc_conv_function_call): Return int instead of - void. Use a local variable for has_alternate_specifier and - return it. Avoid modification of function type's return value - in place, since it may be shared. - * trans.h (has_alternate_specifier): Remove. - (gfc_conv_function_call): Change return type. - * trans-stmt.c (has_alternate_specifier): Remove. - (gfc_trans_call): Add a local has_alternate_specifier variable, - set it from gfc_conv_function_call return value. - -2005-06-12 Richard Henderson - - * trans-array.c (gfc_conv_descriptor_data_get): Rename from - gfc_conv_descriptor_data. Cast the result to the DATAPTR type. - (gfc_conv_descriptor_data_set, gfc_conv_descriptor_data_addr): New. - (gfc_trans_allocate_array_storage): Use them. - (gfc_array_allocate, gfc_array_deallocate): Likewise. - (gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor): Likewise. - (gfc_trans_deferred_array): Likewise. - * trans-expr.c (gfc_conv_function_call): Likewise. - (gfc_trans_subcomponent_assign): Likewise. - (gfc_trans_pointer_assignment): Likewise. - * trans-intrinsic.c (gfc_conv_allocated): Likewise. - * trans-types.c (gfc_array_descriptor_base): New. - (gfc_get_element_type): Use GFC_TYPE_ARRAY_DATAPTR_TYPE. - (gfc_get_array_descriptor_base): Break out from ... - (gfc_get_array_type_bounds): ... here. Create type variants. - * trans-array.h (gfc_conv_descriptor_data_get): Declare. - (gfc_conv_descriptor_data_set, gfc_conv_descriptor_data_addr): Declare. - -2005-06-12 Tobias Schl"uter - - * trans-expr.c (gfc_conv_variable): POINTER results don't need f2c - calling conventions. Look at sym instead of sym->result. - * trans-types.c (gfc_sym_type): Remove workaround for frontend bug. - Remove condition which is always false with workaround removed. - (gfc_return_by_reference): Always look at sym, never at sym->result. - -2005-06-11 Steven G. Kargl - - PR fortran/17792 - PR fortran/21375 - * trans-array.c (gfc_array_deallocate): pstat is new argument - (gfc_array_allocate): update gfc_array_deallocate() call. - (gfc_trans_deferred_array): ditto. - * trans-array.h: update gfc_array_deallocate() prototype. - * trans-decl.c (gfc_build_builtin_function_decls): update declaration - * trans-stmt.c (gfc_trans_deallocate): Implement STAT= feature. - -2005-06-07 Jerry DeLisle - - * intrinsic.texi: Add documentation for dcmplx, digits, - dim, idim, ddim, dot_product, dprod, dreal, and dtime. - -2005-06-05 Tobias Schl"uter - - PR fortran/21912 - * trans-array.c (gfc_trans_array_constructor_value): Slightly reorder. - Generate correct exit condition in case of negative steps in - implied-do loops. - - * invoke.texi: Fix description of flags required for compatibility - with g77. - -2005-06-04 Tobias Schl"uter - Erik Schnetter - - PR fortran/19195 - * trans.c (gfc_get_backend_locus): Remove unnecessary adjustment, - remove FIXME comment. - -2005-06-04 Tobias Schl"uter - - * match.c (match_forall_iterator): Don't immediately give error if '=' - is not followed by an expression. - -2005-06-04 Tobias Schl"uter - Erik Edelmann - - * array.c (gfc_match_array_constructor): Disallow empty array - constructor. - -2005-06-03 Jerry DeLisle - - * fortran/intrinsic.texi: Add documentation for - command_argument_count, conjg, dconjg, count, - cpu_time, cshift, date_and_time, dble, dfloat. - -2005-06-01 Roger Sayle - - * intrinsic.c (add_conv): No longer take a "simplify" argument as - its always gfc_convert_constant, instead take a "standard" argument. - (add_conversions): Change all existing calls of add_conv to pass - GFC_STD_F77 as appropriate. Additionally, if we're allowing GNU - extensions support integer-logical and logical-integer conversions. - (gfc_convert_type_warn): Warn about use the use of these conversions - as a extension when appropriate, i.e. with -pedantic. - * simplify.c (gfc_convert_constant): Add support for integer to - logical and logical to integer conversions, using gfc_int2log and - gfc_log2int. - * arith.c (gfc_log2int, gfc_int2log): New functions. - * arith.h (gfc_log2int, gfc_int2log): Prototype here. - * gfortran.texi: Document this new GNU extension. - -2005-06-01 Paul Thomas - - * fortran/trans-expr.c (gfc_conv_variable): Clean up bracketting. - * fortran/trans-expr.c (gfc_conv_function_call): Insert spaces. - Correct comments and replace convert of integer_one_node with - build_int_cst. - -2005-06-01 Jakub Jelinek - - PR fortran/21729 - * resolve.c (resolve_contained_fntype): Use sym->attr.untyped - to avoid giving error multiple times. - (resolve_entries): Don't error about BT_UNKNOWN here. - (resolve_unknown_f): Capitalize IMPLICIT for consistency. - (resolve_fntype): New function. - (gfc_resolve): Call resolve_fntype. - -2005-06-01 Feng Wang - - PR fortran/20883 - * fortran/io.c (resolve_tag): Fix error message. - -2005-05-31 Kaveh R. Ghazi - - * fortran/trans-decl.c: Don't include errors.h. - * fortran/Make-lang.in: Updates dependencies. - -2005-05-31 Paul Thomas - - PR fortran/18109 - PR fortran/18283 - PR fortran/19107 - * fortran/trans-array.c (gfc_conv_expr_descriptor): Obtain the - string length from the expression typespec character length value - and set temp_ss->stringlength and backend_decl. Obtain the - tree expression from gfc_conv_expr rather than gfc_conv_expr_val. - Dereference the expression to obtain the character. - * fortran/trans-expr.c (gfc_conv_component_ref): Remove the - dereference of scalar character pointer structure components. - * fortran/trans-expr.c (gfc_trans_subarray_assign): Obtain the - string length for the structure component from the component - expression. - -2005-05-30 Roger Sayle - - * gfortran.h (GFC_STD_LEGACY): New "standard" macro. Reindent. - * options.c (gfc_init_options): By default, allow legacy extensions - but warn about them. - (gfc_post_options): Make -pedantic warn about legacy extensions - even with -std=legacy. - (gfc_handle_option): Make -std=gnu follow the default behaviour - of warning about legacy extensions, but allowing them. Make the - new -std=legacy accept everything and warn about nothing. - * lang.opt (std=legacy): New F95 command line option. - * invoke.texi: Document both -std=f2003 and -std=legacy. - * gfortran.texi: Explain the two types of extensions and document - how they are affected by the various -std= command line options. - -2005-05-30 Kazu Hirata - - * trans-expr.c: Remove trailing ^M. - - * trans-expr.c: Fix comment typos. - -2005-05-29 Paul Thomas - - PR fortran/16939 - PR fortran/17192 - PR fortran/17193 - PR fortran/17202 - PR fortran/18689 - PR fortran/18890 - * fortran/trans-array.c (gfc_conv_resolve_dependencies): Add string - length to temp_ss for character pointer array assignments. - * fortran/trans-expr.c (gfc_conv_variable): Correct errors in - dereferencing of characters and character pointers. - * fortran/trans-expr.c (gfc_conv_function_call): Provide string - length as return argument for various kinds of handling of return. - Return a char[]* temporary for character pointer functions and - dereference the temporary upon return. - -2005-05-29 Janne Blomqvist - Steven G. Kargl - - fortran/PR20846 - * io.c (gfc_match_inquire): Implement constraints on UNIT and FILE usage. - -2005-05-29 Francois-Xavier Coudert - - PR libfortran/20006 - * io.c (format_item_1): Add check and extension warning for - $ edit descriptor. - -2005-05-28 Steven G. Kargl - - * arith.c (gfc_arith_init_1): Fix off by one problem; - (gfc_check_integer_range): Chop extra bits in subnormal numbers. - -2005-05-28 Jerry DeLisle - Steven G. Kargl - - * intrinsic.texi: added documentation for BIT_SIZE, BTEST, CHAR, CEILING - and CMPLX - -2005-05-27 Steven G. Kargl - - * trans-array.c (gfc_trans_deferred_array): Use build_int_cst to force - like types in comparsion. - -2005-05-26 Kazu Hirata - - * data.c, parse.c, trans-array.c, trans-decl.c, - trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.c, - trans.h: Fix comment typos. Follow spelling conventions. - -2005-05-22 Roger Sayle - - * gfortran.texi: Document some more GNU extensions. - -2005-05-22 Francois-Xavier Coudert - - * error.c (gfc_warning): Fix typo in comment. - -2005-05-18 Thomas Koenig - - PR libfortran/21127 - * fortran/iresolve.c (gfc_resolve_reshape): Add - gfc_type_letter (BT_COMPLEX) for complex to - to resolved function name. - -2005-05-18 Erik Edelmann - - * array.c (gfc_match_array_constructor): Support [ ... ] - style array constructors. - -2005-05-18 Tobias Schl"uter - - * f95-lang.c (gfc_init_builtin_functions): Define BUILT_IN_TRUNC - and BUILT_IN_TRUNCF instead of BUILT_IN_FLOOR and BUILT_IN_FLOORF. - * trans-intrinsic.c (build_fix_expr): Change 'op' argument - to correct enum type. - (gfc_conv_intrinsic_aint): Likewise. Clarify comment in front of - function. Add default case to switch, deal with FIX_TRUNC_EXPR - instead of FIX_FLOOR_EXPR. - -2005-05-18 Feng Wang - - PR fortran/20954 - * trans-const.c (gfc_conv_const_charlen): Use gfc_charlen_type_node to - build character length. - -2005-05-17 Zdenek Dvorak - - * trans-types.c (gfc_array_range_type): New variable. - (gfc_init_types): Initialize gfc_array_range_type. - (gfc_get_array_type_bounds): Use gfc_array_range_type. - -2005-05-17 Jakub Jelinek - - PR fortran/15080 - * trans-stmt.c (generate_loop_for_temp_to_lhs): Remove SIZE and COUNT2 - arguments. If LSS is gfc_ss_terminator, increment COUNT1 by 1, instead - of incrementing COUNT2 and using COUNT1+COUNT2 increment COUNT1 and use - just that as index. - (generate_loop_for_rhs_to_temp): Likewise. - (compute_overall_iter_number): Add INNER_SIZE_BODY argument. - It non-NULL, add it to body. - (allocate_temp_for_forall_nest_1): New function, split from - allocate_temp_for_forall_nest. - (allocate_temp_for_forall_nest): Add INNER_SIZE_BODY argument, - propagate it down to compute_overall_iter_number. Use - allocate_temp_for_forall_nest_1. - (gfc_trans_assign_need_temp): Remove COUNT2. Call - compute_inner_temp_size into a new stmtblock_t. Adjust calls to - allocate_temp_for_forall_nest, generate_loop_for_rhs_to_temp - and generate_loop_for_temp_to_lhs. - (gfc_trans_pointer_assign_need_temp): Adjust calls to - allocate_temp_for_forall_nest. - (gfc_evaluate_where_mask): Call compute_inner_temp_size into a new - stmtblock_t. Call compute_overall_iter_number just once, then - allocate_temp_for_forall_nest_1 twice with the same size. - Initialize mask indexes if nested_forall_info != NULL. - (gfc_trans_where_2): Initialize mask indexes before calling - gfc_trans_nested_forall_loop. - -2005-05-15 Feng Wang - Jerry DeLisle - - PR fortran/17432 - * trans-stmt.c (gfc_trans_label_assign): fix pointer type, to - resolve ICE on assign of format label. - * trans-io.c (set_string): add fold-convert to properly - handle assigned format label in write. - -2005-05-13 Paul Brook - - * trans-stmt.c (gfc_trans_forall_1): Fix comment typo. - -2005-05-12 Tobias Schl"uter - - * trans-types.c (gfc_is_nodesc_array): Remove redundant check. - -2005-05-11 Tobias Schl"uter - - PR fortran/21260 - * io.c (check_format): Look for literal characters inside - hollerith constant. - -2005-05-11 Tobias Schl"uter - - * resolve.c (resolve_symbol): Copy 'pointer' and 'dimension' - attribute from result symbol to function symbol. - * trans-expr.c (gfc_conv_function_call): Look at sym->attr.dimension - instead of sym->result->attr.dimension. - -2005-05-10 Tobias Schl"uter - - PR fortran/20178 - * gfortran.h (gfc_option): Add flag_f2c. - * invoke.texi: Document '-ff2c' command line option. Adapt - documentation for '-fno-second-underscore' and '-fno-underscoring'. - * lang.opt (ff2c): New entry. - * options.c (gfc-init_options): Set default calling convention - to -fno-f2c. Mark -fsecond-underscore unset. - (gfc_post_options): Set -fsecond-underscore if not explicitly set - by user. - (handle_options): Set gfc_option.flag_f2c according to requested - calling convention. - * trans-decl.c (gfc_get_extern_function_decl): Use special f2c - intrinsics where necessary. - (gfc_trans_deferred_vars): Change todo error to assertion. - * trans-expr.c (gfc_conv_variable): Dereference access - to hidden result argument. - (gfc_conv_function_call): Add hidden result argument to argument - list if f2c calling conventions requested. Slightly restructure - tests. Convert result of default REAL function to requested type - if f2c calling conventions are used. Dereference COMPLEX result - if f2c cc are used. - * trans-types.c (gfc_sym_type): Return double for default REAL - function if f2c cc are used. - (gfc_return_by_reference): Slightly restructure logic. Return - COMPLEX by reference depending on calling conventions. - (gfc_get_function_type): Correctly make hidden result argument a - pass-by-reference argument for COMPLEX. Remove old code which does - this for derived types. - -2005-05-09 Tobias Schl"uter - - * match.c (gfc_match_return): Only require space after keyword when - it is obligatory. Only give stdwarn to after matching is successful. - * dump-parse-tree.c (gfc_show_symbol): Deal with alternate returns. - -2005-05-08 Kazu Hirata - - * intrinsic.texi: Fix typos. - -2005-05-07 Steven G. Kargl - - * intrinsic.texi: Document ASSOCIATED and ATAN2. Update Bessel function - description to include information about scalar arguments. - -2005-05-03 Kazu Hirata - - * Make-lang.in, dump-parse-tree.c, invoke.texi, lang.opt, - match.h, trans-array.h: Update copyright. - -2005-04-29 Tom Tromey - - * f95-lang.c (poplevel): Updated for change to build_block. - -2005-04-29 Jakub Jelinek - - PR fortran/13082 - PR fortran/18824 - * trans-expr.c (gfc_conv_variable): Handle return values in functions - with alternate entry points. - * resolve.c (resolve_entries): Remove unnecessary string termination - after snprintf. Set result of entry master. - If all entries have the same type, set entry master's type - to that common type, otherwise set mixed_entry_master attribute. - * trans-types.c (gfc_get_mixed_entry_union): New function. - (gfc_get_function_type): Use it for mixed_entry_master functions. - * gfortran.h (symbol_attribute): Add mixed_entry_master bit. - * decl.c (gfc_match_entry): Set entry->result properly for - function ENTRY. - * trans-decl.c (gfc_get_symbol_decl): For entry_master, skip over - __entry argument. - (build_entry_thunks): Handle return values in entry thunks. - Clear BT_CHARACTER's ts.cl->backend_decl, so that it is not - shared between multiple contexts. - (gfc_get_fake_result_decl): Use DECL_ARGUMENTS from - current_function_decl instead of sym->backend_decl. Skip over - entry master's entry id argument. For mixed_entry_master entries or - their results, return a COMPONENT_REF of the fake result. - (gfc_trans_deferred_vars): Don't warn about missing return value if - at least one entry point uses RESULT. - (gfc_generate_function_code): For entry master returning - CHARACTER, copy ts.cl->backend_decl to all entry result syms. - * trans-array.c (gfc_trans_dummy_array_bias): Don't consider return - values optional just because they are in entry master. - -2005-04-29 Francois-Xavier Coudert - - * gfortran.h (gfc_namespace): Add seen_implicit_none field, - Tobias forgot this in previous commit. - -2005-04-29 Paul Brook - - * trans-expr.c (gfc_conv_expr_present): Fix broken assert. Update - comment. - -2005-04-29 Tobias Schl"uter - - * gfortran.h (gfc_namespace): Add seen_implicit_none field. - * symbol.c (gfc_set_implicit_none): Give error if there's a previous - IMPLICIT NONE, set seen_implicit_none. - (gfc_merge_new_implicit): Error if there's an IMPLICIT NONE statement. - -2005-04-28 Tobias Schl"uter - - * gfortran.h (gfc_gsymbol): Make name a const char *. - * symbol.c (gfc_get_gsymbol): Allocate gsymbol name via - gfc_get_string. - -2005-04-28 Francois-Xavier Coudert - - PR fortran/20865 - * resolve.c (resolve_actual_arglist): Issue an error if a statement - functions is used as actual argument. - -2005-04-27 Francois-Xavier Coudert - - PR fortran/21177 - * interface.c (compare_parameter): Ignore type for EXPR_NULL - only if type is BT_UNKNOWN. - -2005-04-25 Paul Brook - Steven G. Kargl - - PR fortran/20879 - * check.c (gfc_check_ichar_iachar): New function. - * instinsic.h (gfc_check_ichar_iachar): Add prototype. - * intrinsic.c (add_functions): Use it. - * primary.c (match_varspec, gfc_match_rvalue): Clear incorrect - character expression lengths. - -2005-04-24 Tobias Schl"uter - - PR fortran/20059 - * trans-common.c (translate_common): Cast offset and - common_segment->offset to type int for warning message. - -2005-04-23 DJ Delorie - - * trans-decl.c: Adjust warning() callers. - -2005-04-23 Tobias Schl"uter - - * trans-const.c (gfc_conv_mpfr_to_tree): Use hexadecimal string as - intermediate representation. Fix typo in comment. - -2005-04-21 Steven G. Kargl - - * trans-const.c (gfc_conv_mpfr_to_tree): Remove unneeded computation; - simplify logic; Add a gcc_assert. - -2005-04-19 Steven G. Kargl - - * trans-const.c (gfc_conv_mpz_to_tree): Fix comment. - -2005-04-19 Arnaud Desitter - Steven G. Kargl - - * invoke.texi: Update -Waliasing description - -2005-04-19 Francois-Xavier Coudert - - PR fortran/16861 - * resolve.c (resolve_variable): If e->symtree is not set, this - ought to be a FAILURE, and not a segfault. - -2005-04-17 Paul Thomas - - PR fortran/17472 - PR fortran/18209 - PR fortran/18396 - PR fortran/19467 - PR fortran/19657 - * fortran/trans-io.c (gfc_build_io_library_fndecls): Create - declaration for st_set_nml_var and st_set_nml_var_dim. Remove - declarations of old namelist functions. - (build_dt): Simplified call to transfer_namelist_element. - (nml_get_addr_expr): Generates address expression for start of - object data. New function. - (nml_full_name): Qualified name for derived type components. New - function. - (transfer_namelist_element): Modified for calls to new functions - and improved derived type handling. - -2005-04-17 Richard Guenther - - * scanner.c (gfc_next_char_literal): Reset truncation flag - for lines ending in a comment for both fixed and free form. - (load_line): Do not set truncated flag if only truncating - the EOL marker. - -2005-04-15 Richard Guenther - - PR fortran/14569 - * gfortran.h (gfc_linebuf): Add truncated field. - * parse.c (next_statement): Handle warning for truncated - lines. - * scanner.c (load_line): Return if line was truncated. - No longer warn for truncated lines. Remove unused parameters. - (load_file): Store load_line return value to linebuf. - (gfc_error_recovery): Do not advance line at the end. - -2005-04-14 Steven G. Kargl - - * gfortran.h (gfc_real_info): Add subnormal struct member. - * arith.c (gfc_arith_init_1): Set it. - (gfc_check_real_range): Use it. - * simplify.c (gfc_simplify_nearest): Fix nearest(0.,1.). - -2005-04-12 Kazu Hirata - - * simplify.c: Fix a comment typo. - -2005-04-11 Richard Sandiford - - * lang.opt: Refer to the GCC internals documentation instead of c.opt. - -2005-04-11 Tobias Schl"uter - - * simplify.c (gfc_simplify_nearest): Overhaul. - -2005-04-10 Kazu Hirata - - * interface.c: Fix a comment typo. - -2005-04-10 Francois-Xavier Coudert - - * match.c (match_arithmetic_if): Arithmetic IF is obsolete in - Fortran 95. - -2005-04-09 Steven G. Kargl - - * simplify.c (gfc_simplify_anint): Use mpfr_round() - (gfc_simplify_dnint): ditto. - (gfc_simplify_nint): ditto. - -2005-04-09 Andrew Pinski - - PR fortran/13257 - * io.c (check_format): Allow an optional comma - between descriptors. - -2005-04-09 Francois-Xavier Coudert - - * match.c (match_arithmetic_if): Remove gfc_ prefix and correct - comment according to GNU coding style. - (gfc_match_if): Remove gfc_ prefix in call to - match_arithmetic_if. - -2005-04-08 Diego Novillo - - * match.c (gfc_match_arithmetic_if): Declare static. - -2005-04-08 Francois-Xavier Coudert - - PR fortran/17229 - * match.c (gfc_match_arithmetic_if): New function to match an - arithmetic IF statement. - (gfc_match_if): Use gfc_match_arithmetic_if to match an - arithmetic IF statement embedded in a simple IF statement. - -2005-04-07 Steven G. Kargl - - * simplify.c (gfc_simplify_exponent): Fix exponent(tiny(x)) - -2005-04-06 Steven G. Kargl - - * invoke.texi: Remove documentation of -std=f90 - -2005-04-06 Tobias Schl"uter - - * expr.c (gfc_check_assign): Don't allow NULL as rhs in a - non-pointer assignment. - -2005-04-05 Feng Wang - - PR fortran/15959 - PR fortran/20713 - - * array.c (resolve_character_array_constructor): New function. Set - constant character array's character length. - (gfc_resolve_array_constructor): Use it. - * decl.c (add_init_expr_to_sym): Set symbol and initializer character - length. - (gfc_set_constant_character_len): New function. Set constant character - expression according the given length. - * match.h (gfc_set_constant_character_len): Add prototype. - -2005-04-04 Francois-Xavier Coudert - - * intrinsic.texi: BES?? functions are not in the f95 standard. - -2005-04-03 Francois-Xavier Coudert - - * intrinsic.texi: Document COS, EXP, LOG, LOG10, SIN, SQRT, TAN. - -2005-04-03 Francois-Xavier Coudert - - * intrinsic.texi: Document BESJ0, BESJ1, BESJN, BESY0, BESY1, - BESYN, ATAN, COSH, ERF, ERC, SINH, TANH. - -2005-04-02 Steven G. Kargl - - * intrinsic.texi: Document ALLOCATED, ANINT, ANY, ASIN; fix typos - -2005-04-01 Kazu Hirata - - * decl.c, f95-lang.c, interface.c, module.c, trans-stmt.c, - trans.h: Fix comment typos. - -2005-03-29 Steven G. Kargl - - * gfortran.h (option_t): Change d8, i8, r8 to flag_default_double, - flag_default_integer, flag_default_real - * invoke.texi: Update documentation - * lang.opt: Remove d8, i8, r8 definitions; Add fdefault-double-8 - fdefault-integer-8, and fdefault-real-8 definitions. - * options.c (gfc_init_options): Set option defaults - (gfc_handle_option): Handle command line options. - * trans-types.c (gfc_init_kinds): Use options. - -2005-03-29 Keith Besaw - - * f95-lang.c (builtin_function): Process the attrs parameter - and apply the "const" attribute to the builtin if found. - -2005-03-27 Steven G. Kargl - - * intrinsic.texi: Document AIMAG, AINT, ALL - -2005-03-26 Steven G. Kargl - - * arith.c (check_result): Fix illogical logic. - -2005-03-26 Canqun Yang - - * trans-common.c (create_common): Build RECORD_NODE for common blocks - contain no equivalence objects. - (add_equivalences): New argument saw_equiv. - (trans_common): New local variable saw_equiv. - (finish_equivalences): Add a local variable dummy, Always pass true - for the 3rd parameter to create_common. - -2005-03-25 Steven G. Kargl - - * intrinsic.texi: Fix "make dvi" - -2005-03-24 Steven G. Kargl - - * intrinsic.texi: New file. - * gfortran.texi: Include it; white space change; fix typo. - -2005-03-23 Joseph S. Myers - - * f95-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove. - -2005-03-23 Steven Bosscher - - * convert.c (convert): Replace fold (buildN (...)) with fold_buildN. - * trans-array.c (gfc_trans_allocate_array_storage, - gfc_trans_allocate_temp_array gfc_trans_array_constructor_value, - gfc_conv_array_index_ref, gfc_trans_array_bound_check, - gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref, - gfc_conv_array_ref, gfc_trans_preloop_setup, gfc_conv_ss_startstride, - gfc_conv_loop_setup, gfc_array_init_size, gfc_trans_array_bounds, - gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias, - gfc_conv_expr_descriptor): Likewise. - * trans-expr.c (gfc_conv_powi, gfc_conv_string_tmp, - gfc_conv_concat_op, gfc_conv_expr_op): Likewise. - * trans-intrinsic.c (build_round_expr, gfc_conv_intrinsic_bound, - gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_sign, - gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval, - gfc_conv_intrinsic_btest, gfc_conv_intrinsic_bitop, - gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ibits, - gfc_conv_intrinsic_ishft, gfc_conv_intrinsic_ishftc, - gfc_conv_intrinsic_merge, prepare_arg_info, - gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_repeat): Likewise. - * trans-stmt.c (gfc_trans_simple_do, gfc_trans_do, gfc_trans_do_while, - gfc_trans_forall_loop, gfc_do_allocate, generate_loop_for_temp_to_lhs, - generate_loop_for_rhs_to_temp, compute_inner_temp_size, - allocate_temp_for_forall_nest, gfc_trans_pointer_assign_need_temp, - gfc_trans_forall_1, gfc_evaluate_where_mask, gfc_trans_where_assign): - Likewise. - * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Likewise. - * trans.c (gfc_add_modify_expr): Likewise. - -2005-03-22 Francois-Xavier Coudert - - * check.c (gfc_check_chdir, gfc_check_chdir_sub, gfc_check_kill, - gfc_check_kill_sub, gfc_check_link, gfc_check_link_sub, - gfc_check_symlnk, gfc_check_symlnk_sub, gfc_check_rename, - gfc_check_rename_sub, gfc_check_sleep_sub, gfc_check_gerror, - gfc_check_getlog, gfc_check_hostnm, gfc_check_hostnm_sub, - gfc_check_perror): new functions to check newly implemented - g77 intrinsics. - * gfortran.h: adding symbols for new intrinsics. - * intrinsic.c (add_functions): adding new intrinsics. - (add_subroutines): adding new intrinsics. - * intrinsic.h: prototype for all checking and resolving - functions. - * iresolve.c (gfc_resolve_chdir, gfc_resolve_chdir_sub, - gfc_resolve_hostnm, gfc_resolve_ierrno, gfc_resolve_kill, - gfc_resolve_link, gfc_resolve_rename, gfc_resolve_symlnk, - gfc_resolve_time, gfc_resolve_time8, gfc_resolve_rename_sub, - gfc_resolve_kill_sub, gfc_resolve_link_sub, - gfc_resolve_symlnk_sub, gfc_resolve_sleep_sub, - gfc_resolve_gerror, gfc_resolve_getlog, gfc_resolve_hostnm_sub, - gfc_resolve_perror): new functions to resolve intrinsics. - * trans-intrinsic.c (gfc_conv_intrinsic_function): add case - for new symbols. - -2005-03-19 Tobias Schl"uter - - * dump-parse-tree.c (gfc_show_expr): Dump name of namespace - in which the variable is declared. - - PR fortran/18525 - * resolve.c (was_declared): Also check for dummy attribute. - -2005-03-19 Tobias Schl"uter - - * gfortran.h (arith): Remove ARITH_0TO0. - * arith.c (gfc_arith_error): Remove handling of ARITH_0TO0. - (gfc_arith_power): Remove special casing of zero to integral - power zero. - -2005-03-18 Kaveh R. Ghazi - - * Make-lang.in (fortran-warn): Remove -Wno-error. - (expr.o-warn, resolve.o-warn, simplify.o-warn, - trans-common.o-warn): Specify -Wno-error. - -2005-03-17 Tobias Schl"uter - - * trans-array.c (gfc_trans_static_array_pointer, - get_array_ctor_var_strlen, gfc_conv_array_index_offset): Fix - comment and formatting typos. - -2005-03-17 Francois-Xavier Coudert - - * invoke.texi: Fix typos. - -2005-03-15 Zack Weinberg - - * Make-lang.in (GFORTRAN_TEXI): Add gcc-vers.texi. - -2005-03-15 Feng Wang - - * trans-stmt.c (gfc_trans_label_assign): Don't set DECL_ARTIFICIAL flag - to zero on label_tree. - -2005-03-15 Feng Wang - - PR fortran/18827 - * io.c (resolve_tag): Add checking on assigned label. - (match_dt_format): Does not set symbol assign attribute. - * match.c (gfc_match_goto):Does not set symbol assign attribute. - * resolve.c (resolve_code): Add checking on assigned label. - * trans-common.c (build_field): Deals with common variable assigned - a label. - * trans-stmt.c (gfc_conv_label_variable): New function. - (gfc_trans_label_assign): Use it. - (gfc_trans_goto): Ditto. - * trans-io.c (set_string): Ditto. - * trans.h (gfc_conv_label_variable): Add prototype. - -2005-03-14 Tobias Schl"uter - - PR fortran/20467 - * symbol.c (check_conflict): A dummy argument can't be a statement - function. - -2005-03-14 Zdenek Dvorak - - * fortran/trans-intrinsic.c (gfc_conv_intrinsic_ishft): Convert - the argument of the shift to the unsigned type. - -2005-03-13 Tobias Schl"uter - - PR fortran/16907 - * resolve.c (gfc_resolve_index): Allow REAL indices as an extension. - -2005-03-13 Tobias Schl"uter - - PR fortran/20323 - * resolve.c (gfc_resolve): Check if character lengths are - specification expressions. - -2005-03-12 Tobias Schl"uter - - PR fortran/20361 - * trans-array.c (gfc_stack_space_left): Remove unused variable. - (gfc_can_put_var_on_stack): Move to trans-decl.c, remove #if 0'ed - code. - * trans-array.h (gfc_stack_space_left, gfc_can_put_var_on_stack): - Remove declaration / prototype. - * trans-common.c (build_equiv_decl): Give union a name. Check if - it can be put on the stack. - * trans-decl.c (gfc_stack_space_left): Move function here. - (gfc_build_qualified_array): Fix comment typo. - * trans.h (gfc_put_var_on_stack): Add prototype. - -2005-03-11 Kaveh R. Ghazi - - * Make-lang.in (fortran-warn): Set to $(STRICT_WARN) -Wno-error. - * decl.c, trans.c: Don't use C++ style comments. - * gfortran.h (sym_flavor, procedure_type, sym_intent, gfc_access, - ifsrc): Give names to enums and use ENUM_BITFIELD. - (gfc_access): Remove trailing comma. - -2005-03-05 Steven G. Kargl - - PR 19936 - * primary.c (match_complex_constant): Mangled complex constant may - be an implied do-loop. Give implied do-loop matcher a chance. - -2005-03-05 Steven G. Kargl - - PR fortran/19754 - * resolve.c (compare_shapes): New function. - (resolve_operator): Use it. - -2005-03-05 Tobias Schl"uter - - * trans-const.c (gfc_conv_constant_to_tree): Use correct tree - type for COMPLEX constants. - -2005-03-04 Tobias Schl"uter - - PR fortran/19673 - * trans-expr.c (gfc_conv_function_call): Correctly dereference - argument from a pointer function also if it has a result clause. - -2005-03-04 Steven G. Kargl - - * expr.c (gfc_copy_shape_excluding): Change && to ||. - -2005-03-04 Tobias Schl"uter - - * trans-intrinsic.c (gfc_get_symbol_for_expr): Fix comment typo, - clarify comment. - -2005-02-28 Tobias Schl"uter - (port from g95) - - PR fortran/19479 - * simplify.c (gfc_simplify_bound): Rename to ... - (simplify_bound): ... this and overhaul. - -2005-02-28 Steven G. Kargl - - * trans-intrinsic.c (gfc_conv_intrinsic_iargc): remove boolean argument. - (gfc_conv_intrinsic_function): update function calls - -2005-02-27 Steven G. Kargl - - PR fortran/20058 - * trans-types.c (gfc_max_integer_kind): Declare - (gfc_init_kinds): Initialize it. - * gfortran.h (gfc_max_integer_kind): extern it. - * primary.c (match_boz_constant): Use it; remove gfortran extension - of kind suffixes on BOZ literal constants - - -2005-02-27 Steven G. Kargl - - * arith.c (gfc_check_real_range): Remove multiple returns - (check_result): New function. - (gfc_arith_uminus,gfc_arith_plus,gfc_arith_times, - gfc_arith_divide,gfc_arith_power,gfc_arith_minus): Use it. - - -2005-02-24 Volker Reichelt - - * decl.c, resolve.c, trans-array.c, trans.h: Fix comment typo(s). - - -2005-02-24 Tobias Schl"uter - - Unrevert previously reverted patch. Adding this fix: - * module.c (find_true_name): Deal with NULL module. - -2005-02-24 Tobias Schl"uter - - Revert yesterday's patch: - 2005-02-23 Tobias Schl"uter - - * gfortran.h (gfc_component, gfc_actual_arglist, ... - ... argument. Copy string instead of pointing to it. - -2005-02-23 Tobias Schl"uter - - * gfortran.h (gfc_get_namespace): Add second argument to prototype. - * intrinsic.c (gfc_intrinsic_init_1): Pass second argument to - gfc_get_namespace. - * module.c (mio_namespace_ref, load_needed): Likewise. - * parse.c (parse_interface, parse_contained): Likewise. Here the - correct second argument matters. - * symbol.c (gfc_get_namespace): Add parent_types argument, only copy - parent's implicit types if this is set. - (gfc_symbol_init_2): Pass second argument to gfc_get_namespace. - * trans-common.c (build_common_decl): Likewise. - - * gfortran.h (symbol_attribute): New 'untyped' field, fix comment - formatting. - * symbol.c (gfc_set_default_type): Issue error only once, by setting - and checking 'untyped' attribute. - - * gfortran.h (gfc_expr): Move 'operator', 'op1', 'op2', and 'uop' - fields into new struct 'op' inside the 'value' union. - * arith.c (eval_intrinsic): Adapt all users. - * dependency.c (gfc_check_dependency): Likewise. - * dump-parse-tree.c (gfc_show_expr): Likewise. - * expr.c (gfc_get_expr): Don't clear removed fields. - (free_expr0, gfc_copy_expr, gfc_type_convert_binary, - gfc_is_constant_expr, simplify_intrinsic_op, check_init_expr, - check_intrinsic_op): Adapt to new field names. - * interface.c (gfc_extend_expr): Likewise. Also explicitly - nullify 'esym' and 'isym' fields of new function call. - * iresolve.c (gfc_resolve_dot_product, gfc_resolve_matmul): - Adapt to renamed structure fields. - * matchexp.c (build_node, match_level_1, match_expr): Likewise. - * module.c (mio_expr): Likewise. - * resolve.c (resolve_operator): Likewise. - (gfc_find_forall_index): Likewise. Only look through operands - if dealing with EXPR_OP - * trans-array.c (gfc_walk_op_expr): Adapt to renamed fields. - * trans-expr.c (gfc_conv_unary_op, gfc_conv_power_op, - gfc_conv_concat_op, gfc_conv_expr_op): Likewise. - - [ Reverted ] - * gfortran.h (gfc_component, gfc_actual_arglist, gfc_user_op): Make - 'name' a 'const char *'. - (gfc_symbol): Likewise, also for 'module'. - (gfc_symtree): Make 'name' a 'const char *'. - (gfc_intrinsic_sym): Likewise, also for 'lib_name'. - (gfc_get_gsymbol, gfc_find_gsymbol): Add 'const' qualifier to - 'char *' argument. - (gfc_intrinsic_symbol): Use 'gfc_get_string' instead of 'strcpy' to - initialize 'SYM->module'. - * check.c (gfc_check_minloc_maxloc, check_reduction): Check for NULL - pointer instead of empty string. - * dump-parse-tree.c (gfc_show_actual_arglist): Likewise. - * interface.c (gfc_compare_types): Adapt check to account for possible - NULL pointer. - (compare_actual_formal): Check for NULL pointer instead of empty - string. - * intrinsic.c (gfc_current_intrinsic, gfc_current_intrinsic_arg): - Add 'const' qualifier. - (conv_name): Return a heap allocated string. - (find_conv): Add 'const' qualifier to 'target'. - (add_sym): Use 'gfc_get_string' instead of 'strcpy'. - (make_generic): Check for NULL pointer instead of empty string. - (make_alias): Use 'gfc_get_string' instead of 'strcpy'. - (add_conv): No need to strcpy result from 'conv_name'. - (sort_actual): Check for NULL pointer instead of empty string. - * intrinsic.h (gfc_current_intrinsic, gfc_current_intrinsic_arg): - Adapt prototype. - * module.c (compare_true_names): Compare pointers instead of strings - for 'module' member. - (find_true_name): Initialize string fields with gfc_get_string. - (mio_pool_string): New function. - (mio_internal_string): Adapt comment. - (mio_component_ref, mio_component, mio_actual_arg): Use - 'mio_pool_string' instead of 'mio_internal_string'. - (mio_symbol_interface): Add 'const' qualifier to string arguments. - Add level of indirection. Use 'mio_pool_string' instead of - 'mio_internal_string'. - (load_needed, read_module): Use 'gfc_get_string' instead of 'strcpy'. - (write_common, write_symbol): Use 'mio_pool_string' instead of - 'mio_internal_string'. - (write_symbol0, write_symbol1): Likewise, also check for NULL pointer - instead of empty string. - (write_operator, write_generic): Pass correct type variable to - 'mio_symbol_interface'. - (write_symtree): Use 'mio_pool_string' instead of - 'mio_internal_string'. - * primary.c (match_keyword_arg): Adapt check to possible - case of NULL pointer. Use 'gfc_get_string' instead of 'strcpy'. - * symbol.c (gfc_add_component, gfc_new_symtree, delete_symtree, - gfc_get_uop, gfc_new_symbol): Use 'gfc_get_string' instead of - 'strcpy'. - (ambiguous_symbol): Check for NULL pointer instead of empty string. - (gfc_find_gsymbol, gfc_get_gsymbol): Add 'const' qualifier on string - arguments. - * trans-array.c (gfc_trans_auto_array_allocation): Check for NULL - pointer instead of empty string. - * trans-decl.c (gfc_sym_mangled_identifier, - gfc_sym_mangled_function_id, gfc_finish_var_decl, gfc_get_symbol_decl, - gfc_get_symbol_decl): Likewise. - * trans-io.c (gfc_new_nml_name_expr): Add 'const' qualifier to - argument. Copy string instead of pointing to it. - -2005-02-23 Kazu Hirata - - * intrinsic.h, st.c: Update copyright. - -2005-02-20 Steven G. Kargl - - * symbol.c: Typos in comments. - -2005-02-20 Steven G. Kargl - - * expr.c (gfc_type_convert_binary): Typo in comment. - -2005-02-19 Steven G. Kargl - - * check.c (gfc_check_selected_int_kind): New function. - * intrinsic.h: Prototype it. - * intrinsic.c (add_function): Use it. - * simplify (gfc_simplify_ceiling,gfc_simplify_floor): Change - BT_REAL to BT_INTEGER and use gfc_default_integer_kind. - -2005-02-19 Steven G. Kargl - - * check.c (gfc_check_int): improve checking of optional kind - * simplify.c (gfc_simplify_int): Change BT_REAL to BT_INTEGER - -2005-02-19 Steven G. Kargl - - * check.c (gfc_check_achar): New function - * intrinsic.h: Prototype it. - * intrinsic.c (add_function): Use it. - -2005-02-13 Tobias Schl"uter - - * trans-stmt.c (generate_loop_for_temp_to_lhs, - generate_loop_for_rhs_to_temp): Remove if whose condition is - always true. - -2005-02-12 Tobias Schl"uter - - * symbol.c (gfc_use_ha_derived): Remove, fold functionality into ... - (gfc_use_derived): ... this function. - -2005-02-09 Richard Henderson - - * f95-lang.c (gfc_init_builtin_functions): Call - build_common_builtin_nodes; do not define any functions handled - by it. - -2005-02-08 Tobias Schl"uter - - * expr.c (gfc_copy_expr): Don't copy 'op1' and 'op2' for - EXPR_SUBSTRING. - (gfc_is_constant_expr): Check 'ref' to determine if substring - reference is constant. - (gfc_simplify_expr): Simplify 'ref' instead of 'op1' and 'op2'. - (check_init_expr, check_restricted): Check 'ref' instead of 'op1' - and 'op2'. - * module.c (mio_expr): Read / write 'ref' instead of 'op1' and 'op2'. - -2005-02-07 Tobias Schl"uter - - * gfortran.h (gfc_add_dimension, gfc_add_result, gfc_add_save, - gfc_add_dummy, gfc_add_generic, gfc_add_in_common, gfc_add_data, - gfc_add_in_namelist, gfc_add_sequence, gfc_add_function, - gfc_add_subroutine, gfc_add_access, gfc_add_flavor, gfc_add_entry, - gfc_add_procedure): Add argument. - * array.c (gfc_set_array_spec), decl.c (var_element, get_proc_name, - gfc_match_null, match_type_spec, match_attr_spec, - gfc_match_formal_arglist, match_result, gfc_match_function_decl): - Update callers to match. - (gfc_match_entry): Likewise, fix comment typo. - (gfc_match_subroutine, attr_decl1, gfc_add_dimension, - access_attr_decl, do_parm, gfc_match_save, gfc_match_modproc, - gfc_match_derived_decl): Update callers. - * interface.c (gfc_match_interface): Likewise. - * match.c (gfc_match_label, gfc_add_flavor, - gfc_match_call, gfc_match_common, gfc_match_block_data, - gfc_match_namelist, gfc_match_module, gfc_match_st_function): - Likewise. - * parse.c (parse_derived, parse_interface, parse_contained), - primary.c (gfc_match_rvalue, gfc_match_variable): Likewise. - * resolve.c (resolve_formal_arglist, resolve_entries): Update callers. - * symbol.c (check_conflict, check_used): Add new 'name' argument, - use when printing error message. - (gfc_add_dimension, gfc_add_result, gfc_add_save, gfc_add_dummy, - gfc_add_generic, gfc_add_in_common, gfc_add_data, - gfc_add_in_namelist, gfc_add_sequence, gfc_add_function, - gfc_add_subroutine, gfc_add_access, gfc_add_flavor, gfc_add_entry, - gfc_add_procedure): Add new 'name' argument. Pass along to - check_conflict and check_used. - (gfc_add_allocatable, gfc_add_external, gfc_add_intrinsic, - gfc_add_optional, gfc_add_pointer, gfc_add_target, gfc_add_elemental, - gfc_add_pure, gfc_add_recursive, gfc_add_intent, - gfc_add_explicit_interface, gfc_copy_attr): Pass NULL for new - argument in calls to any of the modified functions. - -2005-02-06 Joseph S. Myers - - * gfortran.texi: Don't give last update date. - -2006-01-30 Richard Henderson - - * options.c (gfc_init_options): Zero flag_errno_math. - -2005-01-29 Paul Brook - - PR fortran/18565 - * check.c (real_or_complex_check): New function. - (gfc_check_fn_c, gfc_check_fn_r, gfc_check_fn_rc): New functions. - * intrinsic.c (add_functions): Use new check functions. - * intrinsic.h (gfc_check_fn_c, gfc_check_fn_r, gfc_check_fn_rc): - Add prototypes. - -2005-01-29 Steven G. Kargl - - PR fortran/19589 - * expr.c (gfc_check_assign): Check for conformance of logical operands - -2004-01-27 Steven Bosscher - - * trans-decl.c (gfc_build_label_decl): Set DECL_ARTIFICAL and - TREE_USED for all labels. - (gfc_trans_entry_master_switch): Use it instead of building a - label by hand. - * trans-io.c (add_case): Likewise. - * trans-stmt.c (gfc_trans_integer_select): Likewise. - -2004-01-23 Paul Brook - Steven G. Kargl - - PR fortran/17941 - * arith.c (gfc_convert_real): Remove sign handling. - * primary.c (match_digits): Allow whitespace after initial sign. - (match_real_const): Handle signs here. Allow whitespace after - initial sign. Remove dead code. - (match_const_complex_part): Remove. - (match_complex_part): Use match_{real,integer}_const. - (match_complex_constant): Cross-promote integer types. - -2005-01-23 James A. Morrison - - PR fortran/19294 - * iresolve.c (gfc_resolve_transpose): Resolve to transpose_c4 or - transpose_c8 for complex types. - -2005-01-23 Kazu Hirata - - * data.c, dependency.c, f95-lang.c, io.c, trans-array.c, - trans-decl.c, trans-expr.c, trans-intrinsic.c, trans-io.c, - trans-stmt.c, trans-types.c, trans.h: Fix comment typos. - Follow spelling conventions. - -2005-01-22 Bud Davis - - PR fortran/19313 - * trans-io.c (gfc_trans_inquire): Added code to support - pad. - -2005-01-22 Steven G. Kargl - - * intrinsic.c (make_alias): Add standard argument. - (add_functions): Update make_alias calls. - -2005-01-22 Paul Brook - - * trans-expr.c (gfc_conv_function_call): Remove bogus TODO. - -2005-01-22 Paul Brook - - * gfortran.h (gfc_check_access): Add prototype. - * match.c (gfc_match_namelist): Remove TODO. - * module.c (check_access): Rename ... - (gfc_check_access): ... to this. Boolify. Update callers. - * resolve.c (resolve_symbol): Check for private objects in public - namelists. - -2005-01-22 Paul Brook - - * primary.c (gfc_match_rvalue): Only apply implicit type if variable - does not have an explicit type. - (gfc_match_variable): Resolve implicit derived types in all cases. - Resolve contained function types from their own namespace, not the - parent. - * resolve.c (resolve_contained_fntype): Remove duplicate sym->result - checking. Resolve from the contained namespace, not the parent. - -2005-01-22 Tobias Schl"uter - - PR fortran/19543 - * trans-const.c (gfc_conv_constant_to_tree): Give logical - constants the correct type. - - PR fortran/19194 - * trans-io.c (ADD_STRING): Use gfc_charlen_type_node for string - length parameters. - (gfc_build_io_library_fndecls): 'rec' and 'recl_in' are not - pointer fields. - -2005-01-18 Kazu Hirata - - * arith.c, array.c, check.c, decl.c, expr.c, f95-lang.c, - gfortran.h, interface.c, intrinsic.c, io.c, iresolve.c, - match.c, matchexp.c, misc.c, module.c, options.c, parse.c, - scanner.c, simplify.c, symbol.c, trans-array.c, trans-expr.c, - trans-io.c, trans-stmt.c, trans.c: Update copyright. - -2005-01-17 Ira Rosen - - * f95-lang.c (gfc_init_builtin_functions): Call targetm.init_builtins. - -2005-01-16 Tobias Schlueter - - PR fortran/19182 - * error.c (error_char): Line-buffer errors / warnings. - -2005-01-16 Tobias Schlueter - - * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Fix signed / - unsigned issue. Use build_int_cst instead of converting - integer_zero_node. Remove unnecessary conversion. - - * trans-types.c (gfc_get_character_type_len): Use - gfc_charlen_type_node as basic type for the range field. - - * trans-intrinsic.c (build_fixbound_expr, - gfc_conv_intrinsic_bound, gfc_conv_intrinsic_anyall, - gfc_conv_intrinsic_count, gfc_conv_intrinsic_btest, - gfc_conv_intrinsic_singlebitop): Use 'build_int_cst' instead - of converting 'integer_zero_node' or 'integer_one_node' - respectively. - (gfc_conv_intrinsic_ishftc): Same, but store in local variable to - evade re-building. - (gfc_conv_intrinsic_strcmp, gfc_conv_intrinsic_rrspacing, - gfc_conv_intrinsic_trim, gfc_conv_intrinsic_iargc): Use - 'build_int_cst' instead of converting 'integer_zero_node' or - 'integer_one_node' respectively. - - * trans-intrinsic.c (gfc_conv_intrinsic_index, - gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify): Remove - 'gfc'-prefix from local variable, remove dead code, use correct - type when inserting argument. - - * trans-intrinsic.c, trans-types.c: Update copyright years. - -2005-01-16 Steven G. Kargl - - PR 19168 - * resolve.c (check_case_overlap): Typo in comment. - (validate_case_label_expr): Fix up kinds of case values - (resolve_select): Properly handle kind mismatches. - -2004-01-16 Paul Brook - - PR fortran/17675 - * trans-common.c (translate_common): Remove duplicate function call. - (finish_equivalences): Preserve alignment when biasing offsets. - -2005-01-15 Tobias Schl"uter - - * resolve.c (compare_case): Cleanup. - -2005-01-14 Steven G. Kargl - - * resolve.c (compare_case): Give arguments correct type. - -2005-01-13 Kazu Hirata - - * iresolve.c, trans-common.c, trans-types.c: Fix comment - typos. - -2005-01-09 Paul Brook - - PR fortran/17675 - * trans-common.c (current_common, current_offset): Remove. - (create_common): Add head argument. - (align_segment): New function. - (apply_segment_offset): New function. - (translate_common): Merge code from new_segment. Handle alignment. - (new_segment): Remove. - (finish_equivalences): Ensure proper alignment. - -2005-01-08 Tobias Schl"uter - - * trans-const.c: Don't include unused math.h. - - * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl, - gfc_conv_intrinsic_bound, gfc_conv_intrinsic_minmaxloc, - gfc_conv_intrinsic_ishft, gfc_conv_intrinsic_len): Remove - trailing whitespace. - (prepare_arg_info): Fix formatting, indenting and remove trailing - whitespace. - (gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_trim): Remove - trailing whitespace. - - * arith.c (arctangent2, gfc_arith_init_1, gfc_arith_done_1, - gfc_constant_result, gfc_range_check, gfc_arith_power, - eval_type_intrinsic0, eval_intrinsic_f2, gfc_real2real, - gfc_real2complex, gfc_complex2int, gfc_complex2real, - gfc_complex2complex): Fix whitespace issues. - * check.c (must_be, type_check, numeric_check, int_or_real_check, - logical_array_check, array_check, scalar_check, nonoptional_check, - variable_check, dim_check, check_a_kind, gfc_check_a_ikind, - gfc_check_a_xkind, gfc_check_abs, gfc_check_all_any, - gfc_check_allocated, gfc_check_a_p, gfc_check_besn, - gfc_check_btest, gfc_check_char, gfc_check_cmplx, gfc_check_count, - gfc_check_cshift, gfc_check_dcmplx, gfc_check_dble, - gfc_check_digits, gfc_check_dot_product, gfc_check_eoshift, - gfc_check_fnum, gfc_check_g77_math1, gfc_check_huge, gfc_check_i, - gfc_check_iand, gfc_check_ibclr, gfc_check_ibits, gfc_check_ibset, - gfc_check_idnint, gfc_check_ieor, gfc_check_index, gfc_check_int, - gfc_check_ior, gfc_check_ishft, gfc_check_ishftc, gfc_check_kind, - gfc_check_lbound, gfc_check_logical, min_max_args, - gfc_check_min_max_integer, gfc_check_min_max_real, - gfc_check_min_max_double, gfc_check_matmul, - gfc_check_minval_maxval, gfc_check_merge, gfc_check_nearest, - gfc_check_pack, gfc_check_precision, gfc_check_radix, - gfc_check_range, gfc_check_real, gfc_check_repeat, - gfc_check_scale, gfc_check_scan, gfc_check_selected_real_kind, - gfc_check_set_exponent): Fix formatting issues. - (gfc_check_size, gfc_check_sign): Alphabetize function order, - remove whitespace-only line. - (gfc_check_fstat, gfc_check_fstat_sub, gfc_check_stat, - gfc_check_stat_sub, gfc_check_transfer, gfc_check_transpose, - gfc_check_ubound, gfc_check_unpack, gfc_check_verify, gfc_check_x, - gfc_check_cpu_time, gfc_check_date_and_time, gfc_check_mvbits, - gfc_check_random_number, gfc_check_random_seed, - gfc_check_second_sub, gfc_check_system_clock, - gfc_check_getcwd_sub, gfc_check_exit, gfc_check_flush, - gfc_check_umask, gfc_check_umask_sub, gfc_check_unlink, - gfc_check_unlink_sub): Fix formatting issues. - -2005-01-08 Tobias Schl"uter - - * gfortran.h: Remove outdated comment. Don't include stdio.h - explicitly. - -2005-01-06 Tobias Schlueter - - * gfortranspec.c (lang_specific_driver): Change year to 2005 in - output of 'gfortran --version'. - -2005-01-03 Steven G. Kargl - - * arith.c: Add system.h; remove string.h - * decl.c: Ditto - * matchexp.c: Ditto - * parse.c: Ditto - * resolve.c: Ditto - * st.c: Ditto - * check.c: Remove stdlib.h and stdarg.h - * error.c: Remove stdlib.h, stdarg.h, stdio.h, string.h - * expr.c: Add system.h; remove stdarg.h, stdio.h, and string.h - * f95-lang.c: Add system.h; remove stdio.h - * interface.c: Add system.h; remove stdlib.h and string.h - * intrinsic.c: Remove stdarg.h, stdio.h, and string.h - * io.c: Remove string.h - * simplify.c: Ditto - * match.c: Remove stdarg.h and string.h - * misc.c: Update copyright; add system.h; remove stdlib.h, - string.h, and sys/stat.h - * module.c: Add system.h; remove string.h, stdio.h, errno.h, - unistd.h, and time.h - * option.c: Remove string.h and stdlib.h - * primary.c: Ditto - * scanner.c: Update copyright; add system.h; remove stdlib.h, - stdio.h, string.h, and strings.h - * symbol.c: Add system.h; remove stdlib.h, stdio.h, and string.h - * trans-array.c: Remove stdio.h and gmp.h - * trans-const.c: Ditto - * trans-expr.c: Ditto - * trans-io.c: Ditto - * trans-stmt.c: Ditto - * trans.c: Ditto - * trans-intrinsic.c: Remove stdio.h and string.h - -2004-12-29 Steven G. Kargl - - * gfortran.h (gfc_case): fix typo in comment. - -2004-12-27 Tobias Schlueter - - * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Change to - logical shift. Call fold. Remove 0-bit shift shortcut. - (gfc_conv_intrinsic_ishftc): Convert first argument to at least - 4 bytes bits. Convert 2nd and 3rd argument to 4 bytes. Convert - result if width(arg 1) < 4 bytes. Call fold. - - PR fortran/19032 - * trans-intrinsic.c (gfc_conv_intrinsic_mod): Update comment - in front of function to match the standard. Correct handling - of MODULO. - -2004-12-27 Andrew Pinski - - * trans-expr.c (gfc_conv_cst_int_power): Only check for - flag_unsafe_math_optimizations if we have a float type. - -2004-12-23 Steven G. Kargl - - * gfortran.texi: Fix typo. - -2004-12-16 Tobias Schlueter - - * trans-intrinsic.c (build_fixbound_expr): Clarify comment, fix - comment typo. - -2004-12-15 Tobias Schlueter - - PR fortran/18993 - * match.c (gfc_match_if): Don't explicitly skip optional whitespace. - (gfc_match_nullify): Make sure that ')' is in front of the end of - statement. - - * scanner.c (skip_fixed_comments): Fix typo in comment preceding - function. - -2004-12-14 Richard Henderson - - * gfortran.h (gfc_expr.function.name): Make const. - (gfc_iresolve_init_1, gfc_iresolve_done_1): Remove. - (gfc_get_string): Update prototype. - * iresolve.c: Include tree.h. - (string_node, HASH_SIZE, string_head, hash): Remove. - (gfc_get_string): Use vsnprintf, get_identifier. - (free_strings, gfc_iresolve_init_1, gfc_iresolve_done_1): Remove. - * misc.c (gfc_init_1): Don't call gfc_iresolve_init_1. - (gfc_done_1): Don't call gfc_iresolve_done_1. - * module.c (mio_allocated_string): Take and return const char *, - instead of modifying char**. - (mio_expr): Update to match. - * resolve.c (pure_function): Constify name argument. - (resolve_function): Constify name. - * trans-intrinsic.c (gfc_conv_intrinsic_function): Likewise. - -2004-12-12 Richard Henderson - - * iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count, - gfc_resolve_cshift, gfc_resolve_dot_product, gfc_resolve_eoshift, - gfc_resolve_matmul, gfc_resolve_maxloc, gfc_resolve_maxval, - gfc_resolve_minloc, gfc_resolve_minval, gfc_resolve_pack, - gfc_resolve_product, gfc_resolve_reshape, gfc_resolve_shape, - gfc_resolve_spread, gfc_resolve_sum, gfc_resolve_transpose, - gfc_resolve_unpack: Use PREFIX. - -2004-12-12 Tobias Schlueter - - PR fortran/18869 - * match.c (gfc_match_common): Skip whitespace. - -2004-12-12 Steven G. Kargl - - PR fortran/16581 - * check.c (gfc_check_iand, gfc_check_ibclr, gfc_check_ibits, - gfc_check_ibset, gfc_check_ieor, gfc_check_ior): Remove default - integer kind check; Issue error for -std=f95 when needed. - * intrinsic.c (add_functions): Change ieor from GFC_STD_GNU to - GFC_STD_F95. - * iresolve.c (gfc_resolve_iand, gfc_resolve_ieor, gfc_resolve_ior): - Promote arguments to same kind. - -2004-12-12 Steven G. Kargl - Paul Brook - - PR fortran/16222 - * resolve.c (gfc_resolve_iterator_expr): New function. - (gfc_resolve_iterator): Use it. Add real_ok argument. Convert - start, end and stride to correct type. - (resolve_code): Pass extra argument. - * array.c (resolve_array_list): Pass extra argument. - * gfortran.h (gfc_resolve): Add prototype. - * trans-stmt.c (gfc_trans_do): Remove redundant type conversions. - Handle real type iterators. - -2004-12-11 Tobias Schlueter - - PR fortran/17175 - * iresolve.c (gfc_resolve_scale): Convert 'I' argument if not of - same kind as C's 'int'. - (gfc_resolve_set_exponent): Convert 'I' argument if not of kind 4. - -2004-12-08 Richard Henderson - - * intrinsic.c (gfc_convert_type_warn): Propagate the input shape - to the output expression. - * iresolve.c (gfc_resolve_cshift, gfc_resolve_eoshift): Suppress - warning conversion. - (gfc_resolve_reshape): Force convert SHAPE and ORDER parameters - to index kind. - -2004-12-08 Tobias Schlueter - - PR fortran/18826 - * resolve.c (resolve_code): Impose correct restrictions on - assigned variable. - - * decl.c (gfc_match_end): Use locus of END when eos is an error. - -2004-12-02 Steven G. Kargl - Paul Brook - - * check.c (gfc_check_flush, gfc_check_fnum): New functions. - (gfc_check_fstat, gfc_check_fstat_sub): New functions. - (gfc_check_stat, gfc_check_stat_sub): New functions. - * gfortran.h (GFC_ISYM_FNUM,GFC_ISYM_FSTAT,GFC_ISYM_STAT): New symbols - * intrinsic.c (add_functions,add_subroutines): Add flush, fnum, - fstat, and stat to intrinsics symbol tables. - * intrinsic.h (gfc_check_flush, gfc_resolve_stat_sub): Add prototypes. - (gfc_resolve_fstat_sub, gfc_resolve_stat): Ditto. - * iresolve.c (gfc_resolve_fnum, gfc_resolve_fstat): New functions. - (gfc_resolve_stat, gfc_resolve_flush): New functions. - (gfc_resolve_stat_sub,gfc_resolve_fstat_sub): New functions - * trans-intrinsic.c (gfc_conv_intrinsic_function): Add new intrinsics. - -2004-12-02 Steven G. Kargl - - * intrinsic.c: Fix and add comments, fix function declarations - (OPTIONAL,REQUIRED): New symbols - (add_functions,add_subroutines): Use symbols - (gmp.h): Remove unused include - -2004-11-25 Joseph S. Myers - - * f95-lang.c, gfortranspec.c, trans-decl.c: Avoid ` as left quote - in diagnostics. - -2004-11-24 Steven Bosscher - - * options.c (gfc_post_options): Don't clear flag_inline_functions. - -2004-11-20 Steven G. Kargl - - * check.c (gfc_check_getcwd_sub): Fix seg fault. - - * check.c (gfc_check_exit,gfc_check_umask,gfc_check_umask_sub, - gfc_check_unlink,gfc_check_unlink_sub): New functions - * gfortran.h (GFC_ISYM_UMASK,GFC_ISYM_UNLINK): New symbols - * intrinsic.c (add_functions,add_subroutines): Add umask, unlink, - exit to intrinsics symbol tables. - * intrinsic.h (gfc_check_umask,gfc_check_unlink,gfc_check_exit, - gfc_check_umask_sub,gfc_check_unlink_sub,gfc_resolve_umask, - gfc_resolve_unlink,gfc_resolve_exit,gfc_resolve_umask_sub, - gfc_resolve_unlink_sub): Add and sort prototypes. - * iresolve.c (gfc_resolve_umask,gfc_resolve_unlink,gfc_resolve_exit, - gfc_resolve_umask_sub,gfc_resolve_unlink_sub): New functions - * trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbols - -2004-11-16 Paul Brook - - PR fortran/13010 - * trans-array.c (gfc_trans_allocate_temp_array): Use gfc_get_dtype. - (gfc_array_init_size, gfc_conv_expr_descriptor): Ditto. - * trans-types.c (gfc_get_dtype): Accept array type rather than element - type. - (gfc_get_nodesc_array_type): Don't set GFC_TYPE_ARRAY_DTYPE. - (gfc_get_array_type_bounds): Ditto. - (gfc_get_derived_type): Recurse into derived type pointers. - * trans-types.h (gfc_get_dtype): Add prototype. - * trans.h (GFC_TYPE_ARRAY_DTYPE): Add comment. - -2004-11-15 Paul Brook - - * trans-types.c (gfc_get_dtype): Remove obsolete TODO. - -2004-11-10 Paul Brook - - PR fortran/18375 - * trans-expr.c (gfc_trans_subarray_assign): Free shape before ss. - * trans-io.c (transfer_array_component): Ditto. - -2004-11-10 Paul Brook - - * invoke.texi: Fix typo. - -2004-11-08 Kazu Hirata - - * arith.c, array.c, decl.c, expr.c, f95-lang.c, gfortran.h, - gfortranspec.c, interface.c, intrinsic.c, iresolve.c, match.c, - module.c, parse.c, parse.h, primary.c, resolve.c, scanner.c, - trans-array.c, trans-array.h, trans-expr.c, trans-intrinsic.c, - trans-io.c, trans-stmt.c, trans.h: Fix comment formatting. - -2004-11-06 Tobias Schlueter - - PR fortran/18023 - * io.c (resolve_tag): Tighten up exception for assigned FORMAT. - -2004-11-06 Kazu Hirata - - * gfortranspec.c: Replace GNU CC with GCC. - -2004-11-05 Tobias Schlueter - - * gfortranspec.c (lang_specific_driver): Change year to 2004. - -2004-11-05 Tobias Schlueter - - PR fortran/18111 - * trans-decl.c (create_function_arglist): Set DECL_ARTIFICIAL for - hidden parameters. - -2004-11-05 Tobias Schlueter - - PR fortran/15164 - * trans-decl.c (gfc_finish_var_decl): Don't declare arguments to - module procedures as if they were module variables. - -2004-11-03 Tobias Schlueter - - PR fortran/17535 - PR fortran/17583 - PR fortran/17713 - * module.c (write_symbol1): Set module_name for dummy arguments. - -2004-11-02 Paul Brook - - * intrinsic.c (check_intrinsic_standard): Include error locus. - Remove VLA. - (gfc_intrinsic_func_interface, gfc_intrinsic_sub_interface): Pass - locus to check_intrinsic_standard. - -2004-10-31 Janne Blomqvist - - PR fortran/17590 - * gfortran.h: Change GFC_STD_* flags to more appropriate - ones. (struct gfc_intrinsic_isym): Add field for standard. (struct - gfc_option_t): Add field for warning about use of nonstandard - intrinsics. - * intrinsic.c (add_sym): Add parameter for standard version, check - this against current standard. - (add_sym_0): Pass standard parameter to add_sym. - (add_sym_1, add_sym_0s, add_sym_1s, add_sym_1m, add_sym_2): Ditto. - (add_sym_2s, add_sym_3, add_sym_3ml, add_sym_3red, add_sym_3s): Ditto. - (add_sym_4, add_sym_4s, add_sym_5, add_sym_5s): Ditto. - (make_generic): Add parameter for standard, check this - against currently selected standard. - (add_functions, add_subroutines): Add parameter to tell which - standard an intrinsic belongs to. - (check_intrinsic_standard): New function. - (gfc_intrinsic_func_interface): Add call to check_intrinsic_standard. - (gfc_intrinsic_sub_interface): Ditto. - * lang.opt: Add Wnonstd-intrinsics option. - * options.c (gfc_init_options): Change to use new GFC_STD_* flags, - init new warning. - (set_Wall): Add warning about nonstd intrinsics. - (gfc_handle_option): Change to use new GFC_STD_* flags, - handle new warning. - * invoke.texi: Update manual to include -Wnonstd-intrinsics. - -2004-10-30 Andrew Pinski - - * f95-lang.c (lang_tree_node): Add chain_next to be the TREE_CHAIN. - -2004-10-30 Tobias Schlueter - - * simplify.c (twos_complement): Calculate mask in GMP arithmetic. - -2004-10-30 Tobias Schlueter - - * trans.c (gfc_trans_code): Set global locus after recursing. Fix - comment typo. - -2004-10-30 Canqun Yang - - * check.c (gfc_check_rand): Allow missing optional argument. - (gfc_check_irand): Ditto. - * intrinsic.c (add_functions): Set arg optional flag for {i,}rand. - -2004-10-28 Scott Robert Ladd - - PR fortran/13490, PR fortran/17912 - * gcc/fortran/gfortran.h: Added pedantic_min_int to gfc_integer_info - * gcc/fortran/gfortran.h: Added ARITH_ASYMMETRIC to arith - * gcc/fortran/arith.c: Added support for an "asymmetric integer" - warning when compiling with pedantic. - * gcc/fortran/arith.c: Set minimum integer values to reflect - realities of two's complement signed integers. Added - pedantic minimum. - -2004-10-17 Andrew Pinski - - * Make-lang.in (F95_ADDITIONAL_OBJS): Kill. - (f951): Do not depend on F95_ADDITIONAL_OBJS and don't - link it in. - -2004-10-14 Tobias Schlueter - - * trans-decl.c (generate_local_decl): Simplify logic, fix comment - typo. - (gfc_generate_function_code): Fix formatting issue. - -2004-10-10 Tobias Schlueter - - * module.c: Fix formatting issues. - -2004-10-09 Tobias Schlueter - - * module.c (mio_interface_rest): Set where member of interface - while loading. - -2004-10-08 Andrew Pinski - - PR fortran/17901 - * options.c (gfc_handle_option): Add break after handing the - J/M option. - -2004-10-08 Tobias Schlueter - - * arith.c: Fix formatting issues. - -2004-10-07 Tobias Schlueter - - PR fortran/17676 - * resolve.c (resolve_operator): Use correct operator name in message. - -2004-10-07 Tobias Schlueter - - * primary.c (match_boz_constant): Allow kind parameter suffixes. - Move standard warning further to the front. - -2004-10-07 Kazu Hirata - - * trans-stmt.c: Fix a comment typo. - -2004-10-07 Paul Brook - - PR fortran/17678 - * trans-array.c (gfc_trans_deferred_array): Leave use associated - variables alone. - -2004-10-06 Tobias Schlueter - - PR fortran/17568 - * simplify.c (twos_complement): New function. - (gfc_simplify_ishft, gfc_simplify_ishftc): Revise. - - * simplify.c (gfc_simplify_abs): Use mpfr_hypot for CABS. - -2004-10-06 Paul Brook - - * trans-stmt.c (gfc_trans_simple_do): New function. - (gfc_trans_do): Use it. Evaluate iteration bounds before entering - loop. Update comments. - -2004-10-04 Tobias Schlueter - - PR fortran/17283 - * iresolve.c (gfc_resolve_pack): Choose function depending if mask - is scalar. - - PR fortran/17631 - * intrinsic.c (add_sym_5): Remove. - (add_subroutines): Add resolution function for MVBITS. - * intrinsic.h (gfc_resolve_mvbits): Declare resolution function for - MVBITS - * iresolve.c (gfc_resolve_mvbits): New function. - (gfc_resolve_random_number): Remove empty line at end of function. - - * trans-const.c (gfc_build_cstring_const): New function. - (gfc_init_cst): Use new function. - * trans-const.h (gfc_build_cstring_const): Add prototype. - * trans-io.c (set_string, set_error_locus): Use new function. - * trans-stmt.c (gfc_trans_goto): Use new function. - - PR fortran/17708 - * parse.c (accept_statement): Don't treat END DO like END IF and - END SELECT. - (parse_do_block): Generate possible END DO label inside END DO - block. - - PR fortran/17776 - * check.c (gfc_check_system_sub): New function. - * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SYSTEM. - * intrinsic.c (add_functions): Add 'system'. - (add_subroutines): Add 'system'. - * intrinsic.h (gfc_check_etime_sub, gfc_check_getcwd_sub): - Move prototypes to other suborutines. - (gfc_check_system_sub, gfc_resolve_system, gfc_resolve_system_sub): - Add prototype. - (gfc_resolve_system_clock): Fix formatting of prototype. - * iresolve.c (gfc_resolve_system, gfc_resolve_system_sub): New - functions. - * trans-intrinsic.c (gfc_conv_intrinsic_function): Deal with - GFC_ISYM_SYSTEM. - -2004-10-04 Erik Schnetter - - * scanner.c (preprocessor_line): Accept preprocessor lines without - file names. Check file names for closing quotes. Handle escaped - quotes in file names. - -2004-10-04 Tobias Schlueter - Paul Brook - - * trans-array.c (gfc_conv_expr_descriptor): Check for substriungs. - Use gfc_get_expr_charlen. - * trans-expr.c (gfc_get_expr_charlen): New function. - * trans.h (gfc_get_expr_charlen): Add prototype. - -2004-10-04 Kazu Hirata - - * trans-intrinsic.c: Fix a comment typo. - -2004-10-03 Tobias Schlueter - - * simplify.c (range_check): Remove blank line at beginning of function. - (gfc_simplify_dint): Same at end of function. - (gfc_simplify_exponent, gfc_simplify_fraction): Simplify calculations. - (gfc_simplify_bound): Fix indentation. - (gfc_simplify_log10): Simplify calculation. - (gfc_simplify_min, gfc_simplify_max): Remove blank line at beginning - of function. - (gfc_simplify_nearest): Same at end of function. - (gfc_simplify_nint, gfc_simplify_idnint): Same at beginning of - function. - (gfc_simplify_rrspacing, gfc_simplify_set_exponent, - gfc_simplify_spacing): Simplify calulations. - -2004-10-03 Feng Wang - - * trans-intrinsic.c: Fix comments on spacing and rrspacing - (gfc_conv_intrinsic_rrspacing): Add fold on constant trees. - -2004-10-01 Jan Hubicka - - * f95-lang.c (gfc_expand_function): Update call of - tree_rest_of_compilation. - * trans-decl.c (gfc_generate_constructors): Likewise. - -2004-09-26 Tobias Schlueter - - * trans-intrinsic.c: Comment fixes. - -2004-09-25 Tobias Schlueter - - * decl.c (add_init_expr_to_sym, variable_decl): Comment fixes. - -2004-09-24 Tobias Schlueter - - * trans-types.c (gfc_return_by_reference): Remove superfluous - assertion. - - * intrinsic.h (gfc_resolve_getcwd): Update prototype. - * iresolve.c (gfc_resolve_getcwd): Add second argument to function. - - PR fortran/17615 - * trans-expr.c (gfc_trans_arrayfunc_assign): Look at resolved - function to determine return type. - -2004-09-20 Jan Hubicka - - * trans-decl.c (build_entry_thunks): Finalize the function; do not lower - tree. - (gfc_generate_function_code): Likewise. - -2004-09-20 Tobias Schlueter - - PR fortran/15957 - * simplify.c (gfc_simplify_reshape): Set shape of return value - correctly. - -2004-09-17 Jeffrey D. Oldham - Zack Weinberg - - * f95-lang.c, trans-expr.c, trans.c: Update for new tree-class - enumeration constants. - -2004-09-17 Paul Brook - - * gfortran.h (struct gfc_linebuf): Don't use C99 empty arrays. - (gfc_linebuf_header_size): Define. - * scanner.c (load_file): Use it. - -2004-09-16 Kazu Hirata - - * array.c, data.c, decl.c, dependency.c, error.c, f95-lang.c, - interface.c, intrinsic.c, io.c, misc.c, module.c, parse.h, - resolve.c, scanner.c, trans-array.c, trans-array.h, - trans-common.c, trans-const.h, trans-decl.c, trans-expr.c, - trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.c, - trans.h: Fix comment typos. Follow spelling conventions. - -2004-09-16 Victor Leikehman - - PR/15364 - * trans-io.c (transfer_array_component): New function. - (transfer_expr): For array fields, call transfer_array_component. - -2004-09-16 Kazu Hirata - - * gfortran.texi: Fix a typo. - -2004-09-15 Aaron W. LaFramboise - - * parse.c (eof_buf): Rename eof to eof_buf. - (unexpected_eof): Same. - (gfc_parse_file): Same. - -2004-09-15 Steven G. Kargl - - * check.c (gfc_check_getcwd_sub): New function. - * gfortran.h (GFC_ISYM_GETCWD): New symbol. - * intrinsic.c (add_functions): Add function definition; - Use symbol. - * intrinsic.c (add_subroutines): Add subroutine definitions. - * intrinsic.h: Add prototypes. - * iresolve.c (gfc_resolve_getcwd, gfc_resolve_getcwd_sub): - New functions. - * trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbol. - -2004-09-15 Tobias Schlueter - - PR fortran/16485 - * module.c (write_symbol): Don't fill in module name here. - (write_symbol0): Fill in here instead. - -2004-09-14 Kazu Hirata - - * data.c, decl.c, f95-lang.c, gfortran.h, match.c, - trans-array.c, trans-common.c, trans-expr.c, - trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.h: Fix - comment typos. Follow spelling conventions. - -2004-09-09 Paul Brook - - * scanner.c (get_file): Add ATTRIBUTE_UNUSED. - -2004-09-08 Paul Brook - - * array.c: Don't include assert.h. - * data.c: Don't include assert.h. Replace assert and abort with - gcc_assert and gcc_unreachable. - * dependency.c: Ditto. - * f95-lang.c: Ditto. - * iresolve.c: Ditto. - * resolve.c: Ditto. - * simplify.c: Ditto. - * symbol.c: Ditto. - * trans-array.c: Ditto. - * trans-common.c: Ditto. - * trans-const.c: Ditto. - * trans-decl.c: Ditto. - * trans-expr.c: Ditto. - * trans-intrinsic.c: Ditto. - * trans-io.c: Ditto. - * trans-stmt.c: Ditto. - * trans-types.c: Ditto. - * trans.c: Ditto. - -2004-09-07 Per Bothner - Paul Brook - - * error.c (show_locus): Handle mapped locations. - * f95-lang.c (gfc_be_parse_file): Initialize mapped locations. - * gfortran.h: Include input.h. - (struct gfc_linebuf): Use source_location. - * scanner.c (get_file): Initialize linemap. - (preprocessor_line): Pass extra argument to get_file. - (load_file): Ditto. Setup linemap. - (gfc_new_file): Handle mapped locations. - * trans-common.c (build_field, build_equiv_decl, build_common_decl): - Set decl source locations. - (gfc_trans_common): Set blank common block location. - * trans-decl.c (gfc_set_decl_location): New function. - (gfc_get_label_decl, gfc_get_symbol_decl): Use it. - (trans_function_start): Move call to gfc_set_backend_locus.. - (build_function_decl): ... to here. - (build_entry_thunks): Set and restore the backend locus. - (gfc_generate_constructors): Remove excess arguments to - init_function_start. - (gfc_generate_block_data): Add comments. Set the decl locus. - * trans-io.c (set_error_locus): Handle mapped locations. - * trans.c (gfc_get_backend_locus, gfc_get_backend_locus): Ditto. - (gfc_trans_code): Use SET_EXPR_LOCATION. - (gfc_generate_code): Override the location of the new symbol. - * trans.h (gfc_set_decl_location): Add prototype. - -2004-08-31 Paul Brook - - * trans-types.c (gfc_type_for_mode): Return NULL for unknown modes. - -2004-09-01 Tobias Schlueter - - PR fortran/15327 - * trans-intrinsic.c (gfc_conv_intrinsic_merge): Do the right thing for - strings. - -2004-09-01 Tobias Schlueter - - PR fortran/16400 - PR fortran/16404 - (port from g95) - * resolve.c (resolve_transfer): New function. - (resolve_code): Call resolve_transfer in case of EXEC_TRANSFER. - -2004-08-31 Tobias Schlueter - - PR fortran/16579 - * trans-types.c (gfc_init_types): Make gfc_character1_type_node an - unsigned char. - -2004-08-31 Tobias Schlueter - - * CONTRIB, NEWS, README, TODO: Remove obsolete files. - -2004-08-31 Tobias Schlueter - - PR fortran/17244 - * trans-types.c (gfc_return_by_reference): Remove TODO error, - add comment pointing out possible issue WRT compatibility with g77. - -2004-08-31 Tobias Schlueter - - * trans-decl.c, trans-expr.c, trans-io.c, trans-types.c: Replace - all occurences of 'gfc_strlen_type_node' by - 'gfc_charlen_type_node'. - * trans-types.h: Same. Also update comment accordingly. - -2004-08-31 Tobias Schlueter - - * primary.c: Update copyright boilerplate to say GCC. - * f95-lang.c: Change initial comment to say gfortran. - -2004-08-31 Paul Brook - - * trans-types.h: Add comments. - (intmax_type_node, string_type_node, const_string_type_node): Remove. - -2004-08-30 Richard Henderson - - * Make-lang.in (fortran/f95-lang.o): Update dependencies. - (fortran/trans-decl.o, fortran/trans-types.o): Likewise. - * gfortran.h (gfc_integer_info): Add c_char, c_short, c_int, - c_long, c_long_long. - (gfc_logical_info): Add c_bool. - (gfc_real_info): Add mode_precision, c_float, c_double, c_long_double. - * trans-array.c (gfc_array_allocate): Use TYPE_PRECISION - rather than gfc_int[48]_type_node for allocate choice. - * trans-decl.c (gfc_build_intrinsic_function_decls): Cache - local copies of some kind type nodes. - (gfc_build_builtin_function_decls): Likewise. - * trans-expr.c (gfc_conv_power_op): Likewise. - * trans-intrinsic.c (gfc_conv_intrinsic_index, - gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify, - gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat): Likewise. - * trans-stmt.c (gfc_trans_pause, gfc_trans_stop, - gfc_trans_character_select, gfc_trans_allocate): Likewise. - * trans-io.c (gfc_pint4_type_node): Move into ... - (gfc_build_io_library_fndecls): ... here. Cache local copies of - some kind type nodes. - * trans-types.c (gfc_type_nodes): Remove. - (gfc_character1_type_node, gfc_strlen_type_node): New. - (gfc_integer_types, gfc_logical_types): New. - (gfc_real_types, gfc_complex_types): New. - (gfc_init_kinds): Fill in real mode_precision. - (gfc_build_int_type, gfc_build_real_type): New. - (gfc_build_complex_type, gfc_build_logical_type): New. - (c_size_t_size): New. - (gfc_init_types): Loop over kinds. - (gfc_get_int_type, gfc_get_real_type): Use gfc_validate_kind. - (gfc_get_complex_type, gfc_get_logical_type): Likewise. - (gfc_get_character_type_len): Likewise. - (gfc_type_for_size): Loop over kinds; use a reduced set of - unsigned type nodes. - (gfc_type_for_mode): Loop over kinds. - (gfc_signed_or_unsigned_type): Use gfc_type_for_size. - (gfc_unsigned_type, gfc_signed_type): Use gfc_signed_or_unsigned_type. - * trans-types.h (F95_INT1_TYPE, F95_INT2_TYPE, F95_INT4_TYPE, - F95_INT8_TYPE, F95_INT16_TYPE, F95_REAL4_TYPE, F95_REAL8_TYPE, - F95_REAl16_TYPE, F95_COMPLEX4_TYPE, F95_COMPLEX8_TYPE, - F95_COMPLEX16_TYPE, F95_LOGICAL1_TYPE, F95_LOGICAL2_TYPE, - F95_LOGICAL4_TYPE, F95_LOGICAL8_TYPE, F95_LOGICAL16_TYPE, - F95_CHARACTER1_TYPE, NUM_F95_TYPES, gfc_type_nodes, - gfc_int1_type_node, gfc_int2_type_node, gfc_int4_type_node, - gfc_int8_type_node, gfc_int16_type_node, gfc_real4_type_node, - gfc_real8_type_node, gfc_real16_type_node, gfc_complex4_type_node, - gfc_complex8_type_node, gfc_complex16_type_node, - gfc_logical1_type_node, gfc_logical2_type_node, - gfc_logical4_type_node, gfc_logical8_type_node, - gfc_logical16_type_node, gfc_strlen_kind): Remove. - (gfc_character1_type_node): Turn in to a variable. - (gfc_strlen_type_node): Likewise. - -2004-08-30 Tobias Schlueter - - * gfortran.h (gfc_namespace): Add new field is_block_data. - * parse.c (accept_statement): Remove special handling for BLOCK DATA. - (parse_block_data): Record BLOCK DATA name, set is_block_data field. - * trans.c (gfc_generate_code): Handle BLOCK DATA units. - * trans.h (gfc_generate_block_data): Add prototype. - * trans-decl.c (gfc_generate_block_data): New function. - -2004-08-29 Richard Henderson - - * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_export. - * trans-types.c (gfc_init_kinds): Reject integer kinds larger - than two HOST_WIDE_INT. - -2004-08-29 Tobias Schlueter - - PR fortran/13910 - * decl.c (free_variable, free_value, gfc_free_data, var_list, - var_element, top_var_list, match_data_constant, top_val_list, - gfc_match_data): Move here from match.c. - (match_old_style_init): New function. - (variable_decl): Match old-style initialization. - * expr.c (gfc_get_variable_expr): New function. - * gfortran.h (gfc_get_variable_expr): Add prototype. - * gfortran.texi: Start documentation for supported extensions. - * match.c: Remove the functions moved to decl.c. - * match.h (gfc_match_data): Move prototype to under decl.c. - * symbol.c (gfc_find_sym_tree, gfc_find_symbol): Add/correct - comments. - -2004-08-29 Steven G. Kargl - Paul Brook - - * check.c (gfc_check_besn, gfc_check_g77_math1): New functions. - * f95-lang.c (DO_DEFINE_MATH_BUILTIN): Define. - (DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it. - (build_builtin_fntypes): New function. - (gfc_init_builtin_functions): Use it. - * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_{J,Y}{0,1,N} - and GFC_ISYM_ERF{,C}. - (gfc_c_int_kind): Declare. - * intrinsic.c (add_functions): Add [d]bes* and [d]erf*. - * intrinsic.h (gfc_check_besn, gfc_check_g77_math1, gfc_resolve_besn, - gfc_resolve_g77_math1): Add prototypes. - * resolve.c (gfc_resolve_besn, gfc_resolve_g77_math1): New functions. - * mathbuiltins.def: Add comment. Change third argument. Use - DEFINE_MATH_BUILTIN_C. Add bessel and error functions. - * trans-intrinsic.c (BUILT_IN_FUNCTION): Define. - (DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it. - * trans-types.c (gfc_c_int_kind): Declare. - (gfc_init_kinds): Set it. - -2004-08-29 Steven G. Kargl - Paul Brook - - * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_GET?ID. - (gfc_check_f, gfc_simplify_f): Add f0. - * intrinsic.c (do_check): Call f0. Flatten. - (add_sym_0): Fix prototype. Set f0. - (add_functions): Add getgid, getgid and getuid. - (resolve_intrinsic): Remove obsolete comment. - (do_simplify): Call f0. - * intrinsic.h (gfc_resolve_getgid, gfc_resolve_getpid, - gfc_resolve_getuid): Add prototypes. - * iresolve.c (gfc_resolve_getgid, gfc_resolve_getpid, - gfc_resolve_getuid): New functions. - * trans-intrinsic.c (gfc_conv_intrinsic_function): Handle - GFC_ISYM_GET?ID. - -2004-08-28 Tobias Schlueter - - * error.c (gfc_error_init_1): Remove blank line in front of - function body. Add missing blank. - (gfc_buffer_error, error_char, error_string): Remove blank line in - front of function body. - (show_locus): Add comma in comment. - (gfc_clear_warning, gfc_warning_check, gfc_clear_error, - gfc_push_error, gfc_pop_error): Remove blank line in front of - function body. - (gfc_get_errors): Typo fix in comment in front of function. Remove - blank line in front of function body. - -2004-08-27 Tobias Schlueter - - * gfortran.h (gfc_default_*_kind): Remove prototypes, add extern - variable declaration of same name. - * arith.c, check.c, decl.c, dump_parse_tree.c, expr.c, - intrinsic.c, io.c, iresolve.c, match.c, options.c, primary.c, - resolve.c, simplify.c, symbol.c, trans-const.c, trans-io.c: - Replace all calls to gfc_default_*_kind with variable accesses. - * trans-types.c: Same as above. - (gfc_default_*_kind_1): Rename to gfc_default_*_kind, remove - static qualifier. Replace all occurences. - (gfc_default_*_kind): Remove functions. - -2004-08-26 Richard Henderson - - * arith.c: Include system.h, not real system headers. - (MPZ_NULL, MPF_NULL, DEF_GFC_INTEGER_KIND, DEF_GFC_LOGICAL_KIND, - DEF_GFC_REAL_KIND, GFC_SP_KIND, GFC_SP_PREC, GFC_SP_EMIN, GFC_SP_EMAX, - GFC_DP_KIND, GFC_DP_PREC, GFC_DP_EMIN, GFC_DP_EMAX, GFC_QP_KIND, - GFC_QP_PREC, GFC_QP_EMIN, GFC_QP_EMAX): Remove. - (gfc_integer_kinds, gfc_logical_kinds, gfc_real_kinds, - gfc_index_integer_kind, gfc_default_integer_kind, - gfc_default_real_kind,gfc_default_double_kind, - gfc_default_character_kind, gfc_default_logical_kind, - gfc_default_complex_kind, validate_integer, validate_real, - validate_logical, validate_character, - gfc_validate_kind): Move to trans-types.c. - (gfc_set_model_kind): Use gfc_validate_kind. - (gfc_set_model): Just copy the current precision to default. - (gfc_arith_init_1): Use mpfr precision 128 for integer setup. - * f95-lang.c (gfc_init_decl_processing): Invoke gfc_init_kinds. - * gfortran.h: Update file commentary. - * trans-types.c (MAX_INT_KINDS, MAX_REAL_KINDS): New. - (gfc_default_integer_kind_1, gfc_default_real_kind_1, - gfc_default_double_kind_1, gfc_default_character_kind_1, - gfc_default_logical_kind_1, gfc_default_complex_kind_1): New. - (gfc_init_kinds): New. - (gfc_init_types): Don't set gfc_index_integer_kind here. - * trans-types.h (gfc_init_kinds): Declare. - * doc/invoke.texi: Clarify DOUBLE PRECISION behaviour wrt -r8. - -2004-08-26 Tobias Schlueter - - * check.c (gfc_check_atan2): New function. - * intrinsic.c (add_functions): Use gfc_check_atan2 for ATAN2 - * intrinsic.h (gfc_check_atan2): Add prototype. - -2004-08-25 Richard Henderson - - * arith.c (gfc_validate_kind): Add may_fail argument; abort if - false and we don't validate the kind. - (gfc_check_integer_range, gfc_check_real_range): Update to match. - * check.c (kind_check): Likewise. - * decl.c (gfc_match_old_kind_spec, gfc_match_kind_spec): Likewise. - (match_char_spec, match_logical_spec): Likewise. - * gfortran.h (gfc_validate_kind): Likewise. - * options.c (gfc_handle_option): Likewise. - * primary.c (match_integer_constant, match_real_constant, - match_string_constant, match_logical_constant, - match_const_complex_part): Likewise. - * simplify.c (get_kind, gfc_simplify_bit_size, gfc_simplify_digits, - gfc_simplify_epsilon, gfc_simplify_huge, gfc_simplify_ibclr, - gfc_simplify_ibset, gfc_simplify_ishft, gfc_simplify_ishftc, - gfc_simplify_maxexponent, gfc_simplify_minexponent, - gfc_simplify_nearest, gfc_simplify_not, gfc_simplify_precision, - gfc_simplify_radix, gfc_simplify_range, gfc_simplify_rrspacing, - gfc_simplify_scale, gfc_simplify_spacing, gfc_simplify_tan, - gfc_simplify_tiny): Likewise. - * trans-intrinsic.c (gfc_conv_intrinsic_aint, gfc_conv_intrinsic_mod, - gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval, - prepare_arg_info): Likewise. - -2004-08-25 Tobias Schlueter - - * expr.c (gfc_check_assign): Add comment. Add new warning. - * trans-expr.c (gfc_conv_function_call): Correctly dereference - result of pointer valued function when not in pointer assignment. - -2004-08-25 Paul Brook - - * config-lang.in: Remove dead commented line. - * module.c: Replace g95 with gfortran in comment. - -2004-08-25 Paul Brook - - PR fortran/17190 - * arith.c (gfc_mpfr_to_mpz): Workaround mpfr bug. - -2004-08-25 Paul Brook - - PR fortran/17144 - * trans-array.c (gfc_trans_allocate_temp_array): Remove - string_length argument. - (gfc_trans_array_ctor_element): New function. - (gfc_trans_array_constructor_subarray): Use it. - (gfc_trans_array_constructor_value): Ditto. Handle constant - character arrays. - (get_array_ctor_var_strlen, get_array_ctor_strlen): New functions. - (gfc_trans_array_constructor): Use them. - (gfc_add_loop_ss_code): Update to new gfc_ss layout. - (gfc_conv_ss_descriptor): Remember section string length. - (gfc_conv_scalarized_array_ref): Ditto. Remove dead code. - (gfc_conv_resolve_dependencies): Update to new gfc_ss layout. - (gfc_conv_expr_descriptor): Ditto. - (gfc_conv_loop_setup): Ditto. Spelling fixes. - * trans-array.h (gfc_trans_allocate_temp_array): Update prototype. - * trans-const.c (gfc_conv_constant): Update to new gfc_ss layout. - * trans-expr.c (gfc_conv_component_ref): Turn error into ICE. - (gfc_conv_variable): Set string_length from section. - (gfc_conv_function_call): Remove extra argument. - (gfc_conv_expr, gfc_conv_expr_reference): Update to new gfc_ss layout. - * trans-types.c (gfc_get_character_type_len): New function. - (gfc_get_character_type): Use it. - (gfc_get_dtype): Return zero for internal types. - * trans-types.h (gfc_get_character_type_len): Add prototype. - * trans.h (struct gfc_ss): Move string_length out of union. - -2004-08-25 Tobias Schlueter - - * trans.h (build2_v, build3_v): New macros. - (build_v): Remove. - * f95-lang.c (gfc_truthvalue_conversion): Use build2 instead of - build. - * trans-array.c (gfc_conv_descriptor_data, - gfc_conv_descriptor_offset, gfc_conv_descriptor_dimension, - gfc_conv_descriptor_stride, gfc_conv_descriptor_lbound, - gfc_conv_descriptor_ubound, gfc_trans_allocate_array_storage, - gfc_trans_allocate_temp_array, - gfc_trans_array_constructor_subarray, - gfc_trans_array_constructor_value, gfc_conv_array_index_ref, - gfc_trans_array_bound_check, gfc_conv_array_index_offset, - gfc_conv_scalarized_array_ref, gfc_conv_array_ref, - gfc_conv_array_ref, gfc_trans_preloop_setup, - gfc_trans_scalarized_loop_end, gfc_conv_ss_startstride, - gfc_conv_loop_setup, gfc_array_init_size, - gfc_conv_array_initializer, gfc_trans_array_bounds, - gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias, - gfc_conv_expr_descriptor, gfc_conv_array_parameter, - gfc_trans_deferred_array): Use buildN and buildN_v macros instead - of build and build_v as appropriate. - * trans-common.c (create_common): Same. - * trans-decl.c (gfc_trans_auto_character_variable, - gfc_trans_entry_master_switch, gfc_generate_function_code): Same. - * trans-expr.c (gfc_conv_expr_present, gfc_conv_substring, - gfc_conv_component_ref, gfc_conv_unary_op, gfc_conv_powi, - gfc_conv_cst_int_power, gfc_conv_string_tmp, gfc_conv_concat_op, - gfc_conv_expr_op, gfc_conv_function_call, - gfc_trans_structure_assign): Same. - * trans-intrinsic.c (build_fixbound_expr, build_round_expr, - gfc_conv_intrinsic_aint, gfc_conv_intrinsic_bound, - gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod, - gfc_conv_intrinsic_dim, gfc_conv_intrinsic_sign, - gfc_conv_intrinsic_dprod, gfc_conv_intrinsic_minmax, - gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count, - gfc_conv_intrinsic_arith, gfc_conv_intrinsic_minmaxloc, - gfc_conv_intrinsic_minmaxval, gfc_conv_intrinsic_btest, - gfc_conv_intrinsic_bitop, gfc_conv_intrinsic_singlebitop, - gfc_conv_intrinsic_ibits, gfc_conv_intrinsic_ishft, - gfc_conv_intrinsic_merge, gfc_conv_intrinsic_strcmp, - gfc_conv_allocated, gfc_conv_associated, prepare_arg_info, - gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_rrspacing, - gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat, - gfc_conv_intrinsic_iargc): Same. - * trans-io.c (set_parameter_value, set_parameter_ref, set_string, - set_flag, add_case, io_result, transfer_namelist_element, - transfer_expr): Same. - * trans-stmt.c (gfc_trans_goto, gfc_trans_return, gfc_trans_if_1, - gfc_trans_arithmetic_if, gfc_trans_do, gfc_trans_do_while, - gfc_trans_integer_select, gfc_trans_logical_select, - gfc_trans_character_select, gfc_trans_forall_loop, - gfc_trans_nested_forall_loop, gfc_do_allocate, - generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp, - compute_inner_temp_size, compute_overall_iter_number, - allocate_temp_for_forall_nest, gfc_trans_pointer_assign_need_temp, - gfc_trans_forall_1, gfc_evaluate_where_mask, - gfc_trans_where_assign, gfc_trans_allocate): Same. - * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Same. - * trans.c (gfc_add_modify_expr, gfc_finish_block, - gfc_build_array_ref, gfc_build_function_call, - gfc_trans_runtime_check): Same. - -2004-08-25 Tobias Schlueter - - * trans-const.c (gfc_conv_mpz_to_tree): Change call to - build_int_cst to build_int_cst_wide in accordance to Nathan's - previous patch. - -2004-08-25 Nathan Sidwell - - * trans-array.c (gfc_trans_array_constructor_value): Adjust - build_int_cst calls. - * trans-const.c (gfc_build_string_const, gfc_init_constants, - gfc_conv_mpz_to_tree, gfc_conv_constant_to_tree): Likewise. - * trans-decl.c (gfc_get_symbol_decl, build_entry_thunks, - gfc_trans_entry_master_switch): Likewise. - * trans-intrinsic.c (gfc_conv_intrinsic_ibits, - gfc_conv_intrinsic_len, prepare_arg_info): Likewise. - * trans-io.c (add_case, set_error_locus, - transfer_namelist_element, transfer_expr): Likewise. - * trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause, - gfc_trans_stop, gfc_trans_character_select): Likewise. - * trans-types.c (gfc_init_types, gfc_get_dtype): Likewise. - * trans.c (gfc_trans_runtime_check): Likewise. - -2004-08-24 Tobias Schlueter - - * trans-decl.c, trans-types.c: Add and remove blank lines as - required. - -2004-08-24 Richard Henderson - - * trans-const.c (gfc_conv_mpz_to_tree): Fix 64-bit shift warning. - -2004-08-24 Tobias Schlueter - - * resolve.c (merge_argument_lists): Revert unintentionally - committed change. - -2004-08-24 Tobias Schlueter - - * trans-decl.c (build_function_decl): Fix spelling in comment. - (build_entry_thunks): Remove code with no function. - (gfc_build_intrinsic_function_decls): Remove empty line. - - * resolve.c (resolve_entries): Fix a bunch of comment typos. - -2004-08-24 Nathan Sidwell - - * f95-lang.c (gfc_init_decl_processing): Adjust - build_common_tree_nodes call. - -2004-08-24 Tobias Schlueter - - * trans-types.c: Spelling and formatting fixes. - -2004-08-23 Richard Henderson - - * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_getlimbn instead - of going through an intermediate string. Fix 32/64 int/long bug. - -2004-08-23 Eric Christopher - - * trans-types.c (gfc_type_for_mode): Remove VECTOR_TYPE_SUPPORTED_P - usage. Use build_vector_type_for_mode for vector types. - -2004-08-22 Richard Henderson - - PR 13465 - * data.c (find_con_by_offset): Search ordered list; handle - elements with repeat counts. - (gfc_assign_data_value_range): New. - * gfortran.h (struct gfc_data_value): Make repeat unsigned. - (gfc_assign_data_value_range): Declare. - * match.c (top_val_list): Extract repeat count into a temporary. - * resolve.c (values): Make left unsigned. - (next_data_value): Don't decrement left. - (check_data_variable): Use gfc_assign_data_value_range. - -2004-08-22 Tobias Schlueter - - * trans-const.c, trans-decl.c, trans-expr.c: Spelling fixes. - -2004-08-22 Tobias Schlueter - - * check.c (gfc_check_reduction): Rename to ... - (check_reduction): ... this. Make static. Don't check type of - first argument. - (gfc_check_minval_maxval, gfc_check_prodcut_sum): New functions. - * intrinsic.c (add_functions): Change MAXVAL, MINVAL, PRODUCT and - SUM to use new check functions. - (check_specific): Change logic to call new functions. - * intrinsic.h (gfc_check_minval_maxval, gfc_check_product_sum): - Add prototypes. - (gfc_check_reduction): Remove prototype. - -2004-08-20 Paul Brook - Canqun Yang - - PR fortran/17077 - * trans-array.c (gfc_conv_array_parameter): Pass correct pointer - for automatic arrays. - * trans-types.c (gfc_get_nodesc_array_type): Add comment. - -2004-08-19 Tobias Schlueter - (Port from g95) - - PR fortran/17074 - * match.c (match_simple_forall, match_simple_where): Forward-declare. - (gfc_match_if): Order statement list alphabetically, add WHERE and - FORALL, remove double PAUSE. - (gfc_match_simple_where, match_forall_header, - gfc_match_simple_forall): New functions. - (gfc_match_forall): Use match_forall_header. - -2004-08-19 Paul Brook - - PR fortran/17091 - * gfortran.h (gfc_access): Give ACCESS_UNKNOWN value 0. - * symbol.c (gfc_clear_attr): Use memset. - -2004-08-19 Paul Brook - - PR fortran/14976 - PR fortran/16228 - * data.c (assign_substring_data_value): Remove. - (create_character_intializer): New function. - (gfc_assign_data_value): Track the typespec for the current - subobject. Use create_character_intializer. - -2004-08-19 Erik Schnetter - - PR fortran/16946 - * check.c (gfc_check_reduction): New function. - (gfc_check_minval_maxval): Removed. - (gfc_check_product): Removed. - (gfc_check_sum): Removed. - * intrinsic.h: Add/remove declarations for these. - * gfortran.h: Add field f3red to union gfc_check_f. - * intrinsic.c (add_sym_3red): New function. - (add_functions): Register maxval, minval, product, and sum intrinsics - through add_sym_3red. - (check_specific): Handle f3red union field. - * iresolve.c: Whitespace change. - -2004-08-18 Paul Brook - - * trans-types.c (gfc_sym_type): Use pointer types for optional args. - -2004-08-18 Victor Leikehman - - PR fortran/13278 - * trans-io.c (transfer_namelist_element): New. Recursively handle - derived-type variables. Pass string lengths. - (build_dt): Code moved to build_namelist, with some - changes and additions. - (gfc_build_io_library_fndecls): Declare the fifth - argument in st_set_nml_var_char -- string_length. - -2004-08-17 Paul Brook - Tobias Schlueter - - PR fortran/13082 - * decl.c (get_proc_name): Update mystery comment. - (gfc_match_entry): Check for errors earlier. Add entry point to list. - * dump-parse-tree.c (gfc_show_code_node): Print EXEC_ENTRY nodes. - * gfortran.h (symbol_attribute): Add entry_master. Document entry. - (struct gfc_entry_list): Define. - (gfc_get_entry_list): Define. - (struct gfc_namespace): Add refs and entries. - (enum gfc_exec_op): Add EXEC_ENTRY. - (struct gfc_code): Add ext.entry. - * module.c (ab_attribute, attr_bits): Remove AB_ENTRY. - (mio_symbol_attribute): Don't save/reture addr->entry. - (mio_namespace_ref): Refcount namespaces. - * parse.c (accept_statement): Handle ST_ENTRY. - (gfc_fixup_sibling_symbols): Mark symbol as referenced. - (parse_contained): Fixup sibling references to entry points - after parsing the procedure body. - * resolve.c (resolve_contained_fntype): New function. - (merge_argument_lists, resolve_entries): New functions. - (resolve_contained_functions): Use them. - (resolve_code): Handle EXEC_ENTRY. - (gfc_resolve): Call resolve_entries. - * st.c (gfc_free_statement): Handle EXEC_ENTRY. - * symbol.c (gfc_get_namespace): Refcount namespaces. - (gfc_free_namespace): Ditto. - * trans-array.c (gfc_trans_dummy_array_bias): Treat all args as - optional when multiple entry points are present. - * trans-decl.c (gfc_get_symbol_decl): Remove incorrect check. - (gfc_get_extern_function_decl): Add assertion. Fix coment. - (create_function_arglist, trans_function_start, build_entry_thunks): - New functions. - (gfc_build_function_decl): Rename ... - (build_function_decl): ... to this. - (gfc_create_function_decl): New function. - (gfc_generate_contained_functions): Use it. - (gfc_trans_entry_master_switch): New function. - (gfc_generate_function_code): Use new functions. - * trans-stmt.c (gfc_trans_entry): New function. - * trans-stmt.h (gfc_trans_entry): Add prototype. - * trans-types.c (gfc_get_function_type): Add entry point argument. - * trans.c (gfc_trans_code): Handle EXEC_ENTRY. - (gfc_generate_module_code): Call gfc_create_function_decl. - * trans.h (gfc_build_function_decl): Remove. - (gfc_create_function_decl): Add prototype. - -2004-08-15 Andrew Pinski - - PR fortran/17030 - * f95-lang.c (gfc_init_builtin_functions): Initialize the builtins - for cabs{,f} and copysign{,f}. - * trans-decl.c (gfor_fndecl_math_cabsf): Delete. - (gfor_fndecl_math_cabs): Delete. - (gfor_fndecl_math_sign4): Delete. - (gfor_fndecl_math_sign8): Delete. - (gfc_build_intrinsic_function_decls): Remove the - initializing of cabs{,f} and copysign{,f} functions. - * trans-intrinsic.c (gfc_conv_intrinsic_abs): Use the builtins - instead of the functions definitions. - (gfc_conv_intrinsic_sign): Likewise. - * trans.h (gfor_fndecl_math_cabsf): Delete. - (gfor_fndecl_math_cabs): Delete. - (gfor_fndecl_math_sign4): Delete. - (gfor_fndecl_math_sign8): Delete. - -2004-08-15 Nathan Sidwell - - * trans-array.c (gfc_trans_array_constructor_value): Use - build_int_cst. - * trans-const.c (gfc_build_string_const, - gfc_init_constants, gfc_conv_mpz_to_tree, - gfc_conv_constant_to_tree): Likewise. - * trans-decl.c (gfc_get_symbol_decl): Likewise. - * trans-intrinsic.c (gfc_conv_intrinsic_ibits, - gfc_conv_intrinsic_len, prepare_arg_info): Likewise. - * trans-io.c (add_case, set_error_locus, build_dt, - transfer_expr): Likewise. - * trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause, - gfc_trans_stop, gfc_trans_character_select): Likewise. - * trans-types.c (gfc_init_types, gfc_get_dtype): Likewise. - * trans.c (gfc_trans_runtime_check): Likewise. - -2004-08-14 Paul Brook - - * trans-decl.c (gfc_build_function_decl): Remove dead code. - -2004-08-14 Paul Brook - - * trans-arry.c (gfc_trans_auto_array_allocation): Remove unused var. - -2004-08-13 Tobias Schlueter - - * gfortran.h: Add comments. - * parse.c (parse_contained): Fix comment typo. - * resolve.c (was_declared): Ditto. - * symbol.c: Ditto. - -2004-08-11 Paul Brook - - PR fortran/16917 - * intrinsic.c (add_functions): Add dfloat as an alias for dble. - -2004-08-10 Richard Henderson - - * f95-lang.c (gfc_init_builtin_functions): Remove - __builtin_stack_alloc, add __builtin_alloca. - * trans-array.c (gfc_trans_auto_array_allocation): Use DECL_EXPR. - * trans-decl.c (gfc_trans_auto_character_variable): Likewise. - -2004-08-10 Paul Brook - - * trans-io.c (transfer_expr): Handle pointters. - -2004-08-10 Paul Brook - - PR fortran/16919 - * trans-array.c (gfc_add_loop_ss_code): Handle GFC_SS_COMPONENT. - (gfc_conv_array_index_offset): Allow "temporary" with nonzero delta. - (gfc_trans_preloop_setup, gfc_trans_scalarized_loop_boundary): - Handle GFC_SS_COMPONENT. - (gfc_conv_ss_startstride): Ditto. Set ss->shape. - (gfc_conv_loop_setup): Tweak commends. Remove dead code. - Use ss->shape. - (gfc_conv_array_initializer): Call specific initializer routines. - * trans-expr.c (gfc_trans_structure_assign): New function. - (gfc_trans_subarray_assign): New function. - (gfc_trans_subcomponent_assign): New fucntion - (gfc_conv_structure): Use them. - * trans.h (gfc_ss_type): Add GFC_SS_COMPONENT. - (gfc_ss): Add shape. - -2004-08-08 Victor Leikehman - - * simplify.c (gfc_simplify_shape): Bugfix. - * expr.c (gfc_copy_shape_excluding): New function. - * gfortran.h (gfc_get_shape): Bugfix. - (gfc_copy_shape_excluding): Added declaration. - * iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count, - gfc_resolve_cshift, gfc_resolve_eoshift, gfc_resolve_lbound, - gfc_resolve_ubound, gfc_resolve_transpose): Added compile - time resolution of shape. - -2004-08-06 Janne Blomqvist - - * intrinsic.c (add_subroutines): Add getenv and - get_environment_variable. (add_sym_5s): New function. - * intrinsic.h (gfc_resolve_get_environment_variable): Add - prototype. - * iresolve.c (gfc_resolve_get_environment_variable): New - function. - -2004-08-06 Feng Wang - - * f95-lang.c (gfc_init_builtin_functions): Fix the number of - __builtin_pow[f] arguments. - -2004-08-06 Steven G. Kargl - - * arith.c: Add #define for model numbers. Remove global GMP variables. - (natural_logarithm,common_logarithm,exponential,sine, - cosine,arctangent,hypercos,hypersine ): Remove. - (gfc_mpfr_to_mpz,gfc_set_model_kind,gfc_set_model): New functions. - (arctangent2,gfc_arith_init_1,gfc_arith_done_1 - gfc_check_real_range, gfc_constant_result, gfc_range_check, - gfc_arith_uminus,gfc_arith_plus, gfc_arith_minus, gfc_arith_times, - gfc_arith_divide,complex_reciprocal,complex_pow_ui, - gfc_arith_power,gfc_compare_expr,compare_complex,gfc_convert_real, - gfc_convert_complex,gfc_int2real,gfc_int2complex, - gfc_real2int,gfc_real2real,gfc_real2complex, - gfc_complex2int,gfc_complex2real,gfc_complex2complex): Convert GMP - to MPFR, use new functions. - * arith.h: Remove extern global variables. - (natural_logarithm,common_logarithm,exponential, sine, cosine, - arctangent,hypercos,hypersine): Remove prototypes. - (arctangent2): Update prototype from GMP to MPFR. - (gfc_mpfr_to_mpz, gfc_set_model_kind,gfc_set_model): Add prototypes. - * dump-parse-tree.c (gfc_show_expr): Convert GMP to MPFR. - * expr.c (free_expr0,gfc_copy_expr): Convert GMP to MPFR. - * gfortran.h (GFC_REAL_BITS): Remove. - (arith): Add ARITH_NAN. - Include mpfr.h. Define GFC_RND_MODE. - Rename GCC_GFORTRAN_H GFC_GFC_H. - (gfc_expr): Convert GMP to MPFR. - * module.c: Add arith.h, correct type in comment. - (mio_gmp_real): Convert GMP to MPFR. - (mio_expr): Use gfc_set_model_kind(). - * primary.c: Update copyright date with 2004. - (match_real_constant,match_const_complex_part): Convert GMP to MPFR. - * simplify.c: Remove global GMP variables - (gfc_simplify_abs,gfc_simplify_acos,gfc_simplify_aimag, - gfc_simplify_aint,gfc_simplify_dint,gfc_simplify_anint, - gfc_simplify_dnint,gfc_simplify_asin,gfc_simplify_atan, - gfc_simplify_atan2,gfc_simplify_ceiling,simplify_cmplx, - gfc_simplify_conjg,gfc_simplify_cos,gfc_simplify_cosh, - gfc_simplify_dim,gfc_simplify_dprod,gfc_simplify_epsilon, - gfc_simplify_exp,gfc_simplify_exponent,gfc_simplify_floor, - gfc_simplify_fraction,gfc_simplify_huge,gfc_simplify_int, - gfc_simplify_ifix,gfc_simplify_idint,gfc_simplify_log, - gfc_simplify_log10,simplify_min_max,gfc_simplify_mod, - gfc_simplify_modulo,gfc_simplify_nearest,simplify_nint, - gfc_simplify_rrspacing,gfc_simplify_scale, - gfc_simplify_set_exponent,gfc_simplify_sign,gfc_simplify_sin, - gfc_simplify_sinh,gfc_simplify_spacing,gfc_simplify_sqrt, - gfc_simplify_tan,gfc_simplify_tanh,gfc_simplify_tiny, - gfc_simplify_init_1,gfc_simplify_done_1): Convert GMP to MPFR. - Use new functions. - * trans-const.c (gfc_conv_mpfr_to_tree): Rename from - gfc_conv_mpf_to_tree. Convert it to use MPFR - (gfc_conv_constant_to_tree): Use it. - * trans-const.h: Update prototype for gfc_conv_mpfr_to_tree(). - * trans-intrinsic.c: Add arith.h, remove gmp.h - (gfc_conv_intrinsic_aint,gfc_conv_intrinsic_mod): Convert GMP to MPFR. - -2004-08-06 Victor Leikehman - Paul Brook - - * trans-array.c (gfc_trans_allocate_array_storage, - gfc_trans_allocate_temp_array, gfc_add_loop_ss_code, - gfc_conv_loop_setup): For functions, if the shape of the result - is not known in compile-time, generate an empty array descriptor for - the result and let the callee to allocate the memory. - (gfc_trans_dummy_array_bias): Do nothing for pointers. - (gfc_conv_expr_descriptor): Use function return values directly. - * trans-expr.c (gfc_conv_function_call): Always add byref call - insn to pre chain. - (gfc_trans_pointer_assignment): Add comments. - (gfc_trans_arrayfunc_assign): Don't chain on expression. - -2004-08-01 Roger Sayle - - * options.c (gfc_init_options): Don't warn about the use GNU - extensions by default. - (gfc_post_options): Warn about GNU extensions with -pedantic. - (gfc_handle_option): Don't warn about GNU extensions with -std=gnu. - -2004-07-30 Richard Henderson - - * trans-expr.c (gfc_conv_expr_reference): Create a CONST_DECL - for TREE_CONSTANTs. - -2004-07-25 Richard Henderson - - * trans-decl.c (gfc_build_function_decl): Set DECL_ARTIFICIAL - and DECL_IGNORED_P on RESULT_DECL. - (gfc_generate_constructors): Likewise. - -2004-07-18 Tobias Schlueter - - PR fortran/16465 - * lang.opt (ffixed-line-length-none, ffixed-line-length-): New - options. - (ffixed-line-length-80, ffixed-line-length-132): Remove. - * options.c (gfc_handle_options): Deal with changed options. - * scanner.c (load_line): Change second arg to 'char **', - allocate if pointing to NULL. Keep track of buffer's length. - Adapt buffer size to overlong lines. Pad lines to full length - in fixed form. - (load_file): Adapt to new interface of load_line. - -2004-07-17 Joseph S. Myers - - * trans.h (builtin_function): Declare. - -2004-07-16 Tobias Schlueter - - PR fortran/16404 - (parts ported from g95) - * parse.h (gfc_state_data): New field do_variable. - (gfc_check_do_variable): Add prototype. - * parse.c (push_state): Initialize field 'do_variable'. - (gfc_check_do_variable): New function. - (parse_do_block): Remember do iterator variable. - (parse_file): Initialize field 'do_variable'. - * match.c (gfc_match_assignment, gfc_match_do, - gfc_match_allocate, gfc_match_nullify, gfc_match_deallocate): - Add previously missing checks. - (gfc_match_return): Reformat error message. - * io.c (match_out_tag): New function. - (match_open_element, match_close_element, - match_file_element, match_dt_element): Call match_out_tag - instead of match_vtag where appropriate. - (match_io_iterator, match_io_element): Add missing check. - (match_io): Reformat error message. - (match_inquire_element): Call match_out_tag where appropriate. - - * parse.c (gfc_check_do_variable): Fix error locus. - -2004-07-15 Tobias Schlueter - - PR fortran/15129 - * trans-decl.c (gfc_build_function_decl): Create a new chardecl - for every assumed length character dummy argument. - - PR fortran/15140 - * trans-decl.c (gfc_trans_deferred_vars): Remove bogus assertion. - - PR fortran/13792 - * simplify.c (gfc_simplify_bound): Copy the bound expression. - -2004-07-15 Tobias Schlueter - - PR fortran/15324 - * trans-array.c gfc_trans_g77_array, - gfc_trans_dummy_array_bias): Don't call gfc_trans_string_init - for assumed length characters. - (gfc_conv_expr_descriptor): Set se->string_length if dealing - with a character expression. - (gfc_cvonv_array_parameter): Pass string length when passing - character array according to g77 conventions. - -2004-07-12 Paul Brook - - * expr.c (gfc_check_assign_symbol): Handle pointer assignments. - * trans-array.c (gfc_trans_auto_array_allocation): Remove - initialization code. - * trans-common.c (create_common): Use gfc_conv_initializer. - * trans-decl.c (gfc_get_symbol_decl): Use gfc_conv_initializer. - * trans-expr.c (gfc_conv_initializer): New function. - (gfc_conv_structure): Use it. - * trans.h (gfc_conv_initializer): Add prototype. - -2004-07-11 Paul Brook - - PR fortran/15986 - * parse.c (gfc_fixup_sibling_symbols): Also look for untyped - variables. - (parse_contained): Mark contained symbols as referenced. - -2004-07-11 Tobias Schlueter - - PR fortran/16455 - * module.c (gfc_dump_module, gfc_use_module): Print locus - when opening of module file fails. - - PR fortran/16404 - * io.c (match_io): Flag 'WRITE(...), ...' as extension. - - PR fortran/16404 - * match.c (gfc_match_program): A program name is obligatory. - (gfc_match_return): RETURN in main program is an extension. - (gfc_match_block_data): A space is required before a block data - name. - - PR fortran/16433 - * primary.c (match_boz_constant): Call gfc_notify_std only if - we actually have a non-standard boz-literal-constant. - - PR fortran/15754 - * expr.c (gfc_check_assign): Print ranks if incompatible. Issue - warning if assigning NULL(). - -2004-07-11 Joseph S. Myers - - * f95-lang.c (set_block): Remove. - (gfc_clear_binding_stack): New. - (LANG_HOOKS_CLEAR_BINDING_STACK): Define. - (struct binding_level): Remove block_created_by_back_end. - (clear_binding_level): Likewise. - (poplevel): Don't handle block_created_by_back_end. - -2004-07-10 Tobias Schlueter - - * trans-decl.c (gfc_create_module_variable): Nothing to do if - symbol is in common, because we ... - (gfc_generate_module_vars): Call gfc_trans_common. - -2004-07-10 Paul Brook - - * trans-array.c (gfc_build_null_descriptor): New function. - (gfc_trans_static_array_pointer): Use it. - * trans-array.h (gfc_build_null_descriptor): Add prototype. - * trans-expr.c (gfc_conv_structure): Handle array pointers. - -2004-07-10 Tobias Schlueter - - PR fortran/16336 - * decl.c (gfc_match_save): Use-associated common block - doesn't collide. - * gfortran.h (gfc_common_head): Add new field 'name'. - Fix typo in comment after #endif. - * match.c (gfc_get_common): Add new argument from_common, - mangle name if flag is set, fill in new field in structure - gfc_common_head. - (match_common): Set new arg in call to gfc_get_common, - use-associated common block doesn't collide. - * match.h (gfc_get_common): Adapt prototype. - * module.c (load_commons): Set new arg in call to - gfc_get_common. - * symbol.c (free_common_tree): New function. - (gfc_free_namespace): Call new function. - * trans-common.c (several functions): Remove argument - 'name', use name from gfc_common_head instead. - -2004-07-10 Tobias Schlueter - - * expr.c (gfc_check_pointer_assign): Verify that rank of the LHS - and RHS match. Return early if the RHS is NULL(). - - PR fortran/16336 - * match.c (match_common): Fix error reporting for used common. - - PR fortran/15969 - * trans-expr.c (gfc_conv_structure): Handle initialization - of scalar pointer components. - - * parse.c (decode_statement): Fix matching of BLOCK DATA. - - * trans-decl.c (generate_local_decl): Remove workaround obsoleted - by fix for PR 15481. - -2004-07-10 Tobias Schlueter - - * trans-common.c: Fix whitespace issues, make variable names - more readable. - (create_common): Additionally, make loop logic more obvious. - -2004-07-10 Tobias Schlueter - Paul Brook - - PR fortran/13415 - * trans-common.c (calculate_length): Remove ... - (get_segment_info): Merge into here. Save field type. - (build_field): Use saved type. - (create_common, new_condition, new_segment, finish_equivalences): - Use new get_segment_info. - * trans-types.c: Update comment. - -2004-07-09 Tobias Schlueter - - PR fortran/14077 - * moduele.c (mio_symbol): Don't I/O initial values unless - symbol is a parameter. - -2004-07-09 Tobias Schlueter - - PR fortran/13201 - * resolve.c (resolve_symbol): Verify that the shape of a - parameter array is not only explicit, but also constant. - * array.c (gfc_is_compile_time_shape): New function. - * gfortran.h (gfc_is_compile_time_shape): Add prototype. - -2004-07-09 Tobias Schlueter - - PR fortran/15481 - PR fortran/13372 - PR fortran/13575 - PR fortran/15978 - * module.c (write_symbol, write_symtree): Remove workaround. - * primary.c (match_actual_arglist): Enhance comment. - (gfc_match_rvalue): Handle function call with first argument - a keyword argument correctly. - * resolve.c (resolve_symbol): Change call to - gfc_set_default_type to issue error if no implicit type - can be found. - * trans-decl.c (gfc_create_module_variable): Remove workaround. - -2004-07-08 Paul Brook - - * intrinsic.c (add_sym_4s): New function. - (add_subroutines): Change gfc_add_sym_? to gfc_add_sym_?s. - -2004-07-04 Janne Blomqvist - Paul Brook - - PR fortran/15280 - PR fortran/15665 - * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_IARGC and - GFC_ISYM_COMMAND_ARGUMENT_COUNT. - * intrinsic.c (add_functions): Identify iargc. Add - command_argument_count. - (add_subroutines): Resolve getarg. Add get_command and - get_command_argument. - * intrinsic.h (gfc_resolve_getarg, gfc_resolve_get_command, - gfc_resolve_get_command_argument): Add prototypes. - * iresolve.c (gfc_resolve_getarg, gfc_resolve_get_command, - gfc_resolve_get_command_argument): New functions. - * trans-decl.c (gfor_fndecl_iargc): New variable. - (gfc_build_intrinsic_function_decls): Set it. - * trans-intrinsic.c (gfc_conv_intrinsic_iargc): New function. - (gfc_conv_intrinsic_function): Use it. - * trans.h (gfor_fndecl_iargc): Declare. - -2004-07-04 Matthias Klose - - * Make-lang.in: Generate and install gfortran man page. - * invoke.texi: Remove extra '@c man end'. - -2004-07-04 Richard Henderson - - * f95-lang.c (gfc_mark_addressable): Don't put_var_into_stack. - -2004-07-04 Paul Brook - - * decl.c (gfc_match_implicit_range): Don't use typespec. - (gfc_match_implicit): Handle character selectors. - * gfortran.h (gfc_set_implicit): Remove prototype. - (gfc_add_new_implicit_range, gfc_merge_new_implicit): Update. - * parse.c (accept_statement): Don't call gfc_set_implicit. - * symbol.c (new_ts): Remove. - (gfc_set_implicit_none): Use same loop bounds as other functions. - (gfc_set_implicit): Remove. - (gfc_clear_new_implicit, gfc_add_new_implicit_range): Only set flags. - (gfc_merge_new_implicit): Combine with gfc_set_implicit. - -2004-06-30 Richard Henderson - - * match.c (var_element): Remove unused variable. - - * trans-decl.c (gfc_generate_function_code): Don't set - x_whole_function_mode_p. - (gfc_generate_constructors): Likewise. - -2004-06-30 Richard Henderson - - * trans-decl.c (gfc_generate_function_code): Don't set - immediate_size_expand. - (gfc_generate_constructors): Likewise. - -2004-06-30 Tobias Schlueter - - PR fortran/16161 - * decl.c (gfc_match_type_spec): Rename second argument to - 'implicit_flag', reverse meaning. Don't match_char_spec if - 'implicit_flag' is set. Rename to ... - (match_type_spec): ... this. - (gfc_match_implicit_none, match_implicit_range): Move here - from match.c. - (gfc_match_implicit): Move here from match.c, try to - match_char_len if match_implicit_range doesn't succeed for - CHARACTER implicits. Call renamed fucntion match_type_spec. - (gfc_match_data_decl, match_prefix): Call renamed function - match_type_spec. - * match.c (gfc_match_implicit_none, match_implicit_range, - gfc_match_implicit): Move to decl.c. - * match.h (gfc_match_implicit_none, gfc_match_implicit): - Move protoypes to section 'decl.c'. - (gfc_match_type_spec): Remove prototype. - -2004-06-29 Tobias Schlueter - - * decl.c, interface.c, symbol.c, trans-common.c: Add 2004 to - copyright years. - -2004-06-29 Steven Bosscher - - Make sure types in assignments are compatible. Mostly mechanical. - * trans-const.h (gfc_index_one_node): New define. - * trans-array.c (gfc_trans_allocate_array_storage, - gfc_trans_allocate_temp_array, gfc_trans_array_constructor_subarray, - gfc_trans_array_constructor_value, gfc_trans_array_constructor, - gfc_conv_array_ubound, gfc_conv_array_ref, - gfc_trans_scalarized_loop_end, gfc_conv_section_startstride, - gfc_conv_ss_startstride, gfc_conv_loop_setup, gfc_array_init_size, - gfc_trans_array_bounds, gfc_trans_dummy_array_bias, - gfc_conv_expr_descriptor, gfc_trans_deferred_array): Use the correct - types in assignments, conversions and conditionals for expressions. - * trans-expr.c (gfc_conv_expr_present, gfc_conv_substring, - gfc_conv_unary_op, gfc_conv_cst_int_power, gfc_conv_string_tmp, - gfc_conv_function_call, gfc_trans_pointer_assignment, - gfc_trans_scalar_assign): Likewise. - * trans-intrinsic.c (build_fixbound_expr, gfc_conv_intrinsic_bound, - gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count, - gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_btest, - gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ishft, - gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_strcmp, - gfc_conv_allocated, gfc_conv_associated, - gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_trim): Likewise. - * trans-io.c (set_string): Likewise. - * trans-stmt.c (gfc_trans_do, gfc_trans_forall_loop, - gfc_do_allocate, generate_loop_for_temp_to_lhs, - generate_loop_for_rhs_to_temp, compute_inner_temp_size, - compute_overall_iter_number, gfc_trans_assign_need_temp, - gfc_trans_pointer_assign_need_temp, gfc_trans_forall_1, - gfc_evaluate_where_mask, gfc_trans_where_assign, - gfc_trans_where_2): Likewise. - * trans-types.c (gfc_get_character_type, gfc_build_array_type, - gfc_get_nodesc_array_type, gfc_get_array_type_bounds): Likewise. - - * trans.c (gfc_add_modify_expr): Add sanity check that types - for the lhs and rhs are the same for scalar assignments. - -2004-06-29 Tobias Schlueter - - * dump-parse-tree.c (show_common): New function. - (gfc_show_namespace): Show commons. - -2004-06-29 Tobias Schlueter - Andrew Vaught - - PR fortran/13249 - PR fortran/15481 - * decl.c (gfc_match_save): Adapt to new common structures, - don't allow saving USE-associated common. - * dump-parse-tree (gfc_show_attr): (saved_)common are not - symbol attributes any longer. - (gfc_show_symbol): Don't show old-style commons any longer. - (gfc_show_namespace): Adapt call to gfc_traverse_symtree to new - interface. - * gfortran.h (symbol_attribute): Remove common and saved_common - attributes. - (gfc_symbol): Remove common_head element. - (gfc_common_head): New struct. - (gfc_get_common_head): New macro. - (gfc_symtree): Add field 'common' to union. - (gfc_namespace): Add field 'common_root'; change type of field - 'blank_common' to blank_common. - (gfc_add_data): New prototype. - (gfc_traverse_symtree): Expect a symtree as first argument - instead of namespace. - * match.c (gfc_get_common): New function. - (match_common_name): Change to take char * as argument, adapt, - fix bug with empty name. - (gfc_match_common): Adapt to new data structures. Disallow - redeclaration of USE-associated COMMON-block. Fix bug with - empty common. - (var_element): Adapt to new common structures. - * match.h (gfc_get_common): Declare. - * module.c: Add 2004 to copyright years, add commons to module - file layout description. - (ab_attribute, attr_bits, mio_symbol_attributes): Remove code - for removed attributes. - (mio_symbol): Adapt to new way of storing common relations. - (load_commons): New function. - (read_module): Skip common list on first pass, load_commons at - second. - (write_commons): New function. - (write_module): Call write_commons(). - * symbol.c (gfc_add_saved_comon, gfc_add_common): Remove - functions related to removed attributes. - (gfc_add_data): New function. - (gfc_clear_attr): Don't set removed attributes. - (gfc_copy_attr): Don't copy removed attributes. - (traverse_symtree): Remove. - (gfc_traverse_symtree): Don't traverse symbol - tree of the passed namespace, but require a symtree to be passed - instead. Unify with traverse_symtree. - (gfc_traverse_ns): Call gfc_traverse_symtree according to new - interface. - (save_symbol): Remove setting of removed attribute. - * trans-common.c (gfc_sym_mangled_common_id): Change to - take 'char *' argument instead of 'gfc_symbol'. - (build_common_decl, new_segment, translate_common): Adapt to new - data structures, add new - argument name. - (create_common): Adapt to new data structures, add new - argument name. Fix typo in intialization of derived types. - (finish_equivalences): Add second argument in call to - create_common. - (named_common): take 'gfc_symtree' instead of 'gfc_symbol'. - (gfc_trans_common): Adapt to new data structures. - * trans-decl.c (gfc_create_module_variables): Remove test for - removed attribute. - -2004-06-29 Tobias Schlueter - - * io.c: Add 2004 to copyright years. - -2004-06-29 Tobias Schlueter - Andrew Vaught - - * gfortran.h (gfc_gsymbol): New typedef. - (gfc_gsym_root): New variable. - (gfc_get_gsymbol, gfc_find_gsym): New prototypes. - * parse.c (global_used): New function. - (parse_block_data): Check for double empty BLOCK DATA, - use global symbol table. - (parse_module): Use global symbol table. - (add_global_procedure, add_global_program): New functions. - (gfc_parse_file): Use global symbol table. - * symbol.c (gfc_gsym_root): New variable. - (gfc_find_gsym, gsym_compare, gfc_get_gsymbol): New - functions. - -2004-06-29 Tobias Schlueter - - * module.c (mio_gmp_real): Correct writing of negative numbers. - -2004-06-29 Tobias Schlueter - - PR fortran/15963 - * expr.c (check_intrinsic_op): Allow comparison of characters. - Make logic easier. - -2004-06-26 Tobias Schlueter - Andrew Vaught - - * decl.c (contained_procedure): New function. - (match_end): Verify correctness of END STATEMENT in - all cases. - -2004-06-26 Tobias Schlueter - Andrew Vaught - - PR fortran/15190 - * decl.c (gfc_match_type_spec), io.c (match_io), parse.c - (decode_statement): Enforce required space in free-form. - -2004-06-22 Richard Kenner - - * f95-lang.c (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Deleted. - * trans-array.c (gfc_conv_descriptor_data): Add operand - for COMPONENT_REF. - (gfc_conv_descriptor_offset, gfc_conv_descriptor_dtype): Likewise. - (gfc_conv_descriptor_dimension, gfc_conv_descriptor_stride): Likewise. - (gfc_conv_descriptor_lbound, gfc_conv_descriptor_ubound): Likewise. - * trans-common.c (create_common): Likewise. - * trans-expr.c (gfc_conv_component_ref): Likewise. - * trans-io.c (set_parameter_value): Likewise. - (set_parameter_ref, set_string, set_flag, io_result): Likewise. - (transfer_expr): Likewise. - * trans-decl.c (gfc_trans_auto_character_variable): - Set up to get DECL_SIZE and DECL_SIZE_UNIT gimplified. - (gfc_gimplify_function): New function. - (gfc_generate_function-code): Properly handle nested functions. - * trans.c (gfc_build_array_ref): Add two new operands for ARRAY_REF. - -2004-06-22 Janne Blomqvist - - PR fortran/15750 - * io.c (gfc_match_inquire): Bugfix for iolength related stuff. - (gfc_resolve_inquire): Resolve the iolength tag. Return - SUCCESS at end of function if no failure has occured. - * resolve.c (resolve_code): Resolve if iolength is encountered. - * trans-io.c: (ioparm_iolength, iocall_iolength, - iocall_iolength_done): New variables. - (last_dt): Add IOLENGTH. - (gfc_build_io_library_fndecls ): Set iolength related variables. - (gfc_trans_iolength): Implement. - (gfc_trans_dt_end): Treat iolength as a third form of data transfer. - -2004-06-21 Tobias Schlueter - - * resolve.c (resolve_symbol): Add comment in function body. - (check_data_variable): Change type of mark to ar_type, adapt code - accordingly. - -2004-06-21 Tobias Schlueter - - * array.c (gfc_insert_constructor): Avoid redundant call to - mpz_comp. Add 2004 to copyright years. - -2004-06-21 Joseph S. Myers - - * trans.h (stmtblock_t): Change has_scope to unsigned int. - -2004-06-20 Steven G. Kargl - - * arith.c (gfc_range_check): correct complex underflow. - -2004-06-15 Tobias Schlueter - - PR fortran/15962 - * match.c (match_case_selector): Call gfc_match_init_expr - instead of gfc_match_expr. - * resolve.c (validate_case_label_expr): No need to check for - constant, since it wouldn't have been matched with the fix to - match.c. - -2004-06-14 Tobias Schlueter - - PR fortran/15211 - * trans-intrinsic.c (gfc_conv_intrinsic_len): Deal with arrays - of strings. - -2004-06-14 Tobias Schlueter - - PR fortran/15510 - * trans-deecl.c (generate_local_decl): Do not issue warning for - unused variables if they're use associated. - -2004-06-14 Tobias Schlueter - Andrew Vaught - - PR fortran/14928 - * gfortran.h (gfc_check_f): Add new field f3ml. - * check.c (gfc_check_minloc_maxloc): Take argument list instead - of individual arguments, reorder if necessary. - * intrinsic.h (gfc_check_minloc_maxloc): ... adapt prototype. - * intrinsic.c (add_sym_3ml): New function. - (add_functions): Change to add_sym_3ml for MINLOC, MAXLOC. - (check_specific): Catch special case MINLOC, MAXLOC. - -2004-06-14 Paul Brook - - * intrinsic.c (add_sym_2s): Use correct function types. - -2004-06-12 Tobias Schlueter - - * Make-lang.in (F95_OBJS, F95_PARSER_OBJS): Alphabetize. Move data.c - * data.c (gfc_get_section_index): Remove dependency on trans.h. - -2004-06-12 Steven G. Kargl - - * check.c (gfc_check_second_sub, gfc_check_irand, gfc_check_rand - gfc_check_srand, gfc_check_etime, gfc_check_etime_sub): New functions. - * gfortran.h (gfc_generic_isym_id): New symbols GFC_ISYM_ETIME, - GFC_ISYM_IRAND, GFC_ISYM_RAND, GFC_ISYM_SECOND. - * trans-intrinsic.c: Use symbols. - * intrinsic.c (add_sym_2s): New function. - * intrinsic.c: Add etime, dtime, irand, rand, second, srand. - * intrinsic.h: Function prototypes. - * iresolve.c (gfc_resolve_etime_sub, gfc_resolve_second_sub - gfc_resolve_srand): New functions. - -2004-06-12 Tobias Schlueter - - PR fortran/14957 - * decl.c (gfc_match_end): Require END {SUBROUTINE|FUNCTION} for - contained procedure. - -2004-06-12 Tobias Schlueter - - PR fortran/12841 - * interface.c (compare_parameter, compare_actual_formal): Don't - check types and array shapes for NULL() - * trans-expr.c (conv_function_call): No double indirection for - NULL() - -2004-06-09 Toon Moene - - * trans-expr.c (gfc_conv_cst_int_power): Compute - x**(-n) by converting it to (1/x)**n instead of - 1/x**n. - -2004-06-09 Tobias Schlueter - - PR fortran/13372 - * module.c (write_symbol, write_symtree): Don't write symbols - wrongly added to namespace. - * trans-decl.c (gfc_create_module_variable): Don't create a - backend decl for a symbol incorrectly added to namespace. - -2004-06-09 Tobias Schlueter - - PR fortran/13201 - * resolve.c (resolve_symbol): Verify that parameter array has an - explicit shape. Fix typos and coding style issues in surrounding - lines. - -2004-06-05 Tobias Schlueter - - PR fortran/15478 - * gfortran.texi: The documentation doesn't contain infomration on - how to report bugs, and shouldn't, so remove the line which - says it does. - -2004-06-05 Tobias Schlueter - - * intrinsic.c (sort_actual): Keep track of type of missing - arguments. (Missing from previous commit.) - -2004-06-03 Tobias Schlueter - - * gfortran.h (gfc_actual_arglist): New field missing_arg_type. - * interface.c (compare_actual_formal): Keep type of omitted - optional arguments. - * trans-expr.c (gfc_conv_function_call): Add string length - argument for omitted string argument. - -2004-06-03 Paul Brook - - * trans.c (gfc_finish_block, gfc_add_expr_to_block): Build statement - lists instead of compound expr chains. - (gfc_trans_code): Annotate statement lists. - -2004-06-03 Tobias Schlueter - - * trans-array.c: Fix spelling in comments. - -2004-06-02 Tobias Schlueter - - PR fortran/15557 - * data.c (assign_substring_data_value): New function. - (gfc_assign_data_value): Call the new function if we're dealing - with a substring LHS. - -2004-06-01 Tobias Schlueter - - PR fortran/15477 - * gfortran.h (GFC_VERSION): Remove. - * gfortran.texi (version-gfortran): Remove, replace by version-GCC - where used. - -2004-05-31 Tobias Schlueter - - * trans-types.c: Fix spelling & layout in comments. - -2004-05-30 Tobias Schlueter - - PR fortran/14067 - * trans-const.c (gfc_conv_string_init): Allow variable string - length lower than initialization string length. - -2004-05-30 Paul Brook - - PR fortran/15620 - * trans-decl.c (gfc_shadow_sym, gfc_restore_sym): New functions. - * trans-expr.c (gfc_trans_string_copy): New function. - (gfc_conv_statement_function): Use them. Create temp vars. Enforce - character lengths. - (gfc_conv_string_parameter): Use gfc_trans_string_copy. - * trans-stmt.c (gfc_trans_forall_1): Use gfc_{shadow,restore}_sym. - * trans.h (struct gfc_saved_var): Define. - (gfc_shadow_sym, gfc_restore_sym): Add prototypes. - -2004-05-30 Steven G. Kargl - - * iresolve.c (gfc_resolve_random_number): Clean up conditional. - -2004-05-29 Steven G. Kargl - - * simplify.c (gfc_simplify_log): Remove useless line of code. - -2004-05-29 Paul Brook - - * trans-common.c (find_equivalence): Find multiple rules. - -2004-05-27 Tobias Schlueter - - * gfortran.h (gfc_current_locus, gfc_set_locus): Remove. - (gfc_current_locus): Declare new global variable. - * scanner.c (gfc_current_locus, gfc_set_locus): Remove. - (gfc_current_locus1): Rename ... - (gfc_current_locus): ... to this. - (gfc_at_eof, gfc_at_bol, gfc_at_eol, gfc_advance_line, next_char, - skip_fixed_comments, skip_free_comments, gfc_next_char_literal, - gfc_peek_char, gfc_gobble_whitespace, gfc_new_file): Use - gfc_current_locus instead of gfc_current_locus1, gfc_set_locus() - and gfc_current_locus(), respectively. - * array.c (match_subscript, gfc_match_array_ref, match_array_list, - match_array_cons_element, gfc_match_array_constructor): - Read/modify gfc_current_locus instead of calling gfc_set_locus() - and gfc_current_locus(). - * decl.c (gfc_match_null, variable_decl, gfc_match_kind_spec, - match_attr_spec, gfc_match_function_decl, gfc_match_end, - attr_decl1, gfc_match_save): Likewise. - * error.c (error_print, gfc_internal_error): Likewise. - * expr.c (gfc_int_expr, gfc_default_logical_kind): Likewise. - * interface.c (gfc_add_interface): Likewise. - * io.c (gfc_match_format, match_dt_format, match_dt_element, - match_io_iterator, match_io): Likewise. - * match.c (gfc_match_space, gfc_match_eos, - gfc_match_small_literal_int, gfc_match_st_label, - gfc_match_strings, gfc_match_name, gfc_match_iterator, - gfc_match_char, gfc_match, gfc_match_assignment, - gfc_match_pointer_assignment, gfc_match_if, gfc_match_do, - gfc_match_nullify, gfc_match_call, match_implicit_range, - gfc_match_implicit, gfc_match_data, match_case_selector, - gfc_match_case, match_forall_iterator): Likewise. - * matchexp.c (gfc_match_defined_op_name, next_operator, - match_level_1, match_mult_operand, match_ext_mult_operand, - match_add_operand, match_ext_add_operand, match_level_2, - match_level_3, match_level_4, match_and_operand, match_or_operand, - match_equiv_operand, match_level_5, gfc_match_expr): Likewise. - * module.c (gfc_match_use, mio_array_ref, mio_expr): Likewise. - * parse.c (match_word, decode_statement, next_free, next_fixed, - add_statement, verify_st_order, parse_if_block, gfc_parse_file): - Likewise. - * primary.c (match_digits, match_integer_constant, - match_boz_constant, match_real_constant, match_substring, - next_string_char, match_charkind_name, match_string_constant, - match_logical_constant, match_const_complex_part, - match_complex_constant, match_actual_arg, match_keyword_arg, - gfc_match_actual_arglist, gfc_match_structure_constructor, - gfc_match_rvalue, gfc_match_variable): Likewise. - * st.c (gfc_get_code): Likewise. - * symbol.c (check_conflict, check_used, check_done, - duplicate_attr, add_flavor, gfc_add_procedure, gfc_add_intent, - gfc_add_access, gfc_add_explicit_interface, gfc_add_type, - gfc_add_component, gfc_reference_st_label, gfc_new_symbol): Likewise. - -2004-05-26 Roger Sayle - - * io.c (format_asterisk): Silence compiler warnings by correcting - the number of elements of a "locus" initializer. - -2004-05-25 Roger Sayle - - PR fortran/13912 - * matchexp.c: Allow unary operators after arithmetic operators - as a GNU extension. - (match_ext_mult_operand, match_ext_add_operand): New functions. - (match_mult_operand): Tweak to call match_ext_mult_operand. - (match_add_operand): Tweak to call match_ext_mult_operand. - (match_level_2): Rearrange to call match_ext_add_operand. - -2004-05-25 Paul Brook - - * expr.c (check_inquiry): Remove bogus tests. - -2004-05-23 Paul Brook - - PR fortran/13773 - * expr.c (restricted_args): Remove redundant checks/argument. - (external_spec_function): Update to match. - (restricted_intrinsic): Rewrite. - -2004-05-23 Paul Brook - Victor Leikehman - - * gfortran.h (struct gfc_symbol): Add equiv_built. - * trans-common.c: Change int to HOST_WIDE_INT. Capitalize error - messages. - (current_length): Remove. - (add_segments): New function. - (build_equiv_decl): Create initialized common blocks. - (build_common_decl): Always add decl to bindings. - (create_common): Create initializers. - (find_segment_info): Reformat to match coding conventions. - (new_condition): Use add_segments. - (add_condition, find_equivalence, add_equivalences): Move iteration - inside functions. Only process each segment once. - (new_segment, finish_equivalences, translate_common): Simplify. - -2004-05-23 Steven G. Kargl - - * check.c (gfc_check_random_seed): Issue for too many arguments. - -2004-05-22 Steven G. Kargl - - * intrinsic.c (add_subroutines): Use add_sym_3s for random_seed. - -2004-05-22 Paul Brook - - * dump-parse-tree.c (gfc_show_equiv): New function. - (gfc_show_namespace): Use it. - -2004-05-22 Victor Leikehman - - PR fortran/13249 - * symbol.c (gfc_add_common): Disable checks to work around other more - fundamental inadequacies. - -2004-05-22 Tobias Schlüter - - * trans-decl.c (gfc_get_extern_function_decl): Set DECL_IS_PURE - only for functions. - (gfc_build_function_decl): Likewise. - -2004-05-22 Steven G. Kargl - - * check.c (gfc_check_system_clock): New function. - * intrinsic.c (add_sym_3s): New function. - (add_subroutines): Use it. - * intrinsic.h (gfc_check_system_clock, gfc_resolve_system_clock): - Add prototypes. - * iresolve.c (gfc_resolve_system_clock): New function. - -2004-05-22 Steven G. Kargl - - * invoke.texi: Document -Wunderflow and spell check. - * lang.opt: Add Wunderflow. - * gfortran.h (gfc_option_t): Add warn_underflow option. - * options.c (gfc_init_options, set_Wall): Use it. - * primary.c (match_real_constant): Explicitly handle UNDERFLOW. - * arith.c (gfc_arith_uminus, gfc_arith_plus, gfc_arith_minus, - gfc_arith_times, gfc_arith_divide, gfc_arith_power, gfc_real2real, - gfc_real2complex, gfc_complex2real, gfc_complex2complex): Ditto. - * arith.c (common_logarithm): Fix typo in comment. - -2004-05-21 Roger Sayle - - * io.c (check_format): As a GNU extension, allow the comma after a - string literal to be optional in a format. Use gfc_notify_std to - issue an error/warning as appropriate. - -2004-05-21 Roger Sayle - - * io.c (check_format): Use gfc_notify_std to determine whether to - issue an error/warning for omitting the digits from the X format. - -2004-05-20 Roger Sayle - - * io.c (check_format): Allow the number before the X format to - be optional when not -pedantic. - -2004-05-18 Feng Wang - Paul Brook - - * f95-lang.c (gfc_init_builtin_functions): Use vold_list_node. - Create decls for __builtin_pow{,f}. - * gfortran.h (PREFIX_LEN): Define. - * trans-decl.c (gfor_fndecl_math_powi): Add. - (gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove. - (gfc_build_intrinsic_function_decls): Create decls for powi. - * trans-expr.c (powi_table): Add. - (gfc_conv_integer_power): Remove. - (gfc_conv_powi): New function. - (gfc_conv_cst_int_power): New function. - (gfc_conv_power_op): Use new powi routines. - * trans.h (struct gfc_powdecl_list): Add. - (gfor_fndecl_math_powi): Add. - (gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove. - -2004-05-18 Tobias Schlueter - - * trans.c, trans-decl.c: Fix comment typos. - -2004-05-18 Tobias Schlueter - - * trans-const.c (gfc_conv_mpf_to_tree): Fix typo. - -2004-05-18 Steve Kargl - - * arith.c (gfc_int2complex): Fix incorrect range checking. - -2004-05-18 Paul Brook - - PR fortran/13930 - * decl.c (add_init_expr_to_sym): Remove incorrect check. - (default_initializer): Move to expr.c. - (variable_decl): Don't assign default initializer to variables. - * expr.c (gfc_default_initializer): Move to here. - * gfortran.h (gfc_default_initializer): Add prototype. - * resolve.c (resolve_symbol): Check for illegal initializers. - Assign default initializer. - -2004-05-17 Steve Kargl - - * arith.c (gfc_arith_power): Complex number raised to 0 power is 1. - -2004-05-17 Steve Kargl - - * arith.c (gfc_real2complex): Range checking wrong part of complex - number. - -2004-05-16 Paul Brook - - * options.c (gfc_handle_module_path_options): Fix buffer overrun. - -2004-05-16 Paul Brook - - * arith.c (gfc_range_check): Fix logic error. - -2004-05-16 Steve Kargl - - * arith.c: Fix comment typos. - -2004-05-15 Tobias Schlueter - - PR fortran/13742 - * decl.c (add_init_expr_to_sym): Verify that COMMON variable is - not initialized in a disallowed fashion. - * match.c (gfc_match_common): Likewise. - (var_element): Verify that variable is not in the blank COMMON, - if it is in a common. - -2004-05-15 Joseph S. Myers - - * Make-lang.in (f95.generated-manpages): Remove. - (f95.srcextra): New. - (f95.info, fortran/gfortran.info, fortran/gfortran.dvi, - f95.maintainer-clean): Generate info and dvi files in objdir/doc. - (f95.dvi): Remove. - (dvi): New. - (f95.install-info): Remove. - (install-info): New. - -2004-05-15 Victor Leikehman - - * decl.c (add_init_expr_to_sym): Check for variable size arrays. - -2004-05-15 Tobias Schlueter - - * primary.c (match_boz_constant): Use gfc_notify_std() for - issuing a warning or an error. - -2004-05-15 Tobias Schlueter - - PR fortran/13826 - * primary.c (match_structure_constructor): Rename ... - (gfc_match_structure_constructor): ... to this. Make non-static. - (gfc_match_rvalue): Call renamed function. - * match.h (gfc_match_structure_constructor): Declare. - * match.c (gfc_match_data_constant): Handle structure - constructor. - -2004-05-15 Tobias Schlueter - - PR fortran/13702 - (Port from g95) - * gfortran.h (gfc_linebuf): New typedef. - (linebuf): Remove. - (gfc_file): Revamped, use new gfc_linebuf. - (locus): Revamped, use new types. - (gfc_current_file): Remove. - (gfc_current_form, gfc_source_file): New global variables. - * match.c (gfc_match_space, gfc_match_strings): Use - gfc_current_form to find source form. - * module.c (gfc_dump_module): Use gfc_source_file when printing - module header. - * error.c (show_locus, show_loci) Use new data structures to print - locus. - * scanner.c (first_file, first_duplicated_file, gfc_current_file): - Remove. - (file_head, current_file, gfc_current_form, line_head, line_tail, - gfc_current_locus1, gfc_source_file): New global variables. - (gfc_scanner_init1): Set new global variables. - (gfc_scanner_done1): Free new data structures. - (gfc_current_locus): Return pointer to gfc_current_locus1. - (gfc_set_locus): Set gfc_current_locus1. - (gfc_at_eof): Set new variables. - (gfc_at_bol, gfc_at_eol, gfc_advance_line, gfc_next_char): Adapt - to new locus structure. - (gfc_check_include): Remove. - (skip_free_comments, skip_fixed_comments): Use gfc_current_locus1. - (gfc_skip_comments): Use gfc_current_form, find locus with - gfc_current_locus1. - (gfc_next_char): Use gfc_current_form. - (gfc_peek_char, gfc_gobble_whitespace): Use gfc_current_locus1. - (load_line): Use gfc_current_form. Recognize ^Z as EOF. Fix - comment formatting. - (get_file): New function. - (preprocessor_line, include_line): New functions. - (load_file): Move down, rewrite to match new data structures. - (gfc_new_file): Rewrite to match new data structures. - * parse.c (next_statement): Remove code which is now useless. Use - gfc_source_form and gfc_source_file where appropriate. - * trans-decl.c (gfc_get_label_decl): adapt to new data structures - when determining locus of frontend code. - * trans-io.c (set_error_locus): Same. - * trans.c (gfc_get_backend_locus, gfc_set_backend_locus): Likewise. - * lang-specs.h (@f77-cpp-input, @f95-cpp-input): Remove '-P' from - preprocessor flags. - (all): Add missing initializers. - -2004-05-15 Tobias Schlueter - - * Make-lang.in (trans-common.o): Remove redundant dependency. - (data.c): Replace object file name ... - (data.o): ... by the correct one. - -2004-05-14 Tobias Schlueter - - * dump-parse-tree.c (gfc_show_array_ref): Print colon only - for ranges when dumping array references. - -2004-05-14 Victor Leikehman - - * decl.c (variable_decl): Always apply default initializer. - -2004-05-08 Tobias Schlüter - - PR fortran/15206 - * trans-intrinsic.c (gfc_conv_intrinsic_rrspacing): Fixed to - handle zero correctly. - -2004-05-14 Tobias Schlueter - - * match.c (gfc_match): Eliminate dead code. - -2004-05-14 Tobias Schlueter - - * parse.c (gfc_statement_next_fixed): (Change from Andy's tree) - Detect bad continuation line in fixed form sources. - -2004-05-14 Tobias Schlueter - - PR fortran/15205 - * iresolve.c (gfc_resolve_nearest): Add new function. - * intrinsic.h: ... declare it here. - * intrinsic.c (add_functions): ... add it as resolving function - for NEAREST. - -2004-05-14 Tobias Schlueter - - PR fortran/14066 - * match.c (gfc_match_do): Allow infinite loops with - label-do-stmt. Do not enforce space after comma. - -2004-05-14 Tobias Schlueter - - PR fortran/15051 - * parse.c (parse_interface): Allow empty INTERFACE, remove - seen_body. - -2004-05-14 Tobias Schlueter - - * Make-lang.in, arith.c, arith.h, array.c, bbt.c, check.c, - decl.c, dependency.c, dependency.h, dump-parse-tree.c, error.c, - expr.c, f95-lang.c, gfortran.h, interface.c, intrinsic.c, - intrinsic.h, io.c, iresolve.c, lang-specs.h, match.c, match.h, - matchexp.c, misc.c, module.c, options.c, parse.c, parse.h, - primary.c, resolve.c, scanner.c, simplify.c, st.c, symbol.c, - trans-array.c, trans-array.h, trans-common.c, trans-const.c, - trans-const.h, trans-decl.c, trans-expr.c, trans-intrinsic.c, - trans-io.c, trans-stmt.c, trans-stmt.h, trans-types.c, - trans-types.h, trans.c, trans.h: Update copyright years and - boilerplate. - * data.c: Likewise, also removed two whitespace-only lines. - * gfortranspec.c, lang.opt: Update copyright years. - -2004-05-14 Tobias Schlueter - - PR fortran/14568 - * trans-decl.c (generate_local_decl): Don't warn for unused - variables which are in common blocks. - -2004-05-13 Diego Novillo - - * Make-lang.in, f95-lang.c, trans-array.c, trans-decl.c, - trans-expr.c, trans-intrinsic.c, trans-io.c, trans-stmt.c, - trans.c: Rename tree-simple.[ch] to tree-gimple.[ch]. - -2004-05-13 Victor Leikehman - - PR fortran/15314 - * trans-expr.c (gfc_conv_structure): Use field type, not expr type. - -2004-05-13 Joseph S. Myers - - * gfortran.texi: Use @table @emph instead of @itemize @emph. - Remove "set DEVELOPMENT". - (Compiling GFORTRAN): Remove. - -2004-05-09 Tobias Schlüter - - * array.c (match_subscript, match_array_ref): Add comments - explaining argument 'init'. - * decl.c, f95-lang.c, match.c, resolve.c, trans-array.c, - trans-expr.c, trans.c: Fix some typos in comments. - * dump-parse-tree.c (gfc_show_expr): Remove wrong comment. - * primary.c (match_digits, match_integer_constant): Add comment - explaining signflag. - -2004-05-01 Tobias Schlüter - - PR fortran/13940 - * primary.c: Include system.h and flags.h, needed for pedantic. - (match_boz_constant): Allow "x" for hexadecimal constants, warn if - pedantic is set. - -2004-05-01 Tobias Schlüter - - PR fortran/13940 - * match.c (match_data_constant): Handle case where - gfc_find_symbol sets sym to NULL - -2004-04-28 Tobias Schlüter - - * Make-lang.in (f95-lang.o, trans-intrinsic.o): Add missing - dependency on mathbuiltins.def - -2004-04-24 Victor Leikehman - - * trans-io.c (transfer_expr): Implemented recursive printing - of derived types. - -2004-04-24 Andrew Pinski - - * gfortranspec.c: Do not include multilib.h. - -2004-04-24 Tobias Schlüter - - * trans-intrinsic.c: Fix comment, this is not trans-expr.c. Add - 2004 to copyright years. - * trans-expr.c, trans-decl.c: Comment update, we now generate - GENERIC, not SIMPLE. Add 2004 to copyright years. - -2004-04-24 Paul Brook - - * Make-lang.in (gfortranspec.o): Add dependency on $(TM_H). - -2004-04-24 Feng Wang - - PR 14817 - * arith.c (gfc_arith_divide): Fix complex divide. - -2004-04-23 Andrew Pinski - - * gfortranspec.c: Include the target headers. - -2004-04-18 Feng Wang - - PR fortran/14921 - PR fortran/14540 - * arith.c (arctangent2): New function. - * arith.h (arctangent2): Add function prototype. - * simplify.c (gfc_simplify_atan2): Use it. - (gfc_simplify_log): Use it. - -2004-04-12 Diego Novillo - - * fortran/f95-lang.c (gfc_expand_stmt): Remove. - (LANG_HOOKS_RTL_EXPAND_STMT): Remove. - -2004-04-11 Bud Davis - - PR fortran/14872 - * trans-io.c (build_dt): Change REC to value. - -2004-04-11 Feng Wang - - PR 14394 - * trans-const.c (gfc_conv_mpf_to_tree): Loosen the maximum digits of - the real value when converting mpf to string. - -2004-04-11 Feng Wang - - PR 14395 - * trans-intrinsic.c (gfc_conv_intrinsic_cmplx): Fix the imag part of - the result. - -2004-04-11 Feng Wang - - PR fortran/14377 - * simplify.c (simplify_min_max): Convert the type of the result. - -2004-04-11 Paul Brook - - * gfortran.texi: Use full target triplet. - -2004-04-11 Paul Brook - - * Make-lang.in (GFORTRAN_TEXI): Set it. - (fortran/dfortran.dvi): Use it. Add fortran to include paths. - (fortran/gfortran.info): Ditto. - * gfortran.texi: Major update. - * invoke.texi: New file. - -2004-04-10 Paul Brook - - * trans-array.c (gfc_trans_allocate_temp_array, - gfc_conv_tmp_array_ref): Don't use GFC_DECL_STRING. - * trans-decl.c (gfc_build_dummy_array_decl, - gfc_get_symbol_decl, gfc_build_function_decl, - gfc_create_module_variable): Ditto. - * trans-expr.c (gfc_conv_variable): Ditto. - * trans-intrinsic.c (gfc_conv_intrinsic_len): Ditto. - * trans.h (GFC_DECL_STRING): Remove. - (GFC_DECL_PACKED_ARRAY, GFC_DECL_PARTIAL_PACKED_ARRAY, - GFC_DECL_ASSIGN): Renumber flags. - -2004-04-05 Paul Brook - - PR 13252 - PR 14081 - * f95-lang.c (gfc_init_builtin_functions): Add stack_alloc, stack_save - and stack_restore. - * gfortran.h (struct gfc_charlen): Add backend_decl. - * trans-array.c (gfc_trans_allocate_temp_array, - gfc_conv_temp_array_ref, gfc_conv_resolve_dependencies, - (gfc_conv_loop_setup, gfc_array_allocate, gfc_conv_array_init_size): - Remove old, broken string handling. - (gfc_trans_auto_array_allocation, gfc_trans_g77_array, - gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor, - gfc_trans_deferred_array): Handle character arrays. - * trans-const.c (gfc_conv_const_charlen): New function. - * trans-const.h (gfc_conv_const_charlen): Add prototype. - * trans-decl.c (gfc_finish_var_decl): Don't mark automatic variables - as static. - (gfc_build_dummy_array_decl): Handle arrays with unknown element size. - (gfc_create_string_length): New function. - (gfc_get_symbol_decl): Create lengths for character variables. - (gfc_get_fake_result_decl): Ditto. - (gfc_build_function_decl): Only set length for assumed length - character arguments. - (gfc_trans_dummy_character): New function. - (gfc_trans_auto_character_variable): Rewrite. - (gfc_trans_deferred_vars): Handle more types of character variable. - (gfc_create_module_variable): String lengths have moved. - (gfc_generate_function_code): Initialize deferred var chain earlier. - * trans-expr.c (gfc_conv_init_string_length): Rename ... - (gfc_trans_init_string_length): ... to this. - (gfc_conv_component_ref, gfc_conv_variable, gfc_conv_concat_op, - gfc_conv_function_call): Update to new format for character variables. - (gfc_conv_string_length): Remove. - (gfc_conv_string_parameter): Update assertion. - * trans-intrinsic.c (gfc_conv_intrinsic_len): Use new location. - * trans-io.c (set_string): Use new macro names. - * trans-stmt.c (gfc_trans_label_assign. gfc_trans_goto): Ditto. - * trans-types.c (gfc_get_character_type): Use existing length expr. - (gfc_is_nodesc_array): Make public. - (gfc_get_dtype_cst): Rename ... - (gfc_get_dtype): ... to this. Handle unknown size arrays. - (gfc_get_nodesc_array_type): Use new name. - (gfc_sym_type): New character variable code. - (gfc_get_derived_type): Ditto. - (gfc_get_function_type): Evaluate character variable lengths. - * trans-types.h (gfc_strlen_kind): Define. - (gfc_is_nodesc_array): Add prototype. - * trans.h: Update prototypes. - (struct lang_type): Update comments. - (GFC_DECL_STRING_LEN): New name for GFC_DECL_STRING_LENGTH. - (GFC_KNOWN_SIZE_STRING_TYPE): Remove. - -2004-04-04 Paul Brook - - * gfortran.h (struct gfc_option_t): Remove flag_g77_calls. - * options.c (gfc_init.options, gfc_handle_option): Ditto. - * trans-expr.c (gfc_conv_function_call): Ditto. - * trans-types.c (gfc_is_nodesc_array): Ditto - * lang.opt (fg77-calls): Remove. - -2004-04-04 Paul Brook - - * trans-array.c (OFFSET_FIELD): Rename from BASE_FIELD. - (gfc_conv_descriptor_base): Rename ... - (gfc_conv_descriptor_offset): ... to this. - (gfc_trans_allocate_array_storage): Set offset to zero. - (gfc_conv_array_base): Rename ... - (gfc_conv_array_offset): ... to this. - (gfc_conv_array_index_ref): Add offset parameter. - (gfc_conv_array_ref): Include offset. - (gfc_trans_preloop_setup): Use existing offset. - (gfc_trans_allocate_temp_array, gfc_array_allocate, - gfc_trans_auto_array_allocation, gfc_trans_g77_array, - gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor, - gfc_conf_ss_descriptor): Set offset. - * trans-array.h: Rename prototypes. - * trans-const.h (gfc_index_zero_node): Define. - * trans-decl.c (gfc_build_qualified_array): Change base to offset. - * trans-types.c (gfc_get_array_type_bounds): Ditto. - (gfc_get_nodesc_array_type): Calculate offset before upper bound. - -2004-03-25 Diego Novillo - - * convert.c (convert): Don't handle WITH_RECORD_EXPR. - -2004-03-24 Bud Davis - - PR 14055 - * arith.c (gfc_convert_integer,gfc_convert_real): Removed leading '+' - before conversion by gmp library call. - -2004-03-24 Bud Davis - - PR 12921 - * trans-io.c (gfc_trans_open): Change RECL= to a value parameter. - -2004-02-24 Richard Henderson - - * trans-array.c (gfc_trans_dummy_array_bias): Fix typo. - -2004-02-19 Loren J. Rittle - - * Make-lang.in ($(srcdir)/fortran/gfortran.info): Move... - (fortran/gfortran.info): ... to here. - (f95.srcinfo): New. - -2004-02-16 Richard Henderson - - * Make-lang.in (f95-lang.o, trans-decl.o): Depend on cgraph.h. - * f95-lang.c (LANG_HOOKS_EXPAND_DECL): Remove. - (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): New. - (gfc_expand_function): Rename from expand_function_body, make static, - don't do anything except invoke tree_rest_of_compilation. - (gfc_be_parse_file): Invoke cgraph. - (gfc_expand_decl): Remove. - (gfc_init_builtin_functions): Add __builtin_init_trampoline and - __builtin_adjust_trampoline. - * trans-decl.c (gfc_get_extern_function_decl): Don't set DECL_CONTEXT. - (gfc_finalize): New. - (gfc_generate_function_code): Use it. Lower nested functions. - * trans-expr.c (gfc_conv_function_call): Add static chain operand - to call_expr. - * trans.c (gfc_build_function_call): Likewise. - * trans.h (expand_function_body): Remove. - -2004-02-15 Victor Leikehman - - PR gfortran/13433 - * trans-decl.c (gfc_build_function_decl) For functions - returning CHARACTER pass an extra length argument, - following g77 calling conventions. - * trans-types.c (gfc_get_function_type) Ditto. - * trans-expr.c (gfc_conv_function_call) Ditto. - -2004-02-14 Paul Brook - - * f95-lang.c (gfc_init_builtin_functions): Build chain properly. - -2004-02-12 Paul Brook - - * BUGS: Remove. - -2004-02-08 Steve Kargl - - * gfortran.texi: Fix typos. - -2004-02-07 Bud Davis - - PR gfortran/13909 - * intrinsic.c (add_conversions) Use logical conversion instead - of real. - * trans-types.c (gfc_get_logical_type) implemented logical*1 - and logical*2. - -2004-01-17 Paul Brook - - * lang-specs.h: Remove % - - * lang-specs.h: Enable preprocessing of source files - ending in .F, .fpp, .FPP, .F90 and .F95. - -2004-01-13 Toon Moene - - PR fortran/12912 - * lang-specs.h: Enable compilation of files ending - in .f, .for and .FOR. - -2004-01-11 Paul Brook - - * trans-stmt.c (gfc_trans_if_1): New function. - (gfc_trans_if): Use it. - -2004-01-11 Erik Schnetter - - * gfortran.h (GFC_MAX_SYMBOL_LEN): Increase. - (gfc_option_t): Add max_identifier_length. - * lang.opt: Add fmax-identifier-length. - * match.c (parse_name): Use limit. - * options.c (gfc_init_options): Set max_identifier_length. - (gfc_handle_option): Ditto. - -2004-01-11 Feng Wang - - * intrinsic.c (add_functions): Add resolve function to dcmplx. - * intrinsic.h (gfc_resolve_dcmplx): Add prototype. - * iresolve.c (gfc_resolve_dcmplx): New function. - -2004-01-10 Paul Brook - - * trans-decl.c (gfc_get_symbol_decl): Don't set subroutine attr. - * trans-types.c (gfc_sym_type): Handle external dummy procedures. - (gfc_return_by_reference): Correct condition. - (gfc_get_function_type): Ditto. - -2004-01-10 Paul Brook - - * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Convert mismatched - types. - -2004-01-10 Huang Chun - - * iresolve.c: Use correct kind. - -2004-01-10 Huang Chun - - PR fortran/13467 - * trans-decl.c (gfc_create_module_variable): Output array valued - parameters. - -2004-01-10 Paul Brook - - * resolve.c (resolve_branch): Get error message right way round. - -2004-01-10 Canqun Yang - - * trans-array (gfc_conv_loop_setup): Adjust comment to track - reality. - (gfc_array_allocate): Don't count size of element twice. - -2004-01-04 Paul Brook - - * lang.opt (i8, r8, std=*): Remove RejectNegative. - -2004-01-04 Paul Brook - - * error.c (gfc_notify_std): New function. - * gfortran.h (gfc_notify_std): Declare. - (GFC_STD_*): Define. - (gfc_option_t): Add warn_std and allow_std. - * intrinsic.c (gfc_init_expr_extensions): Fix logic. - (gfc_intrinsic_func_interface): Use gfc_notify_std. - * check.c (check_rest): Use gfc_notify_std. - * match.c (gfc_match_pause): Ditto. - (gfc_match_assign): Ditto. - (gfc_match_goto): Ditto. - * resolve.c (resolve_branch): Ditto. - * lang.opt: Add std= and w. - * options.c (gfc_init_options): Set allow_std and warn_std. - (gfc_handle_option): Handle OPT_std_* and OPT_w. - -2004-01-01 Paul Brook - - * array.c (gfc_append_constructor): Take constructor, not expression. - * data.c (struct gfc_expr_stack): Remove. - (expr_stack): Remove. - (find_con_by_offset): Rename from find_expr_in_con. - (find_con_by_component): Rename from find_component_in_con. - (gfc_get_expr_stack): Remove. - (gfc_assign_data_value): Rewrite. - (gfc_expr_push): Remove. - (gfc_expr_pop): Remove. - (gfc_advance_section): Rename from - gfc_modify_index_and_calculate_offset. Handle unbounded sections. - (gfc_get_section_index): Handle unbounded sections. - * gfortran.h: Update prototypes. - * resolve.c (check_data_variable): Array section maight not be the - last ref. - -2004-01-01 Paul Brook - - PR fortran/13432 - * resolve.c (resolve_symbol): Allow assumed length function results. - -2004-01-01 Steve Kargl - - * match.c (gfc_match_pause): Fix spelling. - -2004-01-01 Steven Bosscher - - PR fortran/13251 - * trans-expr.c (gfc_conv_variable): Take the type kind of a substring - reference from the expression. - -2003-12-26 Feng Wang - - * dump-parse-tree.c (gfc_show_code_node): Add ASSIGN and ASSIGNED GOTO - dumping. - * gfortran.h (gfc_statement): New ST_LABEL_ASSIGNMENT. - (gfc_exec_op): New EXEC_LABEL_ASSIGN. - (symbol_attribute):New variable attribute: assign. - * io.c (resolve_tag):Integer variable is allowed. - (match_dt_format): Add ASSIGN statement. Set assign flag. - * match.c (gfc_match_if): Change ST_NONE to ST_LABEL_ASSIGNMENT. - (gfc_match_assign): Add ASSIGN statement. Set assign flag. - (gfc_match_goto): Add ASSIGNED GOTO statement. Set assign flag. - * parse.c (decode_statement): Add ST_LABEL_ASSIGNMENT. - (next_statement): Add ST_LABEL_ASSIGNMENT. - (gfc_ascii_statement): Add ST_LABEL_ASSIGNMENT. - * resolve.c (resolve_code): Resolve ASSIGN and ASSIGNED GOTO statement. - (resolve_blocks): Resolve ASSIGNED GOTO statement label list. - * st.c (gfc_free_statement): Add EXEC_LABEL_ASSIGN. - * trans-decl.c (gfc_get_symbol_decl): Create the shadow variable for - assign. Put them into the stuct lang_decl. - * trans-io.c (set_string): Add the assign statement. - * trans-stmt.c (gfc_trans_label_assign): New function. - (gfc_trans_goto): Translate ASSIGNED GOTO statement. - * trans-stmt.h (gfc_trans_label_assign): Added function prototype. - * trans.c (gfc_trans_code): Add EXEC_LABEL_ASSIGN. - * trans.h (lang_decl):Add shadow variable decl tree needed by assign. - (GFC_DECL_ASSIGN_ADDR(node)): New macro to access this. - (GFC_DECL_ASSIGN(node)): New macro to access flag. - -2003-12-31 Huang Chun - - PR fortran/13434 - * trans-intrinsic.c (gfc_conv_intrinsic_minmaxval): Fixed bug in - minval/maxval. - -2003-12-22 Toon Moene - - * options.c (gfc_init_options): Set flag_argument_noalias to 2, to indicate - that arguments to subroutines/functions can't alias themselves, nor global - memory. - -2003-12-20 Steven Bosscher - - * trans-expr.c (gfc_conv_expr_op): Fold the result expression. - * trans.c (gfc_add_modify_expr, gfc_add_expr_to_block): Likewise. - -2003-12-12 Huang Chun - - * primary.c (match_substring): Fix substring bug for start point - or end point is NULL. - * trans-expr.c (gfc_conv_substring): Ditto - * trans-types.c (gfc_sym_type): Get correct type of scalar - character variables. - * trans-intrinsic.c (gfc_conv_intrinsic_len): Handle character in - derived type. - -2003-12-10 Richard Henderson - - * options.c (gfc_post_options): Don't ever use rtl inlining. - -2003-12-05 Canqun Yang - - * trans-common.c: Re-implement COMMON blocks and EQUIVALENCE lists. - * trans-equivalence.c: Remove. - * trans-decl.c (gfc_get_symbol_decl): Update to match. - (gfc_generate_function_code): Ditto. - * trans-array.c (gfc_conv_array_parameter): Ditto. - * Make-lang.in (F95_OBJS): Remove fortran/trans-equivalence.o - (F95_ADDITIONAL_OBJS): Add stor-layout.o - * trans.h (gfc_trans_equivalence): Remove. - * gfortran.h (struct gfc_equiv): Add used field. - (struct gfc_symbol): Remove addr_base, addr_offset, equiv_ring, - equiv_offset fields. - -2003-12-05 Richard Henderson - - * trans.c (gfc_build_addr_expr): New. - (gfc_build_indirect_ref, gfc_build_array_ref): New. - * trans.h: Declare them. - * trans-array.c, trans-expr.c, trans-intrinsic.c, trans-io.c, - trans-stmt.c, trans.c (*): Use them. - - * f95-lang.c (gfc_post_options): Remove dead prototype. - * trans-array.c (gfc_trans_deferred_vars): Remove unused variable. - * trans-stmt.c (gfc_evaluate_where_mask): Fix temporary_list - allocation size. - -2003-12-01 Feng Wang - - * io.c (gfc_match_format): Check for missing format label. - -2003-11-30 Huang Chun - - PR fortran/13155 - * trans-decl.c (gfc_sym_mangled_function_id): Don't mangle symbols - from interfaces in modules. - -2003-11-30 Paul Brook - - * trans-array.c (gfc_trans_g77_array): Make non-static. - (gfc_trans_assumed_size): Remove. - (gfc_trans_dummy_array_bias): Explicitly free temporary. - * trans-array.h (gfc_trans_g77_array): Add prototype. - (gfc_trans_assumed_size): Remove. - * trans-decls.c (gfor_fndecl_push_context): Remove. - (gfor_fndecl_pop_context): Remove. - (gfc_build_function)decls): Don't create them. - (gfc_trans_deferred_vars): Update to match. Remove dead code. - * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Free temp. - -2003-11-30 Kejia Zhao - - * trans-array.c (gfc_conv_array_parameter): Simplify - array argument passing for array name actual argument. - * trans-expr.c (gfc_conv_function_call): Ditto - * trans-types.c (gfc_is_nodesc_array):Ditto. - -2003-11-30 Paul Brook - - * f95-lang.c (gfc_post_options): Move ... - * options.c (gfc_post_options): .. to here. Handle inlining options. - * gfortran.h (gfc_post_options): Add prototype. - -2003-11-28 Richard Henderson - - * trans.c (gfc_create_var_np): Use create_tmp_var_raw. - -2003-11-28 Huang Chun - - * trans.h (has_alternate_specifier): New global variable. - * match.c (gfc_match_call): Handle actual arguments associated with - alternate return indicators. - * trans-expr.c (gfc_conv_function_call): Ditto - * trans-stmt.c (gfc_trans_call): Ditto - (gfc_trans_return): Handle return statement with value. - * trans-decl.c (gfc_generate_function_code): Handle functions with - asterisk dummy. - (gfc_get_fake_result_decl): Ditto - * trans-types.c (gfc_get_function_type): Ditto - * resolve.c (resolve_actual_arglist): Check alternate return indicators. - (resolve_formal_arglist): Check asterisk dummy. - -2003-11-27 Paul Brook - - * trans-array.c (gfc_tran_allocate_array_storage): Use new memory - allocation interface. - (gfc_conv_ array_parameter): Ditto. - (gfc_trans_auto_array_allocation): Ditto. Also free the memory. - * trans-array.c: Update prototype. - * trans-decl.c (gfc_build_builtin_function_decls): Update prototypes. - (gfc_trans_auto_character_variable): Use new memory alloc interface. - * trans-expr.c (gfc_conv_string_tmp): Ditto. - (gfc_conv_function_call): Use gfc_conv_string_tmp. - * trans-stmt.c (gfc_do_allocate): Use new memory alloc interface. - * trans-intrinsic.c (gfc_conv_intrinsic_trim): Ditto. - * trans.h (gfc_ss_info): Remove unused pdata field. - * trans.c (gfc_create_var_np): Change T to V. - -2003-11-26 Richard Henderson - - * mathbuiltins.def: Move acos, asin, cosh, log10, sinh, tanh from ... - * trans-intrinsic.c (gfc_intrinsic_map): ... here. Add SCALE, - FRACTION, NEAREST, SET_EXPONENT. - (gfc_intrinsic_map_t): Add libm_name, complex_available, is_constant. - Fix GTY marking. Remove unnecessary const's. - (LIBM_FUNCTION): Rename from I_LIB. - (LIBF_FUNCTION): New. - (gfc_get_intrinsic_lib_fndecl): Handle libm and libgfortran naming - conventions. Assume the expr signature is correct. Mark const. - (gfc_conv_intrinsic_exponent): Use library functions. - (gfc_conv_intrinsic_set_exponent): Remove. - (gfc_conv_intrinsic_scale): Remove. - (gfc_conv_intrinsic_nearest): Remove. - (gfc_conv_intrinsic_fraction): Remove. - (gfc_conv_intrinsic_function): Update. - * trans-decl.c (gfor_fndecl_math_exponent4): New. - (gfor_fndecl_math_exponent8): New. - (gfc_build_intrinsic_function_decls): Set them. - * trans.h: Declare them. - -2003-11-25 Canqun Yang - - * trans-common.c (gfc_layout_global_equiv): Locate the error for - underflow COMMON block. - (gfc_trans_one_common): Fix bug for size of COMMON block containing - EQUIVALENCE object. Also fix typo in an error message. - -2003-11-25 Diego Novillo - - * Make-lang.in: Add check-gfortran to lang_checks. - (check-f95): Alias for check-gfortran. - -2003-11-25 Jason Merrill - - * Make-lang.in (f95.tags): Create TAGS.sub files in each - directory and TAGS files that include them for each front end. - -2003-11-24 Paul Brook - - PR fortran/13154 - * trans-decl.c (gfc_greate_module_variable): Skip COMMON blocks. - -2003-11-24 Paul Brook - - * expr.c (simplify_const_ref): Return SUCCESS for things we don't - handle. - * resolve.c (gfc_resolve_expr): Resolve contents before rank/shape. - -2003-11-24 Paul Brook - - PR fortran/13105 - * array.c (gfc_array_ref_shape): Handle elemental dimensions. - * trans-array.c (gfc_trans_preloop_setup): Use correct dim lookup. - -2003-11-20 Richard Henderson - - * trans-array.c (gfc_trans_allocate_array_storage): Use convert. - (gfc_conv_array_base): Likewise. - * trans-decl.c (gfc_trans_auto_character_variable): Likewise. - * trans-expr.c (gfc_conv_string_tmp): Likewise. - * trans-intrinsic.c (gfc_conv_intrinsic_trim): Likewise. - * trans-stmt.c (gfc_trans_character_select): Likewise. - -2003-11-13 Paul Brook - - * trans-decl.c (gfc_sym_mangled_function_id): Dont mangle externals. - -2003-11-13 Canqun Yang - - * resolve.c (gfc_resolve): Also resolve EQUIVALENCE objects. - (resolve_equivalence): New function. - (resolve_equivalence_derived): New function. - -2003-11-12 Richard Henderson - - * trans.c (gfc_trans_code): Use annotate_with_locus instead of - annotate_all_with_locus. - -2003-11-11 Canqun Yang - - * options.c (gfc_init_options): Set flag_max_stack_var_size as 32768. - * trans-decl.c (gfc_finish_var_decl): Modified. - -2003-11-08 Paul Brook - - PR fortran/12704 - * trans-intrinsic.c (gfc_conv_intrinsics_minmaxloc): Handle zero-size - arrays. - -2003-11-06 Paul Brook - - * trans-intrinsic.c (gfc_conv_intrinsics_minmaxloc): Initialize pos. - -2003-11-02 Canqun Yang - - * match.c (gfc_match_stopcode): Assign '0' to stop_code. - -2003-10-27 Anthony Green - - * Make-lang.in (f95.stageprofile): Use tabs, not spaces. - (f95.stagefeedback): Ditto. - -2003-10-27 Andrew Pinski - - PR fortran/12682 - * Make-lang.in (f95.stageprofile): Add. - (f95.stagefeedback): Add. - -2003-10-23 Richard Henderson - - * f96-lang.c (gfc_gimplify_expr): Remove. - (LANG_HOOKS_GIMPLIFY_EXPR): Remove. - (LANG_HOOKS_GIMPLE_BEFORE_INLINING): New. - -2003-10-23 Richard Henderson - - * f95-lang.c (gfc_gimplify_expr): Return gimplify_status. - -2003-10-20 Paul Brook - - * trans-expr.c (gfc_conv_integer_power): Use boolean_type_node. - * trans-stmt.c (gfc_trans_do_while): Ditto. - -2003-10-17 Paul Brook - - * simplify.c (gfc_simplify_shape): Use gfc_array_dimen_size. - -2003-10-17 Paul Brook - - * trans-io.c (gfc_build_io_library_fndecls): Set TREE_PUBLIC. - -2003-10-17 Feng Wang - - * iresolve.c (gfc_resolve_maxloc): Change the result's kind and type. - (gfc_resolve_minloc): Ditto. - * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Use correct types. - Return the value after subtracting the lower bound. - -2003-10-16 Richard Henderson - - * f95-lang.c (expand_function_body): Don't check flag_disable_gimple. - -2003-10-16 Steven Bosscher - - * lang.c: Remove -M option for now, it's in the way for C. - -2003-10-14 Jason Merrill - - * Make-lang.in (f95.tags): New rule. - -2003-10-13 Richard Henderson - - * trans.c (gfc_trans_code): Use annotate_all_with_locus. - -2003-10-13 Paul Brook - - * trans-decl.c (generate_local_decl): Don't create junk variables. - -2003-10-13 Paul Brook - - * resolve.c (resolve_formal_arglist): Use function result decl in - preference to function decl. - -2003-10-12 Richard Henderson - - * f95-lang.c (gfc_define_builtin): New const_p argument. Set - TREE_READONLY. Update all callers. - -2003-10-12 Feng Wang - - * iresolve.c (gfc_resolve_cshift): Change to match implementation. - * trans-intrinsic.c (gfc_conv_intrinsic_function): Remove CSHIFT. - (gfc_is_intrinsic_libcall): Add CSHIFT. - -2003-10-12 Richard Henderson - - * trans-array.c (gfc_trans_static_array_pointer): Set TREE_INVARIANT. - (gfc_trans_array_constructor_value): Likewise. - (gfc_conv_array_initializer): Likewise. - * trans-stmt.c (gfc_trans_character_select): Likewise. - -2003-11-12 Kejia Zhao - - * trans-intrinsic.c (integer_kind_info, real_kind_info): Remove. - -2003-10-11 Huang Chun - - * check.c (gfc_check_repeat): Check arguments are scalar. - (gfc_check_trim): New function. - * intrinsic.h (gfc_check_trim): Add prototype. - * intrinsic.c (add_functions): Use it. - * trans.h (gfor_fndecl_string_trim, gfor_fndecl_string_repeat): - Decalare. - * trans-decl.c: Ditto. - (gfc_build_intrinsic_fucntion_decls): Set them. - * trans-intrinsic.c (gfc_conv_intrinsic_len): Handle result vars. - (gfc_conv_intrinsic_trim): New function. - (gfc_conv_intrinsic_repeat): New function. - (gfc_conv_intrinsic_function): Use them. - -2003-10-11 Huang Chun - - * trans-types.c (gfc_sym_type): Handle result variables. - -2003-10-11 Huang Chun - - * trans-intrinsic.c (gfc_conv_intrinsic_char): Don't use - gfc_get_character_type. - -2003-10-11 Feng Wang - - * trans-expr.c (gfc_conv_variable): Check sym->ts, not the decl. - -2003-10-11 Paul Brook - - * iresolve.c (gfc_resolve_dint, gfc_resolve_dnint): New functions. - (gfc_resolve_dprod): New function. - (gfc_resolve_aint, gfc_resolve_anint): Only base name on arg type. - * intrinsic.h (gfc_resolve_dint, gfc_resolve_dnint): Declare. - (gfc_resolve_dprod): Declare. - * intrinsic.c (add_functions): Use them. - * trans-decl.c (gfc_get_extern_function_decl): Only pass one arg. - -2003-10-06 Richard Henderson - - * f95-lang.c (gfc_init_builtin_functions): Add clzll. - * trans-intrinsic.c (call_builtin_clz): Use it. - -2003-10-05 Paul Brook - - * f95-lang.c (expand_function_body): Call (push|pop)_function_context. - * trans-decl.c (gfc_generate_function_code): Set - cfun->function_end_locus. - -2003-09-24 Jason Merrill - - * f95-lang.c, trans-decl.c: Use DECL_SOURCE_LOCATION instead of - TREE_LOCUS. - -2003-09-21 Lifang Zeng - Paul Brook - - * Make-lang.in (F95_OBJS): Add fortran/data.o. - * array.c (gfc_inser_constructor): New function. - (gfc_get_constructor): New function. - (gfc_free_constructor): Initialize offset and repeat. - (iterator_stack): Remove. - (expand_info): Add offset, component and repeat fields. - (expand_constructor): Set them. - (expand): Set new fields. - (gfc_copy_constructor): Ditto. Avoid recursion. - * gfortran.h: Add prototypes for new functions. - (gfc_constructor): Add offset, component and repeat. - (iteratio_stack): Move to here. - * resolve.c (check_data_variable): Convert data values into variable - initializers. - (traverse_data_list): Build implicit loop chain. - (gfc_resolve): Ditto. - * trans-array.c (gfc_conv_array_intializer): Handle repeat count. - * trans-decl.c (gfc_get_symbol_decl): Use gfc_conv_structure. - * trans-expr.c (gfc_conv_structure): Handle array initializers. - (gfc_conv_expr): Update to match. - * trans.h (gfc_conv_structure): Declare. - * data.c: New file. - -2003-09-20 Kejia Zhao - - * trans.h: Add declarations for gfor_fndecl_si_kind and - gfor_fndecl_sr_kind. - * trans-decl.c (g95_build_intrinsic_function_decls): Build them. - * trans-intrinsic.c (g95_conv_intrinsic_si_kind): New function. - (g95_conv_intrinsic_sr_kind): New function. - (g95_conv_intrinsic_function): Add SELECTED_INT_KIND and - SELECTED_REAL_KIND. - -2003-09-17 Lars Segerlund - - * iresolve.c (gfc_resolve_random_number): Generate _r4 & _r8 - instead of _4 and _8 as postfix for libgfortran calls. - -2003-09-16 Paul Brook - - * array.c (compare_bounds): New function. - (gfc_compare_array_spec): Use it. - -2003-09-14 Paul Brook - - * primary.c (gfc_match_rvalue): Make sure sym->result is set. - * trans-expr.c (gfc_conv_string_parameter): Also allow PRAM_DECLs. - -2003-09-14 Paul Brook - - * check.c (dim_rank_check): Allow assumed bounds if requested. - (gfc_check_lbound): Call it. - (gfc_check_ubound): Ditto. - (gfc_check_size): Change to match. - * simplify.c (gfc_simplify_bound): New function. - (gfc_simplify_lbound): New function. - (gfc_simplify_ubound): New function. - * intrinsic.h: Declare them. - * intrinsic.c (add_functions): Use them. - -2003-09-14 Paul Brook - - * io.c (format_lex): Initialize negative_flag. - (check_format): Intialize repeat. - * trans-io.c (gfc_new_nml_name_expr): Declare static. - (gfc_new_var_expr): Ditto. - -2003-09-14 Paul Brook - - * trans-array.c (gfc_conv_array_initializer): Handle derived types. - * trans-decl.c (gfc_get_symbol_decl): Only do local scalar values. - -2003-09-12 Paul Brook - - * trans-intrinsic.c (gfc_conv_intrinsic_sign): Call fold. - -2003-09-12 Zdenek Dvorak - - * fortran/trans.c (gfc_finish_block): Call rationalize_compound_expr - for a correct expression. - -2003-09-10 Kejia Zhao - - * trans-intrinsic.c (real_compnt_info): New struct. - (prepare_arg_info): New function. - (gfc_conv_intrinsic_set_exponent): New function. - (gfc_conv_intrinsic_scale): New function. - (gfc_conv_intrinsic_nearest): New function. - (gfc_conv_intrinsic_fraction): New function. - (gfc_conv_intrinsic_exponent): New function. - (gfc_conv_intrinsic_spacing): New function. - (gfc_conv_intrinsic_rrspacing): New function. - (gfc_conv_intrinsic_function): Use them. - -2003-08-24 XiaoQiang Zhang (zhangapache@yahoo.com> - - * trans-const.c (gfc_conv_mpz_to_tree): Fix bug, parameter for - build_int_2 changed from (high, low) to (low, high). - * trans-io.c (ioparm_namelist_name, ioparm_namelist_name_len, - ioparm_namelist_read_mode, iocall_set_nml_val_int, - iocall_set_nml_val_float, iocall_set_nml_val_char, - iocall_set_nml_val_complex, iocall_set_nml_val_log): New declaration. - (gfc_build_io_library_fndecls): Add variable initialization. - (gfc_new_nml_name_expr, get_new_var_expr): New function. - (build_dt): Add namelist support. - * io.c (value): New variable. - (check_format): Support FMT_H now. - -2003-09-07 Paul Brook - - * io.c (gfc_resolve_dt): Error if format label is not defined. - -2003-09-07 Kejia Zhao - - * trans-intrinsic.c (gfc_conv_intrinsic_aint): Fix two bugs. One is - about case_switch's break. The other is about building the condition - statement tree, which judges the argument in the range of the - corresponding integer type. - * trans-intrinsic.c (gfc_conv_intrinsic_mod): MOD and MODULO can work - for the large values. - -2003-09-05 Paul Brook - - * f95-lang.c (expand_function_body): Gimplify the function. - -2003-09-04 Jeff Law - - * f95-lang.c (DEFINE_MATH_BUILTIN): C arrays start at - index zero! - -2003-09-04 Paul Brook - - * f95-lang.c (gfc_define_builtin): Also set implicit_built_in_decls. - (gfc_expand_stmt): New function. - (LANG_HOOKS_RTL_EXPAND_STMT): Define. - (expand_function_body): Use tree_rest_of_compilation. - * trans-decl.c (gfc_generate_function_code): Don't free cfun. - -2003-09-03 Jeff Law - - * f95-lang.c (gfc_init_builtin_functions): C arrays start at - index zero! - -2003-08-30 Paul Brook - - * f95-lang.c (builtin_function): Remove #if 0 code. - (gfc_define_builtin): New function. - (gfc_init_builtin_functions): Use mathbuiltins.def not ../builtins.def. - * mathbuiltins.def: New file. - * trans-intrinsic.c (gfc_intrinsic_map_t): Add builtin code fields. - (gfc_intrinsic_map): Use mathbuiltins.def. - (gfc_intrinsic_builtin_t): Remove. - (gfc_build_intrinsic_lib_fndecls): Update. - * trans-types.c (gfc_init_types): Remove redundant initilaization of - signed_size_type_node. - -2003-08-29 Paul Brook - - * arith.c (gfc_real_kinds): Use correct minimum exponents. - -2003-08-22 Kejia Zhao - - * trans-instinsic.c (gfc_conv_intrinsic_mod): Also do MODULO. - (gfc_conv_intrinsic_function): Add MODULO. - -2003-08-22 Jason Merrill - - * trans-array.c (gfc_conv_expr_descriptor): Update use of predicates. - -2003-08-22 Andreas Jaeger - - * Make-lang.in (f95.install-common): Add DESTDIR support. - * (f95.install-info): Likewise. - (f95.uninstall): Likewise. - -2003-08-19 Diego Novillo - - * trans-types.c (gfc_init_types): Initialize - signed_size_type_node with size_type_node. - -2003-08-18 Paul Brook - - * dependency.c (gfc_dependency): New enum. - (check_another_array_ref): Remove. - (gfc_get_array_from_component): Remove. - (get_x): Remove. - (get_range): Remove. - (get_no_of_elements): Use mpz_t, not mpf_t. - (transform_sections): New function. - (gfc_check_range_range): Rename ... - (gfc_check_section_vs_section): ... to this. Use new function. - (gfc_is_inside_range): Rewrite to match. - (gfc_check_element_vs_section): Ditto. - (gfc_check_element_vs_element): Ditto. - (get_deps): Ditto. - (gfc_dep_resolver): Ditto. Remove unused parameter. - * Dependency.h (gfc_check_range_range, gfc_check_element_vs_section, - gfc_check_element_vs_element, gfc_is_inside_range, - gfc_get_array_from_component): Remove prototypes for static functions. - (gfc_dep_resolver): Update prototype. - * trans-array.c (gfc_conv_resolve_dependencies): Change to match. - -2003-08-15 Paul Brook - - * trans-decl.c (gfc_build_qualified_array): Don't add symbols for - return values to parent scope. - (gfc_build_dummy_array_decl): Ditto. - -2003-08-14 Paul Brook - - * trans-stmt.c (gfc_trans_allocate): Handle NULL refs. Allocate the - size of the type, not the pointer. - * resolve.c (resolve_symbol): Give more accurate error message. - -2003-08-10 Paul Brook - - * trans-decl.c (gfc_build_function_decl): Only mangle global symbols. - -2003-08-10 Paul Brook - - * trans-stmt.c (gfc_trans_allocate): Correctly handle non-array derived - type components. - -2003-08-10 Chun Huang - - * resolve.c (resolve_formal_arglist): Resolve STATEMENT function. - (resolve_symbol): Ditto. - * trans-expr.c (gfc_conv_statement_function): New function. - (gfc_conv_function_expr): Use it. - -2003-08-10 Paul Brook - - * trans-array.c (gfc_conv_ss_startstride): Handle functions. - (walk_function_expr): Set section rank. - * trans-intrinsic.c (gfc_walk_intrinsic_libfunc): Ditto. - -2003-08-10 Paul Brook - - * intrinsic.c (add_sym): Prefix names with correct string. - (add_sym_0s): New function. - (add_subroutines): Register abort. - -2003-08-10 Erik Schnetter - - * gfortran.h: Introduce options to control the mangling. - * lang.opt: Likewise. - * options.c (gfc_init_options): Handle the options. - * trans-common.c (gfc_sym_mangled_common_id): New function. - (gfc_build_common_decl): Call it. - * trans-decl.c (gfc_sym_mangled_function_id): New function. - (gfc_get_extern_function_decl, gfc_build_function_decl): Call it. - -2003-08-09 Paul Brook - - * module.c (mio_symbol): Always ouput a namespace for formal args. - (load_needed): Namespace now belong to their proper symbol. - (gfc_dump_module): Change G95=>GFORTRAN. - -2003-08-05 Paul Brook - - * options.c: Force -fg77-calls. - -2003-08-02 Paul Brook - - * Makelang.in: Rename G95_* to GFORTRAN_*. - * All sources: Rename G95_* to GFC_*. - -2003-08-01 Paul Brook - - * fortran/Make-lang.in: Use GMPLIBS. - * fortran/config-lang.in: Set need_gmp. - * trans-expr.c (gfc_conv_variable): Remove incorrect assertion. - -2003-07-27 Andreas Jaeger - - * trans-decl.c (gfc_generate_constructors): Convert prototype to - ISO C90. - * trans-const.c (gfc_init_constants): Likewise. - * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Likewise. - - * gfortranspec.c: Convert to ISO C90. - (lang_specific_driver): Correct copyright, remove ALT_LIBM usage. - -2003-07-26 Paul Brook - - * lang.opt: Add -fdump-parse-tree. - * options.c (gfc_handle_option): Ditto. - * resolve.c (resolve_forall_iterators): Convert to proper type. - * trans-stmt.c (gfc_trans_forall_1): Create temp var with correct type. - -2003-07-26 Paul Brook - - * Makefile.in: Add build dependencies on files common with rest of gcc. - -2003-07-26 Lifang Zeng - - * trans.h: Declare g95_trans_pointer_assignment. - * trans-expr.c (g95_trans_pointer_assignment): New function. - (g95_trans_pointer_assign): Use it. - * trans-stmt.c (g95_trans_forall_1): Handle pointer assignment. - (g95_trans_pointer_assign_need_temp): New function. - -2003-07-26 Paul Brook - - * gfortran.texi: Replace references to g95. - -2003-07-26 Paul Brook - - Rename g95_* to gfc_*. - -2003-07-25 Paul Brook - - * gfortran.h: Rename from g95.h. - * trans-types.c (boolean_type_node, booelan_true_node, - boolean_false_node): Remove. - * trans-types.h: Ditto. - -2003-07-25 Chun Huang - - * parse.c (accept_statement): Implement BLOCK DATA statement. - * trans-expr.c (g95_conv_variable): Fix bug for dereference pointer - variables. - -2003-07-24 Lifang Zeng - - * trans-stmt.c (temporary_list): Define. - (g95_trans_assign_need_temp): New function. - (g95_trans_forall_1): Modified for WHERE. - (g95_trans_where_assign): Modified. - (g95_trans_where_2): Modified. - (g95_evaluate_where_mask): Modified. - (g95_trans_where): Modified. - (g95_get_temp_expr): Removed. - (g95_add_to_where_stmt_list): Removed. - (compute_overall_iter_number): Modified for WHERE. - * trans.h: Remove where_stmt_list. - -2003-07-24 Arnaud Desitter - - * lang.opt: Correct description of options -J and -M. - -2003-07-23 Steven Bosscher - - * lang.opt: Move help text to here. - * lang-options.h: Remove. - -2003-07-23 Arnaud Desitter - * iresolve.c (g95_resolve_transpose): Proper variable in switch. - * simplify.c (g95_simplify_nearest): Fix typo and use a correct test - on kind. - -2003-07-22 Steven Bosscher - Paul Brook - - * check.c (check_rest): Use global pedantic flag. - * io.c (data_desc): Ditto. - * error.c (g95_warning, g95_warning_now): Use global flag. - * f95-lang.c (LANG_HOOKS_HANDLE_OPTION): Rename from DECODE. - (expand_function_body): Update to new prototypes. - (g95_init): Use new option names. - * g95.h (g95_option_t): Standardize names. - (g95_init_options, g95_handle_option): Update prototypes. - * interface.c: Use new option names. - * match.c: Ditto. - * module.c: Ditto. - * parse.c: Ditto. - * primary.c: Ditto. - * resolve.c: Ditto. - * scanner.c: Ditto. - * simplify.c: Ditto. - * symbol.c: Ditto. - * trans-array.c: Ditto. - * trans-expr.c: Ditto. - * trans-types.c: Ditto. - * trans-decl.c: Ditto. - (g95_build_library_function_decl): Remove obsolete VPARAMS. - * trans.h: Ditto. - * options.c (g95_display_help): Remove. - (g95_init_options): Convert to new scheme. - (set_Wall): Ditto - (g95module_option): Ditto, rename from g95_parse_arg. - (g95_handle_module_path_options): New function. - * trans-equivalence.c: Fix error message. - * lang.opt: Corrections. - -2003-07-21 Steven Bosscher - - * lang.opt: New file. - -2003-07-21 Arnaud Desitter - - * decl.c (match_attr_spec): Set colon_seen. - -2003-07-14 Paul Brook - - * trans-array.c: Update comment. - (g95_trans_array_constructor_subarray): Cleanup loopinfo data. - * trans-intrinsic.c (g95_conv_intrinsic_anyall,count,arith, - minmaxloc,minmaxval): Ditto. - * trans-io.c (g95_trans_transfer): Ditto. - * trans-stmt.c: Remove unneeded prototypes. - (generate_loop_for_lhs_to_rhs): Rename vars. Add loop post chain. - (generate_loop_for_rhs_to_temp): Rename vars. Don't share loopinfo. - (compute_inner_temp_size): Remove bits of dead code. Add comments. - Don't share loopinfo. - (compute_overall_iter_number): Declare as static. - (allocate_temp_for_forall_nest): Ditto. - (g95_trans_forall_1): Don't pass shared loopinfo. - * trans.c (g95_start_block): Expand comment. - -2003-07-12 Paul Brook - - * arith.c (g95_index_integer_kind): Remove unused initializer. - * trans-stmt.c (generate_loop_for_temp_to_lhs): Don't multiply array - index by size of element. - (generate_loop_for_rhs_to_temp): Ditto. - (allocate_temp_for_forall_nest): Use element size, not index size. - -2003-07-11 Arnaud Desitter - - * arith.c (g95_index_integer_kind): Add a TODO. - * simplify.c (g95_simplify_nearest): Add a TODO. - -2003-07-09 Chun Huang - - * trans.h: Add declarations for gfor_fndecl_string_scan and - gfor_fndecl_string_verify. - * trans-decl.c (g95_build_intrinsic_function_decls): Build them. - * trans-intrinsic.c (g95_conv_intrinsic_scan): New function. - (g95_conv_intrinsic_verify): New function. - (g95_conv_intrinsic_function): Add SCAN and VERIFY. - * simplify.c (g95_simplify_scan, g95_simplify_verify): Fix bug in case - of parameter 'BACK=.TRUE.' - -2003-07-05 Lifang Zeng - - * trans-stmt.c (iter_info, forall_info): Define. - (g95_trans_forall_block): Remove. - (g95_trans_forall_loop): Use forall info blocks. - (g95_trans_nested_forall_loop): New function. - (g95_do_allocate): Handle things other than logical masks. - (generate_loop_for_temp_to_lhs): New function. - (generate_loop_for_rsh_to_temp): New function. - (compute_inner_temp_size): New function. - (compute_overall_iter_number): New function. - (allocate_temp_for_forall_nest): New function. - (g95_trans_forall): Move body ... - (g95_trans_forall_1): ... to here. Handle loops with temporaries. - -2003-07-02 Paul Brook - - * trans-decl.c (create_index_var, g95_build_qualified_array): Put vars - in correct scope. Change callers to match. - * trans-types.c (g95_get_dtype_cst): Allow rank 7 arrays. - * iresolve.c (g95_resolve_reshape): Only use constant shapes. - -2003-07-02 Paul Brook - - * trans-array.c (g95_conv_loop_setup): Remove dead var. Use - expression shape for all expressions. - * trans-decl.c (g95_symbol_init): Allow adding at very end of list. - -2003-07-03 Arnaud Desitter - - * g95.h (g95_option_t), lang-options.h, options.c (g95_init_options, - g95_parse_arg), intrinsic.c (g95_convert_type): support of - -Wconversion. - * intrinsic.c, g95.h: Add g95_convert_type_warn, - * resolve.c (g95_resolve_index): Call it. - -2003-07-02 Paul Brook - - * iresolve.c (g95_resolve_reshape): Set expression shape. - (g95_resolve_shape): Ditto. - * simplify.c (g95_simplify_shape): Move common code outside condition. - * trans-array.c (g95_conv_array_initializer): Teach it how to count. - -2003-07-01 Arnaud Desitter - - * array.c (g95_array_dimen_size): Deal with EXPR_ARRAY to improve - conformance checks. - -2003-06-29 Paul Brook - - * array.c (g95_simplify_iterator_var): Don't bother with return value. - * expr.c (find_array_element, find_component_ref): New functions. - (remove_subobject_ref): New function. - (simplify_const_ref): Use them. Rename from simplify_component_ref. - (simplify_ref_chain): New function. - (g95_simplify_expr): Use it. Simplify parameter variable subobjects. - (g95_specification_expr): Simplify the expression. - * resolve.c (resolve_operator): Check simplifications return code. - (g95_resolve_expr): Ditto. - -2003-06-26 Paul Brook - - * expr.c (simplify_component_ref): New function. - (g95_simplify_expr): Use it. - * resolve.c (resolve_structure_cons): Handle references. - -2003-06-25 Paul Brook - - * trans-io.c (build_dt): Handle internal units. - -2003-06-25 Canqun Yang - - * trans-common.c (g95_build_common_decl): Array index range starts at 0. - (g95_build_common_decl, g95_layout_global_equiv, g95_trans_one_common): - Use g95_array_index_type instead of integer_type_node. - (g95_build_common_decl, g95_set_common_master_type): Use - g95_character1_type_node instead of char_type_node. - * trans-equivalence.c (g95_layout_local_equiv): As above. - -2003-06-24 Steven G. Kargl - - * g95.h (g95_option_t), options.c (g95_init_options, g95_parse_arg): - remove last remains of -fquiet. - -2003-06-22 Paul Brook - - * resolve.c (resolve_operator): Don't fail if we can't simplify. - (g95_resolve_expr): Ditto. - (resolce_code): Mark as static. - * trans-stmt.c (g95_trans_chaaracter_select): Mark labels because the - gimplifer doesn't (yet). - -2003-06-20 Paul Brook - - * g95.h: Add ST_PAUSE and EXEC_PAUSE. - * match.c (g95_match_if): Add ST_PAUSE. - (g95_match_stopcode): New function. - (g95_match_pause, g95_match_stop): Use it. - * parse.c (g95_ascii_statement): Handle ST_PAUSE. - (decode_stmt, next_statement, parse_executable): Ditto. - * resolve.c (resolve_code): Ditto. - * st.c (g95_free_statement): Ditto. - * trans-stmt.c (g95_trans_pause): New function. - * trans-stmt.h: Declare it. - * trans.c (g95_trans_code): Use it. - * trans-decl.c (gfor_fndecl_pause_numeric, gfor_fndecl_pause_string): - Declare. - (g95_build_builtin_function_decls): Initialize them. - * trans.h: Ditto. - * dump-parse-tree.c (g95_show_code_node): Handle EXEC_PAUSE. - -2003-06-18 Arnaud Desitter - - * io.c (g95_match_open , g95_match_close, g95_match_inquire, - match_filepos): Fix error handling. - -2003-06-18 Arnaud Desitter - - * array.c (spec_dimen_size, ref_dimen_size, g95_array_dimen_size): - Add assertions on arguments. - * resolve.c (expression_shape): Remove useless &. - * simplify.c (get_kind, g95_simplify_bit_size, g95_simplify_digits, - g95_simplify_ibclr, g95_simplify_ibits, g95_simplify_ibset, - g95_simplify_ishft,g95_simplify_ishftc, g95_simplify_maxexponent, - g95_simplify_minexponent, g95_simplify_radix, g95_simplify_range - g95_simplify_rrspacing, g95_simplify_scale, g95_simplify_spacing, - g95_simplify_tan, g95_simplify_tiny): Clean predicates and assertions. - (g95_simplify_not, g95_simplify_scale): Add assertions. - -2003-06-15 Paul Brook - - Clean up stuff to work with the ssa optimizers. - * convert.c (convert): Handle BOOLEAN_TYPEs. - * f95-lang.c (g95_truthvalue_conversion): Implement. - * trans-array.c (g95_trans_array_constructor_value): Group multiple - scalar values. - * trans.h (g95_truthvalue_conversion): Declare. - * trans-intrinsic.c (g95_conv_intrinsic_anyall): Use bool constants. - * trans-stmt.c (g95_trans_character_select): Don't create array - assignments. Mark labels as indirect jump targets. - * trans-types.h (g95_init_types): Use BOOLEAN_TYPE nodes. - (g95_get_dtype_cst): Handle LOGICAL types. - -2003-06-14 Paul Brook - - * f95-lang.c (g95_gimplify_expr): New function. - * trans-array.c (g95_trans_array_constructor_value): Don't create - array assignments. - (g95_conv_expr_descriptor): Rename simple->gimple. - * trans-expr.c (conv_expr_op): Use proper logical operators. - * trans-intrinsic.c (build_fixbound_expr): New function. - (build_fix_expr): Ditto. - (g95_conv_intinsic_aint): Use them. Use builtin functions. - (g95_conv_intrinsic_function): Add FLOOR and CEILING. - -2003-06-10 Arnaud Desitter - - * array.c (g95_compare_array_spec): Remove unreachable code. - * expr.c (g95_copy_expr): Likewise. - * intrinsic.c (g95_convert_type): Likewise. - * misc.c (g95_code2string): Likewise. - * simplify.c (g95_simplify_ishft, g95_simplify_real, - g95_simplify_reshape, g95_simplify_sign, g95_simplify_sqrt): Likewise. - * trans-stmt.c (g95_trans_select): Likewise. - * primary.c (extend_ref): Add an assertion. - * simplify.c (g95_convert_constant): Add const. - * intrinsic.h: Remove g95_check_x_ni. - * f95-lang.c (g95_finish): Call g95_release_include_path. - -2003-06-10 Arnaud Desitter - - * resolve.c (resolve_contained_functions): Fix typo introduced on - 2003-01-13. - -2003-06-09 Paul Brook - - * g95.h: Include system.h not hwint.h. - * many: use safe-ctype.h not ctype.h. Change isalpha -> ISALPHA, etc. - * misc.c (g95_getmem): Use xmalloc/memset instead of calloc. - -2003-06-09 Paul Brook - - * g95.h (g95_symbol): Add fields for COMMON and EQUIVALENCE variables. - * Make-lang.in (F95_OBJS): Add files for COMMON and EQUIVALENCE. - * trans-decl.c (g95_add_decl_to_functions): Make non-static. - (g95_get_symbol_decl): Handle COMMON and EQUIVALENCE objects. - (g95_generate_function_code): Translate COMMON and EQUIVALENCE - objects. - * trans.h (g95_trans_equivalence, g95_trans_common, - g95_add_decl_to_function): Declare. - * trans-common.c, trans-equivalence.c: New files. - -2003-06-08 Steven Bosscher - - * intrinsic.c (g95_intrinsic_extension): Remove. - (add_functions): Substitute g95_check_x for g95_check_x_ni - everywhere. - (g95_init_expr_extensions): New function. - (g95_intrinsic_func_interface): Use it. - * intrinsic.h: Remove extern decl for g95_intrinsic_extension. - * check.c (g95_check_digit, g95_check_huge, g95_check_kind, - g95_check_precision, g95_check_present, g95_check_radix, - g95_check_range, g95_check_selected_real_kind): Do not set - g95_intrinsic_extension. - (g95_check_x_ni): Remove now duplicate of g95_check_x. - - * expr.c (check_inquiry): Add FIXME, fixup some code style. - -2003-06-06 Arnaud Desitter - - * g95.h (ref_type): Name this type explicitly. - * module.c (MIO_NAME): Add specialisations of mio_name. - (mio_symbol_attribute, mio_typespec, mio_array_ref, - mio_array_spec, mio_ref, mio_expr, mio_symbol): Use them. - (ab_attribute): Name this type explicitly. - (mio_symbol_attribute, mio_expr): Add cast to call to find_enum. - -2003-06-05 Kejia Zhao - - * trans-intrinsic.c (g95_conv_allocated): New function. - (g95_conv_intrinsic_function): Make G95_ISYM_ALLOCATED work. - -2003-06-05 Steven Bosscher - - * f95-lang.c: Don't include g95-support.h - (g95_mark_addressable): Add prototype. - (g95_init_decl_processing): Remove C front end hack. - * f95-tree.c: Remove file. - * support.c: Remove file. - * g95-support.h: Remove file. - * trans-types.c (g95_init_types): Set up boolean - type related tree nodes. - * Make-lang.in: Remove rules for dead files and - dependencies on them. - -2003-06-05 Steven Bosscher - - * Make-lang.in (F95_ADDITIONAL_OBJS): Remove the final - C front end dependency. Also, convert.c does not depend on - g95-support.h anymore. - * convert.c: Don't include c-common.h and g95-support.h - * f95-lang.c: Don't inlude c-common.h and c-common.def (3x). - (g95_stmt_tree, g95_scope_stmt_stack, anon_aggr_type_p, - stmts_are_full_exprs_p, current_stmt_tree, - current_scope_stmt_stack): Remove. - * g95-support.h (unsigned_conversion_warning): Kill proto. - (boolean_type_node, boolean_true_node, boolean_false_node): - Don't define here. Instead, make then true tree nodes in - trans-types. - * support.c (c_global_trees): Die, C front end, die!!! - (g95_init_c_decl_hacks): Don't touch intmax_type_node, - uintmax_type_node, string_type_node and const_string_type_node. - (decl_constant_value, overflow_warning): Make static functions. - They are in death row too, though. - (default_conversion, c_expand_asm_operands): Remove. - * trans-array.c, trans-expr.c, trans-intrinsic.c, trans-stmt.c, - trans.c: Don't include c-common.h. - * trans-types.c (boolean_type_node, boolean_true_node, - boolean_false_node): Make them real tree nodes. - * trans-types.h (intmax_type_node, string_type_node, - const_string_type_node): Hack to work around C dependencies - in builtin-types.def. - -2003-06-04 Arnaud Desitter - - * decl.c (decl_types): Add some iterators-like sentinels. - * decl.c (match_attr_spec): Use them. - Use "decl_types" instead of "int". - Add cast in call to g95_match_strings. - * dump-parse-tree.c (g95_show_namespace): Use "g95_intrinsic_op" - instead of "int". - * g95.h (g95_intrinsic_op): Add some iterators-like sentinels. - (g95_interface_info): Use "g95_intrinsic_op". - * dump-parse-tree.c (g95_show_namespace): Use them. - * interface.c (g95_check_interfaces): Use them. - * module.c (read_module, write_module): Use them. - * symbol.c (g95_get_namespace, g95_free_namespace): Use them. - Use "g95_intrinsic_op". - * interface.c (check_operator_interface): Use "g95_intrinsic_op". - Add a default case in switch statement. - * intrinsic.h (g95_generic_isym_id): Moved to... - * g95.h (g95_generic_isym_id): here. - (g95_intrinsic_sym): Use "g95_generic_isym_id". - * intrinsic.c (make_generic): Use "g95_generice_isym_id". - * trans-intrinsic.c (g95_intrinsic_map_t, - g95_conv_intrinsic_lib_funtion): Use "g95_generice_isym_id". - * match.c (g95_match_intrinsic_op): Add cast in call to - g95_match_strings. - -2003-06-03 Steven Bosscher - - * support.c (skip_evaluation, warn_conversion, lvalue_p, - lvalue_or_else, pedantic_lvalue_warning, warn_for_assignment, - constant_fits_type_p, convert_and_check, - unsigned_conversion_warning): Remove these ugly remnants - we inherited from the C front end. - (function_types_compatible): Remove '#if 0'-edcode. - (build_modify_expr): Likewise. - (convert_for_assignment): Don't use the deceased functions. - The parameter fundecl is now unused. - (decl_constant_value): Always just return decl. In fact - this function is not used at present, but it might be in - the future, when we start using the tree inliner. - (overflow_warning, default_conversion, c_expand_asm_operands): - Abort when these are called, they are part of the C type - checking implementation and therefore poison to Fortran. - -2003-06-04 Steven Bosscher - - * Make-lang.in (F95_ADDITIONAL_OBJS): Don't depend on - c-pretty-print.o and c-dump.o. Add a comment on why we - depend on c-semantics.c. - * f95-lang.c (LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN): - Don't use the C front end tree dumper hook to dump the - language specific tree representation -- we don't have - one. So instead, inherit the default langhook. - -2003-06-02 Paul Brook - - * trans-expr.c (g95_conv_variable): Remove incorrent assertion. - -2003-06-02 Arnaud Desitter - - * check.c (g95_check_associated): Use proper types. Remove - extraneous argument in call to g95_error(). - -2003-06-02 Kejia Zhao - - * resolve.c (resolve_operator): Make logical operands convert to the - type with higher kind. - -2003-06-02 Kejia Zhao - - * check.c (g95_check_associated): Make sure both pointer and target has - the same type and rank. Null pointer or array section with vector - subscript as target are not allowed. - * trans.h: Declare gfor_fndecl_associated. - * trans-decl.c: (g95_build_builtin_function_decls): Initialize - gfor_fndecl_associated. - * trans-intrinsic.c (g95_conv_associated): New function. - (g95_conv_intrinsic_function): Make G95_ISYM_ASSOCIATED work. - -2003-06-02 Kejia Zhao - - * trans-array.c (g95_conv_expr_descriptor): Set the base of POINTER - according to POINTER itself rather than TARGET. - (g95_conv_expr_descriptor): Make lbound start at 1. - * trans-expr.c (g95_trans_pointer_assign): Fix a bug for Nullify. - -2003-06-01 Paul Brook - - * expr.c (g95_type_convert_binary): Make it match the standard. - * g95.texi: Remove dead link. - -2003-06-01 Steven Bosscher - - * g95.texi: Cleanup somewhat in preparation for inclusion - in GCC CVS. - -2003-05-23 Arnaud Desitter - Canqun Yang - - * resolve.c (compare_bound_int, resolve_where_shape): Proper return - type. - (g95_find_forall_index): Return proper value. - (g95_resolve_assign_in_forall, g95_resolve_forall): Use proper type to - compare the return value from g95_find_forall_index. - -2003-05-23 Arnaud Desitter - * g95.h, io.c (g95_st_label): Remove "length". - (g95_symtree): Remove "link". - (g95_case): Remove "code". - * arith.c, arith.h (g95_compare_string, g95_convert_integer, - g95_convert_real): Make an argument pointer to const. - * decl.c (colon_seen): Add a TODO. - * interface.c (g95_compare_types): Fix typo. - * interface.c (compare_interfaces): Preserve value of "p". - * intrinsic.c (sort_actual): Remove "i". - * match.c (g95_match_assign): Proper type in call to g95_match(). - * parse.c (next_free): Avoid duplicate call due to macro. - * parse.c (check_statement_label): wrong type in call to g95_error. - * primary.c (match_real_constant): Add a TODO. - * resolve.c (resolve_select): Remove useless conditional. - * simplify.c (g95_simplify_repeat): Proper assignment to - "value.character.string". - * simplify.c (g95_simplify_reshape): Wrong variable in call to - g95_error. - -2003-05-20 Canqun Yang - - * trans-stmt.c: Remove unnecessary include file defaults.h. - -2003-05-19 Lifang Zeng - - * trans-stmt.c (g95_trans_forall_loop): Handle FORALL with negative - stride. - (g95_trans_forall): Allow arbitrary number of FORALL indexes and - actual variables used as FORALL indexes. - -2003-05-15 Paul Brook - - * trans-array.c (g95_trans_static_array_pointer): Use - null_pointer_node. - (g95_trans_deferred_array): Initialize static array pointers. - * trans-expr.c (g95_conv_function_call): Use formal arglist to - correctly pass POINTER and absent CHARACTER arguments. - -2003-05-14 Lifang Zeng - - * resolve.c (g95_resolve_forall): Resolve FORALL construct/statement. - (g95_resolve_forall_body): Resolve FORALL body. - (g95_resolve_where_code_in_forall): Resolve WHERE inside FORALL. - (g95_resolve_assign_in_forall): Resolve assignment inside FORALL. - (g95_find_forall_index): Check whether the FORALL index appears in - the expression or not. - (resolve_code): Modified. - -2003-05-14 Paul Brook - - * iresolve.c (g95_resolve_spread): Convert ncopies to index_type. - -2003-05-13 Paul Brook - - * trans-types.c (g95_max_array_element_size): Now a tree node. - (g95_init_types): Work out max size properly. - (g95_get_dtype_cst): Modify to match. - -2003-05-11 Paul Brook - - * trans-io.c (add_case): Create a label decl for case labels. - -2003-05-11 Paul Brook - - * arith.c (g95_integer_index_kind): New variable. - * f95-lang.c (g95_init): Move frontend initialization here ... - (g95_post_options): ... from here. - * g95.h (g95_index_integer_kind, g95_resolve_index): Declare. - * intrinsic.c (add_functions): Use index kinds. - * iresolve.c: Convert to index_kind where needed. - * resolve.c (g95_resolve_index): Make public, use index_kind. - (resolve_array_ref): Adjust to match. - * trans-array.c: Rename g95_array_index_kind to g95_index_integer_kind. - * trans-stmt.c: Ditto. - * trans-types.c: Ditto. - * trans-types.h (g95_array_index_kind): Remove declaration. - * trans-expr.c (g95_conv_expr_present): Use null_pointer_node. - -2003-05-07 Paul Brook - - * trans-const.c (g95_conv_mpz_to_tree): Typecast constant. - * trans-intrinsic.c (g95_conv_intrinsic_bound): Convert type - of bound indices. - -2003-05-07 Paul Brook - - * trans-array.c (trans_static_array_pointer, - g95_trans_array_constructor_value, g95_conv_array_initializer, - g95_conv_structure): CONSTRUCTOR nodes only have one operand. - (g95_add_loop_ss_code): Convert subscripts to the correct type. - * trans-stmt.c (g95_trans_character_select): Ditto. - * trans-types.c (g95_init_types): Ditto. - -2003-05-07 Steven Bosscher - - * f95-lang.c (expand_function_body): Use input_line, not lineno. - * trans-decl.c (g95_generate_function_code, - g95_generate_constructors): Likewise. - * trans.c (g95_trans_runtime_check, g95_add_block_to_block, - g95_get_backend_locus, g95_set_backend_locus, g95_trans_code): - Likewise. - -2003-05-07 Kejia Zhao - * trans-types.c (g95_get_derived_type): Fix bug for DERIVED type - with components point to the DERIVED type itself, and two DERIVED - type with components point to each other. - * trans-expr.c (g95_conv_componet_ref): Modified - -2003-05-07 Kejia Zhao - * trans-expr.c (g95_conv_expr): Translate EXPR_NULL into - null_pointer_node. - (g95_trans_pointer_assign): Implement Nullify. - -2003-05-01 Paul Brook - - * trans-array.c (g95_walk_function_expr): Cope with NULL esym. - * trans-decl.c (g95_get_symbol_decl): Don't mangle dummy functions. - -2003-05-01 Paul Brook - - * trans-array.c, trans.c, trans-expr.c, trans-intrinsic.c, - trans-stmt.c: Replace empty_stmt_node with build_empty_stmt () and - IS_EMPTY_STMT. - -2003-05-01 Canqun Yang - - * trans-stmt.c (g95_trans_integer_select): Add a parameter to build - CASE_LABEL_EXPR. - -2003-04-28 Paul Brook - - * iresolve.c (g95_resolve_transpose): COMPLEX types are twice as big - as their kind suggests. - (g95_resolve_reshape): Ditto. - -2003-04-28 Chun Huang - - * trans-expr.c (g95_conv_substring_expr): New function. - (g95_conv_expr): Use it. - -2003-04-28 Paul Brook - - * iresolve.c (g95_resolve_transpose): Make it match the - implementation. - * trans-intrinsic.c (g95_is_intrinsic_libcall): Add TRANSPOSE. - -2003-04-18 Steven Bosscher - - * trans-types.c (g95_add_field_to_struct): New function to - add a field to a UNION_TYPE or RECORD_TYPE. - * trans-types.h (g95_add_field_to_struct): Prototype. - (g95_get_derived_type): Use g95_add_field_to_struct to add - components. - * trans-io.c (g95_add_field): Remove. - (ADD_FIELD): Use new g95_add_field_to_struct function. - (ADD_STRING): Likewise. - * trans-stmt.c (g95_trans_select): Likewise. - (g95_add_field): Remove duplicated function. - -2003-04-18 Canqun Yang - - Port implementation for CHARACTER SELECT from Andy's tree. - * trans-stmt.c (g95_trans_character_select): Implement character - select. (g95_add_field): New function. - * trans-decl.c: Declare 'gfor_gndecl_select_string'. - (g95_build_builtin_function_decls): Add 'gfor_fndecl_select_string'. - * g95.h (struct g95_case): Add field 'int n'. - * trans.h: Declare 'gfor_fndecl_select_string'. - -2003-04-18 Steven Bosscher - - * bbt.c (duplicate_key, g95_insert_bbt_with_overlap): Remove. - (g95_insert_bbd): Die on duplicates. - * g95.h (g95_insert_bbt_with_overlap): Delete prototype. - -2003-04-14 Steven Bosscher - - * g95.texi: Require GMP 4.0 -- like we actually - do. Explain the testsuite and what-goes-where. - Don't use undefined texinfo symbol. Break very - long line. Remove finished item from the list - of open projects. - -2003-04-11 Canqun Yang - - * trans-stmt.c (g95_evaluate_where_mask): Give mask temporaries - LOGICAL type. - -2003-04-10 Canqun Yang - - * trans-stmt.c (g95_trans_forall): Implement WHERE inside FORALL. - (g95_trans_forall_body): New function. - -2003-04-10 Canqun Yang - - * resolve.c (resove_where): New function. - (resolve_where_shape): New function. - (resolve_code): Add call to 'resolve_where' - * trans-stmt.c (g95_trans_where): Modified. - (g95_trans_where_2): New function. - (g95_trans_where_assign): New function. - (g95_evaluate_where_mask): New function. - (g95_add_to_stmt_list): New function. - (g95_get_temp_expr): New function. - * trans.h (where_stmt_list): New structure. - -2003-04-10 Paul Brook - - * g95spec.c (DEFAULT_SWITCH_TAKES_ARG): Remove. - (DEFAULT_WORD_SWITCH_TAKES_ARG): Ditto. - -2003-04-10 Steven Bosscher - - Update after mainline -> tree-ssa-branch merge. - * f95-lang.c (g95_mark_addressable): Update put_var_into_stack - call. - (g95_init): Update for new lang_hooks definition. - (g95_post_options): New langhook. - (LANG_HOOK_POST_OPTIONS): Clear, then define to g95_post_options. - * scanner.c (g95_new_file): Comment update. - -2003-04-09 Arnaud Desitter - - * g95.h, lang-options.h: Add -Wimplicit-interface. - * options.c (g95_init_options, g95_parse_arg): Set it. - * interface.c (check_intents): Warn about call with implicit - interface. - * resolve.c (resolve_unknown_f, resolve_unknown_s): Call - g95_procedure_use. - -2003-04-05 Paul Brook - - * iresolve.c (g95_resolve_spread): Don't resole based on type. - * trans-intrinsic.c (g95_is_intrinsic_libcall): Add G95_ISYM_SPREAD. - -2003-03-29 Paul Brook - - * iresolve.c (g95_resolve_pack): Don't bother resolving based on type. - (g95_resolve_unpack): Ditto. - * trans-intrinsic.c (g95_conv_intrinsic_merge): New Function. - (g95_conv_intrinsic_function): Use it. Remove PACK and UNPACK. - (g95_is_intrinsic_libcall): Add PACK and UNPACK. - -2003-03-25 Paul Brook - - * arith.c (g95_unary_user, g95_user): Remove dead functions. - * arith.h: Ditto. - * array.c (g95_free_array_ref): Ditto. - * g95.h: Ditto. - * symbol.c (g95_use_derived_tree): Ditto. - * intrinsic.c (add_functions): Use simplification for SCALE. - * primary.c (g95_match_rvalue): Test sym, not symtree. - -2003-03-25 Paul Brook - - * trans-decl.c (build_function_decl): Add parameter before it gets - turned into a constant. - * iresolve.c (g95_resolve_eoshift): Resolve to a useful name. - * trans-intrinsic.c (g95_is_intrinsic_libcall): Add G95_ISYM_EOSHIFT. - * trans-decl.c (g95_create_module_variable): Don't pushdecl constants. - -2003-03-22 Paul Brook - - * trans-array.c (g95_conv_array_initializer): Allow scalar - expressions. - * trans-decl.c (g95_finish_var_decl): Result variables are not - module variables. - * trans-intrinsic.c (g95_conv_intrinsic_transfer): New function. - (g95_conv_intrinsic_function): Use it. - * trans-types.h (g95_type_spec): Remove dead declaration. - -2003-03-21 Paul Brook - - * trans-decl.c (g95_build_function_decl): Mark string parameters. - -2003-03-20 Paul Brook - - * trans-decl.c (g95_build_function_decl): Put character length - parameters at the end of the function declaration. - * trans-expr.c (g95_conv_function_call): Ditto. - * trans-types.c (g95_get_function_type): Ditto. - -2003-03-20 Arnaud Desitter - - * resolve.c (resolve_formal_arglist): Don't impose intent for - procedure arguments of pure functions. - (resolve_select): Remove redundant assignment. - -2003-03-19 Arnaud Desitter - - * arith.c (validate_logical), g95.h, options.c (g95_init_options): - Remove option l1. - * g95.h, intrinsic.c(g95_get_intrinsic_sub_symbol): Add const. - * iresolve.c(g95_resolve_cpu_time, g95_resolve_random_number): Add - const. - * lang-options.h: Remove -finline-repack-arrays. Add -fg77-calls. - Order list. - * symbol.c (g95_add_type): Fix typo in comment. - - -2003-03-16 Paul Brook - - * dump-parse-tree.c (g95_show_code_node): Print resolved sym name. - * expr.c (g95_build_call): Remove. - * f95-lang.c (puchdecl_top_level): New function. - * g95.h (g95_code): Store resolved symbol, not just the name. - * intrinsic.c (g95_intrinsic_namespace): New global namespace. - (g95_intirinsic_init_1, g95_intrinsic_done_1): Use it. - (g95_get_intrinsic_sub_symbol): New function. - * iresolve.c (g95_resolve_cpu_time): Use it. - (g95_resolve_random_number): Ditto. - * resolve.c: Set code->resolved_sym instead of code->sub_name. - * trans-decl.c (g95_get_extern_function_decl): Give external decls - the correct DECL_CONTEXT. Add global symbold to the global scope. - * trans-stmt.c (g95_trans_code): Remove hacks now the fronted is - fixed. - -2003-03-16 Paul Brook - - * g95.h (g95_option_t): Add g77_calls. Remove inline_repack_arrays. - * options.c (g95_parse_arg): Ditto. - * module.c (mio_symbol_attribute): Handle the always_explicit bit. - * resolve.c (resolve_formal_arglist): The always_explicit sould be set - for the procedure, not the parameter. - * trans-array.c (g95_trans_g77_array): New function. - (g95_trans_assumed_size): Use it. - (g95_trans_dummy_array_bias): Ditto. - (g95_conv_array_parameter): Handle g77 arrays. Move existing body ... - (g95_conv_expr_descriptor): ... to here. Update callers. - * trans-decl.c (g95_build_dummy_array_decl): Handle g77 arrays. - (g95_get_symbol_decl): Avoid processing g77 arrays multiple times. - * trans-expr.c (g95_conv_function_call): Handle g77 arrays. - * trans-intrinsic.c (g95_get_symbol_for_expr): Never use g77 arrays. - * trans-types.c (g95_is_nodesc_array): Handle g77 arrays. - (g95_sym_type): Ditto. - -2003-03-15 Paul Brook - - * trans-array.c (g95_walk_elemental_function_args): Don't amputate the - first chain. - * trans-expr.c (g95_conv_function_call): Use the resolved symbol. - -2003-03-14 Paul Brook - - * trans-array.c (g95_array_is_packed): Remove. - (g95_conv_array_base): Correctly handle all descriptorless cases. - (g95_conv_array_stride): Use descriptorless strides. - (g95_trans_dummy_array_bias): Don't always repack the array. - (g95_build_dummy_array_decl): Automatic dummy arrays are only partial - packed. - * trans-types.c (g95_get_nodesc_array_type): Differentiate between - dummy and non-dummy arrays... - (g95_sym_type, g95_get_derived_type): ... like these. - (g95_get_array_type_bounds): Allow discontiguous arrays. - -2003-03-12 Paul Brook - - * array.c (g95_resolve_array_spec): Fix comment. - * g95.h (symbol_attributes): New flag always_explicit. - * resolve.c (resolve_formal_arglist): Set it always_explicit. - * iresolve.c (g95_resolve_lbound, g95_resolve_ubound): Simplify. - * trans-array.c (g95_conv_descriptor_dimension): Remove dead assert. - (g95_trans_array_bounds): Allow assumed shape arrays. - (g95_trans_repack_array): Remove. - (g95_trans_dummy_array_bias): Rewite to use descriptorless arrays. - * trans-decl.c (g95_build_qualified_array): Only ignore absent - bounds for assumed size arrays. - (g95_build_dummy_array_decl): Use descriptorless arrays. - * trans-expr.c (g95_conv_expr_present): Allow descriptorless arrays. - (g95_trans_pointer_assign): Fix typo. - * trans-intrinsic.c (g95_conv_intrinsic_function_args): Remove dead - code. - (g95_conv_intrinsic_bound): Rewrite to handle descriptorless arrays. - * trans-types.c (g95_get_nodesc_array_type): Allow non-packed arrays. - Also modify callers. - * trans-types.h (g95_get_nodesc_array_type): Modify prototype. - -2003-03-08 Paul Brook - - * trans-array.c (g95_walk_elemental_functions): Don't reverse the SS. - (g95_conv_array_ubound): Provide dummy value for assumed size arrays. - * resolve.c (compare_spec_to_ref): Allow full array sections. - -2003-03-08 Paul Brook - - * expr.c (g95_simplify_expr): Also simplify array index and - substring expressions. - * resolve.c (compare_spec_to_ref): Check for assumed size bounds. - * trans-array.c (g95_trans_array_bounds): New function. - (g95_trans_auto_array_allocation): Use it. - (g95_trans_assumed_size): Rewrite. - * trans-decl.c (gfor_fndecl_in_pack, gfor_fndecl_in_unpack): Declare. - (gfor_fndecl_repack): Remove. - (g95_build_qualified_array): Handle absent upper bounds. - (g95_build_dummy_array_decl): Assumed shape arrays are descriptorless. - (g95_get_symbol_decl): Update. - (g95_build_intrinsic_function_decls): Initialize new decls. - * trans.h (gfor_fndecl_in_pack, gfor_fndecl_in_unpack): Declare. - (gfor_fndecl_repack): Remove. - * trans-io.c (g95_build_io_library_fndecls): Correct prototypes. - * trans-types.c: (g95_build_array_type): Merge duplicated code.. - (g95_get_nodesc_array_type): Handle absent bounds. - * trans-types.h (g95_get_nodesc_array_type): Declare. - -2003-03-04 Paul Brook - - * f95-lang.c (DEF_FUNCTION_TYPE_VAR_3): Define before including - builtin-types.def. - -2003-03-02 Paul Brook - - * options.c (g95_init_options): Drfault to 1. - (g95_pasrse_arg): Add -frepack-arrays, use strcmp. - * trans-array.c (g95_conv_array_data, g95_conv_array_base, - g95_conv_array_stride,g95_conv_array_lbound, g95_conv_array_ubound): - Handle non-constant size automatic arrays. - (g95_conv_section_upper_bound, g95_conv_section_startstride): Use - generic bound functions. - (g95_trans_auto_array_allocation): Don't create a descriptor. - (g95_trans_assumed_size): New function (broken). - (g95_trans_dummy_array_bias): Remove unused var. - * trans-array.h (g95_trans_assumed_size): Declare. - * trans-decl.c (create_index_var): New fuction. - (g95_build_qualified_array): New function. - (g95_get_symbol_decl): Use it. - (g95_trans_deferred_vars): Handle assumed shape seperately. - * trans-types.c (get_element_type): Handle heap allocated arrays. - (g95_is_nodesc_array): Include non-const size arrays. - (g95_get_nodesc_array_type): Ditto. - -2003-02-23 Paul Brook - - * trans-array.c (g95_array_init_size): Should use stride, not size of - last dimension. - -2003-02-18 Paul Brook - - * trans-expr.c (g95_trans_arrayfunc_assign): Nove elemental check - after intrinsic function check. - -2003-02-18 Arnaud Desitter - - * io.c (match_io): Fix missing return value and remove useless - assignment. - * match.c (g95_match): Remove useless assignment. - * module.c (parse_string): Remove useless post increment. - * simplify.c (g95_simplify_verify): Remove useless assignment. - -2003-02-15 Paul Brook - - * expr.c (restricted_intrinsic): Handle bad values gracefully. - * g95.h (symbol_attribute): Add referenced member. - (g95_symbol): Add dummy_order member. - (g95_set_sym_referenced): Declare. - * match.c (g95_match_assignment, g95_match_call): Use it - * primary.c (match_actual_arg, g95_match_rvalue, - g95_match_variable): Ditto. - * symbol.c (next_dummy_order): New variable. - (g95_set_sym_referenced): New function. - (check_done): New function. - (g95_add_*): Use it. - * trans-decl.c: Make formatting conform to GCC standards. - (g95_defer_symbol_init): Add dummy variables in the right order. - (g95_get_symbol_decl): Only accept referenced variables. - (g95_create_module_variable): Module variables are always required. - (generatr_local_decls): New function. - (generate_local_vars): New function. - (g95_generate_function_code): Use it. - -2003-02-13 Paul Brook - - * trans-decl.c (g95_conv_struct_cons): Remove. - (g95_get_symbol_decl): Use g95_conv_expr for structure initializers. - * trans-expr.c (g95_conv_structure): New function. - (g95_conv_expr): Use it. - -2003-02-09 Paul Brook - - * trans-array.c (g95_array_init_size): Don't evaluate the linit - expressions multiple times. - (g95_trans_auto_arry_allocation): Use pointer not tmp. - -2003-02-08 Paul Brook - - * module.c (mio_symtree_ref): Declare as static. - (mio_expr): Remove dead code. - (read_module): Set the symtree link for fixups. - * trans-intrinsic.c (g95_conv_intrinsic_round): Rename... - (build_round_expr): ... to this. - (g95_conv_intrinsic_aint): New function. - (g95_conv_intrinsic_function): Use it. - -2003-02-08 Paul Brook - - * trans-array.c (g95_trans_array_constructor_value): Use the acutal - offset after modificaton, not the increment expression. - * dependency.c: Kill excess whitespace. - -2003-02-07 Sanjiv Gupta - - * dependency.h: Remove some function declarations. - * dependency.c (get_no_of_elements): Change this function not to - return int. - * other: Add comments for all modified functions. - -2003-02-06 Paul Brook - - * g95spec.c (lang_specific_functions): Fix initializer warning. - * dump-parse-tree.c (g95_show_expr): Use typespec instead of symtree - for structure type names. - * trans-decl.c (g95_cons_structure_cons): New function. - (g95_get_symbol_decl): Use it. - * trans-expr.c (g95_conv_component_ref): Remove duplicate pointer - referencing code. - -2003-02-06 Arnaud Desitter - - * resolve.c (compare_cases): Add const to casts. - -2003-01-30 Arnaud Desitter - - * g95.h (g95_check_f): Change a1 to f1m. - * intrinsic.c (add_sym_1m, check_specific, - g95_intrinsic_func_interface): Use it. - - * module.c (init_pi_tree): Remove useless cast. - (fp2): Fix argument type. - - * parse.c (parse_select_block): Add comment. - -2003-02-05 Toon Moene - - * lang-options.h: Fix warning involving C90 concatenated - strings. - -2003-02-06 Steven Bosscher - Arnaud Desitter - - * io.c (format_asterisk): Complete initializer to kill warning. - * arith.c (DEF_G95_INTEGER_KIND, DEF_G95_LOGICAL_KIND, - DEF_G95_REAL_KIND, MPZ_NULL, MPF_NULL): New #defines. - (g95_integer_kinds, g95_logical_kinds, g95_real_kinds): Use the - new defines to complete initializers. Kills all warnings. - - * Make-lang.in: Comment cleanup. - -2003-02-05 Paul Brook - - * array.c (g95_free_constructor): Handle NULL expressions. - * resolve.c (resolve_structure_cons): Ditto. - * decl.c (g95_match_null): New Function. - (variable_decl): Use it. - * module.c (mio_expr): Don't bother saving symtree for EXPR_STRUCTURE. - * primary.c (g95_match_runtime): Don't use symtree for EXPR_STRUCTURE. - * trans-types.c (g95_set_decl_attributes): Remove empty function. - -2003-02-05 Paul Brook - - * trans.h (build1_v): New macro. - (build_v): Remove pointless and incorrect prototype. - * various: Use build1_v for GOTO_EXPR and LABEL_EXPRs. - * f95-lang.c (g95_init_builtin_decls): DEF_BUILTIN takes 10 args. - -2003-02-01 Steven Bosscher - - * Make-lang.in (F95_OBJS): Remove one more dead file. - -2003-02-01 Paul Brook - - * lang-specs.h: Don't pass -ffixed-form to the linker. - * trans-decl.c (g95_generate_function_code): Clear saved decl chain. - -2003-02-01 Paul Brook - - * Make-lang.in (F95_OBJS): Remove dead files. - * trans-array.c (g95_array_init_size): Do the right thing when - ubound=NULL. - * trans-decl.c (g95_generate_function_code): Initialize deffered - symbol list before translating contained subroutines. - * trans-expr.c (g95_conv_expr, g95_conv_expr_reference): Substitute - scalar invariant values here... - (g95_conv_variable, g95_conv_function_call): ... instead of here ... - * trans-intrinsic.c (g95_conv_intrinsic_function_args): .. and here. - -2003-01-29 Paul Brook - - * trans-array.c (g95_add_loop_code): Put pre code in the right block. - (g95_walk_elemental_function_args): Reverse chains before adding. - (g95_reverse_ss): Move about a bit. - * trans-expr.c (g95_conv_function_call): Handle scalar intrinsic - function arguments. - -2003-01-28 Paul Brook - - * intrinsic.c (resolve_intrinsic): Use correct union member. - * trans-array.c (g95_trans_dummy_array_bias): Don't touch absent - parameters. - * trans-decl.c (g95_get_symbol_decl): Don't translate initializers for - use associated variables. - * trans-intrinsic.c (g95_conv_intrinsic_present): Move body ... - * trans-expr.c (g95_conv_expr_present): ... to here. - * trans.h: Declare it. - * trans-types.c (g95_sym_type): Assume subroutine if not specified. - -2003-01-28 Arnaud Desitter - - * array.c (expand_iterator): Suppress useless assignment. - * decl.c (match_char_spec): Ditto. - * io.c (match_io_iterator): Ditto. - * primary.c (match_real_constant): Ditto. - * interface.c (fold_unary, g95_free_interface, g95_extend_expr): - Ditto. Also, use g95_intrinsic_op not int for intrinsic operators. - * matchexp.c (match_add_operand, match_level_5): Likewise. - * module.c (parse_atom, find_enum): Likewise. - * resolve.c: move #include - (resolve_select): Fix serious typo. - -2003-01-28 Steven Bosscher - - * Make-lang.in: Don't build with broken tree-ssa-pre. - -2003-01-28 Steven Bosscher - - * resolve.c (resolve_index): Add a TODO. - * symbol.c: Remove useless "#include ". - -2003-01-27 Paul Brook - - * check.c (check_rest): Allow different type kinds as an extension. - * g95.h (g95_resolve_f): Add f1m. - * intrinsic.c (add_sym_1m, resolve_intrinsic): Use it. - * intrinsic.h: Chenge prototypes for MIN and MAX. - * iresolve.c (g95_resolve_minmax): New function. - (g95_resolve_min, g95_resolve_max): Use it. - * trans-intrinsic.c (g95_trans_intrinsic_minmax): Only evaluate - arguments once. - (g95_conv_intrinsic_present): Fix logic. - -2003-01-27 Steven Bossche - - * g95.h (g95_case): Don't be a tree, be a double linked list. - * match.c (match_case_selector): Remove redundant semantics check. - Clean up a few goto's to make it a tiny little bit faster. - * resolve.c (case_tree): Die. - (compare_cases): Accept and compare unbounded cases too. - (check_case_overlap): Don't build a tree. Instead, merge-sort the - whole list of g95_cases passed from resolve_select. - (sane_logical_select): Die. - (check_case_expr): Return FAILURE if a CASE label is of the wrong - type kind. - (resolve_select): Fixup case expression for computed GOTOs, put it - in expr, not expr2, for easier handing in the parse tree dumper and - the code generator. Rewrite the rest of the function: Kill - unreachable case labels and unreachable case blocks. - * dump-parse-tree.c (g95_show_code_node): Always dump expr for - an EXEC_SELECT, not case2 anymore. - * trans-const.c (g95_conv_constant_to_tree): New function. - (g95_conv_constant): Use it. - * trans-const.h: Declare prototype for the new function. - * trans-stmt.c (g95_trans_integer_select, g95_trans_logical_select, - g95_trans_character_select): New static functions. - (g95_trans_select): Rewrite. - -2003-01-26 Paul Brook - - * intrinsic.c (add_fnctions): Properly add dreal. - * trans-intrinsic.c (g95_conv_intrinsic_present): New function. - (g95_conv_intrinsic_function): Use it. - * trans-io.c (build_dt): Abort on internal files (unimplemented). - -2003-01-26 Paul Brook - - Widespread changes to the handling of symbols in expressions. These - are now linked via g95_symtree nodes. - * parse.c (g95_fixup_sibling symbols): New function. - (parse_contained): Use it. - * g95.h (symbol_attribute): Add contained. Indicates a symbol is a - contained procedure that has bee correctly fixed up. - (g95_code, g95_expr): Point to a g95_symtree, not a g95_symbol. - -2003-01-24 Paul Brook - - * trans-array.c (g95_walk_expr): Function result attributes are in - sym->result. - * trans-expr.c (g95_conv_function_call, - g95_trans_arrayfunc_assign): Ditto. - * trans-decl.c (g95_get_symbol_for_expr): Set sym->result. - -2003-01-23 Steven Bosscher - - * expr.c (check_restricted): Fix error message. - * symbol.c (free_st_labels): Plug memleak. - -2003-01-22 Steven Bosscher - - * arith.c (reduce_unary, reduce_binary_ac, reduce_binary_ca, - reduce_binary_aa, reduce_binary, eval_intrinsic, - eval_intrinsic_f2): Use typesafe prototypes for eval functions. - * g95.h (g95_check_f, g95_simplify_f, g95_resolve_f): New unions - for typesafe intrinsics helper functions. - (g95_intrinsic_sym): Use them. - * intrinsic.c (do_check, add_sym, add_sym_0, add_sym_1, - add_sym_1s, add_sym_1m, add_sym_2, add_sym_3, add_sym_4, - add_sym_5, add_conv, resolve_intrinsic, do_simplify, - check_specific, g95_intrinsic_func_interface, - g95_intrinsic_sub_interface): Adjust all calls to intrinsics - helper functions. - * trans-decl.c (g95_get_extern_function_decl): Likewise. - * Make-lang.in: Don't disable warnings for strict prototypes - any longer, everything is typesafe now. - -2003-01-22 Steven Bosscher - - * bbt.c (duplicate_node): Make static. - * module.c (module_name): Make static. - * scanner.c (include_dirs): Make static. - -2003-01-20 Steven Bosscher - - Hard coded _gfor_'s should not show up anymore. - * g95.h (PREFIX): New macro. - * iresolve.c (g95_resolve_cpu_time): Use PREFIX, not - hard-coded "_gfor". - (g95_resolve_random_number): Likewise. - * trans-decl.c (g95_build_intrinsic_function_decls): Likewise. - * trans-io.c: Remove 'prefix' macro. Replace all uses with - the new PREFIX macro from g95.h. - -2003-01-20 Steven Bosscher - - The troubles of forking... Andy implemented this just now too. - Let's stick to that and keep the trees close. - * g95.h (g95_st_label): 'format' member is now a g95_expr. - * io.c: Revert previous changes. - (g95_match_format): Match the format string as a character - literal expression. - * match.h (g95_statement_label): Declare external. - * parse.c: Revert previous changes. - * symbol.c (g95_free_st_label): Free a g95_expr instead - if a 'char *'. - * trans-io.c: Revert previous changes. - (build_dt): Use set_string to set the format string. - -2003-01-20 Steven Bosscher - - * io.c (format_string): Make non-static. - (g95_match_format): Remember the format string. - (terminate_io): Add I/O termination for empty I/O lists. - * match.h: Declare external format_string. - * parse.c (check_statement_label): Attack the format string - to a format label for FORMAT statements. - * trans-io.c (g95_add_field): Define prefix macro. Replace - all uses of PREFIX define with a use of this macro. - (build_dt): Implement formatted I/O for format labels. - -2003-01-20 Steven Bosscher - - * lang-options.h: Kill "-std=F". - * options.c: Remove unimplemented "-std=F". Modify - web address. - * misc.c (g95_terminal_width): New function. - * error.c (g95_error_init_1): Use g95_terminal_width. - * g95.h: Add prototype for g95_terminal_width, remove - fmode flag. - -2003-01-19 Steven Bosscher - - * Make-lang.in: Fix typo. - -2003-01-18 Steven Bosscher - - * g95.h (struct g95_case): Remove unused cruft, new member - 'where' to keep track of the locus of the default case. - * match.c (g95_match_case): Add locus to the current case. - (match_case_selector): Likewise. - * parse.c (parse_select_block): Move semantics check for - multiple DEFAULT cases out of here to... - * resolve.c (check_case_overlap): ...here. Return sooner - when possible. - (check_case_expr): Take two g95_cases now, use to sure the - expression kinds are the same. - (resolve_select): Cleanup. - -2003-01-18 Paul Brook - - * trans-io.c: Fix typos in ported IO work (set_fla[tg]). - * trans-decl.c (g95_set_symbol_decl): Handle non-array result - variables. - (g95_get_extern_function_decl): Put decls in the correct context. - -2003-01-18 Steven Bosscher - - * trans-io.c: Port changes from Andy to set ERR flag. - -2003-01-17 Paul Brook - - * trans-array.c: Add various comments. - (g95_ss_terminator): Declare as const. - (g95_walk_expr): Remove first parameter and update all callers. - (g95_walk_op_expr): Initialize scalar SS properly. - * trans-array.h (g95_walk_expr): Update prototype. - * trans-expr.c: Update for new g95_walk_expr. - * trans-intrinsic.c: Ditto. - * trans-io.c: Ditto. - * trans.h: Various comments for SS chains. - -2003-01-17 Paul Brook - - * intrinsic.h (g95_generic_isym_id): Add G95_ISYM_S?_KIND, SPACING - and RRSPACING. - * intrinsic.c (add_functions): Use them. - * trans-intrinsic.c (g95_conv_intrinsic_function): Ditto. - * trans-expr.c (g95_conv_expr_lhs): Abort on impossible error. - -2003-01-17 Steven Bosscher - - Fallout of a small merge conflict: - * intrinsic.c: Un-revert lost patch (G95_ISYM_SCALE). - -2003-01-17 Steven Bosscher - - * initrinsic.c: New add_sym_* functions for strong typing. - (add_conv): Make prototype strict. - * dump-parse-tree.c, dependency.c: Include config.h - * resolve.c, trans-io.c: Fix typos. - -2003-01-17 Steven Bosscher - - * dump-parse-tree.c (g95_show_code_node): Show the - condition for a computed GOTO that was transformed - to a SELECT CASE construct. - * resolve.c (check_case_overlap): Revert previous switch - to treaps, it was too slow and didn't catch all trouble. - (resolve_symbol): Be more flexible about module procedures. - * symbol.c (check_conflict): Point to relevant section in - the standard for dubious conflict. Allow procedure - dummy arguments to be optional again. - * trans-io (add_field): Rename to g95_add_field. Change - all callers. - * trans-stmt (trans_select): Handle unbounded cases for - integer SELECT CASE constructs. Fix/add more comment. - -2003-01-17 Steven Bosscher - - * g95.h: Uses GCC's function attribute macros. - * error.c, module.c, parse.c, g95.h: More function attributes. - -2003-01-16 Steven Bosscher - Forgot a file... - * trans-decl.c (get_label_decl): Use TREE_LINENO instead - of DECL_SOURCE_LINE, and TREE_FILENAME instead of - DECL_SOURCE_FILE. - -2003-01-16 Steven Bosscher - - * f95-lang.c (pushdecl): Use TREE_LINENO instead of - DECL_SOURCE_LINE. - * trans.c (g95_trans_code): Use annotate_all_with_file_line - instead of nowdead wrap_all_with_wfl. - -2003-01-14 Steven Bosscher - - * parse.c (g95_parse_file): In verbose mode, dump the parse tree - before generating code, so we can still see it even if the code - generation phase dies. - -2003-01-14 Steven Bosscher - - * decl.c (build_sym): Split out initialization expression parts... - (add_init_expr_to_sym): ...to here. - (variable_decl): Add the symbol following an attribute list to the - symbol tree before parsing the optional initialization expression - if the symbol is not of a derived type. - * primary.c (g95_match_rvalue): Don't assume a symbol always has - a value if it is a PARAMETER. - -2003-01-14 Steven Bosscher - - * misc.c: Don't #include - * module.c: Ditto. Kill uses of mtrace, muntrace. If there - ever was a glibc bug, then either this was never reported to - glibc people, or it has been fixed for so long that there's - no information you can find about it, anywhere. - -2003-01-14 Steven Bosscher - - Fix warnings: - * module.c (attr_bits, bt_types, array_spec_types): - Switch 'const' and 'static'. - * iresolve.c (g95_resolve_reshape): Make __resolve0 non-'const'. - - GNU'ify source code: - * trans-io.c: Numerous fixes, one fixed warning and a few - TODO markers so that we don't forget about them. - -2003-01-13 Paul Brook - - * intrinsic.c (add_functions): Add G95_ISYM_SCALE. - * intrinsic.h (g95_generic_isym_id): Remove bogus G95_ISYM_ANINIT. - Add G95_ISYM_SCALE. - * trans-intrinsic.c (g95_conv_intrinsic_function): Ditto - * match.c (g95_match_stop): Fix dumb == -> != error. - -2003-01-13 Steven Bosscher - - * dump-parse-tree.c (show_indent): Add line breaks. This - whole dumping process needs cleanups. - * f95-lang.c (g95_mark_addressable): Fix prototype to match - the langhook. Fix 'return's accordingly. - * g95-support.h: Adjust prototype. - * g95.h: Add 'no_backend' member to 'g95_option_t' struct. - * lang-options.h: Add '-fsyntax-only'. - * options.c (g95_init_options): Init 'no_backend'. - (g95_parse_arg): Deal with '-fsyntax-only'. - * parse.c (g95_parse_file): Do not generate code if 'no_backend' - is set. - -2003-01-13 Steven Bosscher - Patch from Arnaud - * resolve.c (resolve_symbol): Assumed shape arrays must be dummy - arguments. Also make sure that if a symbol is marked INTRINSIC, - an intrinsic with the symbol's name actually exists. - (check_conflict): Make EXTERNAL and DIMENSION attributes conflict. - Do not allow PROCEDURES to have the SAVE, POINTER, TARGET, - ALLOCATABLE, RESULT, IN_NAMESPACE, OPTIONAL or FUNCTION attribute. - -2003-01-13 Steven Bosscher - - * resolve.c (resolve_contained_functions): Fix condition, don't - throw internal_error if a child namespace has no name. Apparently - this can be the case? - -2003-01-11 Paul Brook - - Port changes from Andy's tree: - * g95.h (g95_code): Add stop_code. - * match.c (g95_match_stop): Detter syntax checking. - * resolve.c (resolve_generic_f0): Return match type. - (resolve_generic_f): Remove dead/duplicated code. - (resolve_specific_f): Ditto. - * dump-parse-tree.c (g95_show_code_node): Handle new STOP format. - * trans-decl.c (gfor_fndel_stop_*): New fndecl nodes. - * trans-stmt.c (g95_trans_stop): Handle new STOP format. - -2003-01-11 Paul Brook - - * trans-array.c: Various documentation/comment changes. - * trans-stmt.c: Ditto. - - -2003-01-10 Paul Brook - - * options.c/h: Add -fdump-parse-tree as alias of -v. - -2003-01-10 Steven Bosscher - - * dump-parse-tree.c (g95_show_namespace): Fixed another - typo. Sorry, it's Friday... - -2003-01-10 Steven Bosscher - - Spotted by Tobi: - * trans-array.c, trans-array.h, trans.c, trans-const.c, - trans-const.h, trans-decl.c, trans-expr.c, trans.h - trans-intrinsic.c, trans-io.c, trans-stmt.c, trans-stmt.h - trans-types.c: Fix bogus copyright years, add 2003. - * trans-types.h: Give copyright header. - -2003-01-10 Steven Bosscher - - * dump-parse-tree.c (g95_show_namespace): Fixed typo. - * expr.c, options.c, scanner.c: Add some more 'const' markers. - * intrinsic.c: Some constant strings moved to read-only memory. - * io.c (format_asterisk): Move to... - * g95.h: ...here. - -2003-01-10 Steven Bosscher - - * dump-parse-tree.c (g95_show_namespace): Dump implicit - types for ranges instead of per-letter. Indent the - 'CONTAINS' just like everything else. - * resolve.c (resolve_contained_functions): Clarify comment. - Explain non-obvious conditional expression. Improve - diagnostics if tyoe cannot be resolved. - Port semi-fix from Andy's tree: - (was_declared): Move up before first use. - (generic_sym, specific_sym): New functions. Code moved - out if procedure_kind. - (procedure_kind): Simplify using new functions. - (resolve_generic_f): Make sure the functions we find in - a parent namespace is generic. - (resolve_specific_f): Ditto for specific functions. - -2003-01-10 Steven Bosscher - - * trans-stmt.c, trans.c: Fix some code style issues. Add - some more comment (but still not enough!). - -2003-01-10 Steven Bosscher - - * symbol.c (flavors, procedures, intents, acces_types, - access_types, ifsrc_types): Make const. - * misc.c (g95_string2code): Make 'm' param 'const'. - * module.c (find_enum, write_atom, mio_name): Make - 'm' param 'const'. - (attr_bits, bt_types, array_spec_types, array_ref_types, - ref_types, expr_types): Make const. - * g95.h: Adjust external decls. - -2003-01-09 Paul Brook - - * Testsuite: Add a load of new cases. - -2003-01-08 Steven Bosscher - - * Make-file.in: Add dependency on back end header files; - a parallel build should work now. - * f95-lang-c (lang_identifier): Remove bogus comment. - (g95_be_parse_file): Fix prototype. - (g95_init): Make static. - (g95_finish): Make static. - * error.c (g95_syntax_error): Kill. Make define in... - * g95.h (g95_syntax_error): Define. - (g95.options): Make 'source' member 'const'. - * interface.c (g95_match_interface): Explain - hard-to-read condition. - (g95_match_end_interface): Ditto. - * trans_const.c (g95_build_string_const): Make 's' parameter - 'const'. - * trans_const.h: Adjust protoype accordingly. - * trans-decl.c: Include tree-dump.h - (g95_generate_function_code): Build fixes for recent changes - in the tree-ssa branch. - -2003-01-08 Steven Bosscher - - * format.c: Kill, move code from here... - * io.c: ...to here. - * Make-lang.in: Adjust. - * MANIFEST: Ditto. - * match.h: Ditto. - * BUGS: Mention where to submit bugs. Move old content... - * TODO: ...to here. New file. - -2003-01-08 Steven Bosscher - Fix most warnings, and suppress the ones we can't fix for now. - * Make-lang.in: Suppress warnings about bad proto's in g95.h, - these warnings just clutter the screen and there's not much - we can do about them for now anyway. - * check.c, iresolve.c: Mark unused function parameters. - * dump-parse-tree.c (g95_show_array_spec): Punt on AS_UNKNOWN, - they should be resolved before they get here. - * error.c: Remove unused FILE *status_out. - * f95-lang.c (g95_init): Remove bogus cast. - * Many files: Make things 'const' where required. - * g95.h: Fix prototypes for all modified functions above. - (g95_options): Remove 'object' member. - -2003-01-07 Steven Bosscher - - * Make-file.in: Cleanup bogus targets. Add more comment. - * lang-options.h: New option '-w'. - * g95.h: add no_options field to struct g95_options. - * options.c (g95_init_options): Default no_warnings to off. - (g95_parse_arg): Recognise the '-w' switch and its alias, - '-fno-warnings'. - * error.c (g95_warning, g95_warning_now): Don't emit warning if - no_warning option is set. - * iresolve.c (g95_resolve_shape): Fix warning. - -2003-01-07 Steven Bosscher - - * primary.c (g95_next_string_char): Rename next_string_char, and - make static. Adjust callers accordingly. - * resolve.c (resolve_generic_f0): Return try, not match. Adjust - callers accordingly. - * g95.h: Split out all g95_match* functions to... - * match.h: ...here. New file. - * array.c, decl.c, expr.c, format.c, interface.c, io.c, match.c, - matchexp.c, module.c, parse.c, primary.c: Inlcude match.h - -2003-01-07 Steven Bosscher - - * symbol.c (g95_clear_new_implicit, g95_add_new_implicit_range, - g95_merge_new_implicit): New functions. - (g95_match_implicit_none, g95_match_implicit): Move from here... - * match.c (g95_match_implicit_none, g95_match_implicit): ... to here. - Modify to use the new functions in symbol.c. - * g95.h: Add and move prototypes. - -2003-01-06 Steven Bosscher - - * bbt.c (insert): Use a typedef'ed compare_fn prototype for the - node compare function. - (g95_insert_bbt): Likewise. - (g95_insert_bbt_with_overlap): Likewise. - (g95_delete_bbt): Likewise. - (delete_treap): Likewise. Also fix a potential bug when calling it. - * module.c (compare_pointers): Change proto to compare_fn. - (compare_integers): Likewise. - (compare_true_names): Likewise. - (find_true_name): Adjust call to compare_true_names to match proto. - (require_atom, write_atom, mio_name): Fix 'const' warnings. - (init_pi_tree): Make compare a compare_fn instead of (int *). - * resolve.c (compare_cases): Change proto to compare_fn. - * symbol.c (g95_compare_symtree): Change proto to compare_fn, make - it static, and rename to compare_symtree. - (delete_symtree, g95_undo_symbols, g95_new_symtree): Use renamed - function. - * g95.h: Kill g95_compare_symtree prototype. Adjust prototypes - of g95_insert_bbt, g95_insert_bbt_with_overlap, and g95_delete_bbt. - -2003-01-06 Steven Bosscher - * Make-lang.in: Fix spaces/tabs issues from previous patch. - * patch.options: Blow away Paul's checkin mistake :-) - * io.c (terminate_io): Fix memory leak (Arnaud). - -2003-01-06 Steven Bosscher - - * Make-lang.in: Teach about building DVI, info manual. - * g95.texi: New file. - -2003-01-02 Paul Brook - - * trans-array.c (g95_reverse_ss): Make static and don't use. - (g95_conv_ss_descriptor): Don't use g95_loopinfo - (g95_conv_array_parameters): Modify for pointer assignments. - (g95_walk_subexpr): New function. - (g95_walk_expr*): Use it. - * trans-array.h (g95_reverse_ss): Remove prototype. - * trans-expr.c (g95_trans_pointer_assign): Implement. - (Many): Set se.want_pointer before calling g95_conv_array_parameter. - * trans-intrinsic.c: Sync with scalarizer changes. - * trans-io.c: Ditto. - -2002-12-29 Paul Brook - - * trans-array.c: Document calling convention for arrays. - -2002-12-19 Paul Brook - - * trans-intrinsic.c (g95_conv_intrsinsic_function): Remove incorrect - assertion. Remove intrinsic subroutine G95_ISYM_* cases. Always pass - optional parameters for some intrinsics. - (g95_is_intrinsic_libcall): Add G95_ISYM_RESHAPE. - * trans-expr.c (g95_conv_function_call): Pass NULL for absent - optional parameters. - * trans.h (g95_se): Add ignore_optional flag. - -2002-12-15 Paul Brook - - * trans-array.c (g95_conv_array_parameter): Fix partial rank sections. - * trans-decl.c (g95_generate_function_code): Use TDI_original. - -2002-12-14 Paul Brook - - * trans-stmt.c (g95_trans_call): Use resolved symbol name. - -2002-12-12 Paul Brook - - * trans-array.c (g95_trans_array_constructor_subarray): Fully - initialize the scalarizer. - (various): Update to new format of g95_expr->value.constructor. - -2002-12-08 Paul Brook - - * trans-array.c (g95_put_offset_into_var): New function. - (g95_trans_array_constructor_subarray): New function. - (g95_trans_array_constructor_value): Use it. - (g95_array_cons_size): Don't abort() on array components. - -2002-12-08 Paul Brook - - * Make-lang.in (F95_ADDITIONAL_OBJS): Remove tree-dchain.o. - * support.c: Update #includes. - (statement_code_p, c_size_in_bytes, s_size_type_node): Remove. - * trans-array.c: Update #includes. - * trans.c: Ditto. - * trans-const.c: Ditto. - * trans-io.c: Ditto. - * trans-types.c: Ditto. - (g95_init_types): Set size_type_node. - * trans-decl.c: Update #includes. - (gfor_fndecl_adjust{l,r}): Declare and initialize. - * trans-stmt.c: Update #includes. - (g95_trans_do_while): Generate LABEL_EXPR, not GOTO_EXPR. - (g95_trans_select): Fix check for unbounded ranges. - * trans-expr.c: Update #includes. - (g95_conv_string_tmp): New function. - (g95_conv_concat_op): Use it. - * trans.h (g95_conv_string_tmp, gfor_fndecl_adjust{l,r}): Declare. - * Trans-intrisic.c: Update #includes. - (g95_conv_intrinsic_strcmp): New function. - (g95_conv_intrinsic_adjust): Ditto. - (g95_conv_intrinsic_function: Use them. - -2002-11-30 Paul Brook - - * trans-array.c (g95_walk_function_expr): Handle non-array return by - reference. - * trans-dec.c (g95_build_function_decl): Handle character return - parammeters. - (g95_get_fake_result_decl): Ditto. - (g95_trans_deferred_vars): Ditto. - * trans-expr.c (g95_conv_function_call): Ditto. - (g95_trans_arrayfunc_assign) Limit to array valued functions. - * trans-intrinsic.c (g95_conv_intrinsic_char): New function. - (g95_conv_intrinsic_function): Use it. - * trans-types.c (g95_sym_type): Handle functions returning strings. - (g95_return_by_reference): Ditto. - (g95_get_function_type): Ditto. - -2002-11-18 Paul Brook - - * trans-stmt.c (g95_trans_if): Fix IF statements when the condition - requires a temporary. - (g95_trans_select): Handle computed gotos. - * trans-types.c (g95_build_array_type): Warn about non-functional - assumed shape arrays. - * trans-expr.c (g95_trans_scalar_assign): Correctly handle post - blocks. - * trans-intrinsic.c (g95_conv_intrinsic_round): New function. - (g95_conv_intrinsic_int): New function. - (g95_conv_intrinsic_mod): New function. - (g95_conv_intrinsic_ichar): New function. - (g95_conv_intrinsic_function): Use them. - (g95_conv_intrinsic_dim): Use g95_evaluate_now. - -2002-11-17 Toon Moene - - * trans-types.c (g95_build_array_type): Assumed - sized arrays can have rank > 1. - * trans.c (g95_trans_code): Remove erroneous - warning about CONTINUE. - * trans-expr.c (g95_conv_variable): Remove - erroneous assert. - -2002-11-15 Paul Brook - - * trans-array.c (g95_conv_array_parameter): Check for NULL stride. - -2002-10-31 Paul Brook - - * f95-tree.c: Remove tree copying stuff that's now in gimple.c - * trans-expr.c (g95_conv_component_ref): Handle character string - components. - (g95_conv_string_parameter): Ditto. - * trans-types.c (g95_get_derived_type): Add length decl to caracter - string components. - -2002-10-10 Paul Brook - - * trans-decl.c (gfor_fndecl_size?): Declare and initialize. - * trans-expr.c (g95_conv_function_call): Remove unreliable return value - check. - * trans-intrinsic.c (g95_conv_intrinsic_size): New function. - (g95_conv_intrinsic_function): Handle size and shape intrinsics. - (g95_is_intrinsic_libcall): Add G95_ISYM_SHAPE. - * trans-types.c (pvoid_type_node): Declare and initialize. - * trans-array.c: Fix typo COMPONENT_REF->REF_COMPONENT - (g95_array_allocate): Fix when base==data. - (g95_conv_array_parameter): Correctly handle reduced rank sections. - * trans-io.c (g95_trans_write): Correctly handle string modifiers. - -2002-10-09 Paul Brook - - * (g95_conv_expr_reference): Handle character strings correctly. - -2002-10-07 Paul Brook - - (g95_expand_decl): Rename from f95_expand_decl_stmt and use as - langhook. - * trans-array.c (g95_build_array_initializer): Remove. - (g95_conv_array_initializer): New Function. - (g95_trans_auto_arry_allocation): Cleanup. - (g95_trans_init_character_array): Remove. - * g95spec.c: Link in libgforbegin. - * trans.c (g95_generate_code): Rename main function to MAIN__. - (g95_create_var): New function. - (g95_create_var_np): New function. - (g95_evaluate_now): New function. - (g95_start_block): New function. - (g95_finish_block): New function. - (g95_add_expr_to_block): New function. - (g95_add_block_to_block): New function. - * trans-expr.c (g95_conv_componen_ref): New function. - * Make-lang.in (F95_ADDITIONAL_OBJS): Add gimplify.o. - (F95_OBJS): Add dependency.o. - * f95-lang.c (g95_is_simple_stmt): Remove. - * f95-tree.c (mark_not_simple): New function. - (unshare_all_trees): New function. - (create_tmp_var, create_tmp_alias_var): Remove. - * support.c (declare_tmp_vars, tree_last_decl): Remove. - * trans*: Convert to new IR using GENERIC trees. Don't bother about - SIMPLE/GIMPLE rules, this is now done by Lang-independant code. - -2002-10-01 Paul Brook - - * trans-array.c: Add support for descriptorless arrays. - (g95_conv_array_data): New function. - (g95_conv_array_base): New function. - * trans-array.h: Declare these here. - * trans-decl.c(g95_create_mopdule_variable): Perform variable - initialization and creation here. - (g95_create_module_vars): Instead of here. - * trans.h (G95_TYPE_ARRAY_*: Rename from G95_TYPE_DESCRIPTOR_*. - * trans-intrinsic.c: Ditto. - * trans-types.c (g95_is_nodesc_array): New function. - (g95_get_nodesc_array_type): New function. - (g95_sym_type, g95_get_derived_type): Use them. - * trans-const.c (g95_conv_mpf_to_tree): Remove workaround. - -2002-09-28 Paul Brook - - * trans-const.c (g95_conv_mpf_to_tree): Work around backend bug. - * trans-intrinsic.c (g95_conv_intrinsic_abs): Correctly detect complex - parameters. - -2002-09-24 Paul Brook - - * f95-lang.c (listify): Remove declaration. - (expand_function_body): Use optimize >=1 instead of flag_tree_saa. - (listify) - * f95-tree.c (get_name): New function. - * trans.c (module_namespace): Remove. - * trans-decl.c: Use g95_chainon_list rather than chainon(listify()). - * trans-types.c: Ditto. - -2002-09-19 Paul Brook - - * trans-array.c (g95_get_array_cons_size): New Function. - (g95_con_ss_startstride): Handle Array constructors. - (g95_conv_loop_setup): Ditto. - (g95_conv_array_parameter): Ditto. - * tras-decl.c (g95_finish_var_decl): Make initializes variables - static. - -2002-09-19 Paul Brook - - * trans.c (g95_simple_fold_tmp): Detect variables inside - NON_LVALUE_EXPR. - * trans-stmt.c (g95_trans_arithmetic_if): Implement this. - -2002-09-18 Steven Bosscher - - * Make-lang.in (F95_ADDITIONAL_OBJS): Add tree-ssa-dce.o - -2002-09-14 Paul Brook - - * trans.c (g95_create_module_variable): Move to trans-decl.c. - * trans-const.c (g95_conv_string_init): New Function. - * trans-const.h: Declare it. - * trans-decl.c (g95_get_symbol_decl): Handle initializers for static - variables. Don't bail on intrinsic symbols. - (get_extern_function_decl): Handle specific intrinsic functions. - * trans-types.c (g95_sym_type): Dummy functions don't return - reference types. - * trans-array.c (g95_build_array_initializer): New Function. - (g95_trans_auto_array_allocation): Build initializer for static decls. - Don't use mpz_addmul, it's GMP4 only. - -2002-09-12 Paul Brook - - * trans-decl.c (g95_generate_code): Fix thinko with return variable. - (g95_get_extern_function_decl, g95_build_function_decl): Mangle - assembler names for module procedures. - -2002-09-11 Tobias Schlueter - - * trans-array.c,h trans-expr.c, trans-stmt.c: Correct spelling of - dependency/ - -2002-09-10 Paul Brook - - * trans-array.c: Change format of G95_SS_TEMP strictures. - (g95_check_fncall_dependancy): New function. - (trans_dummy_array_bias): stride[n], not stride[n-1]. for calculating - offsets. - * trans-decl.c (g95_get_symbol_decl): move assertion after handling of - result variables. - (g95_build_function_decl): Don't assume result arrays are packed. - (g95_trans-deferred-vars): Handle array result variables. - (g95_generate_fuction_code): Clear saved_function_decls. - * trans-expr.c (g95_conv_fnction_call): Handle direct array return by - reference. - (g95_trans_arrayfunc_assign): New function. - (g95_trans_assignment): Use it. - * trans.h (g95_ss): Add temp struct for G95_SS_TEMP. - (g95_se): Add direct_byref. - * trans-types.c: Use sym->result rather than sym where appropriate. - * trans-intrinsic.c (g95_conv_intrinsic_funcall): New function. - Update other functions to use this. - (g95_is_intrinsic_libcall): New function. - (g95_conv_intrinsic_function): Add MATMUL and PRODUCT intrinsics. - (g95_walk_intrinsic_function): Ditto. - -2002-09-08 Paul Brook - - * trans-types.c: Change rank field to dtype field in array descriptor. - * trans-array.c: Implement filling of dtype array descriptor field. - * trans-intrinsic.c: Fix broken LEN intrinsic. - -2002-09-07 Paul Brook - - * trans-intrinsic.c: Remove outdated todo intrinsic list. - (g95_get_symbol_for_expr): Remove hack for fortran based intrinsics. - (g95_walk_intrinsic_function): Add MINLOC and MAXLOC. - -2002-09-06 Paul Brook - - * Make-lang.in (F95_ADDITIONAL_OBJS): Add tree_alias_comon.o. - (gt-f95-trans-types.h): Add dependancy information. - * config-lang.in (gtfiles): Add trans-types.c - * f95-lang.c (g95_be_parse_file): Pass error and warning counts - back to top-level code. - * trans-array.c, trans-types.c: Change format of array descriptor. - (g95_conv_descriptor_dimension): New function. - * trans-types.h (g95_conv_descriptor_rank): define. - * trans-intrinsic.c: Implement PRODUCT, COUNT. MINLOC and MAXLOC - intrinsics. - -2002-09-02 Steven Bosscher - - * trans-array.c, trans-types.c: Add rank information to descriptor. - -2002-09-06 Tobias Schlueter - - * trans-stmt.c (g95_trans_allocate): Fix when ref==NULL. - -2002-09-04 Paul Brook - - * f95-lang.c (g95_create_decls): New function. - (g95_init): Move initialization of external decls to above, and call - from g95_be_parse_file. - * trans.c (g95_finish_stmt): Don't amputate the decl chain. - * trans-types.c (g95_init_types): Always name integer and char types. - (g95_get_array_type_bounds): TYPE_NAME may be a TYPE_DECL. - -2002-09-02 Steven Bosscher - - * Make-lang.in: Add options.c to F95_PARSER_OBJS - -2002-09-02 Paul Brook - - * g95_generate_code: Clear the attr for __fortran_main. - * trans-types.c (g95_finish_type): New function. - * g95_init_io_state_type: Use g95_finish_type. - * g95_conv_intrinsic_anyall: Fix thinko in result initialization. - -2002-09-01 Paul Brook - - * README.backend: Warn about the dangers of extra config.h files. - Remove obsolete libgfor stuff. - * config-lang.in: Add target-libgfor dependancy. - * g95_conv_mpf_to_tree: Use & free allocated buffer p rather than buff. - -2002-09-01 Toon Moene - - * g95_conv_mpz_to_tree: Free storage pointed to by q, - not by buff. - -2002-08-30 Paul Brook - - * trans-intrinsic.c (g95_conv_intrinsic_function, - g95_walk_intrinsic_function): Added ANY and ALL. - (g95_conv_intrinsic_anyall): New function. - * iresolve.c (g95_resolve_any, g95_resolve_all): Include rank in - mangled name + * ChangeLog: Split previous years into ... + * ChangeLog-2002: here. + * ChangeLog-2003: here. + * ChangeLog-2004: here. + * ChangeLog-2005: here. diff --git a/gcc/fortran/ChangeLog-2002 b/gcc/fortran/ChangeLog-2002 new file mode 100644 index 00000000000..222dc0bf154 --- /dev/null +++ b/gcc/fortran/ChangeLog-2002 @@ -0,0 +1,333 @@ +2002-12-29 Paul Brook + + * trans-array.c: Document calling convention for arrays. + +2002-12-19 Paul Brook + + * trans-intrinsic.c (g95_conv_intrsinsic_function): Remove incorrect + assertion. Remove intrinsic subroutine G95_ISYM_* cases. Always pass + optional parameters for some intrinsics. + (g95_is_intrinsic_libcall): Add G95_ISYM_RESHAPE. + * trans-expr.c (g95_conv_function_call): Pass NULL for absent + optional parameters. + * trans.h (g95_se): Add ignore_optional flag. + +2002-12-15 Paul Brook + + * trans-array.c (g95_conv_array_parameter): Fix partial rank sections. + * trans-decl.c (g95_generate_function_code): Use TDI_original. + +2002-12-14 Paul Brook + + * trans-stmt.c (g95_trans_call): Use resolved symbol name. + +2002-12-12 Paul Brook + + * trans-array.c (g95_trans_array_constructor_subarray): Fully + initialize the scalarizer. + (various): Update to new format of g95_expr->value.constructor. + +2002-12-08 Paul Brook + + * trans-array.c (g95_put_offset_into_var): New function. + (g95_trans_array_constructor_subarray): New function. + (g95_trans_array_constructor_value): Use it. + (g95_array_cons_size): Don't abort() on array components. + +2002-12-08 Paul Brook + + * Make-lang.in (F95_ADDITIONAL_OBJS): Remove tree-dchain.o. + * support.c: Update #includes. + (statement_code_p, c_size_in_bytes, s_size_type_node): Remove. + * trans-array.c: Update #includes. + * trans.c: Ditto. + * trans-const.c: Ditto. + * trans-io.c: Ditto. + * trans-types.c: Ditto. + (g95_init_types): Set size_type_node. + * trans-decl.c: Update #includes. + (gfor_fndecl_adjust{l,r}): Declare and initialize. + * trans-stmt.c: Update #includes. + (g95_trans_do_while): Generate LABEL_EXPR, not GOTO_EXPR. + (g95_trans_select): Fix check for unbounded ranges. + * trans-expr.c: Update #includes. + (g95_conv_string_tmp): New function. + (g95_conv_concat_op): Use it. + * trans.h (g95_conv_string_tmp, gfor_fndecl_adjust{l,r}): Declare. + * Trans-intrisic.c: Update #includes. + (g95_conv_intrinsic_strcmp): New function. + (g95_conv_intrinsic_adjust): Ditto. + (g95_conv_intrinsic_function: Use them. + +2002-11-30 Paul Brook + + * trans-array.c (g95_walk_function_expr): Handle non-array return by + reference. + * trans-dec.c (g95_build_function_decl): Handle character return + parammeters. + (g95_get_fake_result_decl): Ditto. + (g95_trans_deferred_vars): Ditto. + * trans-expr.c (g95_conv_function_call): Ditto. + (g95_trans_arrayfunc_assign) Limit to array valued functions. + * trans-intrinsic.c (g95_conv_intrinsic_char): New function. + (g95_conv_intrinsic_function): Use it. + * trans-types.c (g95_sym_type): Handle functions returning strings. + (g95_return_by_reference): Ditto. + (g95_get_function_type): Ditto. + +2002-11-18 Paul Brook + + * trans-stmt.c (g95_trans_if): Fix IF statements when the condition + requires a temporary. + (g95_trans_select): Handle computed gotos. + * trans-types.c (g95_build_array_type): Warn about non-functional + assumed shape arrays. + * trans-expr.c (g95_trans_scalar_assign): Correctly handle post + blocks. + * trans-intrinsic.c (g95_conv_intrinsic_round): New function. + (g95_conv_intrinsic_int): New function. + (g95_conv_intrinsic_mod): New function. + (g95_conv_intrinsic_ichar): New function. + (g95_conv_intrinsic_function): Use them. + (g95_conv_intrinsic_dim): Use g95_evaluate_now. + +2002-11-17 Toon Moene + + * trans-types.c (g95_build_array_type): Assumed + sized arrays can have rank > 1. + * trans.c (g95_trans_code): Remove erroneous + warning about CONTINUE. + * trans-expr.c (g95_conv_variable): Remove + erroneous assert. + +2002-11-15 Paul Brook + + * trans-array.c (g95_conv_array_parameter): Check for NULL stride. + +2002-10-31 Paul Brook + + * f95-tree.c: Remove tree copying stuff that's now in gimple.c + * trans-expr.c (g95_conv_component_ref): Handle character string + components. + (g95_conv_string_parameter): Ditto. + * trans-types.c (g95_get_derived_type): Add length decl to caracter + string components. + +2002-10-10 Paul Brook + + * trans-decl.c (gfor_fndecl_size?): Declare and initialize. + * trans-expr.c (g95_conv_function_call): Remove unreliable return value + check. + * trans-intrinsic.c (g95_conv_intrinsic_size): New function. + (g95_conv_intrinsic_function): Handle size and shape intrinsics. + (g95_is_intrinsic_libcall): Add G95_ISYM_SHAPE. + * trans-types.c (pvoid_type_node): Declare and initialize. + * trans-array.c: Fix typo COMPONENT_REF->REF_COMPONENT + (g95_array_allocate): Fix when base==data. + (g95_conv_array_parameter): Correctly handle reduced rank sections. + * trans-io.c (g95_trans_write): Correctly handle string modifiers. + +2002-10-09 Paul Brook + + * (g95_conv_expr_reference): Handle character strings correctly. + +2002-10-07 Paul Brook + + (g95_expand_decl): Rename from f95_expand_decl_stmt and use as + langhook. + * trans-array.c (g95_build_array_initializer): Remove. + (g95_conv_array_initializer): New Function. + (g95_trans_auto_arry_allocation): Cleanup. + (g95_trans_init_character_array): Remove. + * g95spec.c: Link in libgforbegin. + * trans.c (g95_generate_code): Rename main function to MAIN__. + (g95_create_var): New function. + (g95_create_var_np): New function. + (g95_evaluate_now): New function. + (g95_start_block): New function. + (g95_finish_block): New function. + (g95_add_expr_to_block): New function. + (g95_add_block_to_block): New function. + * trans-expr.c (g95_conv_componen_ref): New function. + * Make-lang.in (F95_ADDITIONAL_OBJS): Add gimplify.o. + (F95_OBJS): Add dependency.o. + * f95-lang.c (g95_is_simple_stmt): Remove. + * f95-tree.c (mark_not_simple): New function. + (unshare_all_trees): New function. + (create_tmp_var, create_tmp_alias_var): Remove. + * support.c (declare_tmp_vars, tree_last_decl): Remove. + * trans*: Convert to new IR using GENERIC trees. Don't bother about + SIMPLE/GIMPLE rules, this is now done by Lang-independant code. + +2002-10-01 Paul Brook + + * trans-array.c: Add support for descriptorless arrays. + (g95_conv_array_data): New function. + (g95_conv_array_base): New function. + * trans-array.h: Declare these here. + * trans-decl.c(g95_create_mopdule_variable): Perform variable + initialization and creation here. + (g95_create_module_vars): Instead of here. + * trans.h (G95_TYPE_ARRAY_*: Rename from G95_TYPE_DESCRIPTOR_*. + * trans-intrinsic.c: Ditto. + * trans-types.c (g95_is_nodesc_array): New function. + (g95_get_nodesc_array_type): New function. + (g95_sym_type, g95_get_derived_type): Use them. + * trans-const.c (g95_conv_mpf_to_tree): Remove workaround. + +2002-09-28 Paul Brook + + * trans-const.c (g95_conv_mpf_to_tree): Work around backend bug. + * trans-intrinsic.c (g95_conv_intrinsic_abs): Correctly detect complex + parameters. + +2002-09-24 Paul Brook + + * f95-lang.c (listify): Remove declaration. + (expand_function_body): Use optimize >=1 instead of flag_tree_saa. + (listify) + * f95-tree.c (get_name): New function. + * trans.c (module_namespace): Remove. + * trans-decl.c: Use g95_chainon_list rather than chainon(listify()). + * trans-types.c: Ditto. + +2002-09-19 Paul Brook + + * trans-array.c (g95_get_array_cons_size): New Function. + (g95_con_ss_startstride): Handle Array constructors. + (g95_conv_loop_setup): Ditto. + (g95_conv_array_parameter): Ditto. + * tras-decl.c (g95_finish_var_decl): Make initializes variables + static. + +2002-09-19 Paul Brook + + * trans.c (g95_simple_fold_tmp): Detect variables inside + NON_LVALUE_EXPR. + * trans-stmt.c (g95_trans_arithmetic_if): Implement this. + +2002-09-18 Steven Bosscher + + * Make-lang.in (F95_ADDITIONAL_OBJS): Add tree-ssa-dce.o + +2002-09-14 Paul Brook + + * trans.c (g95_create_module_variable): Move to trans-decl.c. + * trans-const.c (g95_conv_string_init): New Function. + * trans-const.h: Declare it. + * trans-decl.c (g95_get_symbol_decl): Handle initializers for static + variables. Don't bail on intrinsic symbols. + (get_extern_function_decl): Handle specific intrinsic functions. + * trans-types.c (g95_sym_type): Dummy functions don't return + reference types. + * trans-array.c (g95_build_array_initializer): New Function. + (g95_trans_auto_array_allocation): Build initializer for static decls. + Don't use mpz_addmul, it's GMP4 only. + +2002-09-12 Paul Brook + + * trans-decl.c (g95_generate_code): Fix thinko with return variable. + (g95_get_extern_function_decl, g95_build_function_decl): Mangle + assembler names for module procedures. + +2002-09-11 Tobias Schlueter + + * trans-array.c,h trans-expr.c, trans-stmt.c: Correct spelling of + dependency/ + +2002-09-10 Paul Brook + + * trans-array.c: Change format of G95_SS_TEMP strictures. + (g95_check_fncall_dependancy): New function. + (trans_dummy_array_bias): stride[n], not stride[n-1]. for calculating + offsets. + * trans-decl.c (g95_get_symbol_decl): move assertion after handling of + result variables. + (g95_build_function_decl): Don't assume result arrays are packed. + (g95_trans-deferred-vars): Handle array result variables. + (g95_generate_fuction_code): Clear saved_function_decls. + * trans-expr.c (g95_conv_fnction_call): Handle direct array return by + reference. + (g95_trans_arrayfunc_assign): New function. + (g95_trans_assignment): Use it. + * trans.h (g95_ss): Add temp struct for G95_SS_TEMP. + (g95_se): Add direct_byref. + * trans-types.c: Use sym->result rather than sym where appropriate. + * trans-intrinsic.c (g95_conv_intrinsic_funcall): New function. + Update other functions to use this. + (g95_is_intrinsic_libcall): New function. + (g95_conv_intrinsic_function): Add MATMUL and PRODUCT intrinsics. + (g95_walk_intrinsic_function): Ditto. + +2002-09-08 Paul Brook + + * trans-types.c: Change rank field to dtype field in array descriptor. + * trans-array.c: Implement filling of dtype array descriptor field. + * trans-intrinsic.c: Fix broken LEN intrinsic. + +2002-09-07 Paul Brook + + * trans-intrinsic.c: Remove outdated todo intrinsic list. + (g95_get_symbol_for_expr): Remove hack for fortran based intrinsics. + (g95_walk_intrinsic_function): Add MINLOC and MAXLOC. + +2002-09-06 Paul Brook + + * Make-lang.in (F95_ADDITIONAL_OBJS): Add tree_alias_comon.o. + (gt-f95-trans-types.h): Add dependancy information. + * config-lang.in (gtfiles): Add trans-types.c + * f95-lang.c (g95_be_parse_file): Pass error and warning counts + back to top-level code. + * trans-array.c, trans-types.c: Change format of array descriptor. + (g95_conv_descriptor_dimension): New function. + * trans-types.h (g95_conv_descriptor_rank): define. + * trans-intrinsic.c: Implement PRODUCT, COUNT. MINLOC and MAXLOC + intrinsics. + +2002-09-02 Steven Bosscher + + * trans-array.c, trans-types.c: Add rank information to descriptor. + +2002-09-06 Tobias Schlueter + + * trans-stmt.c (g95_trans_allocate): Fix when ref==NULL. + +2002-09-04 Paul Brook + + * f95-lang.c (g95_create_decls): New function. + (g95_init): Move initialization of external decls to above, and call + from g95_be_parse_file. + * trans.c (g95_finish_stmt): Don't amputate the decl chain. + * trans-types.c (g95_init_types): Always name integer and char types. + (g95_get_array_type_bounds): TYPE_NAME may be a TYPE_DECL. + +2002-09-02 Steven Bosscher + + * Make-lang.in: Add options.c to F95_PARSER_OBJS + +2002-09-02 Paul Brook + + * g95_generate_code: Clear the attr for __fortran_main. + * trans-types.c (g95_finish_type): New function. + * g95_init_io_state_type: Use g95_finish_type. + * g95_conv_intrinsic_anyall: Fix thinko in result initialization. + +2002-09-01 Paul Brook + + * README.backend: Warn about the dangers of extra config.h files. + Remove obsolete libgfor stuff. + * config-lang.in: Add target-libgfor dependancy. + * g95_conv_mpf_to_tree: Use & free allocated buffer p rather than buff. + +2002-09-01 Toon Moene + + * g95_conv_mpz_to_tree: Free storage pointed to by q, + not by buff. + +2002-08-30 Paul Brook + + * trans-intrinsic.c (g95_conv_intrinsic_function, + g95_walk_intrinsic_function): Added ANY and ALL. + (g95_conv_intrinsic_anyall): New function. + * iresolve.c (g95_resolve_any, g95_resolve_all): Include rank in + mangled name diff --git a/gcc/fortran/ChangeLog-2003 b/gcc/fortran/ChangeLog-2003 new file mode 100644 index 00000000000..127de310bab --- /dev/null +++ b/gcc/fortran/ChangeLog-2003 @@ -0,0 +1,2339 @@ +2003-12-26 Feng Wang + + * dump-parse-tree.c (gfc_show_code_node): Add ASSIGN and ASSIGNED GOTO + dumping. + * gfortran.h (gfc_statement): New ST_LABEL_ASSIGNMENT. + (gfc_exec_op): New EXEC_LABEL_ASSIGN. + (symbol_attribute):New variable attribute: assign. + * io.c (resolve_tag):Integer variable is allowed. + (match_dt_format): Add ASSIGN statement. Set assign flag. + * match.c (gfc_match_if): Change ST_NONE to ST_LABEL_ASSIGNMENT. + (gfc_match_assign): Add ASSIGN statement. Set assign flag. + (gfc_match_goto): Add ASSIGNED GOTO statement. Set assign flag. + * parse.c (decode_statement): Add ST_LABEL_ASSIGNMENT. + (next_statement): Add ST_LABEL_ASSIGNMENT. + (gfc_ascii_statement): Add ST_LABEL_ASSIGNMENT. + * resolve.c (resolve_code): Resolve ASSIGN and ASSIGNED GOTO statement. + (resolve_blocks): Resolve ASSIGNED GOTO statement label list. + * st.c (gfc_free_statement): Add EXEC_LABEL_ASSIGN. + * trans-decl.c (gfc_get_symbol_decl): Create the shadow variable for + assign. Put them into the stuct lang_decl. + * trans-io.c (set_string): Add the assign statement. + * trans-stmt.c (gfc_trans_label_assign): New function. + (gfc_trans_goto): Translate ASSIGNED GOTO statement. + * trans-stmt.h (gfc_trans_label_assign): Added function prototype. + * trans.c (gfc_trans_code): Add EXEC_LABEL_ASSIGN. + * trans.h (lang_decl):Add shadow variable decl tree needed by assign. + (GFC_DECL_ASSIGN_ADDR(node)): New macro to access this. + (GFC_DECL_ASSIGN(node)): New macro to access flag. + +2003-12-31 Huang Chun + + PR fortran/13434 + * trans-intrinsic.c (gfc_conv_intrinsic_minmaxval): Fixed bug in + minval/maxval. + +2003-12-22 Toon Moene + + * options.c (gfc_init_options): Set flag_argument_noalias to 2, to indicate + that arguments to subroutines/functions can't alias themselves, nor global + memory. + +2003-12-20 Steven Bosscher + + * trans-expr.c (gfc_conv_expr_op): Fold the result expression. + * trans.c (gfc_add_modify_expr, gfc_add_expr_to_block): Likewise. + +2003-12-12 Huang Chun + + * primary.c (match_substring): Fix substring bug for start point + or end point is NULL. + * trans-expr.c (gfc_conv_substring): Ditto + * trans-types.c (gfc_sym_type): Get correct type of scalar + character variables. + * trans-intrinsic.c (gfc_conv_intrinsic_len): Handle character in + derived type. + +2003-12-10 Richard Henderson + + * options.c (gfc_post_options): Don't ever use rtl inlining. + +2003-12-05 Canqun Yang + + * trans-common.c: Re-implement COMMON blocks and EQUIVALENCE lists. + * trans-equivalence.c: Remove. + * trans-decl.c (gfc_get_symbol_decl): Update to match. + (gfc_generate_function_code): Ditto. + * trans-array.c (gfc_conv_array_parameter): Ditto. + * Make-lang.in (F95_OBJS): Remove fortran/trans-equivalence.o + (F95_ADDITIONAL_OBJS): Add stor-layout.o + * trans.h (gfc_trans_equivalence): Remove. + * gfortran.h (struct gfc_equiv): Add used field. + (struct gfc_symbol): Remove addr_base, addr_offset, equiv_ring, + equiv_offset fields. + +2003-12-05 Richard Henderson + + * trans.c (gfc_build_addr_expr): New. + (gfc_build_indirect_ref, gfc_build_array_ref): New. + * trans.h: Declare them. + * trans-array.c, trans-expr.c, trans-intrinsic.c, trans-io.c, + trans-stmt.c, trans.c (*): Use them. + + * f95-lang.c (gfc_post_options): Remove dead prototype. + * trans-array.c (gfc_trans_deferred_vars): Remove unused variable. + * trans-stmt.c (gfc_evaluate_where_mask): Fix temporary_list + allocation size. + +2003-12-01 Feng Wang + + * io.c (gfc_match_format): Check for missing format label. + +2003-11-30 Huang Chun + + PR fortran/13155 + * trans-decl.c (gfc_sym_mangled_function_id): Don't mangle symbols + from interfaces in modules. + +2003-11-30 Paul Brook + + * trans-array.c (gfc_trans_g77_array): Make non-static. + (gfc_trans_assumed_size): Remove. + (gfc_trans_dummy_array_bias): Explicitly free temporary. + * trans-array.h (gfc_trans_g77_array): Add prototype. + (gfc_trans_assumed_size): Remove. + * trans-decls.c (gfor_fndecl_push_context): Remove. + (gfor_fndecl_pop_context): Remove. + (gfc_build_function)decls): Don't create them. + (gfc_trans_deferred_vars): Update to match. Remove dead code. + * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Free temp. + +2003-11-30 Kejia Zhao + + * trans-array.c (gfc_conv_array_parameter): Simplify + array argument passing for array name actual argument. + * trans-expr.c (gfc_conv_function_call): Ditto + * trans-types.c (gfc_is_nodesc_array):Ditto. + +2003-11-30 Paul Brook + + * f95-lang.c (gfc_post_options): Move ... + * options.c (gfc_post_options): .. to here. Handle inlining options. + * gfortran.h (gfc_post_options): Add prototype. + +2003-11-28 Richard Henderson + + * trans.c (gfc_create_var_np): Use create_tmp_var_raw. + +2003-11-28 Huang Chun + + * trans.h (has_alternate_specifier): New global variable. + * match.c (gfc_match_call): Handle actual arguments associated with + alternate return indicators. + * trans-expr.c (gfc_conv_function_call): Ditto + * trans-stmt.c (gfc_trans_call): Ditto + (gfc_trans_return): Handle return statement with value. + * trans-decl.c (gfc_generate_function_code): Handle functions with + asterisk dummy. + (gfc_get_fake_result_decl): Ditto + * trans-types.c (gfc_get_function_type): Ditto + * resolve.c (resolve_actual_arglist): Check alternate return indicators. + (resolve_formal_arglist): Check asterisk dummy. + +2003-11-27 Paul Brook + + * trans-array.c (gfc_tran_allocate_array_storage): Use new memory + allocation interface. + (gfc_conv_ array_parameter): Ditto. + (gfc_trans_auto_array_allocation): Ditto. Also free the memory. + * trans-array.c: Update prototype. + * trans-decl.c (gfc_build_builtin_function_decls): Update prototypes. + (gfc_trans_auto_character_variable): Use new memory alloc interface. + * trans-expr.c (gfc_conv_string_tmp): Ditto. + (gfc_conv_function_call): Use gfc_conv_string_tmp. + * trans-stmt.c (gfc_do_allocate): Use new memory alloc interface. + * trans-intrinsic.c (gfc_conv_intrinsic_trim): Ditto. + * trans.h (gfc_ss_info): Remove unused pdata field. + * trans.c (gfc_create_var_np): Change T to V. + +2003-11-26 Richard Henderson + + * mathbuiltins.def: Move acos, asin, cosh, log10, sinh, tanh from ... + * trans-intrinsic.c (gfc_intrinsic_map): ... here. Add SCALE, + FRACTION, NEAREST, SET_EXPONENT. + (gfc_intrinsic_map_t): Add libm_name, complex_available, is_constant. + Fix GTY marking. Remove unnecessary const's. + (LIBM_FUNCTION): Rename from I_LIB. + (LIBF_FUNCTION): New. + (gfc_get_intrinsic_lib_fndecl): Handle libm and libgfortran naming + conventions. Assume the expr signature is correct. Mark const. + (gfc_conv_intrinsic_exponent): Use library functions. + (gfc_conv_intrinsic_set_exponent): Remove. + (gfc_conv_intrinsic_scale): Remove. + (gfc_conv_intrinsic_nearest): Remove. + (gfc_conv_intrinsic_fraction): Remove. + (gfc_conv_intrinsic_function): Update. + * trans-decl.c (gfor_fndecl_math_exponent4): New. + (gfor_fndecl_math_exponent8): New. + (gfc_build_intrinsic_function_decls): Set them. + * trans.h: Declare them. + +2003-11-25 Canqun Yang + + * trans-common.c (gfc_layout_global_equiv): Locate the error for + underflow COMMON block. + (gfc_trans_one_common): Fix bug for size of COMMON block containing + EQUIVALENCE object. Also fix typo in an error message. + +2003-11-25 Diego Novillo + + * Make-lang.in: Add check-gfortran to lang_checks. + (check-f95): Alias for check-gfortran. + +2003-11-25 Jason Merrill + + * Make-lang.in (f95.tags): Create TAGS.sub files in each + directory and TAGS files that include them for each front end. + +2003-11-24 Paul Brook + + PR fortran/13154 + * trans-decl.c (gfc_greate_module_variable): Skip COMMON blocks. + +2003-11-24 Paul Brook + + * expr.c (simplify_const_ref): Return SUCCESS for things we don't + handle. + * resolve.c (gfc_resolve_expr): Resolve contents before rank/shape. + +2003-11-24 Paul Brook + + PR fortran/13105 + * array.c (gfc_array_ref_shape): Handle elemental dimensions. + * trans-array.c (gfc_trans_preloop_setup): Use correct dim lookup. + +2003-11-20 Richard Henderson + + * trans-array.c (gfc_trans_allocate_array_storage): Use convert. + (gfc_conv_array_base): Likewise. + * trans-decl.c (gfc_trans_auto_character_variable): Likewise. + * trans-expr.c (gfc_conv_string_tmp): Likewise. + * trans-intrinsic.c (gfc_conv_intrinsic_trim): Likewise. + * trans-stmt.c (gfc_trans_character_select): Likewise. + +2003-11-13 Paul Brook + + * trans-decl.c (gfc_sym_mangled_function_id): Dont mangle externals. + +2003-11-13 Canqun Yang + + * resolve.c (gfc_resolve): Also resolve EQUIVALENCE objects. + (resolve_equivalence): New function. + (resolve_equivalence_derived): New function. + +2003-11-12 Richard Henderson + + * trans.c (gfc_trans_code): Use annotate_with_locus instead of + annotate_all_with_locus. + +2003-11-11 Canqun Yang + + * options.c (gfc_init_options): Set flag_max_stack_var_size as 32768. + * trans-decl.c (gfc_finish_var_decl): Modified. + +2003-11-08 Paul Brook + + PR fortran/12704 + * trans-intrinsic.c (gfc_conv_intrinsics_minmaxloc): Handle zero-size + arrays. + +2003-11-06 Paul Brook + + * trans-intrinsic.c (gfc_conv_intrinsics_minmaxloc): Initialize pos. + +2003-11-02 Canqun Yang + + * match.c (gfc_match_stopcode): Assign '0' to stop_code. + +2003-10-27 Anthony Green + + * Make-lang.in (f95.stageprofile): Use tabs, not spaces. + (f95.stagefeedback): Ditto. + +2003-10-27 Andrew Pinski + + PR fortran/12682 + * Make-lang.in (f95.stageprofile): Add. + (f95.stagefeedback): Add. + +2003-10-23 Richard Henderson + + * f96-lang.c (gfc_gimplify_expr): Remove. + (LANG_HOOKS_GIMPLIFY_EXPR): Remove. + (LANG_HOOKS_GIMPLE_BEFORE_INLINING): New. + +2003-10-23 Richard Henderson + + * f95-lang.c (gfc_gimplify_expr): Return gimplify_status. + +2003-10-20 Paul Brook + + * trans-expr.c (gfc_conv_integer_power): Use boolean_type_node. + * trans-stmt.c (gfc_trans_do_while): Ditto. + +2003-10-17 Paul Brook + + * simplify.c (gfc_simplify_shape): Use gfc_array_dimen_size. + +2003-10-17 Paul Brook + + * trans-io.c (gfc_build_io_library_fndecls): Set TREE_PUBLIC. + +2003-10-17 Feng Wang + + * iresolve.c (gfc_resolve_maxloc): Change the result's kind and type. + (gfc_resolve_minloc): Ditto. + * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Use correct types. + Return the value after subtracting the lower bound. + +2003-10-16 Richard Henderson + + * f95-lang.c (expand_function_body): Don't check flag_disable_gimple. + +2003-10-16 Steven Bosscher + + * lang.c: Remove -M option for now, it's in the way for C. + +2003-10-14 Jason Merrill + + * Make-lang.in (f95.tags): New rule. + +2003-10-13 Richard Henderson + + * trans.c (gfc_trans_code): Use annotate_all_with_locus. + +2003-10-13 Paul Brook + + * trans-decl.c (generate_local_decl): Don't create junk variables. + +2003-10-13 Paul Brook + + * resolve.c (resolve_formal_arglist): Use function result decl in + preference to function decl. + +2003-10-12 Richard Henderson + + * f95-lang.c (gfc_define_builtin): New const_p argument. Set + TREE_READONLY. Update all callers. + +2003-10-12 Feng Wang + + * iresolve.c (gfc_resolve_cshift): Change to match implementation. + * trans-intrinsic.c (gfc_conv_intrinsic_function): Remove CSHIFT. + (gfc_is_intrinsic_libcall): Add CSHIFT. + +2003-10-12 Richard Henderson + + * trans-array.c (gfc_trans_static_array_pointer): Set TREE_INVARIANT. + (gfc_trans_array_constructor_value): Likewise. + (gfc_conv_array_initializer): Likewise. + * trans-stmt.c (gfc_trans_character_select): Likewise. + +2003-11-12 Kejia Zhao + + * trans-intrinsic.c (integer_kind_info, real_kind_info): Remove. + +2003-10-11 Huang Chun + + * check.c (gfc_check_repeat): Check arguments are scalar. + (gfc_check_trim): New function. + * intrinsic.h (gfc_check_trim): Add prototype. + * intrinsic.c (add_functions): Use it. + * trans.h (gfor_fndecl_string_trim, gfor_fndecl_string_repeat): + Decalare. + * trans-decl.c: Ditto. + (gfc_build_intrinsic_fucntion_decls): Set them. + * trans-intrinsic.c (gfc_conv_intrinsic_len): Handle result vars. + (gfc_conv_intrinsic_trim): New function. + (gfc_conv_intrinsic_repeat): New function. + (gfc_conv_intrinsic_function): Use them. + +2003-10-11 Huang Chun + + * trans-types.c (gfc_sym_type): Handle result variables. + +2003-10-11 Huang Chun + + * trans-intrinsic.c (gfc_conv_intrinsic_char): Don't use + gfc_get_character_type. + +2003-10-11 Feng Wang + + * trans-expr.c (gfc_conv_variable): Check sym->ts, not the decl. + +2003-10-11 Paul Brook + + * iresolve.c (gfc_resolve_dint, gfc_resolve_dnint): New functions. + (gfc_resolve_dprod): New function. + (gfc_resolve_aint, gfc_resolve_anint): Only base name on arg type. + * intrinsic.h (gfc_resolve_dint, gfc_resolve_dnint): Declare. + (gfc_resolve_dprod): Declare. + * intrinsic.c (add_functions): Use them. + * trans-decl.c (gfc_get_extern_function_decl): Only pass one arg. + +2003-10-06 Richard Henderson + + * f95-lang.c (gfc_init_builtin_functions): Add clzll. + * trans-intrinsic.c (call_builtin_clz): Use it. + +2003-10-05 Paul Brook + + * f95-lang.c (expand_function_body): Call (push|pop)_function_context. + * trans-decl.c (gfc_generate_function_code): Set + cfun->function_end_locus. + +2003-09-24 Jason Merrill + + * f95-lang.c, trans-decl.c: Use DECL_SOURCE_LOCATION instead of + TREE_LOCUS. + +2003-09-21 Lifang Zeng + Paul Brook + + * Make-lang.in (F95_OBJS): Add fortran/data.o. + * array.c (gfc_inser_constructor): New function. + (gfc_get_constructor): New function. + (gfc_free_constructor): Initialize offset and repeat. + (iterator_stack): Remove. + (expand_info): Add offset, component and repeat fields. + (expand_constructor): Set them. + (expand): Set new fields. + (gfc_copy_constructor): Ditto. Avoid recursion. + * gfortran.h: Add prototypes for new functions. + (gfc_constructor): Add offset, component and repeat. + (iteratio_stack): Move to here. + * resolve.c (check_data_variable): Convert data values into variable + initializers. + (traverse_data_list): Build implicit loop chain. + (gfc_resolve): Ditto. + * trans-array.c (gfc_conv_array_intializer): Handle repeat count. + * trans-decl.c (gfc_get_symbol_decl): Use gfc_conv_structure. + * trans-expr.c (gfc_conv_structure): Handle array initializers. + (gfc_conv_expr): Update to match. + * trans.h (gfc_conv_structure): Declare. + * data.c: New file. + +2003-09-20 Kejia Zhao + + * trans.h: Add declarations for gfor_fndecl_si_kind and + gfor_fndecl_sr_kind. + * trans-decl.c (g95_build_intrinsic_function_decls): Build them. + * trans-intrinsic.c (g95_conv_intrinsic_si_kind): New function. + (g95_conv_intrinsic_sr_kind): New function. + (g95_conv_intrinsic_function): Add SELECTED_INT_KIND and + SELECTED_REAL_KIND. + +2003-09-17 Lars Segerlund + + * iresolve.c (gfc_resolve_random_number): Generate _r4 & _r8 + instead of _4 and _8 as postfix for libgfortran calls. + +2003-09-16 Paul Brook + + * array.c (compare_bounds): New function. + (gfc_compare_array_spec): Use it. + +2003-09-14 Paul Brook + + * primary.c (gfc_match_rvalue): Make sure sym->result is set. + * trans-expr.c (gfc_conv_string_parameter): Also allow PRAM_DECLs. + +2003-09-14 Paul Brook + + * check.c (dim_rank_check): Allow assumed bounds if requested. + (gfc_check_lbound): Call it. + (gfc_check_ubound): Ditto. + (gfc_check_size): Change to match. + * simplify.c (gfc_simplify_bound): New function. + (gfc_simplify_lbound): New function. + (gfc_simplify_ubound): New function. + * intrinsic.h: Declare them. + * intrinsic.c (add_functions): Use them. + +2003-09-14 Paul Brook + + * io.c (format_lex): Initialize negative_flag. + (check_format): Intialize repeat. + * trans-io.c (gfc_new_nml_name_expr): Declare static. + (gfc_new_var_expr): Ditto. + +2003-09-14 Paul Brook + + * trans-array.c (gfc_conv_array_initializer): Handle derived types. + * trans-decl.c (gfc_get_symbol_decl): Only do local scalar values. + +2003-09-12 Paul Brook + + * trans-intrinsic.c (gfc_conv_intrinsic_sign): Call fold. + +2003-09-12 Zdenek Dvorak + + * fortran/trans.c (gfc_finish_block): Call rationalize_compound_expr + for a correct expression. + +2003-09-10 Kejia Zhao + + * trans-intrinsic.c (real_compnt_info): New struct. + (prepare_arg_info): New function. + (gfc_conv_intrinsic_set_exponent): New function. + (gfc_conv_intrinsic_scale): New function. + (gfc_conv_intrinsic_nearest): New function. + (gfc_conv_intrinsic_fraction): New function. + (gfc_conv_intrinsic_exponent): New function. + (gfc_conv_intrinsic_spacing): New function. + (gfc_conv_intrinsic_rrspacing): New function. + (gfc_conv_intrinsic_function): Use them. + +2003-08-24 XiaoQiang Zhang (zhangapache@yahoo.com> + + * trans-const.c (gfc_conv_mpz_to_tree): Fix bug, parameter for + build_int_2 changed from (high, low) to (low, high). + * trans-io.c (ioparm_namelist_name, ioparm_namelist_name_len, + ioparm_namelist_read_mode, iocall_set_nml_val_int, + iocall_set_nml_val_float, iocall_set_nml_val_char, + iocall_set_nml_val_complex, iocall_set_nml_val_log): New declaration. + (gfc_build_io_library_fndecls): Add variable initialization. + (gfc_new_nml_name_expr, get_new_var_expr): New function. + (build_dt): Add namelist support. + * io.c (value): New variable. + (check_format): Support FMT_H now. + +2003-09-07 Paul Brook + + * io.c (gfc_resolve_dt): Error if format label is not defined. + +2003-09-07 Kejia Zhao + + * trans-intrinsic.c (gfc_conv_intrinsic_aint): Fix two bugs. One is + about case_switch's break. The other is about building the condition + statement tree, which judges the argument in the range of the + corresponding integer type. + * trans-intrinsic.c (gfc_conv_intrinsic_mod): MOD and MODULO can work + for the large values. + +2003-09-05 Paul Brook + + * f95-lang.c (expand_function_body): Gimplify the function. + +2003-09-04 Jeff Law + + * f95-lang.c (DEFINE_MATH_BUILTIN): C arrays start at + index zero! + +2003-09-04 Paul Brook + + * f95-lang.c (gfc_define_builtin): Also set implicit_built_in_decls. + (gfc_expand_stmt): New function. + (LANG_HOOKS_RTL_EXPAND_STMT): Define. + (expand_function_body): Use tree_rest_of_compilation. + * trans-decl.c (gfc_generate_function_code): Don't free cfun. + +2003-09-03 Jeff Law + + * f95-lang.c (gfc_init_builtin_functions): C arrays start at + index zero! + +2003-08-30 Paul Brook + + * f95-lang.c (builtin_function): Remove #if 0 code. + (gfc_define_builtin): New function. + (gfc_init_builtin_functions): Use mathbuiltins.def not ../builtins.def. + * mathbuiltins.def: New file. + * trans-intrinsic.c (gfc_intrinsic_map_t): Add builtin code fields. + (gfc_intrinsic_map): Use mathbuiltins.def. + (gfc_intrinsic_builtin_t): Remove. + (gfc_build_intrinsic_lib_fndecls): Update. + * trans-types.c (gfc_init_types): Remove redundant initilaization of + signed_size_type_node. + +2003-08-29 Paul Brook + + * arith.c (gfc_real_kinds): Use correct minimum exponents. + +2003-08-22 Kejia Zhao + + * trans-instinsic.c (gfc_conv_intrinsic_mod): Also do MODULO. + (gfc_conv_intrinsic_function): Add MODULO. + +2003-08-22 Jason Merrill + + * trans-array.c (gfc_conv_expr_descriptor): Update use of predicates. + +2003-08-22 Andreas Jaeger + + * Make-lang.in (f95.install-common): Add DESTDIR support. + * (f95.install-info): Likewise. + (f95.uninstall): Likewise. + +2003-08-19 Diego Novillo + + * trans-types.c (gfc_init_types): Initialize + signed_size_type_node with size_type_node. + +2003-08-18 Paul Brook + + * dependency.c (gfc_dependency): New enum. + (check_another_array_ref): Remove. + (gfc_get_array_from_component): Remove. + (get_x): Remove. + (get_range): Remove. + (get_no_of_elements): Use mpz_t, not mpf_t. + (transform_sections): New function. + (gfc_check_range_range): Rename ... + (gfc_check_section_vs_section): ... to this. Use new function. + (gfc_is_inside_range): Rewrite to match. + (gfc_check_element_vs_section): Ditto. + (gfc_check_element_vs_element): Ditto. + (get_deps): Ditto. + (gfc_dep_resolver): Ditto. Remove unused parameter. + * Dependency.h (gfc_check_range_range, gfc_check_element_vs_section, + gfc_check_element_vs_element, gfc_is_inside_range, + gfc_get_array_from_component): Remove prototypes for static functions. + (gfc_dep_resolver): Update prototype. + * trans-array.c (gfc_conv_resolve_dependencies): Change to match. + +2003-08-15 Paul Brook + + * trans-decl.c (gfc_build_qualified_array): Don't add symbols for + return values to parent scope. + (gfc_build_dummy_array_decl): Ditto. + +2003-08-14 Paul Brook + + * trans-stmt.c (gfc_trans_allocate): Handle NULL refs. Allocate the + size of the type, not the pointer. + * resolve.c (resolve_symbol): Give more accurate error message. + +2003-08-10 Paul Brook + + * trans-decl.c (gfc_build_function_decl): Only mangle global symbols. + +2003-08-10 Paul Brook + + * trans-stmt.c (gfc_trans_allocate): Correctly handle non-array derived + type components. + +2003-08-10 Chun Huang + + * resolve.c (resolve_formal_arglist): Resolve STATEMENT function. + (resolve_symbol): Ditto. + * trans-expr.c (gfc_conv_statement_function): New function. + (gfc_conv_function_expr): Use it. + +2003-08-10 Paul Brook + + * trans-array.c (gfc_conv_ss_startstride): Handle functions. + (walk_function_expr): Set section rank. + * trans-intrinsic.c (gfc_walk_intrinsic_libfunc): Ditto. + +2003-08-10 Paul Brook + + * intrinsic.c (add_sym): Prefix names with correct string. + (add_sym_0s): New function. + (add_subroutines): Register abort. + +2003-08-10 Erik Schnetter + + * gfortran.h: Introduce options to control the mangling. + * lang.opt: Likewise. + * options.c (gfc_init_options): Handle the options. + * trans-common.c (gfc_sym_mangled_common_id): New function. + (gfc_build_common_decl): Call it. + * trans-decl.c (gfc_sym_mangled_function_id): New function. + (gfc_get_extern_function_decl, gfc_build_function_decl): Call it. + +2003-08-09 Paul Brook + + * module.c (mio_symbol): Always ouput a namespace for formal args. + (load_needed): Namespace now belong to their proper symbol. + (gfc_dump_module): Change G95=>GFORTRAN. + +2003-08-05 Paul Brook + + * options.c: Force -fg77-calls. + +2003-08-02 Paul Brook + + * Makelang.in: Rename G95_* to GFORTRAN_*. + * All sources: Rename G95_* to GFC_*. + +2003-08-01 Paul Brook + + * fortran/Make-lang.in: Use GMPLIBS. + * fortran/config-lang.in: Set need_gmp. + * trans-expr.c (gfc_conv_variable): Remove incorrect assertion. + +2003-07-27 Andreas Jaeger + + * trans-decl.c (gfc_generate_constructors): Convert prototype to + ISO C90. + * trans-const.c (gfc_init_constants): Likewise. + * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Likewise. + + * gfortranspec.c: Convert to ISO C90. + (lang_specific_driver): Correct copyright, remove ALT_LIBM usage. + +2003-07-26 Paul Brook + + * lang.opt: Add -fdump-parse-tree. + * options.c (gfc_handle_option): Ditto. + * resolve.c (resolve_forall_iterators): Convert to proper type. + * trans-stmt.c (gfc_trans_forall_1): Create temp var with correct type. + +2003-07-26 Paul Brook + + * Makefile.in: Add build dependencies on files common with rest of gcc. + +2003-07-26 Lifang Zeng + + * trans.h: Declare g95_trans_pointer_assignment. + * trans-expr.c (g95_trans_pointer_assignment): New function. + (g95_trans_pointer_assign): Use it. + * trans-stmt.c (g95_trans_forall_1): Handle pointer assignment. + (g95_trans_pointer_assign_need_temp): New function. + +2003-07-26 Paul Brook + + * gfortran.texi: Replace references to g95. + +2003-07-26 Paul Brook + + Rename g95_* to gfc_*. + +2003-07-25 Paul Brook + + * gfortran.h: Rename from g95.h. + * trans-types.c (boolean_type_node, booelan_true_node, + boolean_false_node): Remove. + * trans-types.h: Ditto. + +2003-07-25 Chun Huang + + * parse.c (accept_statement): Implement BLOCK DATA statement. + * trans-expr.c (g95_conv_variable): Fix bug for dereference pointer + variables. + +2003-07-24 Lifang Zeng + + * trans-stmt.c (temporary_list): Define. + (g95_trans_assign_need_temp): New function. + (g95_trans_forall_1): Modified for WHERE. + (g95_trans_where_assign): Modified. + (g95_trans_where_2): Modified. + (g95_evaluate_where_mask): Modified. + (g95_trans_where): Modified. + (g95_get_temp_expr): Removed. + (g95_add_to_where_stmt_list): Removed. + (compute_overall_iter_number): Modified for WHERE. + * trans.h: Remove where_stmt_list. + +2003-07-24 Arnaud Desitter + + * lang.opt: Correct description of options -J and -M. + +2003-07-23 Steven Bosscher + + * lang.opt: Move help text to here. + * lang-options.h: Remove. + +2003-07-23 Arnaud Desitter + * iresolve.c (g95_resolve_transpose): Proper variable in switch. + * simplify.c (g95_simplify_nearest): Fix typo and use a correct test + on kind. + +2003-07-22 Steven Bosscher + Paul Brook + + * check.c (check_rest): Use global pedantic flag. + * io.c (data_desc): Ditto. + * error.c (g95_warning, g95_warning_now): Use global flag. + * f95-lang.c (LANG_HOOKS_HANDLE_OPTION): Rename from DECODE. + (expand_function_body): Update to new prototypes. + (g95_init): Use new option names. + * g95.h (g95_option_t): Standardize names. + (g95_init_options, g95_handle_option): Update prototypes. + * interface.c: Use new option names. + * match.c: Ditto. + * module.c: Ditto. + * parse.c: Ditto. + * primary.c: Ditto. + * resolve.c: Ditto. + * scanner.c: Ditto. + * simplify.c: Ditto. + * symbol.c: Ditto. + * trans-array.c: Ditto. + * trans-expr.c: Ditto. + * trans-types.c: Ditto. + * trans-decl.c: Ditto. + (g95_build_library_function_decl): Remove obsolete VPARAMS. + * trans.h: Ditto. + * options.c (g95_display_help): Remove. + (g95_init_options): Convert to new scheme. + (set_Wall): Ditto + (g95module_option): Ditto, rename from g95_parse_arg. + (g95_handle_module_path_options): New function. + * trans-equivalence.c: Fix error message. + * lang.opt: Corrections. + +2003-07-21 Steven Bosscher + + * lang.opt: New file. + +2003-07-21 Arnaud Desitter + + * decl.c (match_attr_spec): Set colon_seen. + +2003-07-14 Paul Brook + + * trans-array.c: Update comment. + (g95_trans_array_constructor_subarray): Cleanup loopinfo data. + * trans-intrinsic.c (g95_conv_intrinsic_anyall,count,arith, + minmaxloc,minmaxval): Ditto. + * trans-io.c (g95_trans_transfer): Ditto. + * trans-stmt.c: Remove unneeded prototypes. + (generate_loop_for_lhs_to_rhs): Rename vars. Add loop post chain. + (generate_loop_for_rhs_to_temp): Rename vars. Don't share loopinfo. + (compute_inner_temp_size): Remove bits of dead code. Add comments. + Don't share loopinfo. + (compute_overall_iter_number): Declare as static. + (allocate_temp_for_forall_nest): Ditto. + (g95_trans_forall_1): Don't pass shared loopinfo. + * trans.c (g95_start_block): Expand comment. + +2003-07-12 Paul Brook + + * arith.c (g95_index_integer_kind): Remove unused initializer. + * trans-stmt.c (generate_loop_for_temp_to_lhs): Don't multiply array + index by size of element. + (generate_loop_for_rhs_to_temp): Ditto. + (allocate_temp_for_forall_nest): Use element size, not index size. + +2003-07-11 Arnaud Desitter + + * arith.c (g95_index_integer_kind): Add a TODO. + * simplify.c (g95_simplify_nearest): Add a TODO. + +2003-07-09 Chun Huang + + * trans.h: Add declarations for gfor_fndecl_string_scan and + gfor_fndecl_string_verify. + * trans-decl.c (g95_build_intrinsic_function_decls): Build them. + * trans-intrinsic.c (g95_conv_intrinsic_scan): New function. + (g95_conv_intrinsic_verify): New function. + (g95_conv_intrinsic_function): Add SCAN and VERIFY. + * simplify.c (g95_simplify_scan, g95_simplify_verify): Fix bug in case + of parameter 'BACK=.TRUE.' + +2003-07-05 Lifang Zeng + + * trans-stmt.c (iter_info, forall_info): Define. + (g95_trans_forall_block): Remove. + (g95_trans_forall_loop): Use forall info blocks. + (g95_trans_nested_forall_loop): New function. + (g95_do_allocate): Handle things other than logical masks. + (generate_loop_for_temp_to_lhs): New function. + (generate_loop_for_rsh_to_temp): New function. + (compute_inner_temp_size): New function. + (compute_overall_iter_number): New function. + (allocate_temp_for_forall_nest): New function. + (g95_trans_forall): Move body ... + (g95_trans_forall_1): ... to here. Handle loops with temporaries. + +2003-07-02 Paul Brook + + * trans-decl.c (create_index_var, g95_build_qualified_array): Put vars + in correct scope. Change callers to match. + * trans-types.c (g95_get_dtype_cst): Allow rank 7 arrays. + * iresolve.c (g95_resolve_reshape): Only use constant shapes. + +2003-07-02 Paul Brook + + * trans-array.c (g95_conv_loop_setup): Remove dead var. Use + expression shape for all expressions. + * trans-decl.c (g95_symbol_init): Allow adding at very end of list. + +2003-07-03 Arnaud Desitter + + * g95.h (g95_option_t), lang-options.h, options.c (g95_init_options, + g95_parse_arg), intrinsic.c (g95_convert_type): support of + -Wconversion. + * intrinsic.c, g95.h: Add g95_convert_type_warn, + * resolve.c (g95_resolve_index): Call it. + +2003-07-02 Paul Brook + + * iresolve.c (g95_resolve_reshape): Set expression shape. + (g95_resolve_shape): Ditto. + * simplify.c (g95_simplify_shape): Move common code outside condition. + * trans-array.c (g95_conv_array_initializer): Teach it how to count. + +2003-07-01 Arnaud Desitter + + * array.c (g95_array_dimen_size): Deal with EXPR_ARRAY to improve + conformance checks. + +2003-06-29 Paul Brook + + * array.c (g95_simplify_iterator_var): Don't bother with return value. + * expr.c (find_array_element, find_component_ref): New functions. + (remove_subobject_ref): New function. + (simplify_const_ref): Use them. Rename from simplify_component_ref. + (simplify_ref_chain): New function. + (g95_simplify_expr): Use it. Simplify parameter variable subobjects. + (g95_specification_expr): Simplify the expression. + * resolve.c (resolve_operator): Check simplifications return code. + (g95_resolve_expr): Ditto. + +2003-06-26 Paul Brook + + * expr.c (simplify_component_ref): New function. + (g95_simplify_expr): Use it. + * resolve.c (resolve_structure_cons): Handle references. + +2003-06-25 Paul Brook + + * trans-io.c (build_dt): Handle internal units. + +2003-06-25 Canqun Yang + + * trans-common.c (g95_build_common_decl): Array index range starts at 0. + (g95_build_common_decl, g95_layout_global_equiv, g95_trans_one_common): + Use g95_array_index_type instead of integer_type_node. + (g95_build_common_decl, g95_set_common_master_type): Use + g95_character1_type_node instead of char_type_node. + * trans-equivalence.c (g95_layout_local_equiv): As above. + +2003-06-24 Steven G. Kargl + + * g95.h (g95_option_t), options.c (g95_init_options, g95_parse_arg): + remove last remains of -fquiet. + +2003-06-22 Paul Brook + + * resolve.c (resolve_operator): Don't fail if we can't simplify. + (g95_resolve_expr): Ditto. + (resolce_code): Mark as static. + * trans-stmt.c (g95_trans_chaaracter_select): Mark labels because the + gimplifer doesn't (yet). + +2003-06-20 Paul Brook + + * g95.h: Add ST_PAUSE and EXEC_PAUSE. + * match.c (g95_match_if): Add ST_PAUSE. + (g95_match_stopcode): New function. + (g95_match_pause, g95_match_stop): Use it. + * parse.c (g95_ascii_statement): Handle ST_PAUSE. + (decode_stmt, next_statement, parse_executable): Ditto. + * resolve.c (resolve_code): Ditto. + * st.c (g95_free_statement): Ditto. + * trans-stmt.c (g95_trans_pause): New function. + * trans-stmt.h: Declare it. + * trans.c (g95_trans_code): Use it. + * trans-decl.c (gfor_fndecl_pause_numeric, gfor_fndecl_pause_string): + Declare. + (g95_build_builtin_function_decls): Initialize them. + * trans.h: Ditto. + * dump-parse-tree.c (g95_show_code_node): Handle EXEC_PAUSE. + +2003-06-18 Arnaud Desitter + + * io.c (g95_match_open , g95_match_close, g95_match_inquire, + match_filepos): Fix error handling. + +2003-06-18 Arnaud Desitter + + * array.c (spec_dimen_size, ref_dimen_size, g95_array_dimen_size): + Add assertions on arguments. + * resolve.c (expression_shape): Remove useless &. + * simplify.c (get_kind, g95_simplify_bit_size, g95_simplify_digits, + g95_simplify_ibclr, g95_simplify_ibits, g95_simplify_ibset, + g95_simplify_ishft,g95_simplify_ishftc, g95_simplify_maxexponent, + g95_simplify_minexponent, g95_simplify_radix, g95_simplify_range + g95_simplify_rrspacing, g95_simplify_scale, g95_simplify_spacing, + g95_simplify_tan, g95_simplify_tiny): Clean predicates and assertions. + (g95_simplify_not, g95_simplify_scale): Add assertions. + +2003-06-15 Paul Brook + + Clean up stuff to work with the ssa optimizers. + * convert.c (convert): Handle BOOLEAN_TYPEs. + * f95-lang.c (g95_truthvalue_conversion): Implement. + * trans-array.c (g95_trans_array_constructor_value): Group multiple + scalar values. + * trans.h (g95_truthvalue_conversion): Declare. + * trans-intrinsic.c (g95_conv_intrinsic_anyall): Use bool constants. + * trans-stmt.c (g95_trans_character_select): Don't create array + assignments. Mark labels as indirect jump targets. + * trans-types.h (g95_init_types): Use BOOLEAN_TYPE nodes. + (g95_get_dtype_cst): Handle LOGICAL types. + +2003-06-14 Paul Brook + + * f95-lang.c (g95_gimplify_expr): New function. + * trans-array.c (g95_trans_array_constructor_value): Don't create + array assignments. + (g95_conv_expr_descriptor): Rename simple->gimple. + * trans-expr.c (conv_expr_op): Use proper logical operators. + * trans-intrinsic.c (build_fixbound_expr): New function. + (build_fix_expr): Ditto. + (g95_conv_intinsic_aint): Use them. Use builtin functions. + (g95_conv_intrinsic_function): Add FLOOR and CEILING. + +2003-06-10 Arnaud Desitter + + * array.c (g95_compare_array_spec): Remove unreachable code. + * expr.c (g95_copy_expr): Likewise. + * intrinsic.c (g95_convert_type): Likewise. + * misc.c (g95_code2string): Likewise. + * simplify.c (g95_simplify_ishft, g95_simplify_real, + g95_simplify_reshape, g95_simplify_sign, g95_simplify_sqrt): Likewise. + * trans-stmt.c (g95_trans_select): Likewise. + * primary.c (extend_ref): Add an assertion. + * simplify.c (g95_convert_constant): Add const. + * intrinsic.h: Remove g95_check_x_ni. + * f95-lang.c (g95_finish): Call g95_release_include_path. + +2003-06-10 Arnaud Desitter + + * resolve.c (resolve_contained_functions): Fix typo introduced on + 2003-01-13. + +2003-06-09 Paul Brook + + * g95.h: Include system.h not hwint.h. + * many: use safe-ctype.h not ctype.h. Change isalpha -> ISALPHA, etc. + * misc.c (g95_getmem): Use xmalloc/memset instead of calloc. + +2003-06-09 Paul Brook + + * g95.h (g95_symbol): Add fields for COMMON and EQUIVALENCE variables. + * Make-lang.in (F95_OBJS): Add files for COMMON and EQUIVALENCE. + * trans-decl.c (g95_add_decl_to_functions): Make non-static. + (g95_get_symbol_decl): Handle COMMON and EQUIVALENCE objects. + (g95_generate_function_code): Translate COMMON and EQUIVALENCE + objects. + * trans.h (g95_trans_equivalence, g95_trans_common, + g95_add_decl_to_function): Declare. + * trans-common.c, trans-equivalence.c: New files. + +2003-06-08 Steven Bosscher + + * intrinsic.c (g95_intrinsic_extension): Remove. + (add_functions): Substitute g95_check_x for g95_check_x_ni + everywhere. + (g95_init_expr_extensions): New function. + (g95_intrinsic_func_interface): Use it. + * intrinsic.h: Remove extern decl for g95_intrinsic_extension. + * check.c (g95_check_digit, g95_check_huge, g95_check_kind, + g95_check_precision, g95_check_present, g95_check_radix, + g95_check_range, g95_check_selected_real_kind): Do not set + g95_intrinsic_extension. + (g95_check_x_ni): Remove now duplicate of g95_check_x. + + * expr.c (check_inquiry): Add FIXME, fixup some code style. + +2003-06-06 Arnaud Desitter + + * g95.h (ref_type): Name this type explicitly. + * module.c (MIO_NAME): Add specialisations of mio_name. + (mio_symbol_attribute, mio_typespec, mio_array_ref, + mio_array_spec, mio_ref, mio_expr, mio_symbol): Use them. + (ab_attribute): Name this type explicitly. + (mio_symbol_attribute, mio_expr): Add cast to call to find_enum. + +2003-06-05 Kejia Zhao + + * trans-intrinsic.c (g95_conv_allocated): New function. + (g95_conv_intrinsic_function): Make G95_ISYM_ALLOCATED work. + +2003-06-05 Steven Bosscher + + * f95-lang.c: Don't include g95-support.h + (g95_mark_addressable): Add prototype. + (g95_init_decl_processing): Remove C front end hack. + * f95-tree.c: Remove file. + * support.c: Remove file. + * g95-support.h: Remove file. + * trans-types.c (g95_init_types): Set up boolean + type related tree nodes. + * Make-lang.in: Remove rules for dead files and + dependencies on them. + +2003-06-05 Steven Bosscher + + * Make-lang.in (F95_ADDITIONAL_OBJS): Remove the final + C front end dependency. Also, convert.c does not depend on + g95-support.h anymore. + * convert.c: Don't include c-common.h and g95-support.h + * f95-lang.c: Don't inlude c-common.h and c-common.def (3x). + (g95_stmt_tree, g95_scope_stmt_stack, anon_aggr_type_p, + stmts_are_full_exprs_p, current_stmt_tree, + current_scope_stmt_stack): Remove. + * g95-support.h (unsigned_conversion_warning): Kill proto. + (boolean_type_node, boolean_true_node, boolean_false_node): + Don't define here. Instead, make then true tree nodes in + trans-types. + * support.c (c_global_trees): Die, C front end, die!!! + (g95_init_c_decl_hacks): Don't touch intmax_type_node, + uintmax_type_node, string_type_node and const_string_type_node. + (decl_constant_value, overflow_warning): Make static functions. + They are in death row too, though. + (default_conversion, c_expand_asm_operands): Remove. + * trans-array.c, trans-expr.c, trans-intrinsic.c, trans-stmt.c, + trans.c: Don't include c-common.h. + * trans-types.c (boolean_type_node, boolean_true_node, + boolean_false_node): Make them real tree nodes. + * trans-types.h (intmax_type_node, string_type_node, + const_string_type_node): Hack to work around C dependencies + in builtin-types.def. + +2003-06-04 Arnaud Desitter + + * decl.c (decl_types): Add some iterators-like sentinels. + * decl.c (match_attr_spec): Use them. + Use "decl_types" instead of "int". + Add cast in call to g95_match_strings. + * dump-parse-tree.c (g95_show_namespace): Use "g95_intrinsic_op" + instead of "int". + * g95.h (g95_intrinsic_op): Add some iterators-like sentinels. + (g95_interface_info): Use "g95_intrinsic_op". + * dump-parse-tree.c (g95_show_namespace): Use them. + * interface.c (g95_check_interfaces): Use them. + * module.c (read_module, write_module): Use them. + * symbol.c (g95_get_namespace, g95_free_namespace): Use them. + Use "g95_intrinsic_op". + * interface.c (check_operator_interface): Use "g95_intrinsic_op". + Add a default case in switch statement. + * intrinsic.h (g95_generic_isym_id): Moved to... + * g95.h (g95_generic_isym_id): here. + (g95_intrinsic_sym): Use "g95_generic_isym_id". + * intrinsic.c (make_generic): Use "g95_generice_isym_id". + * trans-intrinsic.c (g95_intrinsic_map_t, + g95_conv_intrinsic_lib_funtion): Use "g95_generice_isym_id". + * match.c (g95_match_intrinsic_op): Add cast in call to + g95_match_strings. + +2003-06-03 Steven Bosscher + + * support.c (skip_evaluation, warn_conversion, lvalue_p, + lvalue_or_else, pedantic_lvalue_warning, warn_for_assignment, + constant_fits_type_p, convert_and_check, + unsigned_conversion_warning): Remove these ugly remnants + we inherited from the C front end. + (function_types_compatible): Remove '#if 0'-edcode. + (build_modify_expr): Likewise. + (convert_for_assignment): Don't use the deceased functions. + The parameter fundecl is now unused. + (decl_constant_value): Always just return decl. In fact + this function is not used at present, but it might be in + the future, when we start using the tree inliner. + (overflow_warning, default_conversion, c_expand_asm_operands): + Abort when these are called, they are part of the C type + checking implementation and therefore poison to Fortran. + +2003-06-04 Steven Bosscher + + * Make-lang.in (F95_ADDITIONAL_OBJS): Don't depend on + c-pretty-print.o and c-dump.o. Add a comment on why we + depend on c-semantics.c. + * f95-lang.c (LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN): + Don't use the C front end tree dumper hook to dump the + language specific tree representation -- we don't have + one. So instead, inherit the default langhook. + +2003-06-02 Paul Brook + + * trans-expr.c (g95_conv_variable): Remove incorrent assertion. + +2003-06-02 Arnaud Desitter + + * check.c (g95_check_associated): Use proper types. Remove + extraneous argument in call to g95_error(). + +2003-06-02 Kejia Zhao + + * resolve.c (resolve_operator): Make logical operands convert to the + type with higher kind. + +2003-06-02 Kejia Zhao + + * check.c (g95_check_associated): Make sure both pointer and target has + the same type and rank. Null pointer or array section with vector + subscript as target are not allowed. + * trans.h: Declare gfor_fndecl_associated. + * trans-decl.c: (g95_build_builtin_function_decls): Initialize + gfor_fndecl_associated. + * trans-intrinsic.c (g95_conv_associated): New function. + (g95_conv_intrinsic_function): Make G95_ISYM_ASSOCIATED work. + +2003-06-02 Kejia Zhao + + * trans-array.c (g95_conv_expr_descriptor): Set the base of POINTER + according to POINTER itself rather than TARGET. + (g95_conv_expr_descriptor): Make lbound start at 1. + * trans-expr.c (g95_trans_pointer_assign): Fix a bug for Nullify. + +2003-06-01 Paul Brook + + * expr.c (g95_type_convert_binary): Make it match the standard. + * g95.texi: Remove dead link. + +2003-06-01 Steven Bosscher + + * g95.texi: Cleanup somewhat in preparation for inclusion + in GCC CVS. + +2003-05-23 Arnaud Desitter + Canqun Yang + + * resolve.c (compare_bound_int, resolve_where_shape): Proper return + type. + (g95_find_forall_index): Return proper value. + (g95_resolve_assign_in_forall, g95_resolve_forall): Use proper type to + compare the return value from g95_find_forall_index. + +2003-05-23 Arnaud Desitter + * g95.h, io.c (g95_st_label): Remove "length". + (g95_symtree): Remove "link". + (g95_case): Remove "code". + * arith.c, arith.h (g95_compare_string, g95_convert_integer, + g95_convert_real): Make an argument pointer to const. + * decl.c (colon_seen): Add a TODO. + * interface.c (g95_compare_types): Fix typo. + * interface.c (compare_interfaces): Preserve value of "p". + * intrinsic.c (sort_actual): Remove "i". + * match.c (g95_match_assign): Proper type in call to g95_match(). + * parse.c (next_free): Avoid duplicate call due to macro. + * parse.c (check_statement_label): wrong type in call to g95_error. + * primary.c (match_real_constant): Add a TODO. + * resolve.c (resolve_select): Remove useless conditional. + * simplify.c (g95_simplify_repeat): Proper assignment to + "value.character.string". + * simplify.c (g95_simplify_reshape): Wrong variable in call to + g95_error. + +2003-05-20 Canqun Yang + + * trans-stmt.c: Remove unnecessary include file defaults.h. + +2003-05-19 Lifang Zeng + + * trans-stmt.c (g95_trans_forall_loop): Handle FORALL with negative + stride. + (g95_trans_forall): Allow arbitrary number of FORALL indexes and + actual variables used as FORALL indexes. + +2003-05-15 Paul Brook + + * trans-array.c (g95_trans_static_array_pointer): Use + null_pointer_node. + (g95_trans_deferred_array): Initialize static array pointers. + * trans-expr.c (g95_conv_function_call): Use formal arglist to + correctly pass POINTER and absent CHARACTER arguments. + +2003-05-14 Lifang Zeng + + * resolve.c (g95_resolve_forall): Resolve FORALL construct/statement. + (g95_resolve_forall_body): Resolve FORALL body. + (g95_resolve_where_code_in_forall): Resolve WHERE inside FORALL. + (g95_resolve_assign_in_forall): Resolve assignment inside FORALL. + (g95_find_forall_index): Check whether the FORALL index appears in + the expression or not. + (resolve_code): Modified. + +2003-05-14 Paul Brook + + * iresolve.c (g95_resolve_spread): Convert ncopies to index_type. + +2003-05-13 Paul Brook + + * trans-types.c (g95_max_array_element_size): Now a tree node. + (g95_init_types): Work out max size properly. + (g95_get_dtype_cst): Modify to match. + +2003-05-11 Paul Brook + + * trans-io.c (add_case): Create a label decl for case labels. + +2003-05-11 Paul Brook + + * arith.c (g95_integer_index_kind): New variable. + * f95-lang.c (g95_init): Move frontend initialization here ... + (g95_post_options): ... from here. + * g95.h (g95_index_integer_kind, g95_resolve_index): Declare. + * intrinsic.c (add_functions): Use index kinds. + * iresolve.c: Convert to index_kind where needed. + * resolve.c (g95_resolve_index): Make public, use index_kind. + (resolve_array_ref): Adjust to match. + * trans-array.c: Rename g95_array_index_kind to g95_index_integer_kind. + * trans-stmt.c: Ditto. + * trans-types.c: Ditto. + * trans-types.h (g95_array_index_kind): Remove declaration. + * trans-expr.c (g95_conv_expr_present): Use null_pointer_node. + +2003-05-07 Paul Brook + + * trans-const.c (g95_conv_mpz_to_tree): Typecast constant. + * trans-intrinsic.c (g95_conv_intrinsic_bound): Convert type + of bound indices. + +2003-05-07 Paul Brook + + * trans-array.c (trans_static_array_pointer, + g95_trans_array_constructor_value, g95_conv_array_initializer, + g95_conv_structure): CONSTRUCTOR nodes only have one operand. + (g95_add_loop_ss_code): Convert subscripts to the correct type. + * trans-stmt.c (g95_trans_character_select): Ditto. + * trans-types.c (g95_init_types): Ditto. + +2003-05-07 Steven Bosscher + + * f95-lang.c (expand_function_body): Use input_line, not lineno. + * trans-decl.c (g95_generate_function_code, + g95_generate_constructors): Likewise. + * trans.c (g95_trans_runtime_check, g95_add_block_to_block, + g95_get_backend_locus, g95_set_backend_locus, g95_trans_code): + Likewise. + +2003-05-07 Kejia Zhao + * trans-types.c (g95_get_derived_type): Fix bug for DERIVED type + with components point to the DERIVED type itself, and two DERIVED + type with components point to each other. + * trans-expr.c (g95_conv_componet_ref): Modified + +2003-05-07 Kejia Zhao + * trans-expr.c (g95_conv_expr): Translate EXPR_NULL into + null_pointer_node. + (g95_trans_pointer_assign): Implement Nullify. + +2003-05-01 Paul Brook + + * trans-array.c (g95_walk_function_expr): Cope with NULL esym. + * trans-decl.c (g95_get_symbol_decl): Don't mangle dummy functions. + +2003-05-01 Paul Brook + + * trans-array.c, trans.c, trans-expr.c, trans-intrinsic.c, + trans-stmt.c: Replace empty_stmt_node with build_empty_stmt () and + IS_EMPTY_STMT. + +2003-05-01 Canqun Yang + + * trans-stmt.c (g95_trans_integer_select): Add a parameter to build + CASE_LABEL_EXPR. + +2003-04-28 Paul Brook + + * iresolve.c (g95_resolve_transpose): COMPLEX types are twice as big + as their kind suggests. + (g95_resolve_reshape): Ditto. + +2003-04-28 Chun Huang + + * trans-expr.c (g95_conv_substring_expr): New function. + (g95_conv_expr): Use it. + +2003-04-28 Paul Brook + + * iresolve.c (g95_resolve_transpose): Make it match the + implementation. + * trans-intrinsic.c (g95_is_intrinsic_libcall): Add TRANSPOSE. + +2003-04-18 Steven Bosscher + + * trans-types.c (g95_add_field_to_struct): New function to + add a field to a UNION_TYPE or RECORD_TYPE. + * trans-types.h (g95_add_field_to_struct): Prototype. + (g95_get_derived_type): Use g95_add_field_to_struct to add + components. + * trans-io.c (g95_add_field): Remove. + (ADD_FIELD): Use new g95_add_field_to_struct function. + (ADD_STRING): Likewise. + * trans-stmt.c (g95_trans_select): Likewise. + (g95_add_field): Remove duplicated function. + +2003-04-18 Canqun Yang + + Port implementation for CHARACTER SELECT from Andy's tree. + * trans-stmt.c (g95_trans_character_select): Implement character + select. (g95_add_field): New function. + * trans-decl.c: Declare 'gfor_gndecl_select_string'. + (g95_build_builtin_function_decls): Add 'gfor_fndecl_select_string'. + * g95.h (struct g95_case): Add field 'int n'. + * trans.h: Declare 'gfor_fndecl_select_string'. + +2003-04-18 Steven Bosscher + + * bbt.c (duplicate_key, g95_insert_bbt_with_overlap): Remove. + (g95_insert_bbd): Die on duplicates. + * g95.h (g95_insert_bbt_with_overlap): Delete prototype. + +2003-04-14 Steven Bosscher + + * g95.texi: Require GMP 4.0 -- like we actually + do. Explain the testsuite and what-goes-where. + Don't use undefined texinfo symbol. Break very + long line. Remove finished item from the list + of open projects. + +2003-04-11 Canqun Yang + + * trans-stmt.c (g95_evaluate_where_mask): Give mask temporaries + LOGICAL type. + +2003-04-10 Canqun Yang + + * trans-stmt.c (g95_trans_forall): Implement WHERE inside FORALL. + (g95_trans_forall_body): New function. + +2003-04-10 Canqun Yang + + * resolve.c (resove_where): New function. + (resolve_where_shape): New function. + (resolve_code): Add call to 'resolve_where' + * trans-stmt.c (g95_trans_where): Modified. + (g95_trans_where_2): New function. + (g95_trans_where_assign): New function. + (g95_evaluate_where_mask): New function. + (g95_add_to_stmt_list): New function. + (g95_get_temp_expr): New function. + * trans.h (where_stmt_list): New structure. + +2003-04-10 Paul Brook + + * g95spec.c (DEFAULT_SWITCH_TAKES_ARG): Remove. + (DEFAULT_WORD_SWITCH_TAKES_ARG): Ditto. + +2003-04-10 Steven Bosscher + + Update after mainline -> tree-ssa-branch merge. + * f95-lang.c (g95_mark_addressable): Update put_var_into_stack + call. + (g95_init): Update for new lang_hooks definition. + (g95_post_options): New langhook. + (LANG_HOOK_POST_OPTIONS): Clear, then define to g95_post_options. + * scanner.c (g95_new_file): Comment update. + +2003-04-09 Arnaud Desitter + + * g95.h, lang-options.h: Add -Wimplicit-interface. + * options.c (g95_init_options, g95_parse_arg): Set it. + * interface.c (check_intents): Warn about call with implicit + interface. + * resolve.c (resolve_unknown_f, resolve_unknown_s): Call + g95_procedure_use. + +2003-04-05 Paul Brook + + * iresolve.c (g95_resolve_spread): Don't resole based on type. + * trans-intrinsic.c (g95_is_intrinsic_libcall): Add G95_ISYM_SPREAD. + +2003-03-29 Paul Brook + + * iresolve.c (g95_resolve_pack): Don't bother resolving based on type. + (g95_resolve_unpack): Ditto. + * trans-intrinsic.c (g95_conv_intrinsic_merge): New Function. + (g95_conv_intrinsic_function): Use it. Remove PACK and UNPACK. + (g95_is_intrinsic_libcall): Add PACK and UNPACK. + +2003-03-25 Paul Brook + + * arith.c (g95_unary_user, g95_user): Remove dead functions. + * arith.h: Ditto. + * array.c (g95_free_array_ref): Ditto. + * g95.h: Ditto. + * symbol.c (g95_use_derived_tree): Ditto. + * intrinsic.c (add_functions): Use simplification for SCALE. + * primary.c (g95_match_rvalue): Test sym, not symtree. + +2003-03-25 Paul Brook + + * trans-decl.c (build_function_decl): Add parameter before it gets + turned into a constant. + * iresolve.c (g95_resolve_eoshift): Resolve to a useful name. + * trans-intrinsic.c (g95_is_intrinsic_libcall): Add G95_ISYM_EOSHIFT. + * trans-decl.c (g95_create_module_variable): Don't pushdecl constants. + +2003-03-22 Paul Brook + + * trans-array.c (g95_conv_array_initializer): Allow scalar + expressions. + * trans-decl.c (g95_finish_var_decl): Result variables are not + module variables. + * trans-intrinsic.c (g95_conv_intrinsic_transfer): New function. + (g95_conv_intrinsic_function): Use it. + * trans-types.h (g95_type_spec): Remove dead declaration. + +2003-03-21 Paul Brook + + * trans-decl.c (g95_build_function_decl): Mark string parameters. + +2003-03-20 Paul Brook + + * trans-decl.c (g95_build_function_decl): Put character length + parameters at the end of the function declaration. + * trans-expr.c (g95_conv_function_call): Ditto. + * trans-types.c (g95_get_function_type): Ditto. + +2003-03-20 Arnaud Desitter + + * resolve.c (resolve_formal_arglist): Don't impose intent for + procedure arguments of pure functions. + (resolve_select): Remove redundant assignment. + +2003-03-19 Arnaud Desitter + + * arith.c (validate_logical), g95.h, options.c (g95_init_options): + Remove option l1. + * g95.h, intrinsic.c(g95_get_intrinsic_sub_symbol): Add const. + * iresolve.c(g95_resolve_cpu_time, g95_resolve_random_number): Add + const. + * lang-options.h: Remove -finline-repack-arrays. Add -fg77-calls. + Order list. + * symbol.c (g95_add_type): Fix typo in comment. + + +2003-03-16 Paul Brook + + * dump-parse-tree.c (g95_show_code_node): Print resolved sym name. + * expr.c (g95_build_call): Remove. + * f95-lang.c (puchdecl_top_level): New function. + * g95.h (g95_code): Store resolved symbol, not just the name. + * intrinsic.c (g95_intrinsic_namespace): New global namespace. + (g95_intirinsic_init_1, g95_intrinsic_done_1): Use it. + (g95_get_intrinsic_sub_symbol): New function. + * iresolve.c (g95_resolve_cpu_time): Use it. + (g95_resolve_random_number): Ditto. + * resolve.c: Set code->resolved_sym instead of code->sub_name. + * trans-decl.c (g95_get_extern_function_decl): Give external decls + the correct DECL_CONTEXT. Add global symbold to the global scope. + * trans-stmt.c (g95_trans_code): Remove hacks now the fronted is + fixed. + +2003-03-16 Paul Brook + + * g95.h (g95_option_t): Add g77_calls. Remove inline_repack_arrays. + * options.c (g95_parse_arg): Ditto. + * module.c (mio_symbol_attribute): Handle the always_explicit bit. + * resolve.c (resolve_formal_arglist): The always_explicit sould be set + for the procedure, not the parameter. + * trans-array.c (g95_trans_g77_array): New function. + (g95_trans_assumed_size): Use it. + (g95_trans_dummy_array_bias): Ditto. + (g95_conv_array_parameter): Handle g77 arrays. Move existing body ... + (g95_conv_expr_descriptor): ... to here. Update callers. + * trans-decl.c (g95_build_dummy_array_decl): Handle g77 arrays. + (g95_get_symbol_decl): Avoid processing g77 arrays multiple times. + * trans-expr.c (g95_conv_function_call): Handle g77 arrays. + * trans-intrinsic.c (g95_get_symbol_for_expr): Never use g77 arrays. + * trans-types.c (g95_is_nodesc_array): Handle g77 arrays. + (g95_sym_type): Ditto. + +2003-03-15 Paul Brook + + * trans-array.c (g95_walk_elemental_function_args): Don't amputate the + first chain. + * trans-expr.c (g95_conv_function_call): Use the resolved symbol. + +2003-03-14 Paul Brook + + * trans-array.c (g95_array_is_packed): Remove. + (g95_conv_array_base): Correctly handle all descriptorless cases. + (g95_conv_array_stride): Use descriptorless strides. + (g95_trans_dummy_array_bias): Don't always repack the array. + (g95_build_dummy_array_decl): Automatic dummy arrays are only partial + packed. + * trans-types.c (g95_get_nodesc_array_type): Differentiate between + dummy and non-dummy arrays... + (g95_sym_type, g95_get_derived_type): ... like these. + (g95_get_array_type_bounds): Allow discontiguous arrays. + +2003-03-12 Paul Brook + + * array.c (g95_resolve_array_spec): Fix comment. + * g95.h (symbol_attributes): New flag always_explicit. + * resolve.c (resolve_formal_arglist): Set it always_explicit. + * iresolve.c (g95_resolve_lbound, g95_resolve_ubound): Simplify. + * trans-array.c (g95_conv_descriptor_dimension): Remove dead assert. + (g95_trans_array_bounds): Allow assumed shape arrays. + (g95_trans_repack_array): Remove. + (g95_trans_dummy_array_bias): Rewite to use descriptorless arrays. + * trans-decl.c (g95_build_qualified_array): Only ignore absent + bounds for assumed size arrays. + (g95_build_dummy_array_decl): Use descriptorless arrays. + * trans-expr.c (g95_conv_expr_present): Allow descriptorless arrays. + (g95_trans_pointer_assign): Fix typo. + * trans-intrinsic.c (g95_conv_intrinsic_function_args): Remove dead + code. + (g95_conv_intrinsic_bound): Rewrite to handle descriptorless arrays. + * trans-types.c (g95_get_nodesc_array_type): Allow non-packed arrays. + Also modify callers. + * trans-types.h (g95_get_nodesc_array_type): Modify prototype. + +2003-03-08 Paul Brook + + * trans-array.c (g95_walk_elemental_functions): Don't reverse the SS. + (g95_conv_array_ubound): Provide dummy value for assumed size arrays. + * resolve.c (compare_spec_to_ref): Allow full array sections. + +2003-03-08 Paul Brook + + * expr.c (g95_simplify_expr): Also simplify array index and + substring expressions. + * resolve.c (compare_spec_to_ref): Check for assumed size bounds. + * trans-array.c (g95_trans_array_bounds): New function. + (g95_trans_auto_array_allocation): Use it. + (g95_trans_assumed_size): Rewrite. + * trans-decl.c (gfor_fndecl_in_pack, gfor_fndecl_in_unpack): Declare. + (gfor_fndecl_repack): Remove. + (g95_build_qualified_array): Handle absent upper bounds. + (g95_build_dummy_array_decl): Assumed shape arrays are descriptorless. + (g95_get_symbol_decl): Update. + (g95_build_intrinsic_function_decls): Initialize new decls. + * trans.h (gfor_fndecl_in_pack, gfor_fndecl_in_unpack): Declare. + (gfor_fndecl_repack): Remove. + * trans-io.c (g95_build_io_library_fndecls): Correct prototypes. + * trans-types.c: (g95_build_array_type): Merge duplicated code.. + (g95_get_nodesc_array_type): Handle absent bounds. + * trans-types.h (g95_get_nodesc_array_type): Declare. + +2003-03-04 Paul Brook + + * f95-lang.c (DEF_FUNCTION_TYPE_VAR_3): Define before including + builtin-types.def. + +2003-03-02 Paul Brook + + * options.c (g95_init_options): Drfault to 1. + (g95_pasrse_arg): Add -frepack-arrays, use strcmp. + * trans-array.c (g95_conv_array_data, g95_conv_array_base, + g95_conv_array_stride,g95_conv_array_lbound, g95_conv_array_ubound): + Handle non-constant size automatic arrays. + (g95_conv_section_upper_bound, g95_conv_section_startstride): Use + generic bound functions. + (g95_trans_auto_array_allocation): Don't create a descriptor. + (g95_trans_assumed_size): New function (broken). + (g95_trans_dummy_array_bias): Remove unused var. + * trans-array.h (g95_trans_assumed_size): Declare. + * trans-decl.c (create_index_var): New fuction. + (g95_build_qualified_array): New function. + (g95_get_symbol_decl): Use it. + (g95_trans_deferred_vars): Handle assumed shape seperately. + * trans-types.c (get_element_type): Handle heap allocated arrays. + (g95_is_nodesc_array): Include non-const size arrays. + (g95_get_nodesc_array_type): Ditto. + +2003-02-23 Paul Brook + + * trans-array.c (g95_array_init_size): Should use stride, not size of + last dimension. + +2003-02-18 Paul Brook + + * trans-expr.c (g95_trans_arrayfunc_assign): Nove elemental check + after intrinsic function check. + +2003-02-18 Arnaud Desitter + + * io.c (match_io): Fix missing return value and remove useless + assignment. + * match.c (g95_match): Remove useless assignment. + * module.c (parse_string): Remove useless post increment. + * simplify.c (g95_simplify_verify): Remove useless assignment. + +2003-02-15 Paul Brook + + * expr.c (restricted_intrinsic): Handle bad values gracefully. + * g95.h (symbol_attribute): Add referenced member. + (g95_symbol): Add dummy_order member. + (g95_set_sym_referenced): Declare. + * match.c (g95_match_assignment, g95_match_call): Use it + * primary.c (match_actual_arg, g95_match_rvalue, + g95_match_variable): Ditto. + * symbol.c (next_dummy_order): New variable. + (g95_set_sym_referenced): New function. + (check_done): New function. + (g95_add_*): Use it. + * trans-decl.c: Make formatting conform to GCC standards. + (g95_defer_symbol_init): Add dummy variables in the right order. + (g95_get_symbol_decl): Only accept referenced variables. + (g95_create_module_variable): Module variables are always required. + (generatr_local_decls): New function. + (generate_local_vars): New function. + (g95_generate_function_code): Use it. + +2003-02-13 Paul Brook + + * trans-decl.c (g95_conv_struct_cons): Remove. + (g95_get_symbol_decl): Use g95_conv_expr for structure initializers. + * trans-expr.c (g95_conv_structure): New function. + (g95_conv_expr): Use it. + +2003-02-09 Paul Brook + + * trans-array.c (g95_array_init_size): Don't evaluate the linit + expressions multiple times. + (g95_trans_auto_arry_allocation): Use pointer not tmp. + +2003-02-08 Paul Brook + + * module.c (mio_symtree_ref): Declare as static. + (mio_expr): Remove dead code. + (read_module): Set the symtree link for fixups. + * trans-intrinsic.c (g95_conv_intrinsic_round): Rename... + (build_round_expr): ... to this. + (g95_conv_intrinsic_aint): New function. + (g95_conv_intrinsic_function): Use it. + +2003-02-08 Paul Brook + + * trans-array.c (g95_trans_array_constructor_value): Use the acutal + offset after modificaton, not the increment expression. + * dependency.c: Kill excess whitespace. + +2003-02-07 Sanjiv Gupta + + * dependency.h: Remove some function declarations. + * dependency.c (get_no_of_elements): Change this function not to + return int. + * other: Add comments for all modified functions. + +2003-02-06 Paul Brook + + * g95spec.c (lang_specific_functions): Fix initializer warning. + * dump-parse-tree.c (g95_show_expr): Use typespec instead of symtree + for structure type names. + * trans-decl.c (g95_cons_structure_cons): New function. + (g95_get_symbol_decl): Use it. + * trans-expr.c (g95_conv_component_ref): Remove duplicate pointer + referencing code. + +2003-02-06 Arnaud Desitter + + * resolve.c (compare_cases): Add const to casts. + +2003-01-30 Arnaud Desitter + + * g95.h (g95_check_f): Change a1 to f1m. + * intrinsic.c (add_sym_1m, check_specific, + g95_intrinsic_func_interface): Use it. + + * module.c (init_pi_tree): Remove useless cast. + (fp2): Fix argument type. + + * parse.c (parse_select_block): Add comment. + +2003-02-05 Toon Moene + + * lang-options.h: Fix warning involving C90 concatenated + strings. + +2003-02-06 Steven Bosscher + Arnaud Desitter + + * io.c (format_asterisk): Complete initializer to kill warning. + * arith.c (DEF_G95_INTEGER_KIND, DEF_G95_LOGICAL_KIND, + DEF_G95_REAL_KIND, MPZ_NULL, MPF_NULL): New #defines. + (g95_integer_kinds, g95_logical_kinds, g95_real_kinds): Use the + new defines to complete initializers. Kills all warnings. + + * Make-lang.in: Comment cleanup. + +2003-02-05 Paul Brook + + * array.c (g95_free_constructor): Handle NULL expressions. + * resolve.c (resolve_structure_cons): Ditto. + * decl.c (g95_match_null): New Function. + (variable_decl): Use it. + * module.c (mio_expr): Don't bother saving symtree for EXPR_STRUCTURE. + * primary.c (g95_match_runtime): Don't use symtree for EXPR_STRUCTURE. + * trans-types.c (g95_set_decl_attributes): Remove empty function. + +2003-02-05 Paul Brook + + * trans.h (build1_v): New macro. + (build_v): Remove pointless and incorrect prototype. + * various: Use build1_v for GOTO_EXPR and LABEL_EXPRs. + * f95-lang.c (g95_init_builtin_decls): DEF_BUILTIN takes 10 args. + +2003-02-01 Steven Bosscher + + * Make-lang.in (F95_OBJS): Remove one more dead file. + +2003-02-01 Paul Brook + + * lang-specs.h: Don't pass -ffixed-form to the linker. + * trans-decl.c (g95_generate_function_code): Clear saved decl chain. + +2003-02-01 Paul Brook + + * Make-lang.in (F95_OBJS): Remove dead files. + * trans-array.c (g95_array_init_size): Do the right thing when + ubound=NULL. + * trans-decl.c (g95_generate_function_code): Initialize deffered + symbol list before translating contained subroutines. + * trans-expr.c (g95_conv_expr, g95_conv_expr_reference): Substitute + scalar invariant values here... + (g95_conv_variable, g95_conv_function_call): ... instead of here ... + * trans-intrinsic.c (g95_conv_intrinsic_function_args): .. and here. + +2003-01-29 Paul Brook + + * trans-array.c (g95_add_loop_code): Put pre code in the right block. + (g95_walk_elemental_function_args): Reverse chains before adding. + (g95_reverse_ss): Move about a bit. + * trans-expr.c (g95_conv_function_call): Handle scalar intrinsic + function arguments. + +2003-01-28 Paul Brook + + * intrinsic.c (resolve_intrinsic): Use correct union member. + * trans-array.c (g95_trans_dummy_array_bias): Don't touch absent + parameters. + * trans-decl.c (g95_get_symbol_decl): Don't translate initializers for + use associated variables. + * trans-intrinsic.c (g95_conv_intrinsic_present): Move body ... + * trans-expr.c (g95_conv_expr_present): ... to here. + * trans.h: Declare it. + * trans-types.c (g95_sym_type): Assume subroutine if not specified. + +2003-01-28 Arnaud Desitter + + * array.c (expand_iterator): Suppress useless assignment. + * decl.c (match_char_spec): Ditto. + * io.c (match_io_iterator): Ditto. + * primary.c (match_real_constant): Ditto. + * interface.c (fold_unary, g95_free_interface, g95_extend_expr): + Ditto. Also, use g95_intrinsic_op not int for intrinsic operators. + * matchexp.c (match_add_operand, match_level_5): Likewise. + * module.c (parse_atom, find_enum): Likewise. + * resolve.c: move #include + (resolve_select): Fix serious typo. + +2003-01-28 Steven Bosscher + + * Make-lang.in: Don't build with broken tree-ssa-pre. + +2003-01-28 Steven Bosscher + + * resolve.c (resolve_index): Add a TODO. + * symbol.c: Remove useless "#include ". + +2003-01-27 Paul Brook + + * check.c (check_rest): Allow different type kinds as an extension. + * g95.h (g95_resolve_f): Add f1m. + * intrinsic.c (add_sym_1m, resolve_intrinsic): Use it. + * intrinsic.h: Chenge prototypes for MIN and MAX. + * iresolve.c (g95_resolve_minmax): New function. + (g95_resolve_min, g95_resolve_max): Use it. + * trans-intrinsic.c (g95_trans_intrinsic_minmax): Only evaluate + arguments once. + (g95_conv_intrinsic_present): Fix logic. + +2003-01-27 Steven Bossche + + * g95.h (g95_case): Don't be a tree, be a double linked list. + * match.c (match_case_selector): Remove redundant semantics check. + Clean up a few goto's to make it a tiny little bit faster. + * resolve.c (case_tree): Die. + (compare_cases): Accept and compare unbounded cases too. + (check_case_overlap): Don't build a tree. Instead, merge-sort the + whole list of g95_cases passed from resolve_select. + (sane_logical_select): Die. + (check_case_expr): Return FAILURE if a CASE label is of the wrong + type kind. + (resolve_select): Fixup case expression for computed GOTOs, put it + in expr, not expr2, for easier handing in the parse tree dumper and + the code generator. Rewrite the rest of the function: Kill + unreachable case labels and unreachable case blocks. + * dump-parse-tree.c (g95_show_code_node): Always dump expr for + an EXEC_SELECT, not case2 anymore. + * trans-const.c (g95_conv_constant_to_tree): New function. + (g95_conv_constant): Use it. + * trans-const.h: Declare prototype for the new function. + * trans-stmt.c (g95_trans_integer_select, g95_trans_logical_select, + g95_trans_character_select): New static functions. + (g95_trans_select): Rewrite. + +2003-01-26 Paul Brook + + * intrinsic.c (add_fnctions): Properly add dreal. + * trans-intrinsic.c (g95_conv_intrinsic_present): New function. + (g95_conv_intrinsic_function): Use it. + * trans-io.c (build_dt): Abort on internal files (unimplemented). + +2003-01-26 Paul Brook + + Widespread changes to the handling of symbols in expressions. These + are now linked via g95_symtree nodes. + * parse.c (g95_fixup_sibling symbols): New function. + (parse_contained): Use it. + * g95.h (symbol_attribute): Add contained. Indicates a symbol is a + contained procedure that has bee correctly fixed up. + (g95_code, g95_expr): Point to a g95_symtree, not a g95_symbol. + +2003-01-24 Paul Brook + + * trans-array.c (g95_walk_expr): Function result attributes are in + sym->result. + * trans-expr.c (g95_conv_function_call, + g95_trans_arrayfunc_assign): Ditto. + * trans-decl.c (g95_get_symbol_for_expr): Set sym->result. + +2003-01-23 Steven Bosscher + + * expr.c (check_restricted): Fix error message. + * symbol.c (free_st_labels): Plug memleak. + +2003-01-22 Steven Bosscher + + * arith.c (reduce_unary, reduce_binary_ac, reduce_binary_ca, + reduce_binary_aa, reduce_binary, eval_intrinsic, + eval_intrinsic_f2): Use typesafe prototypes for eval functions. + * g95.h (g95_check_f, g95_simplify_f, g95_resolve_f): New unions + for typesafe intrinsics helper functions. + (g95_intrinsic_sym): Use them. + * intrinsic.c (do_check, add_sym, add_sym_0, add_sym_1, + add_sym_1s, add_sym_1m, add_sym_2, add_sym_3, add_sym_4, + add_sym_5, add_conv, resolve_intrinsic, do_simplify, + check_specific, g95_intrinsic_func_interface, + g95_intrinsic_sub_interface): Adjust all calls to intrinsics + helper functions. + * trans-decl.c (g95_get_extern_function_decl): Likewise. + * Make-lang.in: Don't disable warnings for strict prototypes + any longer, everything is typesafe now. + +2003-01-22 Steven Bosscher + + * bbt.c (duplicate_node): Make static. + * module.c (module_name): Make static. + * scanner.c (include_dirs): Make static. + +2003-01-20 Steven Bosscher + + Hard coded _gfor_'s should not show up anymore. + * g95.h (PREFIX): New macro. + * iresolve.c (g95_resolve_cpu_time): Use PREFIX, not + hard-coded "_gfor". + (g95_resolve_random_number): Likewise. + * trans-decl.c (g95_build_intrinsic_function_decls): Likewise. + * trans-io.c: Remove 'prefix' macro. Replace all uses with + the new PREFIX macro from g95.h. + +2003-01-20 Steven Bosscher + + The troubles of forking... Andy implemented this just now too. + Let's stick to that and keep the trees close. + * g95.h (g95_st_label): 'format' member is now a g95_expr. + * io.c: Revert previous changes. + (g95_match_format): Match the format string as a character + literal expression. + * match.h (g95_statement_label): Declare external. + * parse.c: Revert previous changes. + * symbol.c (g95_free_st_label): Free a g95_expr instead + if a 'char *'. + * trans-io.c: Revert previous changes. + (build_dt): Use set_string to set the format string. + +2003-01-20 Steven Bosscher + + * io.c (format_string): Make non-static. + (g95_match_format): Remember the format string. + (terminate_io): Add I/O termination for empty I/O lists. + * match.h: Declare external format_string. + * parse.c (check_statement_label): Attack the format string + to a format label for FORMAT statements. + * trans-io.c (g95_add_field): Define prefix macro. Replace + all uses of PREFIX define with a use of this macro. + (build_dt): Implement formatted I/O for format labels. + +2003-01-20 Steven Bosscher + + * lang-options.h: Kill "-std=F". + * options.c: Remove unimplemented "-std=F". Modify + web address. + * misc.c (g95_terminal_width): New function. + * error.c (g95_error_init_1): Use g95_terminal_width. + * g95.h: Add prototype for g95_terminal_width, remove + fmode flag. + +2003-01-19 Steven Bosscher + + * Make-lang.in: Fix typo. + +2003-01-18 Steven Bosscher + + * g95.h (struct g95_case): Remove unused cruft, new member + 'where' to keep track of the locus of the default case. + * match.c (g95_match_case): Add locus to the current case. + (match_case_selector): Likewise. + * parse.c (parse_select_block): Move semantics check for + multiple DEFAULT cases out of here to... + * resolve.c (check_case_overlap): ...here. Return sooner + when possible. + (check_case_expr): Take two g95_cases now, use to sure the + expression kinds are the same. + (resolve_select): Cleanup. + +2003-01-18 Paul Brook + + * trans-io.c: Fix typos in ported IO work (set_fla[tg]). + * trans-decl.c (g95_set_symbol_decl): Handle non-array result + variables. + (g95_get_extern_function_decl): Put decls in the correct context. + +2003-01-18 Steven Bosscher + + * trans-io.c: Port changes from Andy to set ERR flag. + +2003-01-17 Paul Brook + + * trans-array.c: Add various comments. + (g95_ss_terminator): Declare as const. + (g95_walk_expr): Remove first parameter and update all callers. + (g95_walk_op_expr): Initialize scalar SS properly. + * trans-array.h (g95_walk_expr): Update prototype. + * trans-expr.c: Update for new g95_walk_expr. + * trans-intrinsic.c: Ditto. + * trans-io.c: Ditto. + * trans.h: Various comments for SS chains. + +2003-01-17 Paul Brook + + * intrinsic.h (g95_generic_isym_id): Add G95_ISYM_S?_KIND, SPACING + and RRSPACING. + * intrinsic.c (add_functions): Use them. + * trans-intrinsic.c (g95_conv_intrinsic_function): Ditto. + * trans-expr.c (g95_conv_expr_lhs): Abort on impossible error. + +2003-01-17 Steven Bosscher + + Fallout of a small merge conflict: + * intrinsic.c: Un-revert lost patch (G95_ISYM_SCALE). + +2003-01-17 Steven Bosscher + + * initrinsic.c: New add_sym_* functions for strong typing. + (add_conv): Make prototype strict. + * dump-parse-tree.c, dependency.c: Include config.h + * resolve.c, trans-io.c: Fix typos. + +2003-01-17 Steven Bosscher + + * dump-parse-tree.c (g95_show_code_node): Show the + condition for a computed GOTO that was transformed + to a SELECT CASE construct. + * resolve.c (check_case_overlap): Revert previous switch + to treaps, it was too slow and didn't catch all trouble. + (resolve_symbol): Be more flexible about module procedures. + * symbol.c (check_conflict): Point to relevant section in + the standard for dubious conflict. Allow procedure + dummy arguments to be optional again. + * trans-io (add_field): Rename to g95_add_field. Change + all callers. + * trans-stmt (trans_select): Handle unbounded cases for + integer SELECT CASE constructs. Fix/add more comment. + +2003-01-17 Steven Bosscher + + * g95.h: Uses GCC's function attribute macros. + * error.c, module.c, parse.c, g95.h: More function attributes. + +2003-01-16 Steven Bosscher + Forgot a file... + * trans-decl.c (get_label_decl): Use TREE_LINENO instead + of DECL_SOURCE_LINE, and TREE_FILENAME instead of + DECL_SOURCE_FILE. + +2003-01-16 Steven Bosscher + + * f95-lang.c (pushdecl): Use TREE_LINENO instead of + DECL_SOURCE_LINE. + * trans.c (g95_trans_code): Use annotate_all_with_file_line + instead of nowdead wrap_all_with_wfl. + +2003-01-14 Steven Bosscher + + * parse.c (g95_parse_file): In verbose mode, dump the parse tree + before generating code, so we can still see it even if the code + generation phase dies. + +2003-01-14 Steven Bosscher + + * decl.c (build_sym): Split out initialization expression parts... + (add_init_expr_to_sym): ...to here. + (variable_decl): Add the symbol following an attribute list to the + symbol tree before parsing the optional initialization expression + if the symbol is not of a derived type. + * primary.c (g95_match_rvalue): Don't assume a symbol always has + a value if it is a PARAMETER. + +2003-01-14 Steven Bosscher + + * misc.c: Don't #include + * module.c: Ditto. Kill uses of mtrace, muntrace. If there + ever was a glibc bug, then either this was never reported to + glibc people, or it has been fixed for so long that there's + no information you can find about it, anywhere. + +2003-01-14 Steven Bosscher + + Fix warnings: + * module.c (attr_bits, bt_types, array_spec_types): + Switch 'const' and 'static'. + * iresolve.c (g95_resolve_reshape): Make __resolve0 non-'const'. + + GNU'ify source code: + * trans-io.c: Numerous fixes, one fixed warning and a few + TODO markers so that we don't forget about them. + +2003-01-13 Paul Brook + + * intrinsic.c (add_functions): Add G95_ISYM_SCALE. + * intrinsic.h (g95_generic_isym_id): Remove bogus G95_ISYM_ANINIT. + Add G95_ISYM_SCALE. + * trans-intrinsic.c (g95_conv_intrinsic_function): Ditto + * match.c (g95_match_stop): Fix dumb == -> != error. + +2003-01-13 Steven Bosscher + + * dump-parse-tree.c (show_indent): Add line breaks. This + whole dumping process needs cleanups. + * f95-lang.c (g95_mark_addressable): Fix prototype to match + the langhook. Fix 'return's accordingly. + * g95-support.h: Adjust prototype. + * g95.h: Add 'no_backend' member to 'g95_option_t' struct. + * lang-options.h: Add '-fsyntax-only'. + * options.c (g95_init_options): Init 'no_backend'. + (g95_parse_arg): Deal with '-fsyntax-only'. + * parse.c (g95_parse_file): Do not generate code if 'no_backend' + is set. + +2003-01-13 Steven Bosscher + Patch from Arnaud + * resolve.c (resolve_symbol): Assumed shape arrays must be dummy + arguments. Also make sure that if a symbol is marked INTRINSIC, + an intrinsic with the symbol's name actually exists. + (check_conflict): Make EXTERNAL and DIMENSION attributes conflict. + Do not allow PROCEDURES to have the SAVE, POINTER, TARGET, + ALLOCATABLE, RESULT, IN_NAMESPACE, OPTIONAL or FUNCTION attribute. + +2003-01-13 Steven Bosscher + + * resolve.c (resolve_contained_functions): Fix condition, don't + throw internal_error if a child namespace has no name. Apparently + this can be the case? + +2003-01-11 Paul Brook + + Port changes from Andy's tree: + * g95.h (g95_code): Add stop_code. + * match.c (g95_match_stop): Detter syntax checking. + * resolve.c (resolve_generic_f0): Return match type. + (resolve_generic_f): Remove dead/duplicated code. + (resolve_specific_f): Ditto. + * dump-parse-tree.c (g95_show_code_node): Handle new STOP format. + * trans-decl.c (gfor_fndel_stop_*): New fndecl nodes. + * trans-stmt.c (g95_trans_stop): Handle new STOP format. + +2003-01-11 Paul Brook + + * trans-array.c: Various documentation/comment changes. + * trans-stmt.c: Ditto. + + +2003-01-10 Paul Brook + + * options.c/h: Add -fdump-parse-tree as alias of -v. + +2003-01-10 Steven Bosscher + + * dump-parse-tree.c (g95_show_namespace): Fixed another + typo. Sorry, it's Friday... + +2003-01-10 Steven Bosscher + + Spotted by Tobi: + * trans-array.c, trans-array.h, trans.c, trans-const.c, + trans-const.h, trans-decl.c, trans-expr.c, trans.h + trans-intrinsic.c, trans-io.c, trans-stmt.c, trans-stmt.h + trans-types.c: Fix bogus copyright years, add 2003. + * trans-types.h: Give copyright header. + +2003-01-10 Steven Bosscher + + * dump-parse-tree.c (g95_show_namespace): Fixed typo. + * expr.c, options.c, scanner.c: Add some more 'const' markers. + * intrinsic.c: Some constant strings moved to read-only memory. + * io.c (format_asterisk): Move to... + * g95.h: ...here. + +2003-01-10 Steven Bosscher + + * dump-parse-tree.c (g95_show_namespace): Dump implicit + types for ranges instead of per-letter. Indent the + 'CONTAINS' just like everything else. + * resolve.c (resolve_contained_functions): Clarify comment. + Explain non-obvious conditional expression. Improve + diagnostics if tyoe cannot be resolved. + Port semi-fix from Andy's tree: + (was_declared): Move up before first use. + (generic_sym, specific_sym): New functions. Code moved + out if procedure_kind. + (procedure_kind): Simplify using new functions. + (resolve_generic_f): Make sure the functions we find in + a parent namespace is generic. + (resolve_specific_f): Ditto for specific functions. + +2003-01-10 Steven Bosscher + + * trans-stmt.c, trans.c: Fix some code style issues. Add + some more comment (but still not enough!). + +2003-01-10 Steven Bosscher + + * symbol.c (flavors, procedures, intents, acces_types, + access_types, ifsrc_types): Make const. + * misc.c (g95_string2code): Make 'm' param 'const'. + * module.c (find_enum, write_atom, mio_name): Make + 'm' param 'const'. + (attr_bits, bt_types, array_spec_types, array_ref_types, + ref_types, expr_types): Make const. + * g95.h: Adjust external decls. + +2003-01-09 Paul Brook + + * Testsuite: Add a load of new cases. + +2003-01-08 Steven Bosscher + + * Make-file.in: Add dependency on back end header files; + a parallel build should work now. + * f95-lang-c (lang_identifier): Remove bogus comment. + (g95_be_parse_file): Fix prototype. + (g95_init): Make static. + (g95_finish): Make static. + * error.c (g95_syntax_error): Kill. Make define in... + * g95.h (g95_syntax_error): Define. + (g95.options): Make 'source' member 'const'. + * interface.c (g95_match_interface): Explain + hard-to-read condition. + (g95_match_end_interface): Ditto. + * trans_const.c (g95_build_string_const): Make 's' parameter + 'const'. + * trans_const.h: Adjust protoype accordingly. + * trans-decl.c: Include tree-dump.h + (g95_generate_function_code): Build fixes for recent changes + in the tree-ssa branch. + +2003-01-08 Steven Bosscher + + * format.c: Kill, move code from here... + * io.c: ...to here. + * Make-lang.in: Adjust. + * MANIFEST: Ditto. + * match.h: Ditto. + * BUGS: Mention where to submit bugs. Move old content... + * TODO: ...to here. New file. + +2003-01-08 Steven Bosscher + Fix most warnings, and suppress the ones we can't fix for now. + * Make-lang.in: Suppress warnings about bad proto's in g95.h, + these warnings just clutter the screen and there's not much + we can do about them for now anyway. + * check.c, iresolve.c: Mark unused function parameters. + * dump-parse-tree.c (g95_show_array_spec): Punt on AS_UNKNOWN, + they should be resolved before they get here. + * error.c: Remove unused FILE *status_out. + * f95-lang.c (g95_init): Remove bogus cast. + * Many files: Make things 'const' where required. + * g95.h: Fix prototypes for all modified functions above. + (g95_options): Remove 'object' member. + +2003-01-07 Steven Bosscher + + * Make-file.in: Cleanup bogus targets. Add more comment. + * lang-options.h: New option '-w'. + * g95.h: add no_options field to struct g95_options. + * options.c (g95_init_options): Default no_warnings to off. + (g95_parse_arg): Recognise the '-w' switch and its alias, + '-fno-warnings'. + * error.c (g95_warning, g95_warning_now): Don't emit warning if + no_warning option is set. + * iresolve.c (g95_resolve_shape): Fix warning. + +2003-01-07 Steven Bosscher + + * primary.c (g95_next_string_char): Rename next_string_char, and + make static. Adjust callers accordingly. + * resolve.c (resolve_generic_f0): Return try, not match. Adjust + callers accordingly. + * g95.h: Split out all g95_match* functions to... + * match.h: ...here. New file. + * array.c, decl.c, expr.c, format.c, interface.c, io.c, match.c, + matchexp.c, module.c, parse.c, primary.c: Inlcude match.h + +2003-01-07 Steven Bosscher + + * symbol.c (g95_clear_new_implicit, g95_add_new_implicit_range, + g95_merge_new_implicit): New functions. + (g95_match_implicit_none, g95_match_implicit): Move from here... + * match.c (g95_match_implicit_none, g95_match_implicit): ... to here. + Modify to use the new functions in symbol.c. + * g95.h: Add and move prototypes. + +2003-01-06 Steven Bosscher + + * bbt.c (insert): Use a typedef'ed compare_fn prototype for the + node compare function. + (g95_insert_bbt): Likewise. + (g95_insert_bbt_with_overlap): Likewise. + (g95_delete_bbt): Likewise. + (delete_treap): Likewise. Also fix a potential bug when calling it. + * module.c (compare_pointers): Change proto to compare_fn. + (compare_integers): Likewise. + (compare_true_names): Likewise. + (find_true_name): Adjust call to compare_true_names to match proto. + (require_atom, write_atom, mio_name): Fix 'const' warnings. + (init_pi_tree): Make compare a compare_fn instead of (int *). + * resolve.c (compare_cases): Change proto to compare_fn. + * symbol.c (g95_compare_symtree): Change proto to compare_fn, make + it static, and rename to compare_symtree. + (delete_symtree, g95_undo_symbols, g95_new_symtree): Use renamed + function. + * g95.h: Kill g95_compare_symtree prototype. Adjust prototypes + of g95_insert_bbt, g95_insert_bbt_with_overlap, and g95_delete_bbt. + +2003-01-06 Steven Bosscher + * Make-lang.in: Fix spaces/tabs issues from previous patch. + * patch.options: Blow away Paul's checkin mistake :-) + * io.c (terminate_io): Fix memory leak (Arnaud). + +2003-01-06 Steven Bosscher + + * Make-lang.in: Teach about building DVI, info manual. + * g95.texi: New file. + +2003-01-02 Paul Brook + + * trans-array.c (g95_reverse_ss): Make static and don't use. + (g95_conv_ss_descriptor): Don't use g95_loopinfo + (g95_conv_array_parameters): Modify for pointer assignments. + (g95_walk_subexpr): New function. + (g95_walk_expr*): Use it. + * trans-array.h (g95_reverse_ss): Remove prototype. + * trans-expr.c (g95_trans_pointer_assign): Implement. + (Many): Set se.want_pointer before calling g95_conv_array_parameter. + * trans-intrinsic.c: Sync with scalarizer changes. + * trans-io.c: Ditto. diff --git a/gcc/fortran/ChangeLog-2004 b/gcc/fortran/ChangeLog-2004 new file mode 100644 index 00000000000..209ff5a88df --- /dev/null +++ b/gcc/fortran/ChangeLog-2004 @@ -0,0 +1,2846 @@ +2004-12-29 Steven G. Kargl + + * gfortran.h (gfc_case): fix typo in comment. + +2004-12-27 Tobias Schlueter + + * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Change to + logical shift. Call fold. Remove 0-bit shift shortcut. + (gfc_conv_intrinsic_ishftc): Convert first argument to at least + 4 bytes bits. Convert 2nd and 3rd argument to 4 bytes. Convert + result if width(arg 1) < 4 bytes. Call fold. + + PR fortran/19032 + * trans-intrinsic.c (gfc_conv_intrinsic_mod): Update comment + in front of function to match the standard. Correct handling + of MODULO. + +2004-12-27 Andrew Pinski + + * trans-expr.c (gfc_conv_cst_int_power): Only check for + flag_unsafe_math_optimizations if we have a float type. + +2004-12-23 Steven G. Kargl + + * gfortran.texi: Fix typo. + +2004-12-16 Tobias Schlueter + + * trans-intrinsic.c (build_fixbound_expr): Clarify comment, fix + comment typo. + +2004-12-15 Tobias Schlueter + + PR fortran/18993 + * match.c (gfc_match_if): Don't explicitly skip optional whitespace. + (gfc_match_nullify): Make sure that ')' is in front of the end of + statement. + + * scanner.c (skip_fixed_comments): Fix typo in comment preceding + function. + +2004-12-14 Richard Henderson + + * gfortran.h (gfc_expr.function.name): Make const. + (gfc_iresolve_init_1, gfc_iresolve_done_1): Remove. + (gfc_get_string): Update prototype. + * iresolve.c: Include tree.h. + (string_node, HASH_SIZE, string_head, hash): Remove. + (gfc_get_string): Use vsnprintf, get_identifier. + (free_strings, gfc_iresolve_init_1, gfc_iresolve_done_1): Remove. + * misc.c (gfc_init_1): Don't call gfc_iresolve_init_1. + (gfc_done_1): Don't call gfc_iresolve_done_1. + * module.c (mio_allocated_string): Take and return const char *, + instead of modifying char**. + (mio_expr): Update to match. + * resolve.c (pure_function): Constify name argument. + (resolve_function): Constify name. + * trans-intrinsic.c (gfc_conv_intrinsic_function): Likewise. + +2004-12-12 Richard Henderson + + * iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count, + gfc_resolve_cshift, gfc_resolve_dot_product, gfc_resolve_eoshift, + gfc_resolve_matmul, gfc_resolve_maxloc, gfc_resolve_maxval, + gfc_resolve_minloc, gfc_resolve_minval, gfc_resolve_pack, + gfc_resolve_product, gfc_resolve_reshape, gfc_resolve_shape, + gfc_resolve_spread, gfc_resolve_sum, gfc_resolve_transpose, + gfc_resolve_unpack: Use PREFIX. + +2004-12-12 Tobias Schlueter + + PR fortran/18869 + * match.c (gfc_match_common): Skip whitespace. + +2004-12-12 Steven G. Kargl + + PR fortran/16581 + * check.c (gfc_check_iand, gfc_check_ibclr, gfc_check_ibits, + gfc_check_ibset, gfc_check_ieor, gfc_check_ior): Remove default + integer kind check; Issue error for -std=f95 when needed. + * intrinsic.c (add_functions): Change ieor from GFC_STD_GNU to + GFC_STD_F95. + * iresolve.c (gfc_resolve_iand, gfc_resolve_ieor, gfc_resolve_ior): + Promote arguments to same kind. + +2004-12-12 Steven G. Kargl + Paul Brook + + PR fortran/16222 + * resolve.c (gfc_resolve_iterator_expr): New function. + (gfc_resolve_iterator): Use it. Add real_ok argument. Convert + start, end and stride to correct type. + (resolve_code): Pass extra argument. + * array.c (resolve_array_list): Pass extra argument. + * gfortran.h (gfc_resolve): Add prototype. + * trans-stmt.c (gfc_trans_do): Remove redundant type conversions. + Handle real type iterators. + +2004-12-11 Tobias Schlueter + + PR fortran/17175 + * iresolve.c (gfc_resolve_scale): Convert 'I' argument if not of + same kind as C's 'int'. + (gfc_resolve_set_exponent): Convert 'I' argument if not of kind 4. + +2004-12-08 Richard Henderson + + * intrinsic.c (gfc_convert_type_warn): Propagate the input shape + to the output expression. + * iresolve.c (gfc_resolve_cshift, gfc_resolve_eoshift): Suppress + warning conversion. + (gfc_resolve_reshape): Force convert SHAPE and ORDER parameters + to index kind. + +2004-12-08 Tobias Schlueter + + PR fortran/18826 + * resolve.c (resolve_code): Impose correct restrictions on + assigned variable. + + * decl.c (gfc_match_end): Use locus of END when eos is an error. + +2004-12-02 Steven G. Kargl + Paul Brook + + * check.c (gfc_check_flush, gfc_check_fnum): New functions. + (gfc_check_fstat, gfc_check_fstat_sub): New functions. + (gfc_check_stat, gfc_check_stat_sub): New functions. + * gfortran.h (GFC_ISYM_FNUM,GFC_ISYM_FSTAT,GFC_ISYM_STAT): New symbols + * intrinsic.c (add_functions,add_subroutines): Add flush, fnum, + fstat, and stat to intrinsics symbol tables. + * intrinsic.h (gfc_check_flush, gfc_resolve_stat_sub): Add prototypes. + (gfc_resolve_fstat_sub, gfc_resolve_stat): Ditto. + * iresolve.c (gfc_resolve_fnum, gfc_resolve_fstat): New functions. + (gfc_resolve_stat, gfc_resolve_flush): New functions. + (gfc_resolve_stat_sub,gfc_resolve_fstat_sub): New functions + * trans-intrinsic.c (gfc_conv_intrinsic_function): Add new intrinsics. + +2004-12-02 Steven G. Kargl + + * intrinsic.c: Fix and add comments, fix function declarations + (OPTIONAL,REQUIRED): New symbols + (add_functions,add_subroutines): Use symbols + (gmp.h): Remove unused include + +2004-11-25 Joseph S. Myers + + * f95-lang.c, gfortranspec.c, trans-decl.c: Avoid ` as left quote + in diagnostics. + +2004-11-24 Steven Bosscher + + * options.c (gfc_post_options): Don't clear flag_inline_functions. + +2004-11-20 Steven G. Kargl + + * check.c (gfc_check_getcwd_sub): Fix seg fault. + + * check.c (gfc_check_exit,gfc_check_umask,gfc_check_umask_sub, + gfc_check_unlink,gfc_check_unlink_sub): New functions + * gfortran.h (GFC_ISYM_UMASK,GFC_ISYM_UNLINK): New symbols + * intrinsic.c (add_functions,add_subroutines): Add umask, unlink, + exit to intrinsics symbol tables. + * intrinsic.h (gfc_check_umask,gfc_check_unlink,gfc_check_exit, + gfc_check_umask_sub,gfc_check_unlink_sub,gfc_resolve_umask, + gfc_resolve_unlink,gfc_resolve_exit,gfc_resolve_umask_sub, + gfc_resolve_unlink_sub): Add and sort prototypes. + * iresolve.c (gfc_resolve_umask,gfc_resolve_unlink,gfc_resolve_exit, + gfc_resolve_umask_sub,gfc_resolve_unlink_sub): New functions + * trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbols + +2004-11-16 Paul Brook + + PR fortran/13010 + * trans-array.c (gfc_trans_allocate_temp_array): Use gfc_get_dtype. + (gfc_array_init_size, gfc_conv_expr_descriptor): Ditto. + * trans-types.c (gfc_get_dtype): Accept array type rather than element + type. + (gfc_get_nodesc_array_type): Don't set GFC_TYPE_ARRAY_DTYPE. + (gfc_get_array_type_bounds): Ditto. + (gfc_get_derived_type): Recurse into derived type pointers. + * trans-types.h (gfc_get_dtype): Add prototype. + * trans.h (GFC_TYPE_ARRAY_DTYPE): Add comment. + +2004-11-15 Paul Brook + + * trans-types.c (gfc_get_dtype): Remove obsolete TODO. + +2004-11-10 Paul Brook + + PR fortran/18375 + * trans-expr.c (gfc_trans_subarray_assign): Free shape before ss. + * trans-io.c (transfer_array_component): Ditto. + +2004-11-10 Paul Brook + + * invoke.texi: Fix typo. + +2004-11-08 Kazu Hirata + + * arith.c, array.c, decl.c, expr.c, f95-lang.c, gfortran.h, + gfortranspec.c, interface.c, intrinsic.c, iresolve.c, match.c, + module.c, parse.c, parse.h, primary.c, resolve.c, scanner.c, + trans-array.c, trans-array.h, trans-expr.c, trans-intrinsic.c, + trans-io.c, trans-stmt.c, trans.h: Fix comment formatting. + +2004-11-06 Tobias Schlueter + + PR fortran/18023 + * io.c (resolve_tag): Tighten up exception for assigned FORMAT. + +2004-11-06 Kazu Hirata + + * gfortranspec.c: Replace GNU CC with GCC. + +2004-11-05 Tobias Schlueter + + * gfortranspec.c (lang_specific_driver): Change year to 2004. + +2004-11-05 Tobias Schlueter + + PR fortran/18111 + * trans-decl.c (create_function_arglist): Set DECL_ARTIFICIAL for + hidden parameters. + +2004-11-05 Tobias Schlueter + + PR fortran/15164 + * trans-decl.c (gfc_finish_var_decl): Don't declare arguments to + module procedures as if they were module variables. + +2004-11-03 Tobias Schlueter + + PR fortran/17535 + PR fortran/17583 + PR fortran/17713 + * module.c (write_symbol1): Set module_name for dummy arguments. + +2004-11-02 Paul Brook + + * intrinsic.c (check_intrinsic_standard): Include error locus. + Remove VLA. + (gfc_intrinsic_func_interface, gfc_intrinsic_sub_interface): Pass + locus to check_intrinsic_standard. + +2004-10-31 Janne Blomqvist + + PR fortran/17590 + * gfortran.h: Change GFC_STD_* flags to more appropriate + ones. (struct gfc_intrinsic_isym): Add field for standard. (struct + gfc_option_t): Add field for warning about use of nonstandard + intrinsics. + * intrinsic.c (add_sym): Add parameter for standard version, check + this against current standard. + (add_sym_0): Pass standard parameter to add_sym. + (add_sym_1, add_sym_0s, add_sym_1s, add_sym_1m, add_sym_2): Ditto. + (add_sym_2s, add_sym_3, add_sym_3ml, add_sym_3red, add_sym_3s): Ditto. + (add_sym_4, add_sym_4s, add_sym_5, add_sym_5s): Ditto. + (make_generic): Add parameter for standard, check this + against currently selected standard. + (add_functions, add_subroutines): Add parameter to tell which + standard an intrinsic belongs to. + (check_intrinsic_standard): New function. + (gfc_intrinsic_func_interface): Add call to check_intrinsic_standard. + (gfc_intrinsic_sub_interface): Ditto. + * lang.opt: Add Wnonstd-intrinsics option. + * options.c (gfc_init_options): Change to use new GFC_STD_* flags, + init new warning. + (set_Wall): Add warning about nonstd intrinsics. + (gfc_handle_option): Change to use new GFC_STD_* flags, + handle new warning. + * invoke.texi: Update manual to include -Wnonstd-intrinsics. + +2004-10-30 Andrew Pinski + + * f95-lang.c (lang_tree_node): Add chain_next to be the TREE_CHAIN. + +2004-10-30 Tobias Schlueter + + * simplify.c (twos_complement): Calculate mask in GMP arithmetic. + +2004-10-30 Tobias Schlueter + + * trans.c (gfc_trans_code): Set global locus after recursing. Fix + comment typo. + +2004-10-30 Canqun Yang + + * check.c (gfc_check_rand): Allow missing optional argument. + (gfc_check_irand): Ditto. + * intrinsic.c (add_functions): Set arg optional flag for {i,}rand. + +2004-10-28 Scott Robert Ladd + + PR fortran/13490, PR fortran/17912 + * gcc/fortran/gfortran.h: Added pedantic_min_int to gfc_integer_info + * gcc/fortran/gfortran.h: Added ARITH_ASYMMETRIC to arith + * gcc/fortran/arith.c: Added support for an "asymmetric integer" + warning when compiling with pedantic. + * gcc/fortran/arith.c: Set minimum integer values to reflect + realities of two's complement signed integers. Added + pedantic minimum. + +2004-10-17 Andrew Pinski + + * Make-lang.in (F95_ADDITIONAL_OBJS): Kill. + (f951): Do not depend on F95_ADDITIONAL_OBJS and don't + link it in. + +2004-10-14 Tobias Schlueter + + * trans-decl.c (generate_local_decl): Simplify logic, fix comment + typo. + (gfc_generate_function_code): Fix formatting issue. + +2004-10-10 Tobias Schlueter + + * module.c: Fix formatting issues. + +2004-10-09 Tobias Schlueter + + * module.c (mio_interface_rest): Set where member of interface + while loading. + +2004-10-08 Andrew Pinski + + PR fortran/17901 + * options.c (gfc_handle_option): Add break after handing the + J/M option. + +2004-10-08 Tobias Schlueter + + * arith.c: Fix formatting issues. + +2004-10-07 Tobias Schlueter + + PR fortran/17676 + * resolve.c (resolve_operator): Use correct operator name in message. + +2004-10-07 Tobias Schlueter + + * primary.c (match_boz_constant): Allow kind parameter suffixes. + Move standard warning further to the front. + +2004-10-07 Kazu Hirata + + * trans-stmt.c: Fix a comment typo. + +2004-10-07 Paul Brook + + PR fortran/17678 + * trans-array.c (gfc_trans_deferred_array): Leave use associated + variables alone. + +2004-10-06 Tobias Schlueter + + PR fortran/17568 + * simplify.c (twos_complement): New function. + (gfc_simplify_ishft, gfc_simplify_ishftc): Revise. + + * simplify.c (gfc_simplify_abs): Use mpfr_hypot for CABS. + +2004-10-06 Paul Brook + + * trans-stmt.c (gfc_trans_simple_do): New function. + (gfc_trans_do): Use it. Evaluate iteration bounds before entering + loop. Update comments. + +2004-10-04 Tobias Schlueter + + PR fortran/17283 + * iresolve.c (gfc_resolve_pack): Choose function depending if mask + is scalar. + + PR fortran/17631 + * intrinsic.c (add_sym_5): Remove. + (add_subroutines): Add resolution function for MVBITS. + * intrinsic.h (gfc_resolve_mvbits): Declare resolution function for + MVBITS + * iresolve.c (gfc_resolve_mvbits): New function. + (gfc_resolve_random_number): Remove empty line at end of function. + + * trans-const.c (gfc_build_cstring_const): New function. + (gfc_init_cst): Use new function. + * trans-const.h (gfc_build_cstring_const): Add prototype. + * trans-io.c (set_string, set_error_locus): Use new function. + * trans-stmt.c (gfc_trans_goto): Use new function. + + PR fortran/17708 + * parse.c (accept_statement): Don't treat END DO like END IF and + END SELECT. + (parse_do_block): Generate possible END DO label inside END DO + block. + + PR fortran/17776 + * check.c (gfc_check_system_sub): New function. + * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SYSTEM. + * intrinsic.c (add_functions): Add 'system'. + (add_subroutines): Add 'system'. + * intrinsic.h (gfc_check_etime_sub, gfc_check_getcwd_sub): + Move prototypes to other suborutines. + (gfc_check_system_sub, gfc_resolve_system, gfc_resolve_system_sub): + Add prototype. + (gfc_resolve_system_clock): Fix formatting of prototype. + * iresolve.c (gfc_resolve_system, gfc_resolve_system_sub): New + functions. + * trans-intrinsic.c (gfc_conv_intrinsic_function): Deal with + GFC_ISYM_SYSTEM. + +2004-10-04 Erik Schnetter + + * scanner.c (preprocessor_line): Accept preprocessor lines without + file names. Check file names for closing quotes. Handle escaped + quotes in file names. + +2004-10-04 Tobias Schlueter + Paul Brook + + * trans-array.c (gfc_conv_expr_descriptor): Check for substriungs. + Use gfc_get_expr_charlen. + * trans-expr.c (gfc_get_expr_charlen): New function. + * trans.h (gfc_get_expr_charlen): Add prototype. + +2004-10-04 Kazu Hirata + + * trans-intrinsic.c: Fix a comment typo. + +2004-10-03 Tobias Schlueter + + * simplify.c (range_check): Remove blank line at beginning of function. + (gfc_simplify_dint): Same at end of function. + (gfc_simplify_exponent, gfc_simplify_fraction): Simplify calculations. + (gfc_simplify_bound): Fix indentation. + (gfc_simplify_log10): Simplify calculation. + (gfc_simplify_min, gfc_simplify_max): Remove blank line at beginning + of function. + (gfc_simplify_nearest): Same at end of function. + (gfc_simplify_nint, gfc_simplify_idnint): Same at beginning of + function. + (gfc_simplify_rrspacing, gfc_simplify_set_exponent, + gfc_simplify_spacing): Simplify calulations. + +2004-10-03 Feng Wang + + * trans-intrinsic.c: Fix comments on spacing and rrspacing + (gfc_conv_intrinsic_rrspacing): Add fold on constant trees. + +2004-10-01 Jan Hubicka + + * f95-lang.c (gfc_expand_function): Update call of + tree_rest_of_compilation. + * trans-decl.c (gfc_generate_constructors): Likewise. + +2004-09-26 Tobias Schlueter + + * trans-intrinsic.c: Comment fixes. + +2004-09-25 Tobias Schlueter + + * decl.c (add_init_expr_to_sym, variable_decl): Comment fixes. + +2004-09-24 Tobias Schlueter + + * trans-types.c (gfc_return_by_reference): Remove superfluous + assertion. + + * intrinsic.h (gfc_resolve_getcwd): Update prototype. + * iresolve.c (gfc_resolve_getcwd): Add second argument to function. + + PR fortran/17615 + * trans-expr.c (gfc_trans_arrayfunc_assign): Look at resolved + function to determine return type. + +2004-09-20 Jan Hubicka + + * trans-decl.c (build_entry_thunks): Finalize the function; do not lower + tree. + (gfc_generate_function_code): Likewise. + +2004-09-20 Tobias Schlueter + + PR fortran/15957 + * simplify.c (gfc_simplify_reshape): Set shape of return value + correctly. + +2004-09-17 Jeffrey D. Oldham + Zack Weinberg + + * f95-lang.c, trans-expr.c, trans.c: Update for new tree-class + enumeration constants. + +2004-09-17 Paul Brook + + * gfortran.h (struct gfc_linebuf): Don't use C99 empty arrays. + (gfc_linebuf_header_size): Define. + * scanner.c (load_file): Use it. + +2004-09-16 Kazu Hirata + + * array.c, data.c, decl.c, dependency.c, error.c, f95-lang.c, + interface.c, intrinsic.c, io.c, misc.c, module.c, parse.h, + resolve.c, scanner.c, trans-array.c, trans-array.h, + trans-common.c, trans-const.h, trans-decl.c, trans-expr.c, + trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.c, + trans.h: Fix comment typos. Follow spelling conventions. + +2004-09-16 Victor Leikehman + + PR/15364 + * trans-io.c (transfer_array_component): New function. + (transfer_expr): For array fields, call transfer_array_component. + +2004-09-16 Kazu Hirata + + * gfortran.texi: Fix a typo. + +2004-09-15 Aaron W. LaFramboise + + * parse.c (eof_buf): Rename eof to eof_buf. + (unexpected_eof): Same. + (gfc_parse_file): Same. + +2004-09-15 Steven G. Kargl + + * check.c (gfc_check_getcwd_sub): New function. + * gfortran.h (GFC_ISYM_GETCWD): New symbol. + * intrinsic.c (add_functions): Add function definition; + Use symbol. + * intrinsic.c (add_subroutines): Add subroutine definitions. + * intrinsic.h: Add prototypes. + * iresolve.c (gfc_resolve_getcwd, gfc_resolve_getcwd_sub): + New functions. + * trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbol. + +2004-09-15 Tobias Schlueter + + PR fortran/16485 + * module.c (write_symbol): Don't fill in module name here. + (write_symbol0): Fill in here instead. + +2004-09-14 Kazu Hirata + + * data.c, decl.c, f95-lang.c, gfortran.h, match.c, + trans-array.c, trans-common.c, trans-expr.c, + trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.h: Fix + comment typos. Follow spelling conventions. + +2004-09-09 Paul Brook + + * scanner.c (get_file): Add ATTRIBUTE_UNUSED. + +2004-09-08 Paul Brook + + * array.c: Don't include assert.h. + * data.c: Don't include assert.h. Replace assert and abort with + gcc_assert and gcc_unreachable. + * dependency.c: Ditto. + * f95-lang.c: Ditto. + * iresolve.c: Ditto. + * resolve.c: Ditto. + * simplify.c: Ditto. + * symbol.c: Ditto. + * trans-array.c: Ditto. + * trans-common.c: Ditto. + * trans-const.c: Ditto. + * trans-decl.c: Ditto. + * trans-expr.c: Ditto. + * trans-intrinsic.c: Ditto. + * trans-io.c: Ditto. + * trans-stmt.c: Ditto. + * trans-types.c: Ditto. + * trans.c: Ditto. + +2004-09-07 Per Bothner + Paul Brook + + * error.c (show_locus): Handle mapped locations. + * f95-lang.c (gfc_be_parse_file): Initialize mapped locations. + * gfortran.h: Include input.h. + (struct gfc_linebuf): Use source_location. + * scanner.c (get_file): Initialize linemap. + (preprocessor_line): Pass extra argument to get_file. + (load_file): Ditto. Setup linemap. + (gfc_new_file): Handle mapped locations. + * trans-common.c (build_field, build_equiv_decl, build_common_decl): + Set decl source locations. + (gfc_trans_common): Set blank common block location. + * trans-decl.c (gfc_set_decl_location): New function. + (gfc_get_label_decl, gfc_get_symbol_decl): Use it. + (trans_function_start): Move call to gfc_set_backend_locus.. + (build_function_decl): ... to here. + (build_entry_thunks): Set and restore the backend locus. + (gfc_generate_constructors): Remove excess arguments to + init_function_start. + (gfc_generate_block_data): Add comments. Set the decl locus. + * trans-io.c (set_error_locus): Handle mapped locations. + * trans.c (gfc_get_backend_locus, gfc_get_backend_locus): Ditto. + (gfc_trans_code): Use SET_EXPR_LOCATION. + (gfc_generate_code): Override the location of the new symbol. + * trans.h (gfc_set_decl_location): Add prototype. + +2004-08-31 Paul Brook + + * trans-types.c (gfc_type_for_mode): Return NULL for unknown modes. + +2004-09-01 Tobias Schlueter + + PR fortran/15327 + * trans-intrinsic.c (gfc_conv_intrinsic_merge): Do the right thing for + strings. + +2004-09-01 Tobias Schlueter + + PR fortran/16400 + PR fortran/16404 + (port from g95) + * resolve.c (resolve_transfer): New function. + (resolve_code): Call resolve_transfer in case of EXEC_TRANSFER. + +2004-08-31 Tobias Schlueter + + PR fortran/16579 + * trans-types.c (gfc_init_types): Make gfc_character1_type_node an + unsigned char. + +2004-08-31 Tobias Schlueter + + * CONTRIB, NEWS, README, TODO: Remove obsolete files. + +2004-08-31 Tobias Schlueter + + PR fortran/17244 + * trans-types.c (gfc_return_by_reference): Remove TODO error, + add comment pointing out possible issue WRT compatibility with g77. + +2004-08-31 Tobias Schlueter + + * trans-decl.c, trans-expr.c, trans-io.c, trans-types.c: Replace + all occurences of 'gfc_strlen_type_node' by + 'gfc_charlen_type_node'. + * trans-types.h: Same. Also update comment accordingly. + +2004-08-31 Tobias Schlueter + + * primary.c: Update copyright boilerplate to say GCC. + * f95-lang.c: Change initial comment to say gfortran. + +2004-08-31 Paul Brook + + * trans-types.h: Add comments. + (intmax_type_node, string_type_node, const_string_type_node): Remove. + +2004-08-30 Richard Henderson + + * Make-lang.in (fortran/f95-lang.o): Update dependencies. + (fortran/trans-decl.o, fortran/trans-types.o): Likewise. + * gfortran.h (gfc_integer_info): Add c_char, c_short, c_int, + c_long, c_long_long. + (gfc_logical_info): Add c_bool. + (gfc_real_info): Add mode_precision, c_float, c_double, c_long_double. + * trans-array.c (gfc_array_allocate): Use TYPE_PRECISION + rather than gfc_int[48]_type_node for allocate choice. + * trans-decl.c (gfc_build_intrinsic_function_decls): Cache + local copies of some kind type nodes. + (gfc_build_builtin_function_decls): Likewise. + * trans-expr.c (gfc_conv_power_op): Likewise. + * trans-intrinsic.c (gfc_conv_intrinsic_index, + gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify, + gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat): Likewise. + * trans-stmt.c (gfc_trans_pause, gfc_trans_stop, + gfc_trans_character_select, gfc_trans_allocate): Likewise. + * trans-io.c (gfc_pint4_type_node): Move into ... + (gfc_build_io_library_fndecls): ... here. Cache local copies of + some kind type nodes. + * trans-types.c (gfc_type_nodes): Remove. + (gfc_character1_type_node, gfc_strlen_type_node): New. + (gfc_integer_types, gfc_logical_types): New. + (gfc_real_types, gfc_complex_types): New. + (gfc_init_kinds): Fill in real mode_precision. + (gfc_build_int_type, gfc_build_real_type): New. + (gfc_build_complex_type, gfc_build_logical_type): New. + (c_size_t_size): New. + (gfc_init_types): Loop over kinds. + (gfc_get_int_type, gfc_get_real_type): Use gfc_validate_kind. + (gfc_get_complex_type, gfc_get_logical_type): Likewise. + (gfc_get_character_type_len): Likewise. + (gfc_type_for_size): Loop over kinds; use a reduced set of + unsigned type nodes. + (gfc_type_for_mode): Loop over kinds. + (gfc_signed_or_unsigned_type): Use gfc_type_for_size. + (gfc_unsigned_type, gfc_signed_type): Use gfc_signed_or_unsigned_type. + * trans-types.h (F95_INT1_TYPE, F95_INT2_TYPE, F95_INT4_TYPE, + F95_INT8_TYPE, F95_INT16_TYPE, F95_REAL4_TYPE, F95_REAL8_TYPE, + F95_REAl16_TYPE, F95_COMPLEX4_TYPE, F95_COMPLEX8_TYPE, + F95_COMPLEX16_TYPE, F95_LOGICAL1_TYPE, F95_LOGICAL2_TYPE, + F95_LOGICAL4_TYPE, F95_LOGICAL8_TYPE, F95_LOGICAL16_TYPE, + F95_CHARACTER1_TYPE, NUM_F95_TYPES, gfc_type_nodes, + gfc_int1_type_node, gfc_int2_type_node, gfc_int4_type_node, + gfc_int8_type_node, gfc_int16_type_node, gfc_real4_type_node, + gfc_real8_type_node, gfc_real16_type_node, gfc_complex4_type_node, + gfc_complex8_type_node, gfc_complex16_type_node, + gfc_logical1_type_node, gfc_logical2_type_node, + gfc_logical4_type_node, gfc_logical8_type_node, + gfc_logical16_type_node, gfc_strlen_kind): Remove. + (gfc_character1_type_node): Turn in to a variable. + (gfc_strlen_type_node): Likewise. + +2004-08-30 Tobias Schlueter + + * gfortran.h (gfc_namespace): Add new field is_block_data. + * parse.c (accept_statement): Remove special handling for BLOCK DATA. + (parse_block_data): Record BLOCK DATA name, set is_block_data field. + * trans.c (gfc_generate_code): Handle BLOCK DATA units. + * trans.h (gfc_generate_block_data): Add prototype. + * trans-decl.c (gfc_generate_block_data): New function. + +2004-08-29 Richard Henderson + + * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_export. + * trans-types.c (gfc_init_kinds): Reject integer kinds larger + than two HOST_WIDE_INT. + +2004-08-29 Tobias Schlueter + + PR fortran/13910 + * decl.c (free_variable, free_value, gfc_free_data, var_list, + var_element, top_var_list, match_data_constant, top_val_list, + gfc_match_data): Move here from match.c. + (match_old_style_init): New function. + (variable_decl): Match old-style initialization. + * expr.c (gfc_get_variable_expr): New function. + * gfortran.h (gfc_get_variable_expr): Add prototype. + * gfortran.texi: Start documentation for supported extensions. + * match.c: Remove the functions moved to decl.c. + * match.h (gfc_match_data): Move prototype to under decl.c. + * symbol.c (gfc_find_sym_tree, gfc_find_symbol): Add/correct + comments. + +2004-08-29 Steven G. Kargl + Paul Brook + + * check.c (gfc_check_besn, gfc_check_g77_math1): New functions. + * f95-lang.c (DO_DEFINE_MATH_BUILTIN): Define. + (DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it. + (build_builtin_fntypes): New function. + (gfc_init_builtin_functions): Use it. + * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_{J,Y}{0,1,N} + and GFC_ISYM_ERF{,C}. + (gfc_c_int_kind): Declare. + * intrinsic.c (add_functions): Add [d]bes* and [d]erf*. + * intrinsic.h (gfc_check_besn, gfc_check_g77_math1, gfc_resolve_besn, + gfc_resolve_g77_math1): Add prototypes. + * resolve.c (gfc_resolve_besn, gfc_resolve_g77_math1): New functions. + * mathbuiltins.def: Add comment. Change third argument. Use + DEFINE_MATH_BUILTIN_C. Add bessel and error functions. + * trans-intrinsic.c (BUILT_IN_FUNCTION): Define. + (DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it. + * trans-types.c (gfc_c_int_kind): Declare. + (gfc_init_kinds): Set it. + +2004-08-29 Steven G. Kargl + Paul Brook + + * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_GET?ID. + (gfc_check_f, gfc_simplify_f): Add f0. + * intrinsic.c (do_check): Call f0. Flatten. + (add_sym_0): Fix prototype. Set f0. + (add_functions): Add getgid, getgid and getuid. + (resolve_intrinsic): Remove obsolete comment. + (do_simplify): Call f0. + * intrinsic.h (gfc_resolve_getgid, gfc_resolve_getpid, + gfc_resolve_getuid): Add prototypes. + * iresolve.c (gfc_resolve_getgid, gfc_resolve_getpid, + gfc_resolve_getuid): New functions. + * trans-intrinsic.c (gfc_conv_intrinsic_function): Handle + GFC_ISYM_GET?ID. + +2004-08-28 Tobias Schlueter + + * error.c (gfc_error_init_1): Remove blank line in front of + function body. Add missing blank. + (gfc_buffer_error, error_char, error_string): Remove blank line in + front of function body. + (show_locus): Add comma in comment. + (gfc_clear_warning, gfc_warning_check, gfc_clear_error, + gfc_push_error, gfc_pop_error): Remove blank line in front of + function body. + (gfc_get_errors): Typo fix in comment in front of function. Remove + blank line in front of function body. + +2004-08-27 Tobias Schlueter + + * gfortran.h (gfc_default_*_kind): Remove prototypes, add extern + variable declaration of same name. + * arith.c, check.c, decl.c, dump_parse_tree.c, expr.c, + intrinsic.c, io.c, iresolve.c, match.c, options.c, primary.c, + resolve.c, simplify.c, symbol.c, trans-const.c, trans-io.c: + Replace all calls to gfc_default_*_kind with variable accesses. + * trans-types.c: Same as above. + (gfc_default_*_kind_1): Rename to gfc_default_*_kind, remove + static qualifier. Replace all occurences. + (gfc_default_*_kind): Remove functions. + +2004-08-26 Richard Henderson + + * arith.c: Include system.h, not real system headers. + (MPZ_NULL, MPF_NULL, DEF_GFC_INTEGER_KIND, DEF_GFC_LOGICAL_KIND, + DEF_GFC_REAL_KIND, GFC_SP_KIND, GFC_SP_PREC, GFC_SP_EMIN, GFC_SP_EMAX, + GFC_DP_KIND, GFC_DP_PREC, GFC_DP_EMIN, GFC_DP_EMAX, GFC_QP_KIND, + GFC_QP_PREC, GFC_QP_EMIN, GFC_QP_EMAX): Remove. + (gfc_integer_kinds, gfc_logical_kinds, gfc_real_kinds, + gfc_index_integer_kind, gfc_default_integer_kind, + gfc_default_real_kind,gfc_default_double_kind, + gfc_default_character_kind, gfc_default_logical_kind, + gfc_default_complex_kind, validate_integer, validate_real, + validate_logical, validate_character, + gfc_validate_kind): Move to trans-types.c. + (gfc_set_model_kind): Use gfc_validate_kind. + (gfc_set_model): Just copy the current precision to default. + (gfc_arith_init_1): Use mpfr precision 128 for integer setup. + * f95-lang.c (gfc_init_decl_processing): Invoke gfc_init_kinds. + * gfortran.h: Update file commentary. + * trans-types.c (MAX_INT_KINDS, MAX_REAL_KINDS): New. + (gfc_default_integer_kind_1, gfc_default_real_kind_1, + gfc_default_double_kind_1, gfc_default_character_kind_1, + gfc_default_logical_kind_1, gfc_default_complex_kind_1): New. + (gfc_init_kinds): New. + (gfc_init_types): Don't set gfc_index_integer_kind here. + * trans-types.h (gfc_init_kinds): Declare. + * doc/invoke.texi: Clarify DOUBLE PRECISION behaviour wrt -r8. + +2004-08-26 Tobias Schlueter + + * check.c (gfc_check_atan2): New function. + * intrinsic.c (add_functions): Use gfc_check_atan2 for ATAN2 + * intrinsic.h (gfc_check_atan2): Add prototype. + +2004-08-25 Richard Henderson + + * arith.c (gfc_validate_kind): Add may_fail argument; abort if + false and we don't validate the kind. + (gfc_check_integer_range, gfc_check_real_range): Update to match. + * check.c (kind_check): Likewise. + * decl.c (gfc_match_old_kind_spec, gfc_match_kind_spec): Likewise. + (match_char_spec, match_logical_spec): Likewise. + * gfortran.h (gfc_validate_kind): Likewise. + * options.c (gfc_handle_option): Likewise. + * primary.c (match_integer_constant, match_real_constant, + match_string_constant, match_logical_constant, + match_const_complex_part): Likewise. + * simplify.c (get_kind, gfc_simplify_bit_size, gfc_simplify_digits, + gfc_simplify_epsilon, gfc_simplify_huge, gfc_simplify_ibclr, + gfc_simplify_ibset, gfc_simplify_ishft, gfc_simplify_ishftc, + gfc_simplify_maxexponent, gfc_simplify_minexponent, + gfc_simplify_nearest, gfc_simplify_not, gfc_simplify_precision, + gfc_simplify_radix, gfc_simplify_range, gfc_simplify_rrspacing, + gfc_simplify_scale, gfc_simplify_spacing, gfc_simplify_tan, + gfc_simplify_tiny): Likewise. + * trans-intrinsic.c (gfc_conv_intrinsic_aint, gfc_conv_intrinsic_mod, + gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval, + prepare_arg_info): Likewise. + +2004-08-25 Tobias Schlueter + + * expr.c (gfc_check_assign): Add comment. Add new warning. + * trans-expr.c (gfc_conv_function_call): Correctly dereference + result of pointer valued function when not in pointer assignment. + +2004-08-25 Paul Brook + + * config-lang.in: Remove dead commented line. + * module.c: Replace g95 with gfortran in comment. + +2004-08-25 Paul Brook + + PR fortran/17190 + * arith.c (gfc_mpfr_to_mpz): Workaround mpfr bug. + +2004-08-25 Paul Brook + + PR fortran/17144 + * trans-array.c (gfc_trans_allocate_temp_array): Remove + string_length argument. + (gfc_trans_array_ctor_element): New function. + (gfc_trans_array_constructor_subarray): Use it. + (gfc_trans_array_constructor_value): Ditto. Handle constant + character arrays. + (get_array_ctor_var_strlen, get_array_ctor_strlen): New functions. + (gfc_trans_array_constructor): Use them. + (gfc_add_loop_ss_code): Update to new gfc_ss layout. + (gfc_conv_ss_descriptor): Remember section string length. + (gfc_conv_scalarized_array_ref): Ditto. Remove dead code. + (gfc_conv_resolve_dependencies): Update to new gfc_ss layout. + (gfc_conv_expr_descriptor): Ditto. + (gfc_conv_loop_setup): Ditto. Spelling fixes. + * trans-array.h (gfc_trans_allocate_temp_array): Update prototype. + * trans-const.c (gfc_conv_constant): Update to new gfc_ss layout. + * trans-expr.c (gfc_conv_component_ref): Turn error into ICE. + (gfc_conv_variable): Set string_length from section. + (gfc_conv_function_call): Remove extra argument. + (gfc_conv_expr, gfc_conv_expr_reference): Update to new gfc_ss layout. + * trans-types.c (gfc_get_character_type_len): New function. + (gfc_get_character_type): Use it. + (gfc_get_dtype): Return zero for internal types. + * trans-types.h (gfc_get_character_type_len): Add prototype. + * trans.h (struct gfc_ss): Move string_length out of union. + +2004-08-25 Tobias Schlueter + + * trans.h (build2_v, build3_v): New macros. + (build_v): Remove. + * f95-lang.c (gfc_truthvalue_conversion): Use build2 instead of + build. + * trans-array.c (gfc_conv_descriptor_data, + gfc_conv_descriptor_offset, gfc_conv_descriptor_dimension, + gfc_conv_descriptor_stride, gfc_conv_descriptor_lbound, + gfc_conv_descriptor_ubound, gfc_trans_allocate_array_storage, + gfc_trans_allocate_temp_array, + gfc_trans_array_constructor_subarray, + gfc_trans_array_constructor_value, gfc_conv_array_index_ref, + gfc_trans_array_bound_check, gfc_conv_array_index_offset, + gfc_conv_scalarized_array_ref, gfc_conv_array_ref, + gfc_conv_array_ref, gfc_trans_preloop_setup, + gfc_trans_scalarized_loop_end, gfc_conv_ss_startstride, + gfc_conv_loop_setup, gfc_array_init_size, + gfc_conv_array_initializer, gfc_trans_array_bounds, + gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias, + gfc_conv_expr_descriptor, gfc_conv_array_parameter, + gfc_trans_deferred_array): Use buildN and buildN_v macros instead + of build and build_v as appropriate. + * trans-common.c (create_common): Same. + * trans-decl.c (gfc_trans_auto_character_variable, + gfc_trans_entry_master_switch, gfc_generate_function_code): Same. + * trans-expr.c (gfc_conv_expr_present, gfc_conv_substring, + gfc_conv_component_ref, gfc_conv_unary_op, gfc_conv_powi, + gfc_conv_cst_int_power, gfc_conv_string_tmp, gfc_conv_concat_op, + gfc_conv_expr_op, gfc_conv_function_call, + gfc_trans_structure_assign): Same. + * trans-intrinsic.c (build_fixbound_expr, build_round_expr, + gfc_conv_intrinsic_aint, gfc_conv_intrinsic_bound, + gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod, + gfc_conv_intrinsic_dim, gfc_conv_intrinsic_sign, + gfc_conv_intrinsic_dprod, gfc_conv_intrinsic_minmax, + gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count, + gfc_conv_intrinsic_arith, gfc_conv_intrinsic_minmaxloc, + gfc_conv_intrinsic_minmaxval, gfc_conv_intrinsic_btest, + gfc_conv_intrinsic_bitop, gfc_conv_intrinsic_singlebitop, + gfc_conv_intrinsic_ibits, gfc_conv_intrinsic_ishft, + gfc_conv_intrinsic_merge, gfc_conv_intrinsic_strcmp, + gfc_conv_allocated, gfc_conv_associated, prepare_arg_info, + gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_rrspacing, + gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat, + gfc_conv_intrinsic_iargc): Same. + * trans-io.c (set_parameter_value, set_parameter_ref, set_string, + set_flag, add_case, io_result, transfer_namelist_element, + transfer_expr): Same. + * trans-stmt.c (gfc_trans_goto, gfc_trans_return, gfc_trans_if_1, + gfc_trans_arithmetic_if, gfc_trans_do, gfc_trans_do_while, + gfc_trans_integer_select, gfc_trans_logical_select, + gfc_trans_character_select, gfc_trans_forall_loop, + gfc_trans_nested_forall_loop, gfc_do_allocate, + generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp, + compute_inner_temp_size, compute_overall_iter_number, + allocate_temp_for_forall_nest, gfc_trans_pointer_assign_need_temp, + gfc_trans_forall_1, gfc_evaluate_where_mask, + gfc_trans_where_assign, gfc_trans_allocate): Same. + * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Same. + * trans.c (gfc_add_modify_expr, gfc_finish_block, + gfc_build_array_ref, gfc_build_function_call, + gfc_trans_runtime_check): Same. + +2004-08-25 Tobias Schlueter + + * trans-const.c (gfc_conv_mpz_to_tree): Change call to + build_int_cst to build_int_cst_wide in accordance to Nathan's + previous patch. + +2004-08-25 Nathan Sidwell + + * trans-array.c (gfc_trans_array_constructor_value): Adjust + build_int_cst calls. + * trans-const.c (gfc_build_string_const, gfc_init_constants, + gfc_conv_mpz_to_tree, gfc_conv_constant_to_tree): Likewise. + * trans-decl.c (gfc_get_symbol_decl, build_entry_thunks, + gfc_trans_entry_master_switch): Likewise. + * trans-intrinsic.c (gfc_conv_intrinsic_ibits, + gfc_conv_intrinsic_len, prepare_arg_info): Likewise. + * trans-io.c (add_case, set_error_locus, + transfer_namelist_element, transfer_expr): Likewise. + * trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause, + gfc_trans_stop, gfc_trans_character_select): Likewise. + * trans-types.c (gfc_init_types, gfc_get_dtype): Likewise. + * trans.c (gfc_trans_runtime_check): Likewise. + +2004-08-24 Tobias Schlueter + + * trans-decl.c, trans-types.c: Add and remove blank lines as + required. + +2004-08-24 Richard Henderson + + * trans-const.c (gfc_conv_mpz_to_tree): Fix 64-bit shift warning. + +2004-08-24 Tobias Schlueter + + * resolve.c (merge_argument_lists): Revert unintentionally + committed change. + +2004-08-24 Tobias Schlueter + + * trans-decl.c (build_function_decl): Fix spelling in comment. + (build_entry_thunks): Remove code with no function. + (gfc_build_intrinsic_function_decls): Remove empty line. + + * resolve.c (resolve_entries): Fix a bunch of comment typos. + +2004-08-24 Nathan Sidwell + + * f95-lang.c (gfc_init_decl_processing): Adjust + build_common_tree_nodes call. + +2004-08-24 Tobias Schlueter + + * trans-types.c: Spelling and formatting fixes. + +2004-08-23 Richard Henderson + + * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_getlimbn instead + of going through an intermediate string. Fix 32/64 int/long bug. + +2004-08-23 Eric Christopher + + * trans-types.c (gfc_type_for_mode): Remove VECTOR_TYPE_SUPPORTED_P + usage. Use build_vector_type_for_mode for vector types. + +2004-08-22 Richard Henderson + + PR 13465 + * data.c (find_con_by_offset): Search ordered list; handle + elements with repeat counts. + (gfc_assign_data_value_range): New. + * gfortran.h (struct gfc_data_value): Make repeat unsigned. + (gfc_assign_data_value_range): Declare. + * match.c (top_val_list): Extract repeat count into a temporary. + * resolve.c (values): Make left unsigned. + (next_data_value): Don't decrement left. + (check_data_variable): Use gfc_assign_data_value_range. + +2004-08-22 Tobias Schlueter + + * trans-const.c, trans-decl.c, trans-expr.c: Spelling fixes. + +2004-08-22 Tobias Schlueter + + * check.c (gfc_check_reduction): Rename to ... + (check_reduction): ... this. Make static. Don't check type of + first argument. + (gfc_check_minval_maxval, gfc_check_prodcut_sum): New functions. + * intrinsic.c (add_functions): Change MAXVAL, MINVAL, PRODUCT and + SUM to use new check functions. + (check_specific): Change logic to call new functions. + * intrinsic.h (gfc_check_minval_maxval, gfc_check_product_sum): + Add prototypes. + (gfc_check_reduction): Remove prototype. + +2004-08-20 Paul Brook + Canqun Yang + + PR fortran/17077 + * trans-array.c (gfc_conv_array_parameter): Pass correct pointer + for automatic arrays. + * trans-types.c (gfc_get_nodesc_array_type): Add comment. + +2004-08-19 Tobias Schlueter + (Port from g95) + + PR fortran/17074 + * match.c (match_simple_forall, match_simple_where): Forward-declare. + (gfc_match_if): Order statement list alphabetically, add WHERE and + FORALL, remove double PAUSE. + (gfc_match_simple_where, match_forall_header, + gfc_match_simple_forall): New functions. + (gfc_match_forall): Use match_forall_header. + +2004-08-19 Paul Brook + + PR fortran/17091 + * gfortran.h (gfc_access): Give ACCESS_UNKNOWN value 0. + * symbol.c (gfc_clear_attr): Use memset. + +2004-08-19 Paul Brook + + PR fortran/14976 + PR fortran/16228 + * data.c (assign_substring_data_value): Remove. + (create_character_intializer): New function. + (gfc_assign_data_value): Track the typespec for the current + subobject. Use create_character_intializer. + +2004-08-19 Erik Schnetter + + PR fortran/16946 + * check.c (gfc_check_reduction): New function. + (gfc_check_minval_maxval): Removed. + (gfc_check_product): Removed. + (gfc_check_sum): Removed. + * intrinsic.h: Add/remove declarations for these. + * gfortran.h: Add field f3red to union gfc_check_f. + * intrinsic.c (add_sym_3red): New function. + (add_functions): Register maxval, minval, product, and sum intrinsics + through add_sym_3red. + (check_specific): Handle f3red union field. + * iresolve.c: Whitespace change. + +2004-08-18 Paul Brook + + * trans-types.c (gfc_sym_type): Use pointer types for optional args. + +2004-08-18 Victor Leikehman + + PR fortran/13278 + * trans-io.c (transfer_namelist_element): New. Recursively handle + derived-type variables. Pass string lengths. + (build_dt): Code moved to build_namelist, with some + changes and additions. + (gfc_build_io_library_fndecls): Declare the fifth + argument in st_set_nml_var_char -- string_length. + +2004-08-17 Paul Brook + Tobias Schlueter + + PR fortran/13082 + * decl.c (get_proc_name): Update mystery comment. + (gfc_match_entry): Check for errors earlier. Add entry point to list. + * dump-parse-tree.c (gfc_show_code_node): Print EXEC_ENTRY nodes. + * gfortran.h (symbol_attribute): Add entry_master. Document entry. + (struct gfc_entry_list): Define. + (gfc_get_entry_list): Define. + (struct gfc_namespace): Add refs and entries. + (enum gfc_exec_op): Add EXEC_ENTRY. + (struct gfc_code): Add ext.entry. + * module.c (ab_attribute, attr_bits): Remove AB_ENTRY. + (mio_symbol_attribute): Don't save/reture addr->entry. + (mio_namespace_ref): Refcount namespaces. + * parse.c (accept_statement): Handle ST_ENTRY. + (gfc_fixup_sibling_symbols): Mark symbol as referenced. + (parse_contained): Fixup sibling references to entry points + after parsing the procedure body. + * resolve.c (resolve_contained_fntype): New function. + (merge_argument_lists, resolve_entries): New functions. + (resolve_contained_functions): Use them. + (resolve_code): Handle EXEC_ENTRY. + (gfc_resolve): Call resolve_entries. + * st.c (gfc_free_statement): Handle EXEC_ENTRY. + * symbol.c (gfc_get_namespace): Refcount namespaces. + (gfc_free_namespace): Ditto. + * trans-array.c (gfc_trans_dummy_array_bias): Treat all args as + optional when multiple entry points are present. + * trans-decl.c (gfc_get_symbol_decl): Remove incorrect check. + (gfc_get_extern_function_decl): Add assertion. Fix coment. + (create_function_arglist, trans_function_start, build_entry_thunks): + New functions. + (gfc_build_function_decl): Rename ... + (build_function_decl): ... to this. + (gfc_create_function_decl): New function. + (gfc_generate_contained_functions): Use it. + (gfc_trans_entry_master_switch): New function. + (gfc_generate_function_code): Use new functions. + * trans-stmt.c (gfc_trans_entry): New function. + * trans-stmt.h (gfc_trans_entry): Add prototype. + * trans-types.c (gfc_get_function_type): Add entry point argument. + * trans.c (gfc_trans_code): Handle EXEC_ENTRY. + (gfc_generate_module_code): Call gfc_create_function_decl. + * trans.h (gfc_build_function_decl): Remove. + (gfc_create_function_decl): Add prototype. + +2004-08-15 Andrew Pinski + + PR fortran/17030 + * f95-lang.c (gfc_init_builtin_functions): Initialize the builtins + for cabs{,f} and copysign{,f}. + * trans-decl.c (gfor_fndecl_math_cabsf): Delete. + (gfor_fndecl_math_cabs): Delete. + (gfor_fndecl_math_sign4): Delete. + (gfor_fndecl_math_sign8): Delete. + (gfc_build_intrinsic_function_decls): Remove the + initializing of cabs{,f} and copysign{,f} functions. + * trans-intrinsic.c (gfc_conv_intrinsic_abs): Use the builtins + instead of the functions definitions. + (gfc_conv_intrinsic_sign): Likewise. + * trans.h (gfor_fndecl_math_cabsf): Delete. + (gfor_fndecl_math_cabs): Delete. + (gfor_fndecl_math_sign4): Delete. + (gfor_fndecl_math_sign8): Delete. + +2004-08-15 Nathan Sidwell + + * trans-array.c (gfc_trans_array_constructor_value): Use + build_int_cst. + * trans-const.c (gfc_build_string_const, + gfc_init_constants, gfc_conv_mpz_to_tree, + gfc_conv_constant_to_tree): Likewise. + * trans-decl.c (gfc_get_symbol_decl): Likewise. + * trans-intrinsic.c (gfc_conv_intrinsic_ibits, + gfc_conv_intrinsic_len, prepare_arg_info): Likewise. + * trans-io.c (add_case, set_error_locus, build_dt, + transfer_expr): Likewise. + * trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause, + gfc_trans_stop, gfc_trans_character_select): Likewise. + * trans-types.c (gfc_init_types, gfc_get_dtype): Likewise. + * trans.c (gfc_trans_runtime_check): Likewise. + +2004-08-14 Paul Brook + + * trans-decl.c (gfc_build_function_decl): Remove dead code. + +2004-08-14 Paul Brook + + * trans-arry.c (gfc_trans_auto_array_allocation): Remove unused var. + +2004-08-13 Tobias Schlueter + + * gfortran.h: Add comments. + * parse.c (parse_contained): Fix comment typo. + * resolve.c (was_declared): Ditto. + * symbol.c: Ditto. + +2004-08-11 Paul Brook + + PR fortran/16917 + * intrinsic.c (add_functions): Add dfloat as an alias for dble. + +2004-08-10 Richard Henderson + + * f95-lang.c (gfc_init_builtin_functions): Remove + __builtin_stack_alloc, add __builtin_alloca. + * trans-array.c (gfc_trans_auto_array_allocation): Use DECL_EXPR. + * trans-decl.c (gfc_trans_auto_character_variable): Likewise. + +2004-08-10 Paul Brook + + * trans-io.c (transfer_expr): Handle pointters. + +2004-08-10 Paul Brook + + PR fortran/16919 + * trans-array.c (gfc_add_loop_ss_code): Handle GFC_SS_COMPONENT. + (gfc_conv_array_index_offset): Allow "temporary" with nonzero delta. + (gfc_trans_preloop_setup, gfc_trans_scalarized_loop_boundary): + Handle GFC_SS_COMPONENT. + (gfc_conv_ss_startstride): Ditto. Set ss->shape. + (gfc_conv_loop_setup): Tweak commends. Remove dead code. + Use ss->shape. + (gfc_conv_array_initializer): Call specific initializer routines. + * trans-expr.c (gfc_trans_structure_assign): New function. + (gfc_trans_subarray_assign): New function. + (gfc_trans_subcomponent_assign): New fucntion + (gfc_conv_structure): Use them. + * trans.h (gfc_ss_type): Add GFC_SS_COMPONENT. + (gfc_ss): Add shape. + +2004-08-08 Victor Leikehman + + * simplify.c (gfc_simplify_shape): Bugfix. + * expr.c (gfc_copy_shape_excluding): New function. + * gfortran.h (gfc_get_shape): Bugfix. + (gfc_copy_shape_excluding): Added declaration. + * iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count, + gfc_resolve_cshift, gfc_resolve_eoshift, gfc_resolve_lbound, + gfc_resolve_ubound, gfc_resolve_transpose): Added compile + time resolution of shape. + +2004-08-06 Janne Blomqvist + + * intrinsic.c (add_subroutines): Add getenv and + get_environment_variable. (add_sym_5s): New function. + * intrinsic.h (gfc_resolve_get_environment_variable): Add + prototype. + * iresolve.c (gfc_resolve_get_environment_variable): New + function. + +2004-08-06 Feng Wang + + * f95-lang.c (gfc_init_builtin_functions): Fix the number of + __builtin_pow[f] arguments. + +2004-08-06 Steven G. Kargl + + * arith.c: Add #define for model numbers. Remove global GMP variables. + (natural_logarithm,common_logarithm,exponential,sine, + cosine,arctangent,hypercos,hypersine ): Remove. + (gfc_mpfr_to_mpz,gfc_set_model_kind,gfc_set_model): New functions. + (arctangent2,gfc_arith_init_1,gfc_arith_done_1 + gfc_check_real_range, gfc_constant_result, gfc_range_check, + gfc_arith_uminus,gfc_arith_plus, gfc_arith_minus, gfc_arith_times, + gfc_arith_divide,complex_reciprocal,complex_pow_ui, + gfc_arith_power,gfc_compare_expr,compare_complex,gfc_convert_real, + gfc_convert_complex,gfc_int2real,gfc_int2complex, + gfc_real2int,gfc_real2real,gfc_real2complex, + gfc_complex2int,gfc_complex2real,gfc_complex2complex): Convert GMP + to MPFR, use new functions. + * arith.h: Remove extern global variables. + (natural_logarithm,common_logarithm,exponential, sine, cosine, + arctangent,hypercos,hypersine): Remove prototypes. + (arctangent2): Update prototype from GMP to MPFR. + (gfc_mpfr_to_mpz, gfc_set_model_kind,gfc_set_model): Add prototypes. + * dump-parse-tree.c (gfc_show_expr): Convert GMP to MPFR. + * expr.c (free_expr0,gfc_copy_expr): Convert GMP to MPFR. + * gfortran.h (GFC_REAL_BITS): Remove. + (arith): Add ARITH_NAN. + Include mpfr.h. Define GFC_RND_MODE. + Rename GCC_GFORTRAN_H GFC_GFC_H. + (gfc_expr): Convert GMP to MPFR. + * module.c: Add arith.h, correct type in comment. + (mio_gmp_real): Convert GMP to MPFR. + (mio_expr): Use gfc_set_model_kind(). + * primary.c: Update copyright date with 2004. + (match_real_constant,match_const_complex_part): Convert GMP to MPFR. + * simplify.c: Remove global GMP variables + (gfc_simplify_abs,gfc_simplify_acos,gfc_simplify_aimag, + gfc_simplify_aint,gfc_simplify_dint,gfc_simplify_anint, + gfc_simplify_dnint,gfc_simplify_asin,gfc_simplify_atan, + gfc_simplify_atan2,gfc_simplify_ceiling,simplify_cmplx, + gfc_simplify_conjg,gfc_simplify_cos,gfc_simplify_cosh, + gfc_simplify_dim,gfc_simplify_dprod,gfc_simplify_epsilon, + gfc_simplify_exp,gfc_simplify_exponent,gfc_simplify_floor, + gfc_simplify_fraction,gfc_simplify_huge,gfc_simplify_int, + gfc_simplify_ifix,gfc_simplify_idint,gfc_simplify_log, + gfc_simplify_log10,simplify_min_max,gfc_simplify_mod, + gfc_simplify_modulo,gfc_simplify_nearest,simplify_nint, + gfc_simplify_rrspacing,gfc_simplify_scale, + gfc_simplify_set_exponent,gfc_simplify_sign,gfc_simplify_sin, + gfc_simplify_sinh,gfc_simplify_spacing,gfc_simplify_sqrt, + gfc_simplify_tan,gfc_simplify_tanh,gfc_simplify_tiny, + gfc_simplify_init_1,gfc_simplify_done_1): Convert GMP to MPFR. + Use new functions. + * trans-const.c (gfc_conv_mpfr_to_tree): Rename from + gfc_conv_mpf_to_tree. Convert it to use MPFR + (gfc_conv_constant_to_tree): Use it. + * trans-const.h: Update prototype for gfc_conv_mpfr_to_tree(). + * trans-intrinsic.c: Add arith.h, remove gmp.h + (gfc_conv_intrinsic_aint,gfc_conv_intrinsic_mod): Convert GMP to MPFR. + +2004-08-06 Victor Leikehman + Paul Brook + + * trans-array.c (gfc_trans_allocate_array_storage, + gfc_trans_allocate_temp_array, gfc_add_loop_ss_code, + gfc_conv_loop_setup): For functions, if the shape of the result + is not known in compile-time, generate an empty array descriptor for + the result and let the callee to allocate the memory. + (gfc_trans_dummy_array_bias): Do nothing for pointers. + (gfc_conv_expr_descriptor): Use function return values directly. + * trans-expr.c (gfc_conv_function_call): Always add byref call + insn to pre chain. + (gfc_trans_pointer_assignment): Add comments. + (gfc_trans_arrayfunc_assign): Don't chain on expression. + +2004-08-01 Roger Sayle + + * options.c (gfc_init_options): Don't warn about the use GNU + extensions by default. + (gfc_post_options): Warn about GNU extensions with -pedantic. + (gfc_handle_option): Don't warn about GNU extensions with -std=gnu. + +2004-07-30 Richard Henderson + + * trans-expr.c (gfc_conv_expr_reference): Create a CONST_DECL + for TREE_CONSTANTs. + +2004-07-25 Richard Henderson + + * trans-decl.c (gfc_build_function_decl): Set DECL_ARTIFICIAL + and DECL_IGNORED_P on RESULT_DECL. + (gfc_generate_constructors): Likewise. + +2004-07-18 Tobias Schlueter + + PR fortran/16465 + * lang.opt (ffixed-line-length-none, ffixed-line-length-): New + options. + (ffixed-line-length-80, ffixed-line-length-132): Remove. + * options.c (gfc_handle_options): Deal with changed options. + * scanner.c (load_line): Change second arg to 'char **', + allocate if pointing to NULL. Keep track of buffer's length. + Adapt buffer size to overlong lines. Pad lines to full length + in fixed form. + (load_file): Adapt to new interface of load_line. + +2004-07-17 Joseph S. Myers + + * trans.h (builtin_function): Declare. + +2004-07-16 Tobias Schlueter + + PR fortran/16404 + (parts ported from g95) + * parse.h (gfc_state_data): New field do_variable. + (gfc_check_do_variable): Add prototype. + * parse.c (push_state): Initialize field 'do_variable'. + (gfc_check_do_variable): New function. + (parse_do_block): Remember do iterator variable. + (parse_file): Initialize field 'do_variable'. + * match.c (gfc_match_assignment, gfc_match_do, + gfc_match_allocate, gfc_match_nullify, gfc_match_deallocate): + Add previously missing checks. + (gfc_match_return): Reformat error message. + * io.c (match_out_tag): New function. + (match_open_element, match_close_element, + match_file_element, match_dt_element): Call match_out_tag + instead of match_vtag where appropriate. + (match_io_iterator, match_io_element): Add missing check. + (match_io): Reformat error message. + (match_inquire_element): Call match_out_tag where appropriate. + + * parse.c (gfc_check_do_variable): Fix error locus. + +2004-07-15 Tobias Schlueter + + PR fortran/15129 + * trans-decl.c (gfc_build_function_decl): Create a new chardecl + for every assumed length character dummy argument. + + PR fortran/15140 + * trans-decl.c (gfc_trans_deferred_vars): Remove bogus assertion. + + PR fortran/13792 + * simplify.c (gfc_simplify_bound): Copy the bound expression. + +2004-07-15 Tobias Schlueter + + PR fortran/15324 + * trans-array.c gfc_trans_g77_array, + gfc_trans_dummy_array_bias): Don't call gfc_trans_string_init + for assumed length characters. + (gfc_conv_expr_descriptor): Set se->string_length if dealing + with a character expression. + (gfc_cvonv_array_parameter): Pass string length when passing + character array according to g77 conventions. + +2004-07-12 Paul Brook + + * expr.c (gfc_check_assign_symbol): Handle pointer assignments. + * trans-array.c (gfc_trans_auto_array_allocation): Remove + initialization code. + * trans-common.c (create_common): Use gfc_conv_initializer. + * trans-decl.c (gfc_get_symbol_decl): Use gfc_conv_initializer. + * trans-expr.c (gfc_conv_initializer): New function. + (gfc_conv_structure): Use it. + * trans.h (gfc_conv_initializer): Add prototype. + +2004-07-11 Paul Brook + + PR fortran/15986 + * parse.c (gfc_fixup_sibling_symbols): Also look for untyped + variables. + (parse_contained): Mark contained symbols as referenced. + +2004-07-11 Tobias Schlueter + + PR fortran/16455 + * module.c (gfc_dump_module, gfc_use_module): Print locus + when opening of module file fails. + + PR fortran/16404 + * io.c (match_io): Flag 'WRITE(...), ...' as extension. + + PR fortran/16404 + * match.c (gfc_match_program): A program name is obligatory. + (gfc_match_return): RETURN in main program is an extension. + (gfc_match_block_data): A space is required before a block data + name. + + PR fortran/16433 + * primary.c (match_boz_constant): Call gfc_notify_std only if + we actually have a non-standard boz-literal-constant. + + PR fortran/15754 + * expr.c (gfc_check_assign): Print ranks if incompatible. Issue + warning if assigning NULL(). + +2004-07-11 Joseph S. Myers + + * f95-lang.c (set_block): Remove. + (gfc_clear_binding_stack): New. + (LANG_HOOKS_CLEAR_BINDING_STACK): Define. + (struct binding_level): Remove block_created_by_back_end. + (clear_binding_level): Likewise. + (poplevel): Don't handle block_created_by_back_end. + +2004-07-10 Tobias Schlueter + + * trans-decl.c (gfc_create_module_variable): Nothing to do if + symbol is in common, because we ... + (gfc_generate_module_vars): Call gfc_trans_common. + +2004-07-10 Paul Brook + + * trans-array.c (gfc_build_null_descriptor): New function. + (gfc_trans_static_array_pointer): Use it. + * trans-array.h (gfc_build_null_descriptor): Add prototype. + * trans-expr.c (gfc_conv_structure): Handle array pointers. + +2004-07-10 Tobias Schlueter + + PR fortran/16336 + * decl.c (gfc_match_save): Use-associated common block + doesn't collide. + * gfortran.h (gfc_common_head): Add new field 'name'. + Fix typo in comment after #endif. + * match.c (gfc_get_common): Add new argument from_common, + mangle name if flag is set, fill in new field in structure + gfc_common_head. + (match_common): Set new arg in call to gfc_get_common, + use-associated common block doesn't collide. + * match.h (gfc_get_common): Adapt prototype. + * module.c (load_commons): Set new arg in call to + gfc_get_common. + * symbol.c (free_common_tree): New function. + (gfc_free_namespace): Call new function. + * trans-common.c (several functions): Remove argument + 'name', use name from gfc_common_head instead. + +2004-07-10 Tobias Schlueter + + * expr.c (gfc_check_pointer_assign): Verify that rank of the LHS + and RHS match. Return early if the RHS is NULL(). + + PR fortran/16336 + * match.c (match_common): Fix error reporting for used common. + + PR fortran/15969 + * trans-expr.c (gfc_conv_structure): Handle initialization + of scalar pointer components. + + * parse.c (decode_statement): Fix matching of BLOCK DATA. + + * trans-decl.c (generate_local_decl): Remove workaround obsoleted + by fix for PR 15481. + +2004-07-10 Tobias Schlueter + + * trans-common.c: Fix whitespace issues, make variable names + more readable. + (create_common): Additionally, make loop logic more obvious. + +2004-07-10 Tobias Schlueter + Paul Brook + + PR fortran/13415 + * trans-common.c (calculate_length): Remove ... + (get_segment_info): Merge into here. Save field type. + (build_field): Use saved type. + (create_common, new_condition, new_segment, finish_equivalences): + Use new get_segment_info. + * trans-types.c: Update comment. + +2004-07-09 Tobias Schlueter + + PR fortran/14077 + * moduele.c (mio_symbol): Don't I/O initial values unless + symbol is a parameter. + +2004-07-09 Tobias Schlueter + + PR fortran/13201 + * resolve.c (resolve_symbol): Verify that the shape of a + parameter array is not only explicit, but also constant. + * array.c (gfc_is_compile_time_shape): New function. + * gfortran.h (gfc_is_compile_time_shape): Add prototype. + +2004-07-09 Tobias Schlueter + + PR fortran/15481 + PR fortran/13372 + PR fortran/13575 + PR fortran/15978 + * module.c (write_symbol, write_symtree): Remove workaround. + * primary.c (match_actual_arglist): Enhance comment. + (gfc_match_rvalue): Handle function call with first argument + a keyword argument correctly. + * resolve.c (resolve_symbol): Change call to + gfc_set_default_type to issue error if no implicit type + can be found. + * trans-decl.c (gfc_create_module_variable): Remove workaround. + +2004-07-08 Paul Brook + + * intrinsic.c (add_sym_4s): New function. + (add_subroutines): Change gfc_add_sym_? to gfc_add_sym_?s. + +2004-07-04 Janne Blomqvist + Paul Brook + + PR fortran/15280 + PR fortran/15665 + * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_IARGC and + GFC_ISYM_COMMAND_ARGUMENT_COUNT. + * intrinsic.c (add_functions): Identify iargc. Add + command_argument_count. + (add_subroutines): Resolve getarg. Add get_command and + get_command_argument. + * intrinsic.h (gfc_resolve_getarg, gfc_resolve_get_command, + gfc_resolve_get_command_argument): Add prototypes. + * iresolve.c (gfc_resolve_getarg, gfc_resolve_get_command, + gfc_resolve_get_command_argument): New functions. + * trans-decl.c (gfor_fndecl_iargc): New variable. + (gfc_build_intrinsic_function_decls): Set it. + * trans-intrinsic.c (gfc_conv_intrinsic_iargc): New function. + (gfc_conv_intrinsic_function): Use it. + * trans.h (gfor_fndecl_iargc): Declare. + +2004-07-04 Matthias Klose + + * Make-lang.in: Generate and install gfortran man page. + * invoke.texi: Remove extra '@c man end'. + +2004-07-04 Richard Henderson + + * f95-lang.c (gfc_mark_addressable): Don't put_var_into_stack. + +2004-07-04 Paul Brook + + * decl.c (gfc_match_implicit_range): Don't use typespec. + (gfc_match_implicit): Handle character selectors. + * gfortran.h (gfc_set_implicit): Remove prototype. + (gfc_add_new_implicit_range, gfc_merge_new_implicit): Update. + * parse.c (accept_statement): Don't call gfc_set_implicit. + * symbol.c (new_ts): Remove. + (gfc_set_implicit_none): Use same loop bounds as other functions. + (gfc_set_implicit): Remove. + (gfc_clear_new_implicit, gfc_add_new_implicit_range): Only set flags. + (gfc_merge_new_implicit): Combine with gfc_set_implicit. + +2004-06-30 Richard Henderson + + * match.c (var_element): Remove unused variable. + + * trans-decl.c (gfc_generate_function_code): Don't set + x_whole_function_mode_p. + (gfc_generate_constructors): Likewise. + +2004-06-30 Richard Henderson + + * trans-decl.c (gfc_generate_function_code): Don't set + immediate_size_expand. + (gfc_generate_constructors): Likewise. + +2004-06-30 Tobias Schlueter + + PR fortran/16161 + * decl.c (gfc_match_type_spec): Rename second argument to + 'implicit_flag', reverse meaning. Don't match_char_spec if + 'implicit_flag' is set. Rename to ... + (match_type_spec): ... this. + (gfc_match_implicit_none, match_implicit_range): Move here + from match.c. + (gfc_match_implicit): Move here from match.c, try to + match_char_len if match_implicit_range doesn't succeed for + CHARACTER implicits. Call renamed fucntion match_type_spec. + (gfc_match_data_decl, match_prefix): Call renamed function + match_type_spec. + * match.c (gfc_match_implicit_none, match_implicit_range, + gfc_match_implicit): Move to decl.c. + * match.h (gfc_match_implicit_none, gfc_match_implicit): + Move protoypes to section 'decl.c'. + (gfc_match_type_spec): Remove prototype. + +2004-06-29 Tobias Schlueter + + * decl.c, interface.c, symbol.c, trans-common.c: Add 2004 to + copyright years. + +2004-06-29 Steven Bosscher + + Make sure types in assignments are compatible. Mostly mechanical. + * trans-const.h (gfc_index_one_node): New define. + * trans-array.c (gfc_trans_allocate_array_storage, + gfc_trans_allocate_temp_array, gfc_trans_array_constructor_subarray, + gfc_trans_array_constructor_value, gfc_trans_array_constructor, + gfc_conv_array_ubound, gfc_conv_array_ref, + gfc_trans_scalarized_loop_end, gfc_conv_section_startstride, + gfc_conv_ss_startstride, gfc_conv_loop_setup, gfc_array_init_size, + gfc_trans_array_bounds, gfc_trans_dummy_array_bias, + gfc_conv_expr_descriptor, gfc_trans_deferred_array): Use the correct + types in assignments, conversions and conditionals for expressions. + * trans-expr.c (gfc_conv_expr_present, gfc_conv_substring, + gfc_conv_unary_op, gfc_conv_cst_int_power, gfc_conv_string_tmp, + gfc_conv_function_call, gfc_trans_pointer_assignment, + gfc_trans_scalar_assign): Likewise. + * trans-intrinsic.c (build_fixbound_expr, gfc_conv_intrinsic_bound, + gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count, + gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_btest, + gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ishft, + gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_strcmp, + gfc_conv_allocated, gfc_conv_associated, + gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_trim): Likewise. + * trans-io.c (set_string): Likewise. + * trans-stmt.c (gfc_trans_do, gfc_trans_forall_loop, + gfc_do_allocate, generate_loop_for_temp_to_lhs, + generate_loop_for_rhs_to_temp, compute_inner_temp_size, + compute_overall_iter_number, gfc_trans_assign_need_temp, + gfc_trans_pointer_assign_need_temp, gfc_trans_forall_1, + gfc_evaluate_where_mask, gfc_trans_where_assign, + gfc_trans_where_2): Likewise. + * trans-types.c (gfc_get_character_type, gfc_build_array_type, + gfc_get_nodesc_array_type, gfc_get_array_type_bounds): Likewise. + + * trans.c (gfc_add_modify_expr): Add sanity check that types + for the lhs and rhs are the same for scalar assignments. + +2004-06-29 Tobias Schlueter + + * dump-parse-tree.c (show_common): New function. + (gfc_show_namespace): Show commons. + +2004-06-29 Tobias Schlueter + Andrew Vaught + + PR fortran/13249 + PR fortran/15481 + * decl.c (gfc_match_save): Adapt to new common structures, + don't allow saving USE-associated common. + * dump-parse-tree (gfc_show_attr): (saved_)common are not + symbol attributes any longer. + (gfc_show_symbol): Don't show old-style commons any longer. + (gfc_show_namespace): Adapt call to gfc_traverse_symtree to new + interface. + * gfortran.h (symbol_attribute): Remove common and saved_common + attributes. + (gfc_symbol): Remove common_head element. + (gfc_common_head): New struct. + (gfc_get_common_head): New macro. + (gfc_symtree): Add field 'common' to union. + (gfc_namespace): Add field 'common_root'; change type of field + 'blank_common' to blank_common. + (gfc_add_data): New prototype. + (gfc_traverse_symtree): Expect a symtree as first argument + instead of namespace. + * match.c (gfc_get_common): New function. + (match_common_name): Change to take char * as argument, adapt, + fix bug with empty name. + (gfc_match_common): Adapt to new data structures. Disallow + redeclaration of USE-associated COMMON-block. Fix bug with + empty common. + (var_element): Adapt to new common structures. + * match.h (gfc_get_common): Declare. + * module.c: Add 2004 to copyright years, add commons to module + file layout description. + (ab_attribute, attr_bits, mio_symbol_attributes): Remove code + for removed attributes. + (mio_symbol): Adapt to new way of storing common relations. + (load_commons): New function. + (read_module): Skip common list on first pass, load_commons at + second. + (write_commons): New function. + (write_module): Call write_commons(). + * symbol.c (gfc_add_saved_comon, gfc_add_common): Remove + functions related to removed attributes. + (gfc_add_data): New function. + (gfc_clear_attr): Don't set removed attributes. + (gfc_copy_attr): Don't copy removed attributes. + (traverse_symtree): Remove. + (gfc_traverse_symtree): Don't traverse symbol + tree of the passed namespace, but require a symtree to be passed + instead. Unify with traverse_symtree. + (gfc_traverse_ns): Call gfc_traverse_symtree according to new + interface. + (save_symbol): Remove setting of removed attribute. + * trans-common.c (gfc_sym_mangled_common_id): Change to + take 'char *' argument instead of 'gfc_symbol'. + (build_common_decl, new_segment, translate_common): Adapt to new + data structures, add new + argument name. + (create_common): Adapt to new data structures, add new + argument name. Fix typo in intialization of derived types. + (finish_equivalences): Add second argument in call to + create_common. + (named_common): take 'gfc_symtree' instead of 'gfc_symbol'. + (gfc_trans_common): Adapt to new data structures. + * trans-decl.c (gfc_create_module_variables): Remove test for + removed attribute. + +2004-06-29 Tobias Schlueter + + * io.c: Add 2004 to copyright years. + +2004-06-29 Tobias Schlueter + Andrew Vaught + + * gfortran.h (gfc_gsymbol): New typedef. + (gfc_gsym_root): New variable. + (gfc_get_gsymbol, gfc_find_gsym): New prototypes. + * parse.c (global_used): New function. + (parse_block_data): Check for double empty BLOCK DATA, + use global symbol table. + (parse_module): Use global symbol table. + (add_global_procedure, add_global_program): New functions. + (gfc_parse_file): Use global symbol table. + * symbol.c (gfc_gsym_root): New variable. + (gfc_find_gsym, gsym_compare, gfc_get_gsymbol): New + functions. + +2004-06-29 Tobias Schlueter + + * module.c (mio_gmp_real): Correct writing of negative numbers. + +2004-06-29 Tobias Schlueter + + PR fortran/15963 + * expr.c (check_intrinsic_op): Allow comparison of characters. + Make logic easier. + +2004-06-26 Tobias Schlueter + Andrew Vaught + + * decl.c (contained_procedure): New function. + (match_end): Verify correctness of END STATEMENT in + all cases. + +2004-06-26 Tobias Schlueter + Andrew Vaught + + PR fortran/15190 + * decl.c (gfc_match_type_spec), io.c (match_io), parse.c + (decode_statement): Enforce required space in free-form. + +2004-06-22 Richard Kenner + + * f95-lang.c (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Deleted. + * trans-array.c (gfc_conv_descriptor_data): Add operand + for COMPONENT_REF. + (gfc_conv_descriptor_offset, gfc_conv_descriptor_dtype): Likewise. + (gfc_conv_descriptor_dimension, gfc_conv_descriptor_stride): Likewise. + (gfc_conv_descriptor_lbound, gfc_conv_descriptor_ubound): Likewise. + * trans-common.c (create_common): Likewise. + * trans-expr.c (gfc_conv_component_ref): Likewise. + * trans-io.c (set_parameter_value): Likewise. + (set_parameter_ref, set_string, set_flag, io_result): Likewise. + (transfer_expr): Likewise. + * trans-decl.c (gfc_trans_auto_character_variable): + Set up to get DECL_SIZE and DECL_SIZE_UNIT gimplified. + (gfc_gimplify_function): New function. + (gfc_generate_function-code): Properly handle nested functions. + * trans.c (gfc_build_array_ref): Add two new operands for ARRAY_REF. + +2004-06-22 Janne Blomqvist + + PR fortran/15750 + * io.c (gfc_match_inquire): Bugfix for iolength related stuff. + (gfc_resolve_inquire): Resolve the iolength tag. Return + SUCCESS at end of function if no failure has occured. + * resolve.c (resolve_code): Resolve if iolength is encountered. + * trans-io.c: (ioparm_iolength, iocall_iolength, + iocall_iolength_done): New variables. + (last_dt): Add IOLENGTH. + (gfc_build_io_library_fndecls ): Set iolength related variables. + (gfc_trans_iolength): Implement. + (gfc_trans_dt_end): Treat iolength as a third form of data transfer. + +2004-06-21 Tobias Schlueter + + * resolve.c (resolve_symbol): Add comment in function body. + (check_data_variable): Change type of mark to ar_type, adapt code + accordingly. + +2004-06-21 Tobias Schlueter + + * array.c (gfc_insert_constructor): Avoid redundant call to + mpz_comp. Add 2004 to copyright years. + +2004-06-21 Joseph S. Myers + + * trans.h (stmtblock_t): Change has_scope to unsigned int. + +2004-06-20 Steven G. Kargl + + * arith.c (gfc_range_check): correct complex underflow. + +2004-06-15 Tobias Schlueter + + PR fortran/15962 + * match.c (match_case_selector): Call gfc_match_init_expr + instead of gfc_match_expr. + * resolve.c (validate_case_label_expr): No need to check for + constant, since it wouldn't have been matched with the fix to + match.c. + +2004-06-14 Tobias Schlueter + + PR fortran/15211 + * trans-intrinsic.c (gfc_conv_intrinsic_len): Deal with arrays + of strings. + +2004-06-14 Tobias Schlueter + + PR fortran/15510 + * trans-deecl.c (generate_local_decl): Do not issue warning for + unused variables if they're use associated. + +2004-06-14 Tobias Schlueter + Andrew Vaught + + PR fortran/14928 + * gfortran.h (gfc_check_f): Add new field f3ml. + * check.c (gfc_check_minloc_maxloc): Take argument list instead + of individual arguments, reorder if necessary. + * intrinsic.h (gfc_check_minloc_maxloc): ... adapt prototype. + * intrinsic.c (add_sym_3ml): New function. + (add_functions): Change to add_sym_3ml for MINLOC, MAXLOC. + (check_specific): Catch special case MINLOC, MAXLOC. + +2004-06-14 Paul Brook + + * intrinsic.c (add_sym_2s): Use correct function types. + +2004-06-12 Tobias Schlueter + + * Make-lang.in (F95_OBJS, F95_PARSER_OBJS): Alphabetize. Move data.c + * data.c (gfc_get_section_index): Remove dependency on trans.h. + +2004-06-12 Steven G. Kargl + + * check.c (gfc_check_second_sub, gfc_check_irand, gfc_check_rand + gfc_check_srand, gfc_check_etime, gfc_check_etime_sub): New functions. + * gfortran.h (gfc_generic_isym_id): New symbols GFC_ISYM_ETIME, + GFC_ISYM_IRAND, GFC_ISYM_RAND, GFC_ISYM_SECOND. + * trans-intrinsic.c: Use symbols. + * intrinsic.c (add_sym_2s): New function. + * intrinsic.c: Add etime, dtime, irand, rand, second, srand. + * intrinsic.h: Function prototypes. + * iresolve.c (gfc_resolve_etime_sub, gfc_resolve_second_sub + gfc_resolve_srand): New functions. + +2004-06-12 Tobias Schlueter + + PR fortran/14957 + * decl.c (gfc_match_end): Require END {SUBROUTINE|FUNCTION} for + contained procedure. + +2004-06-12 Tobias Schlueter + + PR fortran/12841 + * interface.c (compare_parameter, compare_actual_formal): Don't + check types and array shapes for NULL() + * trans-expr.c (conv_function_call): No double indirection for + NULL() + +2004-06-09 Toon Moene + + * trans-expr.c (gfc_conv_cst_int_power): Compute + x**(-n) by converting it to (1/x)**n instead of + 1/x**n. + +2004-06-09 Tobias Schlueter + + PR fortran/13372 + * module.c (write_symbol, write_symtree): Don't write symbols + wrongly added to namespace. + * trans-decl.c (gfc_create_module_variable): Don't create a + backend decl for a symbol incorrectly added to namespace. + +2004-06-09 Tobias Schlueter + + PR fortran/13201 + * resolve.c (resolve_symbol): Verify that parameter array has an + explicit shape. Fix typos and coding style issues in surrounding + lines. + +2004-06-05 Tobias Schlueter + + PR fortran/15478 + * gfortran.texi: The documentation doesn't contain infomration on + how to report bugs, and shouldn't, so remove the line which + says it does. + +2004-06-05 Tobias Schlueter + + * intrinsic.c (sort_actual): Keep track of type of missing + arguments. (Missing from previous commit.) + +2004-06-03 Tobias Schlueter + + * gfortran.h (gfc_actual_arglist): New field missing_arg_type. + * interface.c (compare_actual_formal): Keep type of omitted + optional arguments. + * trans-expr.c (gfc_conv_function_call): Add string length + argument for omitted string argument. + +2004-06-03 Paul Brook + + * trans.c (gfc_finish_block, gfc_add_expr_to_block): Build statement + lists instead of compound expr chains. + (gfc_trans_code): Annotate statement lists. + +2004-06-03 Tobias Schlueter + + * trans-array.c: Fix spelling in comments. + +2004-06-02 Tobias Schlueter + + PR fortran/15557 + * data.c (assign_substring_data_value): New function. + (gfc_assign_data_value): Call the new function if we're dealing + with a substring LHS. + +2004-06-01 Tobias Schlueter + + PR fortran/15477 + * gfortran.h (GFC_VERSION): Remove. + * gfortran.texi (version-gfortran): Remove, replace by version-GCC + where used. + +2004-05-31 Tobias Schlueter + + * trans-types.c: Fix spelling & layout in comments. + +2004-05-30 Tobias Schlueter + + PR fortran/14067 + * trans-const.c (gfc_conv_string_init): Allow variable string + length lower than initialization string length. + +2004-05-30 Paul Brook + + PR fortran/15620 + * trans-decl.c (gfc_shadow_sym, gfc_restore_sym): New functions. + * trans-expr.c (gfc_trans_string_copy): New function. + (gfc_conv_statement_function): Use them. Create temp vars. Enforce + character lengths. + (gfc_conv_string_parameter): Use gfc_trans_string_copy. + * trans-stmt.c (gfc_trans_forall_1): Use gfc_{shadow,restore}_sym. + * trans.h (struct gfc_saved_var): Define. + (gfc_shadow_sym, gfc_restore_sym): Add prototypes. + +2004-05-30 Steven G. Kargl + + * iresolve.c (gfc_resolve_random_number): Clean up conditional. + +2004-05-29 Steven G. Kargl + + * simplify.c (gfc_simplify_log): Remove useless line of code. + +2004-05-29 Paul Brook + + * trans-common.c (find_equivalence): Find multiple rules. + +2004-05-27 Tobias Schlueter + + * gfortran.h (gfc_current_locus, gfc_set_locus): Remove. + (gfc_current_locus): Declare new global variable. + * scanner.c (gfc_current_locus, gfc_set_locus): Remove. + (gfc_current_locus1): Rename ... + (gfc_current_locus): ... to this. + (gfc_at_eof, gfc_at_bol, gfc_at_eol, gfc_advance_line, next_char, + skip_fixed_comments, skip_free_comments, gfc_next_char_literal, + gfc_peek_char, gfc_gobble_whitespace, gfc_new_file): Use + gfc_current_locus instead of gfc_current_locus1, gfc_set_locus() + and gfc_current_locus(), respectively. + * array.c (match_subscript, gfc_match_array_ref, match_array_list, + match_array_cons_element, gfc_match_array_constructor): + Read/modify gfc_current_locus instead of calling gfc_set_locus() + and gfc_current_locus(). + * decl.c (gfc_match_null, variable_decl, gfc_match_kind_spec, + match_attr_spec, gfc_match_function_decl, gfc_match_end, + attr_decl1, gfc_match_save): Likewise. + * error.c (error_print, gfc_internal_error): Likewise. + * expr.c (gfc_int_expr, gfc_default_logical_kind): Likewise. + * interface.c (gfc_add_interface): Likewise. + * io.c (gfc_match_format, match_dt_format, match_dt_element, + match_io_iterator, match_io): Likewise. + * match.c (gfc_match_space, gfc_match_eos, + gfc_match_small_literal_int, gfc_match_st_label, + gfc_match_strings, gfc_match_name, gfc_match_iterator, + gfc_match_char, gfc_match, gfc_match_assignment, + gfc_match_pointer_assignment, gfc_match_if, gfc_match_do, + gfc_match_nullify, gfc_match_call, match_implicit_range, + gfc_match_implicit, gfc_match_data, match_case_selector, + gfc_match_case, match_forall_iterator): Likewise. + * matchexp.c (gfc_match_defined_op_name, next_operator, + match_level_1, match_mult_operand, match_ext_mult_operand, + match_add_operand, match_ext_add_operand, match_level_2, + match_level_3, match_level_4, match_and_operand, match_or_operand, + match_equiv_operand, match_level_5, gfc_match_expr): Likewise. + * module.c (gfc_match_use, mio_array_ref, mio_expr): Likewise. + * parse.c (match_word, decode_statement, next_free, next_fixed, + add_statement, verify_st_order, parse_if_block, gfc_parse_file): + Likewise. + * primary.c (match_digits, match_integer_constant, + match_boz_constant, match_real_constant, match_substring, + next_string_char, match_charkind_name, match_string_constant, + match_logical_constant, match_const_complex_part, + match_complex_constant, match_actual_arg, match_keyword_arg, + gfc_match_actual_arglist, gfc_match_structure_constructor, + gfc_match_rvalue, gfc_match_variable): Likewise. + * st.c (gfc_get_code): Likewise. + * symbol.c (check_conflict, check_used, check_done, + duplicate_attr, add_flavor, gfc_add_procedure, gfc_add_intent, + gfc_add_access, gfc_add_explicit_interface, gfc_add_type, + gfc_add_component, gfc_reference_st_label, gfc_new_symbol): Likewise. + +2004-05-26 Roger Sayle + + * io.c (format_asterisk): Silence compiler warnings by correcting + the number of elements of a "locus" initializer. + +2004-05-25 Roger Sayle + + PR fortran/13912 + * matchexp.c: Allow unary operators after arithmetic operators + as a GNU extension. + (match_ext_mult_operand, match_ext_add_operand): New functions. + (match_mult_operand): Tweak to call match_ext_mult_operand. + (match_add_operand): Tweak to call match_ext_mult_operand. + (match_level_2): Rearrange to call match_ext_add_operand. + +2004-05-25 Paul Brook + + * expr.c (check_inquiry): Remove bogus tests. + +2004-05-23 Paul Brook + + PR fortran/13773 + * expr.c (restricted_args): Remove redundant checks/argument. + (external_spec_function): Update to match. + (restricted_intrinsic): Rewrite. + +2004-05-23 Paul Brook + Victor Leikehman + + * gfortran.h (struct gfc_symbol): Add equiv_built. + * trans-common.c: Change int to HOST_WIDE_INT. Capitalize error + messages. + (current_length): Remove. + (add_segments): New function. + (build_equiv_decl): Create initialized common blocks. + (build_common_decl): Always add decl to bindings. + (create_common): Create initializers. + (find_segment_info): Reformat to match coding conventions. + (new_condition): Use add_segments. + (add_condition, find_equivalence, add_equivalences): Move iteration + inside functions. Only process each segment once. + (new_segment, finish_equivalences, translate_common): Simplify. + +2004-05-23 Steven G. Kargl + + * check.c (gfc_check_random_seed): Issue for too many arguments. + +2004-05-22 Steven G. Kargl + + * intrinsic.c (add_subroutines): Use add_sym_3s for random_seed. + +2004-05-22 Paul Brook + + * dump-parse-tree.c (gfc_show_equiv): New function. + (gfc_show_namespace): Use it. + +2004-05-22 Victor Leikehman + + PR fortran/13249 + * symbol.c (gfc_add_common): Disable checks to work around other more + fundamental inadequacies. + +2004-05-22 Tobias Schlüter + + * trans-decl.c (gfc_get_extern_function_decl): Set DECL_IS_PURE + only for functions. + (gfc_build_function_decl): Likewise. + +2004-05-22 Steven G. Kargl + + * check.c (gfc_check_system_clock): New function. + * intrinsic.c (add_sym_3s): New function. + (add_subroutines): Use it. + * intrinsic.h (gfc_check_system_clock, gfc_resolve_system_clock): + Add prototypes. + * iresolve.c (gfc_resolve_system_clock): New function. + +2004-05-22 Steven G. Kargl + + * invoke.texi: Document -Wunderflow and spell check. + * lang.opt: Add Wunderflow. + * gfortran.h (gfc_option_t): Add warn_underflow option. + * options.c (gfc_init_options, set_Wall): Use it. + * primary.c (match_real_constant): Explicitly handle UNDERFLOW. + * arith.c (gfc_arith_uminus, gfc_arith_plus, gfc_arith_minus, + gfc_arith_times, gfc_arith_divide, gfc_arith_power, gfc_real2real, + gfc_real2complex, gfc_complex2real, gfc_complex2complex): Ditto. + * arith.c (common_logarithm): Fix typo in comment. + +2004-05-21 Roger Sayle + + * io.c (check_format): As a GNU extension, allow the comma after a + string literal to be optional in a format. Use gfc_notify_std to + issue an error/warning as appropriate. + +2004-05-21 Roger Sayle + + * io.c (check_format): Use gfc_notify_std to determine whether to + issue an error/warning for omitting the digits from the X format. + +2004-05-20 Roger Sayle + + * io.c (check_format): Allow the number before the X format to + be optional when not -pedantic. + +2004-05-18 Feng Wang + Paul Brook + + * f95-lang.c (gfc_init_builtin_functions): Use vold_list_node. + Create decls for __builtin_pow{,f}. + * gfortran.h (PREFIX_LEN): Define. + * trans-decl.c (gfor_fndecl_math_powi): Add. + (gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove. + (gfc_build_intrinsic_function_decls): Create decls for powi. + * trans-expr.c (powi_table): Add. + (gfc_conv_integer_power): Remove. + (gfc_conv_powi): New function. + (gfc_conv_cst_int_power): New function. + (gfc_conv_power_op): Use new powi routines. + * trans.h (struct gfc_powdecl_list): Add. + (gfor_fndecl_math_powi): Add. + (gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove. + +2004-05-18 Tobias Schlueter + + * trans.c, trans-decl.c: Fix comment typos. + +2004-05-18 Tobias Schlueter + + * trans-const.c (gfc_conv_mpf_to_tree): Fix typo. + +2004-05-18 Steve Kargl + + * arith.c (gfc_int2complex): Fix incorrect range checking. + +2004-05-18 Paul Brook + + PR fortran/13930 + * decl.c (add_init_expr_to_sym): Remove incorrect check. + (default_initializer): Move to expr.c. + (variable_decl): Don't assign default initializer to variables. + * expr.c (gfc_default_initializer): Move to here. + * gfortran.h (gfc_default_initializer): Add prototype. + * resolve.c (resolve_symbol): Check for illegal initializers. + Assign default initializer. + +2004-05-17 Steve Kargl + + * arith.c (gfc_arith_power): Complex number raised to 0 power is 1. + +2004-05-17 Steve Kargl + + * arith.c (gfc_real2complex): Range checking wrong part of complex + number. + +2004-05-16 Paul Brook + + * options.c (gfc_handle_module_path_options): Fix buffer overrun. + +2004-05-16 Paul Brook + + * arith.c (gfc_range_check): Fix logic error. + +2004-05-16 Steve Kargl + + * arith.c: Fix comment typos. + +2004-05-15 Tobias Schlueter + + PR fortran/13742 + * decl.c (add_init_expr_to_sym): Verify that COMMON variable is + not initialized in a disallowed fashion. + * match.c (gfc_match_common): Likewise. + (var_element): Verify that variable is not in the blank COMMON, + if it is in a common. + +2004-05-15 Joseph S. Myers + + * Make-lang.in (f95.generated-manpages): Remove. + (f95.srcextra): New. + (f95.info, fortran/gfortran.info, fortran/gfortran.dvi, + f95.maintainer-clean): Generate info and dvi files in objdir/doc. + (f95.dvi): Remove. + (dvi): New. + (f95.install-info): Remove. + (install-info): New. + +2004-05-15 Victor Leikehman + + * decl.c (add_init_expr_to_sym): Check for variable size arrays. + +2004-05-15 Tobias Schlueter + + * primary.c (match_boz_constant): Use gfc_notify_std() for + issuing a warning or an error. + +2004-05-15 Tobias Schlueter + + PR fortran/13826 + * primary.c (match_structure_constructor): Rename ... + (gfc_match_structure_constructor): ... to this. Make non-static. + (gfc_match_rvalue): Call renamed function. + * match.h (gfc_match_structure_constructor): Declare. + * match.c (gfc_match_data_constant): Handle structure + constructor. + +2004-05-15 Tobias Schlueter + + PR fortran/13702 + (Port from g95) + * gfortran.h (gfc_linebuf): New typedef. + (linebuf): Remove. + (gfc_file): Revamped, use new gfc_linebuf. + (locus): Revamped, use new types. + (gfc_current_file): Remove. + (gfc_current_form, gfc_source_file): New global variables. + * match.c (gfc_match_space, gfc_match_strings): Use + gfc_current_form to find source form. + * module.c (gfc_dump_module): Use gfc_source_file when printing + module header. + * error.c (show_locus, show_loci) Use new data structures to print + locus. + * scanner.c (first_file, first_duplicated_file, gfc_current_file): + Remove. + (file_head, current_file, gfc_current_form, line_head, line_tail, + gfc_current_locus1, gfc_source_file): New global variables. + (gfc_scanner_init1): Set new global variables. + (gfc_scanner_done1): Free new data structures. + (gfc_current_locus): Return pointer to gfc_current_locus1. + (gfc_set_locus): Set gfc_current_locus1. + (gfc_at_eof): Set new variables. + (gfc_at_bol, gfc_at_eol, gfc_advance_line, gfc_next_char): Adapt + to new locus structure. + (gfc_check_include): Remove. + (skip_free_comments, skip_fixed_comments): Use gfc_current_locus1. + (gfc_skip_comments): Use gfc_current_form, find locus with + gfc_current_locus1. + (gfc_next_char): Use gfc_current_form. + (gfc_peek_char, gfc_gobble_whitespace): Use gfc_current_locus1. + (load_line): Use gfc_current_form. Recognize ^Z as EOF. Fix + comment formatting. + (get_file): New function. + (preprocessor_line, include_line): New functions. + (load_file): Move down, rewrite to match new data structures. + (gfc_new_file): Rewrite to match new data structures. + * parse.c (next_statement): Remove code which is now useless. Use + gfc_source_form and gfc_source_file where appropriate. + * trans-decl.c (gfc_get_label_decl): adapt to new data structures + when determining locus of frontend code. + * trans-io.c (set_error_locus): Same. + * trans.c (gfc_get_backend_locus, gfc_set_backend_locus): Likewise. + * lang-specs.h (@f77-cpp-input, @f95-cpp-input): Remove '-P' from + preprocessor flags. + (all): Add missing initializers. + +2004-05-15 Tobias Schlueter + + * Make-lang.in (trans-common.o): Remove redundant dependency. + (data.c): Replace object file name ... + (data.o): ... by the correct one. + +2004-05-14 Tobias Schlueter + + * dump-parse-tree.c (gfc_show_array_ref): Print colon only + for ranges when dumping array references. + +2004-05-14 Victor Leikehman + + * decl.c (variable_decl): Always apply default initializer. + +2004-05-08 Tobias Schlüter + + PR fortran/15206 + * trans-intrinsic.c (gfc_conv_intrinsic_rrspacing): Fixed to + handle zero correctly. + +2004-05-14 Tobias Schlueter + + * match.c (gfc_match): Eliminate dead code. + +2004-05-14 Tobias Schlueter + + * parse.c (gfc_statement_next_fixed): (Change from Andy's tree) + Detect bad continuation line in fixed form sources. + +2004-05-14 Tobias Schlueter + + PR fortran/15205 + * iresolve.c (gfc_resolve_nearest): Add new function. + * intrinsic.h: ... declare it here. + * intrinsic.c (add_functions): ... add it as resolving function + for NEAREST. + +2004-05-14 Tobias Schlueter + + PR fortran/14066 + * match.c (gfc_match_do): Allow infinite loops with + label-do-stmt. Do not enforce space after comma. + +2004-05-14 Tobias Schlueter + + PR fortran/15051 + * parse.c (parse_interface): Allow empty INTERFACE, remove + seen_body. + +2004-05-14 Tobias Schlueter + + * Make-lang.in, arith.c, arith.h, array.c, bbt.c, check.c, + decl.c, dependency.c, dependency.h, dump-parse-tree.c, error.c, + expr.c, f95-lang.c, gfortran.h, interface.c, intrinsic.c, + intrinsic.h, io.c, iresolve.c, lang-specs.h, match.c, match.h, + matchexp.c, misc.c, module.c, options.c, parse.c, parse.h, + primary.c, resolve.c, scanner.c, simplify.c, st.c, symbol.c, + trans-array.c, trans-array.h, trans-common.c, trans-const.c, + trans-const.h, trans-decl.c, trans-expr.c, trans-intrinsic.c, + trans-io.c, trans-stmt.c, trans-stmt.h, trans-types.c, + trans-types.h, trans.c, trans.h: Update copyright years and + boilerplate. + * data.c: Likewise, also removed two whitespace-only lines. + * gfortranspec.c, lang.opt: Update copyright years. + +2004-05-14 Tobias Schlueter + + PR fortran/14568 + * trans-decl.c (generate_local_decl): Don't warn for unused + variables which are in common blocks. + +2004-05-13 Diego Novillo + + * Make-lang.in, f95-lang.c, trans-array.c, trans-decl.c, + trans-expr.c, trans-intrinsic.c, trans-io.c, trans-stmt.c, + trans.c: Rename tree-simple.[ch] to tree-gimple.[ch]. + +2004-05-13 Victor Leikehman + + PR fortran/15314 + * trans-expr.c (gfc_conv_structure): Use field type, not expr type. + +2004-05-13 Joseph S. Myers + + * gfortran.texi: Use @table @emph instead of @itemize @emph. + Remove "set DEVELOPMENT". + (Compiling GFORTRAN): Remove. + +2004-05-09 Tobias Schlüter + + * array.c (match_subscript, match_array_ref): Add comments + explaining argument 'init'. + * decl.c, f95-lang.c, match.c, resolve.c, trans-array.c, + trans-expr.c, trans.c: Fix some typos in comments. + * dump-parse-tree.c (gfc_show_expr): Remove wrong comment. + * primary.c (match_digits, match_integer_constant): Add comment + explaining signflag. + +2004-05-01 Tobias Schlüter + + PR fortran/13940 + * primary.c: Include system.h and flags.h, needed for pedantic. + (match_boz_constant): Allow "x" for hexadecimal constants, warn if + pedantic is set. + +2004-05-01 Tobias Schlüter + + PR fortran/13940 + * match.c (match_data_constant): Handle case where + gfc_find_symbol sets sym to NULL + +2004-04-28 Tobias Schlüter + + * Make-lang.in (f95-lang.o, trans-intrinsic.o): Add missing + dependency on mathbuiltins.def + +2004-04-24 Victor Leikehman + + * trans-io.c (transfer_expr): Implemented recursive printing + of derived types. + +2004-04-24 Andrew Pinski + + * gfortranspec.c: Do not include multilib.h. + +2004-04-24 Tobias Schlüter + + * trans-intrinsic.c: Fix comment, this is not trans-expr.c. Add + 2004 to copyright years. + * trans-expr.c, trans-decl.c: Comment update, we now generate + GENERIC, not SIMPLE. Add 2004 to copyright years. + +2004-04-24 Paul Brook + + * Make-lang.in (gfortranspec.o): Add dependency on $(TM_H). + +2004-04-24 Feng Wang + + PR 14817 + * arith.c (gfc_arith_divide): Fix complex divide. + +2004-04-23 Andrew Pinski + + * gfortranspec.c: Include the target headers. + +2004-04-18 Feng Wang + + PR fortran/14921 + PR fortran/14540 + * arith.c (arctangent2): New function. + * arith.h (arctangent2): Add function prototype. + * simplify.c (gfc_simplify_atan2): Use it. + (gfc_simplify_log): Use it. + +2004-04-12 Diego Novillo + + * fortran/f95-lang.c (gfc_expand_stmt): Remove. + (LANG_HOOKS_RTL_EXPAND_STMT): Remove. + +2004-04-11 Bud Davis + + PR fortran/14872 + * trans-io.c (build_dt): Change REC to value. + +2004-04-11 Feng Wang + + PR 14394 + * trans-const.c (gfc_conv_mpf_to_tree): Loosen the maximum digits of + the real value when converting mpf to string. + +2004-04-11 Feng Wang + + PR 14395 + * trans-intrinsic.c (gfc_conv_intrinsic_cmplx): Fix the imag part of + the result. + +2004-04-11 Feng Wang + + PR fortran/14377 + * simplify.c (simplify_min_max): Convert the type of the result. + +2004-04-11 Paul Brook + + * gfortran.texi: Use full target triplet. + +2004-04-11 Paul Brook + + * Make-lang.in (GFORTRAN_TEXI): Set it. + (fortran/dfortran.dvi): Use it. Add fortran to include paths. + (fortran/gfortran.info): Ditto. + * gfortran.texi: Major update. + * invoke.texi: New file. + +2004-04-10 Paul Brook + + * trans-array.c (gfc_trans_allocate_temp_array, + gfc_conv_tmp_array_ref): Don't use GFC_DECL_STRING. + * trans-decl.c (gfc_build_dummy_array_decl, + gfc_get_symbol_decl, gfc_build_function_decl, + gfc_create_module_variable): Ditto. + * trans-expr.c (gfc_conv_variable): Ditto. + * trans-intrinsic.c (gfc_conv_intrinsic_len): Ditto. + * trans.h (GFC_DECL_STRING): Remove. + (GFC_DECL_PACKED_ARRAY, GFC_DECL_PARTIAL_PACKED_ARRAY, + GFC_DECL_ASSIGN): Renumber flags. + +2004-04-05 Paul Brook + + PR 13252 + PR 14081 + * f95-lang.c (gfc_init_builtin_functions): Add stack_alloc, stack_save + and stack_restore. + * gfortran.h (struct gfc_charlen): Add backend_decl. + * trans-array.c (gfc_trans_allocate_temp_array, + gfc_conv_temp_array_ref, gfc_conv_resolve_dependencies, + (gfc_conv_loop_setup, gfc_array_allocate, gfc_conv_array_init_size): + Remove old, broken string handling. + (gfc_trans_auto_array_allocation, gfc_trans_g77_array, + gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor, + gfc_trans_deferred_array): Handle character arrays. + * trans-const.c (gfc_conv_const_charlen): New function. + * trans-const.h (gfc_conv_const_charlen): Add prototype. + * trans-decl.c (gfc_finish_var_decl): Don't mark automatic variables + as static. + (gfc_build_dummy_array_decl): Handle arrays with unknown element size. + (gfc_create_string_length): New function. + (gfc_get_symbol_decl): Create lengths for character variables. + (gfc_get_fake_result_decl): Ditto. + (gfc_build_function_decl): Only set length for assumed length + character arguments. + (gfc_trans_dummy_character): New function. + (gfc_trans_auto_character_variable): Rewrite. + (gfc_trans_deferred_vars): Handle more types of character variable. + (gfc_create_module_variable): String lengths have moved. + (gfc_generate_function_code): Initialize deferred var chain earlier. + * trans-expr.c (gfc_conv_init_string_length): Rename ... + (gfc_trans_init_string_length): ... to this. + (gfc_conv_component_ref, gfc_conv_variable, gfc_conv_concat_op, + gfc_conv_function_call): Update to new format for character variables. + (gfc_conv_string_length): Remove. + (gfc_conv_string_parameter): Update assertion. + * trans-intrinsic.c (gfc_conv_intrinsic_len): Use new location. + * trans-io.c (set_string): Use new macro names. + * trans-stmt.c (gfc_trans_label_assign. gfc_trans_goto): Ditto. + * trans-types.c (gfc_get_character_type): Use existing length expr. + (gfc_is_nodesc_array): Make public. + (gfc_get_dtype_cst): Rename ... + (gfc_get_dtype): ... to this. Handle unknown size arrays. + (gfc_get_nodesc_array_type): Use new name. + (gfc_sym_type): New character variable code. + (gfc_get_derived_type): Ditto. + (gfc_get_function_type): Evaluate character variable lengths. + * trans-types.h (gfc_strlen_kind): Define. + (gfc_is_nodesc_array): Add prototype. + * trans.h: Update prototypes. + (struct lang_type): Update comments. + (GFC_DECL_STRING_LEN): New name for GFC_DECL_STRING_LENGTH. + (GFC_KNOWN_SIZE_STRING_TYPE): Remove. + +2004-04-04 Paul Brook + + * gfortran.h (struct gfc_option_t): Remove flag_g77_calls. + * options.c (gfc_init.options, gfc_handle_option): Ditto. + * trans-expr.c (gfc_conv_function_call): Ditto. + * trans-types.c (gfc_is_nodesc_array): Ditto + * lang.opt (fg77-calls): Remove. + +2004-04-04 Paul Brook + + * trans-array.c (OFFSET_FIELD): Rename from BASE_FIELD. + (gfc_conv_descriptor_base): Rename ... + (gfc_conv_descriptor_offset): ... to this. + (gfc_trans_allocate_array_storage): Set offset to zero. + (gfc_conv_array_base): Rename ... + (gfc_conv_array_offset): ... to this. + (gfc_conv_array_index_ref): Add offset parameter. + (gfc_conv_array_ref): Include offset. + (gfc_trans_preloop_setup): Use existing offset. + (gfc_trans_allocate_temp_array, gfc_array_allocate, + gfc_trans_auto_array_allocation, gfc_trans_g77_array, + gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor, + gfc_conf_ss_descriptor): Set offset. + * trans-array.h: Rename prototypes. + * trans-const.h (gfc_index_zero_node): Define. + * trans-decl.c (gfc_build_qualified_array): Change base to offset. + * trans-types.c (gfc_get_array_type_bounds): Ditto. + (gfc_get_nodesc_array_type): Calculate offset before upper bound. + +2004-03-25 Diego Novillo + + * convert.c (convert): Don't handle WITH_RECORD_EXPR. + +2004-03-24 Bud Davis + + PR 14055 + * arith.c (gfc_convert_integer,gfc_convert_real): Removed leading '+' + before conversion by gmp library call. + +2004-03-24 Bud Davis + + PR 12921 + * trans-io.c (gfc_trans_open): Change RECL= to a value parameter. + +2004-02-24 Richard Henderson + + * trans-array.c (gfc_trans_dummy_array_bias): Fix typo. + +2004-02-19 Loren J. Rittle + + * Make-lang.in ($(srcdir)/fortran/gfortran.info): Move... + (fortran/gfortran.info): ... to here. + (f95.srcinfo): New. + +2004-02-16 Richard Henderson + + * Make-lang.in (f95-lang.o, trans-decl.o): Depend on cgraph.h. + * f95-lang.c (LANG_HOOKS_EXPAND_DECL): Remove. + (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): New. + (gfc_expand_function): Rename from expand_function_body, make static, + don't do anything except invoke tree_rest_of_compilation. + (gfc_be_parse_file): Invoke cgraph. + (gfc_expand_decl): Remove. + (gfc_init_builtin_functions): Add __builtin_init_trampoline and + __builtin_adjust_trampoline. + * trans-decl.c (gfc_get_extern_function_decl): Don't set DECL_CONTEXT. + (gfc_finalize): New. + (gfc_generate_function_code): Use it. Lower nested functions. + * trans-expr.c (gfc_conv_function_call): Add static chain operand + to call_expr. + * trans.c (gfc_build_function_call): Likewise. + * trans.h (expand_function_body): Remove. + +2004-02-15 Victor Leikehman + + PR gfortran/13433 + * trans-decl.c (gfc_build_function_decl) For functions + returning CHARACTER pass an extra length argument, + following g77 calling conventions. + * trans-types.c (gfc_get_function_type) Ditto. + * trans-expr.c (gfc_conv_function_call) Ditto. + +2004-02-14 Paul Brook + + * f95-lang.c (gfc_init_builtin_functions): Build chain properly. + +2004-02-12 Paul Brook + + * BUGS: Remove. + +2004-02-08 Steve Kargl + + * gfortran.texi: Fix typos. + +2004-02-07 Bud Davis + + PR gfortran/13909 + * intrinsic.c (add_conversions) Use logical conversion instead + of real. + * trans-types.c (gfc_get_logical_type) implemented logical*1 + and logical*2. + +2004-01-17 Paul Brook + + * lang-specs.h: Remove % + + * lang-specs.h: Enable preprocessing of source files + ending in .F, .fpp, .FPP, .F90 and .F95. + +2004-01-13 Toon Moene + + PR fortran/12912 + * lang-specs.h: Enable compilation of files ending + in .f, .for and .FOR. + +2004-01-11 Paul Brook + + * trans-stmt.c (gfc_trans_if_1): New function. + (gfc_trans_if): Use it. + +2004-01-11 Erik Schnetter + + * gfortran.h (GFC_MAX_SYMBOL_LEN): Increase. + (gfc_option_t): Add max_identifier_length. + * lang.opt: Add fmax-identifier-length. + * match.c (parse_name): Use limit. + * options.c (gfc_init_options): Set max_identifier_length. + (gfc_handle_option): Ditto. + +2004-01-11 Feng Wang + + * intrinsic.c (add_functions): Add resolve function to dcmplx. + * intrinsic.h (gfc_resolve_dcmplx): Add prototype. + * iresolve.c (gfc_resolve_dcmplx): New function. + +2004-01-10 Paul Brook + + * trans-decl.c (gfc_get_symbol_decl): Don't set subroutine attr. + * trans-types.c (gfc_sym_type): Handle external dummy procedures. + (gfc_return_by_reference): Correct condition. + (gfc_get_function_type): Ditto. + +2004-01-10 Paul Brook + + * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Convert mismatched + types. + +2004-01-10 Huang Chun + + * iresolve.c: Use correct kind. + +2004-01-10 Huang Chun + + PR fortran/13467 + * trans-decl.c (gfc_create_module_variable): Output array valued + parameters. + +2004-01-10 Paul Brook + + * resolve.c (resolve_branch): Get error message right way round. + +2004-01-10 Canqun Yang + + * trans-array (gfc_conv_loop_setup): Adjust comment to track + reality. + (gfc_array_allocate): Don't count size of element twice. + +2004-01-04 Paul Brook + + * lang.opt (i8, r8, std=*): Remove RejectNegative. + +2004-01-04 Paul Brook + + * error.c (gfc_notify_std): New function. + * gfortran.h (gfc_notify_std): Declare. + (GFC_STD_*): Define. + (gfc_option_t): Add warn_std and allow_std. + * intrinsic.c (gfc_init_expr_extensions): Fix logic. + (gfc_intrinsic_func_interface): Use gfc_notify_std. + * check.c (check_rest): Use gfc_notify_std. + * match.c (gfc_match_pause): Ditto. + (gfc_match_assign): Ditto. + (gfc_match_goto): Ditto. + * resolve.c (resolve_branch): Ditto. + * lang.opt: Add std= and w. + * options.c (gfc_init_options): Set allow_std and warn_std. + (gfc_handle_option): Handle OPT_std_* and OPT_w. + +2004-01-01 Paul Brook + + * array.c (gfc_append_constructor): Take constructor, not expression. + * data.c (struct gfc_expr_stack): Remove. + (expr_stack): Remove. + (find_con_by_offset): Rename from find_expr_in_con. + (find_con_by_component): Rename from find_component_in_con. + (gfc_get_expr_stack): Remove. + (gfc_assign_data_value): Rewrite. + (gfc_expr_push): Remove. + (gfc_expr_pop): Remove. + (gfc_advance_section): Rename from + gfc_modify_index_and_calculate_offset. Handle unbounded sections. + (gfc_get_section_index): Handle unbounded sections. + * gfortran.h: Update prototypes. + * resolve.c (check_data_variable): Array section maight not be the + last ref. + +2004-01-01 Paul Brook + + PR fortran/13432 + * resolve.c (resolve_symbol): Allow assumed length function results. + +2004-01-01 Steve Kargl + + * match.c (gfc_match_pause): Fix spelling. + +2004-01-01 Steven Bosscher + + PR fortran/13251 + * trans-expr.c (gfc_conv_variable): Take the type kind of a substring + reference from the expression. diff --git a/gcc/fortran/ChangeLog-2005 b/gcc/fortran/ChangeLog-2005 new file mode 100644 index 00000000000..2a0f26dfdbc --- /dev/null +++ b/gcc/fortran/ChangeLog-2005 @@ -0,0 +1,3723 @@ +2005-12-30 Erik Edelmann + + PR fortran/22607 + * trans-decl.c(gfc_get_extern_function_decl): Don't set + DECL_IS_PURE (fndecl) = 1 for return-by-reference + functions. + + fortran/PR 25396 + * interface.c (gfc_extend_expr): Initialize + e->value.function.name to NULL. + +2005-12-29 Paul Thomas + + PR fortran/25532 + * trans-types.c (copy_dt_decls_ifequal): Copy declarations for + components of derived type components by recursing into + gfc_get_derived_type. + +2005-12-28 Andrew Pinski + + PR fortran/25587 + * trans-io.c (gfc_build_st_parameter): Correct off by one error. + +2005-12-28 Rafael Ávila de Espíndola + + * Make-lang.in: Remove distdir from comment. + +2005-12-24 Paul Thomas + + PR fortran/25029 + PR fortran/21256 + * resolve.c (check_assumed_size_reference, resolve_assumed_size_actual): + Remove because of regressions caused by patch. + (resolve_function, resolve_call, resolve_variable): Remove assumed size + checks because of regressionscaused by patch. + +2005-12-23 Paul Thomas + + PR fortran/25029 + PR fortran/21256 + *resolve.c(resolve_function): Remove assumed size checking for SIZE + and UBOUND and rely on their built-in checking. + +2005-12-22 Tobias Schl"uter + + PR fortran/18990 + * gfortran.h (gfc_charlen): Add resolved field. + * expr.c (gfc_specification_expr): Accept NULL argument. + * resolve.c (gfc_resolve_charlen, gfc_resolve_derived): New. + (gfc_resolve_symbol): Resolve derived type definitions. Use + resolve_charlen to resolve character lengths. + +2005-12-22 Paul Thomas + + PR fortran/20889 + *resolve.c(resolve_structure_cons): Do not attempt to convert + the type of mismatched pointer type components, except when + the constructor component is BT_UNKNOWN; emit error instead. + + PR fortran/25029 + PR fortran/21256 + *resolve.c(check_assumed_size_reference): New function to check for upper + bound in assumed size array references. + (resolve_assumed_size_actual): New function to do a very restricted scan + of actual argument expressions of those procedures for which incomplete + assumed size array references are not allowed. + (resolve_function, resolve_call): Switch off assumed size checking of + actual arguments, except for elemental procedures and array valued + intrinsics; excepting LBOUND. + (resolve_variable): Call check_assumed_size_reference. + + PR fortran/19362 + PR fortran/20244 + PR fortran/20864 + PR fortran/25391 + *interface.c(gfc_compare_types): Broken into two. + (gfc_compare_derived_types): Second half of gfc_compare_types with + corrections for a missing check that module name is non-NULL and + a check for private components. + *symbol.c(gfc_free_dt_list): New function. + (gfc_free_namespace): Call gfc_free_dt_list. + *resolve.c(resolve_symbol): Build the list of derived types in the + symbols namespace. + *gfortran.h: Define the structure type gfc_dt_list. Add a new field, + derived_types to gfc_namespace. Provide a prototye for the new + function gfc_compare_derived_types. + *trans_types.c(gfc_get_derived_type): Test for the derived type being + available in the host namespace. In this case, the host backend + declaration is used for the structure and its components. If an + unbuilt, equal structure that is not use associated is found in the + host namespace, build it there and then. On exit,traverse the + namespace of the derived type to see if there are equal but unbuilt. + If so, copy the structure and its component declarations. + (copy_dt_decls_ifequal): New functions to copy declarations to other + equal structure types. + + PR fortran/20862 + * io.c (gfc_match_format): Make the appearance of a format statement + in a module specification block an error. + + PR fortran/23152 + * match.c (gfc_match_namelist): Set assumed shape arrays in + namelists as std=GFC_STD_GNU and assumed size arrays as an + unconditional error. + + PR fortran/25069 + * match.c (gfc_match_namelist): Set the respecification of a USE + associated namelist group as std=GFC_STD_GNU. Permit the concatenation + on no error. + + PR fortran/25053 + PR fortran/25063 + PR fortran/25064 + PR fortran/25066 + PR fortran/25067 + PR fortran/25068 + PR fortran/25307 + * io.c (resolve_tag): Change std on IOSTAT != default integer to + GFC_STD_GNU and change message accordingly. Add same error for + SIZE. + (match_dt_element, gfortran.h): Add field err_where to gfc_dt and + set it when tags are being matched. + (gfc_resolve_dt): Remove tests that can be done before resolution + and add some of the new ones here. + (check_io_constraints): New function that checks for most of the + data transfer constraints. Some of these were previously done in + match_io, from where this function is called, and some were done + in gfc_resolve_dt. + (match_io): Remove most of the tests of constraints and add the + call to check_io_constraints. + +2005-12-21 Erik Edelmann + + PR fortran/25423 + * parse.c (parse_where_block): break instead of "fall + through" after parsing nested WHERE construct. + +2005-12-18 Paul Thomas + + PR fortran/25018 + *expr.c(check_inquiry): Return FAILURE if there is no symtree to + provide a name. Error/warning for assumed character length argument + to LEN for an initialization expression, using GFC_GNU_STD. Add an + argument to flag that the expression is not restricted. + (check_init_expr): Improve the message for a failing variable. + (gfc_match_init_expr): Call check_enquiry again to make sure that + unsimplified expressions are not causing unnecessary errors. + +2005-12-17 Steven G. Kargl + Tobias Schlueter + + PR fortran/25458 + * simplify.c (gfc_simplify_ibset, gfc_simplify_not): Add call to + twos_complement. + +2005-12-17 Steven G. Kargl + + * decl.c (gfc_match_old_kind_spec,match_type_spec): Use gfc_std_notify + to report nonstandard intrinsic type declarations. + +2005-12-16 Jerry DeLisle + + PR fortran/24268 + * io.c (format_lex): Allow whitespace within text of format specifier. + +2005-12-16 Steven G. Kargl + + PR fortran/25106 + PR fortran/25055 + * match.c (gfc_match_small_literal_int): Add cnt argument; + (gfc_match_st_label,gfc_match_stopcode): Account for cnt argument. + * match.h (gfc_match_small_literal_int): Update prototype. + * decl.c (match_char_length,gfc_match_old_kind_spec): Account for cnt. + * parse.c (next_free): Ditto. + * primary.c (match_kind_param): Ditto. + +2005-12-16 Richard Guenther + + * trans.h (tree): Remove declaration of gfc_build_function_call. + * trans.c (gfc_build_function_call): Remove. + (gfc_build_array_ref): Use build_function_call_expr. + (gfc_trans_runtime_check): Likewise. + * trans-array.c (gfc_trans_allocate_array_storage): Likewise. + (gfc_grow_array): Likewise. + (gfc_trans_array_ctor_element): Likewise. + (gfc_trans_array_constructor_value): Likewise. + (gfc_array_allocate): Likewise. + (gfc_array_deallocate): Likewise. + (gfc_trans_auto_array_allocation): Likewise. + (gfc_trans_dummy_array_bias): Likewise. + (gfc_conv_array_parameter): Likewise. + * trans-expr.c (gfc_conv_power_op): Likewise. + (gfc_conv_string_tmp): Likewise. + (gfc_conv_concat_op): Likewise. + (gfc_conv_expr_op): Likewise. + (gfc_trans_string_copy): Likewise. + * trans-decl.c (build_entry_thunks): Likewise. + (gfc_generate_function_code): Likewise. + (gfc_generate_constructors): Likewise. + * trans-io.c (gfc_trans_open): Likewise. + (gfc_trans_close): Likewise. + (build_filepos): Likewise. + (gfc_trans_inquire): Likewise. + (transfer_namelist_element): Likewise. + (build_dt): Likewise. + (gfc_trans_dt_end): Likewise. + (transfer_expr): Likewise. + (transfer_array_desc): Likewise. + * trans-stmt.c (gfc_trans_pause): Likewise. + (gfc_trans_stop): Likewise. + (gfc_trans_character_select): Likewise. + (gfc_do_allocate): Likewise. + (gfc_trans_assign_need_temp): Likewise. + (gfc_trans_pointer_assign_need_temp): Likewise. + (gfc_trans_forall_1): Likewise. + (gfc_trans_where): Likewise. + (gfc_trans_allocate): Likewise. + (gfc_trans_deallocate): Likewise. + * trans-intrinsic.c (gfc_conv_intrinsic_aint): Likewise. + (gfc_conv_intrinsic_lib_function): Likewise. + (gfc_conv_intrinsic_exponent): Likewise. + (gfc_conv_intrinsic_abs): Likewise. + (gfc_conv_intrinsic_sign): Likewise. + (gfc_conv_intrinsic_ctime): Likewise. + (gfc_conv_intrinsic_fdate): Likewise. + (gfc_conv_intrinsic_ttynam): Likewise. + (gfc_conv_intrinsic_ishftc): Likewise. + (gfc_conv_intrinsic_len_trim): Likewise. + (gfc_conv_intrinsic_index): Likewise. + (gfc_conv_intrinsic_size): Likewise. + (gfc_conv_intrinsic_strcmp): Likewise. + (gfc_conv_intrinsic_adjust): Likewise. + (gfc_conv_associated): Likewise. + (gfc_conv_intrinsic_scan): Likewise. + (gfc_conv_intrinsic_verify): Likewise. + (call_builtin_clz): Likewise. + (gfc_conv_intrinsic_si_kind): Likewise. + (gfc_conv_intrinsic_sr_kind): Likewise. + (gfc_conv_intrinsic_trim): Likewise. + (gfc_conv_intrinsic_repeat): Likewise. + (gfc_conv_intrinsic_iargc): Likewise. + +2005-12-16 Richard Guenther + + * trans.h (gfc_build_indirect_ref): Remove declaration. + * trans.c (gfc_build_indirect_ref): Remove. + * trans-array.c (gfc_trans_array_ctor_element): Use + build_fold_indirect_ref instead of gfc_build_indirect_ref. + (gfc_trans_array_constructor_value): Likewise. + (gfc_conv_array_index_offset): Likewise. + (gfc_conv_scalarized_array_ref): Likewise. + (gfc_conv_array_ref): Likewise. + (gfc_trans_dummy_array_bias): Likewise. + (gfc_conv_expr_descriptor): Likewise. + (gfc_conv_array_parameter): Likewise. + * trans-decl.c (gfc_finish_cray_pointee): Likewise. + (gfc_get_symbol_decl): Likewise. + * trans-expr.c (gfc_conv_substring): Likewise. + (gfc_conv_component_ref): Likewise. + (gfc_conv_variable): Likewise. + (gfc_add_interface_mapping): Likewise. + (gfc_conv_function_call): Likewise. + * trans-intrinsic.c (gfc_conv_intrinsic_ichar): Likewise. + (gfc_conv_intrinsic_transfer): Likewise. + * trans-io.c (nml_get_addr_expr): Likewise. + (transfer_namelist_element): Likewise. + (transfer_expr): Likewise. + * trans-stmt.c (gfc_trans_nested_forall_loop): Likewise. + (allocate_temp_for_forall_nest_1): Likewise. + (gfc_trans_forall_1): Likewise. + +2005-12-16 Richard Guenther + + * trans-array.c (gfc_conv_descriptor_data_addr): Use + build_fold_addr_expr where appropriate. + (gfc_trans_allocate_array_storage): Likewise. + (gfc_trans_array_constructor_value): Likewise. + (gfc_conv_array_data): Likewise. + (gfc_conv_expr_descriptor): Likewise. + (gfc_conv_array_parameter): Likewise. + * trans-expr.c (gfc_conv_variable): Likewise. + (gfc_conv_function_val): Likewise. + (gfc_conv_function_call): Likewise. + (gfc_conv_expr_reference): Likewise. + * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Likewise. + (gfc_conv_intrinsic_fdate): Likewise. + (gfc_conv_intrinsic_ttynam): Likewise. + (gfc_conv_intrinsic_si_kind): Likewise. + (gfc_conv_intrinsic_trim): Likewise. + * trans-io.c (set_parameter_ref): Likewise. + (gfc_convert_array_to_string): Likewise. + (gfc_trans_open): Likewise. + (gfc_trans_close): Likewise. + (build_filepos): Likewise. + (gfc_trans_inquire): Likewise. + (nml_get_addr_expr): Likewise. + (transfer_namelist_element): Likewise. + (build_dt): Likewise. + (gfc_trans_dt_end): Likewise. + (transfer_array_component): Likewise. + (transfer_expr): Likewise. + (transfer_array_desc): Likewise. + (gfc_trans_transfer): Likewise. + * trans-stmt.c (gfc_trans_allocate): Likewise. + (gfc_trans_deallocate): Likewise. + +2005-12-16 Kazu Hirata + + * dependency.c, resolve.c, trans-array.c: Fix comment typos. + * gfortran.texi: Fix typos. + +2005-12-14 Erik Edelmann + + PR fortran/18197 + * resolve.c (resolve_formal_arglist): Remove code to set + the type of a function symbol from it's result symbol. + +2005-12-13 Richard Guenther + + * trans-expr.c (gfc_conv_substring): Use fold_build2 and + build_int_cst. + +2005-12-13 Richard Sandiford + + * Make-lang.in (fortran/trans-resolve.o): Depend on + fortran/dependency.h. + * gfortran.h (gfc_expr): Add an "inline_noncopying_intrinsic" flag. + * dependency.h (gfc_get_noncopying_intrinsic_argument): Declare. + (gfc_check_fncall_dependency): Change prototype. + * dependency.c (gfc_get_noncopying_intrinsic_argument): New function. + (gfc_check_argument_var_dependency): New function, split from + gfc_check_fncall_dependency. + (gfc_check_argument_dependency): New function. + (gfc_check_fncall_dependency): Replace the expression parameter with + separate symbol and argument list parameters. Generalize the function + to handle dependencies for any type of expression, not just variables. + Accept a further argument giving the intent of the expression being + tested. Ignore intent(in) arguments if that expression is also + intent(in). + * resolve.c: Include dependency.h. + (find_noncopying_intrinsics): New function. + (resolve_function, resolve_call): Call it on success. + * trans-array.h (gfc_conv_array_transpose): Declare. + (gfc_check_fncall_dependency): Remove prototype. + * trans-array.c (gfc_conv_array_transpose): New function. + * trans-intrinsic.c (gfc_conv_intrinsic_function): Don't use the + libcall handling if the expression is to be evaluated inline. + Add a case for handling inline transpose()s. + * trans-expr.c (gfc_trans_arrayfunc_assign): Adjust for the new + interface provided by gfc_check_fncall_dependency. + +2005-12-12 Steven G. Kargl + + PR fortran/25078 + * match.c (gfc_match_equivalence): Count number of objects. + +2005-12-11 Aldy Hernandez + + * lang.opt: Add RejectNegative to ffixed-form and ffree-form. + +2005-12-10 Francois-Xavier Coudert + + PR fortran/25068 + * io.c (resolve_tag): Add correct diagnostic for F2003 feature. + +2005-12-10 Thomas Koenig + + PR fortran/23815 + * io.c (top level): Add convert to io_tag. + (resolve_tag): convert is GFC_STD_GNU. + (match_open_element): Add convert. + (gfc_free_open): Likewise. + (gfc_resolve_open): Likewise. + (gfc_free_inquire): Likewise. + (match_inquire_element): Likewise. + * dump-parse-tree.c (gfc_show_code_node): Add + convet for open and inquire. + gfortran.h: Add convert to gfc_open and gfc_inquire. + * trans-io.c (gfc_trans_open): Add convert. + (gfc_trans_inquire): Likewise. + * ioparm.def: Add convert to open and inquire. + * gfortran.texi: Document CONVERT. + +2005-12-09 Roger Sayle + + PR fortran/22527 + * f95-lang.c (gfc_truthvalue_conversion): Use a zero of the correct + integer type when building an inequality. + +2005-12-09 Richard Guenther + + * f95-lang.c (build_builtin_fntypes): Use correct + return types, as indicated by comments. + +2005-12-08 Erik Edelmann + + PR fortran/25292 + * check.c (gfc_check_associated): Allow function results + as actual arguments to ASSOCIATED. Moved a misplaced + comment. + +2005-12-07 Rafael Ávila de Espíndola + + * Make-lang.in (fortran.all.build, fortran.install-normal): Remove. + +2005-12-07 Rafael Ávila de Espíndola + + * Make-lang.in: Remove all dependencies on s-gtype, except for + gt-fortran-trans.h. + +2005-12-03 Francois-Xavier Coudert + + PR fortran/25106 + * parse.c (next_free): Use new prototype for gfc_match_st_label. + Correctly emit hard error if a label is zero. + * match.c (gfc_match_st_label): Never allow zero as a valid + label. + (gfc_match, gfc_match_do, gfc_match_goto): Use new prototype for + gfc_match_st_label. + * primary.c (): Use new prototype for gfc_match_st_label. + * io.c (): Likewise. + * match.h: Likewise. + +2005-12-02 Richard Guenther + + * trans.h (build1_v): Use build1, not build to build the + void typed tree. + +2005-12-01 Erik Schnetter + + * decl.c (gfc_match_old_kind_spec): Improve handling of old style + COMPLEX*N + +2005-12-01 Paul Thomas + + PR fortran/24789 + * trans-decl.c (gfc_get_symbol_decl): Move the expression for + unit size of automatic character length, dummy pointer array + elements down a few lines from the version that fixed PR15809. + +2005-11-30 Bernhard Fischer + + PR fortran/21302 + * lang.opt: New options -ffree-line-length- and -ffree-line-length-none. + * gfortran.h: Add free_line_length and add description of + free_line_length and fixed_line_length. + * options.c (gfc_init_options, gfc_handle_option): Initialize + and set free_line_length and fixed_line_length. + * scanner.c (load_line): Set free_line_length to 132 and + fixed_line_length to 72 or user requested values. + * scanner.c: Typo in comment. + * invoke.texi: Document -ffree-line-length- and + -ffree-line-length-none + +2005-11-30 Paul Thomas + + PR fortran/15809 + * trans-decl.c (gfc_get_symbol_decl): In the case of automatic + character length, dummy pointer arrays, build an expression for + unit size of the array elements, to be picked up and used in the + descriptor dtype. + * trans-io.c (gfc_trans_transfer): Modify the detection of + components of derived type arrays to use the gfc_expr references + instead of the array descriptor dtype. This allows the latter + to contain expressions. + +2005-11-30 Erik Edelmann + + PR fortran/15809 + * trans-array.c (gfc_trans_deferred_array): Allow PARM_DECLs past + in addition to VAR_DECLs. + +2005-11-29 Jakub Jelinek + + * io.c (gfc_resolve_open): RESOLVE_TAG access field as well. + +2005-11-27 Bernhard Fischer + + * gfortran.h: remove superfluous whitespace and use GNU + comment-style for the documentation of backend_decl. + +2005-11-27 Steven G. Kargl + + PR fortran/24917 + * primary.c (match_boz_constant): Implement postfix BOZ constants; + (match_string_constant): Peek for b, o, z, and x + +2005-11-27 Francois-Xavier Coudert + + PR fortran/23912 + * iresolve.c (gfc_resolve_dim, gfc_resolve_mod, + gfc_resolve_modulo): When arguments have different kinds, fold + the lower one to the largest kind. + * check.c (gfc_check_a_p): Arguments of different kinds is not + a hard error, but an extension. + * simplify.c (gfc_simplify_dim, gfc_simplify_mod, + gfc_simplify_modulo): When arguments have different kinds, fold + the lower one to the largest kind. + +2005-11-21 Jakub Jelinek + + PR fortran/14943 + PR fortran/21647 + * Make-lang.in (fortran/trans-io.o): Depend on fortran/ioparm.def. + * dump-parse-tree.c (gfc_show_code_node): Dump c->block for + EXEC_{READ,WRITE,IOLENGTH} nodes. + * io.c (terminate_io, match_io, gfc_match_inquire): Put data + transfer commands into EXEC_{READ,WRITE,IOLENGTH}'s code->block. + * resolve.c (resolve_blocks): Handle EXEC_{READ,WRITE,IOLENGTH}. + * trans-io.c (ioparm_unit, ioparm_err, ioparm_end, ioparm_eor, + ioparm_list_format, ioparm_library_return, ioparm_iostat, + ioparm_exist, ioparm_opened, ioparm_number, ioparm_named, + ioparm_rec, ioparm_nextrec, ioparm_size, ioparm_recl_in, + ioparm_recl_out, ioparm_iolength, ioparm_file, ioparm_file_len, + ioparm_status, ioparm_status_len, ioparm_access, ioparm_access_len, + ioparm_form, ioparm_form_len, ioparm_blank, ioparm_blank_len, + ioparm_position, ioparm_position_len, ioparm_action, + ioparm_action_len, ioparm_delim, ioparm_delim_len, ioparm_pad, + ioparm_pad_len, ioparm_format, ioparm_format_len, ioparm_advance, + ioparm_advance_len, ioparm_name, ioparm_name_len, + ioparm_internal_unit, ioparm_internal_unit_len, + ioparm_internal_unit_desc, ioparm_sequential, ioparm_sequential_len, + ioparm_direct, ioparm_direct_len, ioparm_formatted, + ioparm_formatted_len, ioparm_unformatted, ioparm_unformatted_len, + ioparm_read, ioparm_read_len, ioparm_write, ioparm_write_len, + ioparm_readwrite, ioparm_readwrite_len, ioparm_namelist_name, + ioparm_namelist_name_len, ioparm_namelist_read_mode, ioparm_iomsg, + ioparm_iomsg_len, ioparm_var): Remove. + (enum ioparam_type, enum iofield_type, enum iofield, + enum iocall): New enums. + (gfc_st_parameter_field, gfc_st_parameter): New typedefs. + (st_parameter, st_parameter_field, iocall): New variables. + (ADD_FIELD, ADD_STRING): Remove. + (dt_parm, dt_post_end_block): New variables. + (gfc_build_st_parameter): New function. + (gfc_build_io_library_fndecls): Use it. Initialize iocall + array rather than ioparm_*, add extra first arguments to + the function types. + (set_parameter_const): New function. + (set_parameter_value): Add type argument, return a bitmask. + Changed to set a field in automatic structure variable rather + than set a field in a global _gfortran_ioparm variable. + (set_parameter_ref): Likewise. If requested var has different + size than what field should point to, call with a temporary and + then copy into the user variable. Add postblock argument. + (set_string): Remove var_len argument, add type argument, return + a bitmask. Changed to set fields in automatic structure variable + rather than set a field in a global _gfortran_ioparm variable. + (set_internal_unit): Remove iunit, iunit_len, iunit_desc arguments, + add var argument. Return a bitmask. Changed to set fields in + automatic structure variable rather than set a field in a global + _gfortran_ioparm variable. + (set_flag): Removed. + (io_result): Add var argument. Changed to read common.flags field + from automatic structure variable and bitwise AND it with 3. + (set_error_locus): Add var argument. Changed to set fields in + automatic structure variable rather than set a field in a global + _gfortran_{filename,line} variables. + (gfc_trans_open): Use gfc_start_block rather than gfc_init_block. + Create a temporary st_parameter_* structure. Adjust callers of + all above mentioned functions. Pass address of the temporary + variable as first argument to the generated function call. + Use iocall array rather than ioparm_* separate variables. + (gfc_trans_close, build_filepos, gfc_trans_inquire): Likewise. + (build_dt): Likewise. Change first argument to tree from tree *. + Don't dereference code->ext.dt if last_dt == INQUIRE. Emit + IOLENGTH argument setup here. Set dt_parm/dt_post_end_block + variables and gfc_trans_code the nested data transfer commands + in code->block. + (gfc_trans_iolength): Just set last_dt and call build_dt immediately. + (transfer_namelist_element): Pass address of dt_parm variable + to generated functions. Use iocall array rather than ioparm_* + separate variables. + (gfc_trans_backspace, gfc_trans_endfile, gfc_trans_rewind, + gfc_trans_flush, gfc_trans_read, gfc_trans_write): Use iocall array + rather than ioparm_* separate variables. + (gfc_trans_dt_end): Likewise. Pass address of dt_parm variable + as first argument to generated function. Adjust io_result caller. + Prepend dt_post_end_block before io_result code. + (transfer_expr): Use iocall array rather than ioparm_* separate + variables. Pass address of dt_parm variables as first argument + to generated functions. + * ioparm.def: New file. + +2005-11-21 Paul Thomas + + PR fortran/24223 + * resolve.c (resolve_contained_fntype) Error if an internal + function is assumed character length. + + PR fortran/24705 + * trans-decl.c (gfc_create_module_variable) Skip ICE in + when backend decl has been built and the symbol is marked + as being in an equivalence statement. + +2005-11-20 Toon Moene + + * invoke.texi: Remove superfluous @item. + +2005-11-19 Janne Blomqvist + + PR fortran/24862 + * trans-io.c (gfc_trans_transfer): Handle arrays of derived type. + +2005-11-17 Francois-Xavier Coudert + + PR fortran/20811 + * scanner.c (gfc_open_included_file): Add an extra include_cwd + argument. Only include files in the current working directory if + its value is true. + * gfortran.h: Change prototype for gfc_open_included_file. + (load_file): Don't search for include files in the current working + directory. + * options.c (gfc_post_options): Add the directory of the source file + to the list of paths for included files. + * module.c (gfc_use_module): Look for module files in the current + directory. + +2005-11-16 Alan Modra + + PR fortran/24096 + * trans-types.c (gfc_init_kinds): Use one less for max_exponent + of IBM extended double format. + +2005-11-13 Francois-Xavier Coudert + + * intrinsic.c (add_functions): Add COMPLEX, FTELL, FGETC, FGET, + FPUTC, FPUT, AND, XOR and OR intrinsic functions. + (add_subroutines): Add FGETC, FGET, FPUTC, FPUT and FTELL intrinsic + subroutines. + * gfortran.h: Add GFC_ISYM_AND, GFC_ISYM_COMPLEX, GFC_ISYM_FGET, + GFC_ISYM_FGETC, GFC_ISYM_FPUT, GFC_ISYM_FPUTC, GFC_ISYM_FTELL, + GFC_ISYM_OR, GFC_ISYM_XOR. + * iresolve.c (gfc_resolve_and, gfc_resolve_complex, + gfc_resolve_or, gfc_resolve_fgetc, gfc_resolve_fget, + gfc_resolve_fputc, gfc_resolve_fput, gfc_resolve_ftell, + gfc_resolve_xor, gfc_resolve_fgetc_sub, gfc_resolve_fget_sub, + gfc_resolve_fputc_sub, gfc_resolve_fput_sub, gfc_resolve_ftell_sub): + New functions. + * check.c (gfc_check_complex, gfc_check_fgetputc_sub, + gfc_check_fgetputc, gfc_check_fgetput_sub, gfc_check_fgetput, + gfc_check_ftell, gfc_check_ftell_sub, gfc_check_and): New functions. + * simplify.c (gfc_simplify_and, gfc_simplify_complex, gfc_simplify_or, + gfc_simplify_xor): New functions. + * trans-intrinsic.c (gfc_conv_intrinsic_function): Add cases for + GFC_ISYM_AND, GFC_ISYM_COMPLEX, GFC_ISYM_FGET, GFC_ISYM_FGETC, + GFC_ISYM_FPUT, GFC_ISYM_FPUTC, GFC_ISYM_FTELL, GFC_ISYM_OR and + GFC_ISYM_XOR. + * intrinsic.h: Add prototypes for all functions added to iresolve.c, + simplify.c and check.c. + +2005-11-10 Paul Thomas + Steven G. Kargl + + PR fortran/15976 + * resolve.c (resolve_symbol): Disallow automatic arrays in module scope. + +2005-11-10 Paul Thomas + + PR fortran/24655 + PR fortran/24755 + * match.c (recursive_stmt_fcn): Add checks that symtree exists + for the expression to weed out inline intrinsic functions and + parameters. + + PR fortran/24409 + * module.c (mio_symtree_ref): Correct the patch of 0923 so that + a symbol is not substituted for by a the symbol for the module + itself and to prevent the promotion of a formal argument. + +2005-11-10 Tobias Schl"uter + + PR fortran/24643 + * primary.c (match_varspec): Check for implicitly typed CHARACTER + variables before matching substrings. + +2005-11-09 Steven G. Kargl + + * trans-intrinsic.c: Typo in comment. + +2005-11-09 Erik Edelmann + + PR fortran/22607 + * trans-decl.c(build_function_decl): Don't set + DECL_IS_PURE (fndecl) = 1 for return-by-reference + functions. + +2005-11-08 Tobias Schl"uter + + * dump-parse-tree.c: Fix comment typo, add a few blank lines. + +2005-11-07 Steven G. Kargl + + * error.c: Use flag_fatal_error. + * invoke.texi: Remove -Werror from list of options. + +2005-11-06 Paul Thomas + + PR fortran/24534 + * resolve.c (resolve_symbol): Exclude case of PRIVATE declared + within derived type from error associated with PRIVATE type + components within derived type. + + PR fortran/20838 + PR fortran/20840 + * gfortran.h: Add prototype for gfc_has_vector_index. + * io.c (gfc_resolve_dt): Error if internal unit has a vector index. + * expr.c (gfc_has_vector_index): New function to check if any of + the array references of an expression have vector inidices. + (gfc_check_pointer_assign): Error if internal unit has a vector index. + + PR fortran/17737 + * data.c (gfc_assign_data_value): Remove gcc_assert that caused the ICE + and replace by a standard dependent warning/error if overwriting an + existing initialization. + * decl.c (gfc_data_variable): Remove old error for already initialized + variable and the unused error check for common block variables. Add + error for hots associated variable and standard dependent error for + common block variables, outside of blockdata. + * symbol.c (check_conflict): Add constraints for DATA statement. + +2005-11-06 Janne Blomqvist + + PR fortran/24174 + PR fortran/24305 + * fortran/trans-io.c (gfc_build_io_library_fndecls): Add kind + argument to transfer_array. + (transfer_array_desc): Add kind argument. + +2005-11-06 Francois-Xavier Coudert + + * intrinsic.c (add_functions): Add ctime and fdate intrinsics. + (add_subroutines): Likewise. + * intrinsic.h: Prototypes for gfc_check_ctime, + gfc_check_ctime_sub, gfc_check_fdate_sub, gfc_resolve_ctime, + gfc_resolve_fdate, gfc_resolve_ctime_sub, gfc_resolve_fdate_sub. + * gfortran.h: Add GFC_ISYM_CTIME and GFC_ISYM_FDATE. + * iresolve.c (gfc_resolve_ctime, gfc_resolve_fdate, + gfc_resolve_ctime_sub, gfc_resolve_fdate_sub): New functions. + * trans-decl.c (gfc_build_intrinsic_function_decls): Add + gfor_fndecl_fdate and gfor_fndecl_ctime. + * check.c (gfc_check_ctime, gfc_check_ctime_sub, + gfc_check_fdate_sub): New functions. + * trans-intrinsic.c (gfc_conv_intrinsic_ctime, + gfc_conv_intrinsic_fdate): New functions. + (gfc_conv_intrinsic_function): Add cases for GFC_ISYM_CTIME + and GFC_ISYM_FDATE. + * intrinsic.texi: Documentation for the new CTIME and FDATE + intrinsics. + * trans.h: Declarations for gfor_fndecl_ctime and gfor_fndecl_fdate. + +2005-11-05 Kazu Hirata + + * decl.c, trans-decl.c: Fix comment typos. + * gfortran.texi: Fix a typo. + +2005-11-05 Francois-Xavier Coudert + + * intrinsic.c (add_functions): Add function version of TTYNAM. + * intrinsic.h: Add prototypes for gfc_check_ttynam and + gfc_resolve_ttynam. + * gfortran.h: Add case for GFC_ISYM_TTYNAM. + * iresolve.c (gfc_resolve_ttynam): New function. + * trans-decl.c (gfc_build_intrinsic_function_decls): Add a tree + for function call to library ttynam. + * check.c (gfc_check_ttynam): New function. + * trans-intrinsic.c (gfc_conv_intrinsic_ttynam): New function. + (): Call gfc_conv_intrinsic_ttynam. + * trans.h: Add prototype for gfor_fndecl_ttynam. + +2005-11-04 Steven G. Kargl + + PR fortran/24636 + * match.c (gfc_match_stopcode): Set stop_code = -1. + +2005-11-04 Francois-Xavier Coudert + + PR fortran/18452 + * lang-specs.h: Pass -lang-fortran to the preprocessor. + +2005-11-02 Andrew Pinski + + PR fortran/18157 + * trans-array.c (gfc_conv_resolve_dependencies): Use the correct + type for the temporary array. + * trans-expr.c (gfc_trans_assignment): Pass lss + instead of lss_section + to gfc_conv_resolve_dependencies to get the + correct type. + +2005-11-02 Tobias Schl"uter + + * decl.c (gfc_match_entry): Function entries don't need an argument + list if there's no RESULT clause. + +2005-11-01 Tobias Schl"uter + + PR fortran/24008 + * decl.c (gfc_match_entry): Function entries need an argument list. + +2005-11-01 Erik Edelmann + + PR 24245 + * trans.c (gfc_generate_code): Move code to create a main + program symbol from here ... + * parse.c (main_program_symbol): ... to this new + function, setting the locus from gfc_current_locus + instead of ns->code->loc. + (gfc_parse_file): Call main_program_symbol for main programs. + +2005-11-01 Tobias Schl"uter + + PR fortran/24404 + * resolve.c (resolve_symbol): Output symbol names in more error + messages, clarify error message. + +2005-11-01 Tobias Schl"uter + + * dump-parse-tree.c (show_symtree): Revert change unintentionally + committed in r106246. + +2005-11-01 Paul Thomas + + PR fortran/21565 + * symbol.c (check_conflict): An object cannot be in a namelist and in + block data. + + PR fortran/18737 + * resolve.c (resolve_symbol): Set the error flag to + gfc_set_default_type, in the case of an external symbol, so that + an error message is emitted if IMPLICIT NONE is set. + + PR fortran/14994 + * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SECNDS to enum. + * check.c (gfc_check_secnds): New function. + * intrinsic.c (add_functions): Add call to secnds. + * iresolve.c (gfc_resolve_secnds): New function. + * trans-intrinsic (gfc_conv_intrinsic_function): Add call to + secnds via case GFC_ISYM_SECNDS. + * intrinsic.texi: Add documentation for secnds. + +2005-10-31 Andreas Schwab + + * Make-lang.in (GFORTRAN_TARGET_INSTALL_NAME): Define. + (GFORTRAN_CROSS_NAME): Remove. + (fortran.install-common): Correctly install a cross compiler. + (fortran.uninstall): Use GFORTRAN_TARGET_INSTALL_NAME instead of + GFORTRAN_CROSS_NAME. + +2005-10-30 Erik Edelmann + + * gfortran.texi: Update contributors. + +2005-10-30 Erik Edelmann + + PR fortran/18883 + * trans-decl.c (gfc_finish_var_decl): Add decl to the + current function, rather than the parent. Make + assertion accept fake result variables. + * trans-expr.c (gfc_conv_variable): If the character + length of an ENTRY isn't set, get the length from + the master function instead. + +2005-10-30 Thomas Koenig + + * gfortran.texi: Remove reservations about I/O usability. Document + that array intrinsics mostly work. + +2005-10-30 Tobias Schl"uter + + * gfortran.texi: Move license stuff to back. Add information + on ENUM and ENUMERATOR. + * invoke.texi: Document -fshort-enums. + +2005-10-30 Gaurav Gautam + Tobias Schl"uter + + * arith.c (gfc_enum_initializer): New function. + (gfc_check_integer_range): Made extern. + * decl.c (enumerator_history): New typedef. + (last_initializer, enum_history, max_enum): New variables. + (create_enum_history, gfc_free_enum_history): New functions. + (add_init_expr_to_sym): Call create_enum_history if parsing ENUM. + (variable_decl): Modified to parse enumerator definition. + (match_attr_spec): Add PARAMETER attribute to ENUMERATORs. + (gfc_match_data_decl): Issues error, if match_type_spec do not + return desired return values. + (set_enum_kind, gfc_match_enum, gfc_match_enumerator_def): New + functions. + (gfc_match_end): Deal with END ENUM. + * gfortran.h (gfc_statement): ST_ENUM, ST_ENUMERATOR, ST_END_ENUM + added. + (symbol_attribute): Bit field for enumerator added. + (gfc_options): Add fshort_enums. + (gfc_enum_initializer, gfc_check_integer_range): Add prototypes. + * options.c: Include target.h + (gfc_init_options): Initialize fshort_enums. + (gfc_handle_option): Deal with fshort_enums. + * parse.c (decode_statement): Match ENUM and ENUMERATOR statement. + (gfc_ascii_statement): Deal with the enumerator statements. + (parse_enum): New function to parse enum construct. + (parse_spec): Added case ST_ENUM. + * parse.h (gfc_compile_state): COMP_ENUM added. + (gfc_match_enum, gfc_match_enumerator_def, gfc_free_enum_history): + Prototype added. + * symbol.c (gfc_copy_attr): Copy enumeration attribute. + * lang.opt (fshort-enums): Option added. + +2005-10-30 Francois-Xavier Coudert + + * check.c (gfc_check_malloc, gfc_check_free): New functions. + * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_MALLOC. + * intrinsic.c (add_functions): Add symbols for MALLOC function. + (add_subroutines): Add symbol for FREE subroutine. + * intrinsic.h: Prototypes for gfc_check_malloc, gfc_check_free, + gfc_resolve_malloc and gfc_resolve_free. + * intrinsic.texi: Add doc for FREE and MALLOC intrinsics. + * iresolve.c (gfc_resolve_malloc, gfc_resolve_free): New + functions. + * trans-intrinsic.c (gfc_conv_intrinsic_function): Add case for + GFC_ISYM_MALLOC. + +2005-10-30 Steven Bosscher + + * gfortran.texi: Update contributors. + +2005-10-29 Steven Bosscher + + * interface.c: Fix previous checkin (an incomplete patch + was commited for me). + +2005-10-29 Joseph S. Myers + + * intrinsic.texi: Remove empty @cindex line. + +2005-10-28 Francois-Xavier Coudert + + * check.c (gfc_check_alarm_sub, gfc_check_signal, + gfc_check_signal_sub): New functions. + * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SIGNAL. + * intrinsic.c (add_functions): Add signal intrinsic. + (add_subroutines): Add signal and alarm intrinsics. + * intrinsic.texi: Document the new intrinsics. + * iresolve.c (gfc_resolve_signal, gfc_resolve_alarm_sub, + gfc_resolve_signal_sub): New functions. + * trans-intrinsic.c (gfc_conv_intrinsic_function): Add case + for GFC_ISYM_SIGNAL. + * intrinsic.h: Add prototypes for gfc_check_alarm_sub, + gfc_check_signal, gfc_check_signal_sub, gfc_resolve_signal, + gfc_resolve_alarm_sub, gfc_resolve_signal_sub. + +2005-10-28 Steven Bosscher + + PR fortran/24545 + * interface.c (gfc_match_end_interface): Fix typo in + INTERFACE_USER_OP case. + +2005-10-26 Francois-Xavier Coudert + + PR fortran/15586 + * resolve.c (resolve_symbol): Remove the use of whynot, so that + error messages are not built from pieces. + +2005-10-26 Paul Thomas + + PR fortran/24158 + * decl.c (gfc_match_data_decl): Correct broken bit of code + that prevents undefined derived types from being used as + components of another derived type. + * resolve.c (resolve_symbol): Add backstop error when derived + type variables arrive here with a type that has no components. + +2005-10-25 Jakub Jelinek + + * trans.h (gfc_conv_cray_pointee): Remove. + * trans-expr.c (gfc_conv_variable): Revert 2005-10-24 change. + * trans-array.c (gfc_conv_array_parameter): Likewise. + * trans-decl.c (gfc_conv_cray_pointee): Remove. + (gfc_finish_cray_pointee): New function. + (gfc_finish_var_decl): Use it. Don't return early for Cray + pointees. + (gfc_create_module_variable): Revert 2005-10-24 change. + * decl.c (cray_pointer_decl): Update comment. + * gfortran.texi: Don't mention Cray pointees aren't visible in the + debugger. + + * symbol.c (check_conflict): Add conflict between cray_pointee + and in_common resp. in_equivalence. + * resolve.c (resolve_equivalence): Revert 2005-10-24 change. + + * module.c (ab_attribute): Add AB_CRAY_POINTER and AB_CRAY_POINTEE. + (attr_bits): Likewise. + (mio_symbol_attribute): Save and restore cray_pointe{r,e} attributes. + (mio_symbol): For cray_pointee write/read cp_pointer reference. + +2005-10-25 Feng Wang + + PR fortran/22290 + * trans-decl.c (gfc_add_assign_aux_vars): New function. Add two + auxiliary variables. + (gfc_get_symbol_decl): Use it when a variable, including dummy + argument, is assigned a label. + (gfc_trans_assign_aux_var): New function. Set initial value of + the auxiliary variable explicitly. + (gfc_trans_deferred_vars): Use it. + * trans-stmt.c (gfc_conv_label_variable): Handle dummy argument. + +2005-10-24 Asher Langton + + PR fortran/17031 + PR fortran/22282 + * check.c (gfc_check_loc): New function. + * decl.c (variable_decl): New variables cp_as and sym. Added a + check for variables that have already been declared as Cray + Pointers, so we can get the necessary attributes without adding + a new symbol. + (attr_decl1): Added code to catch pointee symbols and "fix" + their array specs. + (cray_pointer_decl): New method. + (gfc_match_pointer): Added Cray pointer parsing code. + (gfc_mod_pointee_as): New method. + * expr.c (gfc_check_assign): Added a check to catch vector-type + assignments to pointees with an unspecified final dimension. + * gfortran.h: (GFC_ISYM_LOC): New. + (symbol_attribute): Added cray_pointer and cray_pointee bits. + (gfc_array_spec): Added cray_pointee and cp_was_assumed bools. + (gfc_symbol): Added gfc_symbol *cp_pointer. + (gfc_option): Added flag_cray_pointer. + (gfc_add_cray_pointee): Declare. + (gfc_add_cray_pointer ): Declare. + (gfc_mod_pointee_as): Declare. + * intrinsic.c (add_functions): Add code for loc() intrinsic. + * intrinsic.h (gfc_check_loc): Declare. + (gfc_resolve_loc): Declare. + * iresolve.c (gfc_resolve_loc): New. + * lang.opt: Added fcray-pointer flag. + * options.c (gfc_init_options): Initialized. + gfc_match_option.flag_cray_pointer. + (gfc_handle_option): Deal with -fcray-pointer. + * parse.c:(resolve_equivalence): Added code prohibiting Cray + pointees in equivalence statements. + * resolve.c (resolve_array_ref): Added code to prevent bounds + checking for Cray Pointee arrays. + (resolve_equivalence): Prohibited pointees in equivalence + statements. + * symbol.c (check_conflict): Added Cray pointer/pointee + attribute checking. + (gfc_add_cray_pointer): New. + (gfc_add_cray_pointee): New. + (gfc_copy_attr): New code for Cray pointers and pointees. + * trans-array.c (gfc_trans_auto_array_allocation): Added code to + prevent space from being allocated for pointees. + (gfc_conv_array_parameter): Added code to catch pointees and + correctly set their base address. + * trans-decl.c (gfc_finish_var_decl): Added code to prevent + pointee declarations from making it to the back end. + (gfc_create_module_variable): Same. + * trans-expr.c (gfc_conv_variable): Added code to detect and + translate pointees. + (gfc_conv_cray_pointee): New. + * trans-intrinsic.c (gfc_conv_intrinsic_loc): New. + (gfc_conv_intrinsic_function): Added entry point for loc + translation. + * trans.h (gfc_conv_cray_pointee): Declare. + + * gfortran.texi: Added section on Cray pointers, removed Cray + pointers from list of proposed extensions. + * intrinsic.texi: Added documentation for loc intrinsic. + * invoke.texi: Documented -fcray-pointer flag. + +2005-10-24 Asher Langton + + * decl.c (gfc_match_save): Changed duplicate SAVE errors to + warnings in the absence of strict standard conformance + * symbol.c (gfc_add_save): Same. + +2005-10-24 Francois-Xavier Coudert + + PR fortran/15586 + * arith.c (gfc_arith_error): Change message to include locus. + (check_result, eval_intrinsic, gfc_int2int, gfc_real2real, + gfc_real2complex, gfc_complex2real, gfc_complex2complex): Use + the new gfc_arith_error. + (arith_error): Rewrite full error messages instead of building + them from pieces. + * check.c (must_be): Removed. + (type_check, numeric_check, int_or_real_check, real_or_complex_check, + kind_check, double_check, logical_array_check, array_check, + scalar_check, same_type_check, rank_check, kind_value_check, + variable_check, gfc_check_allocated, gfc_check_associated, + gfc_check_cmplx, gfc_check_dcmplx, gfc_check_dot_product, + gfc_check_index, gfc_check_kind, gfc_check_matmul, gfc_check_null, + gfc_check_pack, gfc_check_precision, gfc_check_present, + gfc_check_spread): Rewrite full error messages instead of + building them from pieces. + * decl.c (gfc_match_entry): Rewrite full error messages instead + of building them from pieces. + * parse.c (gfc_state_name): Remove. + * parse.h: Remove prototype for gfc_state_name. + +2005-10-23 Andrew Pinski + + PR fortran/23635 + * check.c (gfc_check_ichar_iachar): Move the code around so + that the check on the length is after check for + references. + +2005-10-23 Asher Langton + + * decl.c (match_type_spec): Add a BYTE type as an extension. + +2005-10-23 Paul Thomas + + PR fortran/18022 + * trans-expr.c (gfc_trans_arrayfunc_assign): Return NULL + if there is a component ref during an array ref to force + use of temporary in assignment. + + PR fortran/24311 + PR fortran/24384 + * fortran/iresolve.c (check_charlen_present): New function to + add a charlen to the typespec, in the case of constant + expressions. + (gfc_resolve_merge, gfc_resolve_spread): Call.the above. + (gfc_resolve_spread): Make calls to library functions that + handle the case of the spread intrinsic with a scalar source. + +2005-10-22 Erik Edelmann + + PR fortran/24426 + * decl.c (variable_decl): Don't assign default initializers to + pointers. + +2005-10-21 Jakub Jelinek + + * interface.c (compare_actual_formal): Issue error when attempting + to pass an assumed-size array as assumed-shape array argument. + +2005-10-20 Erik Edelmann + + PR fortran/21625 + * resolve.c (expr_to_initialize): New function. + (resolve_allocate_expr): Take current statement as new + argument. Add default initializers to variables of + derived types, if they need it. + (resolve_code): Provide current statement as argument to + resolve_allocate_expr(). + +2005-10-19 Paul Thomas + + PR fortran/24440 + * resolve.c (resolve_symbol): Correct error in check for + assumed size array with default initializer by testing + for arrayspec before dereferencing it. + +2005-10-17 Paul Thomas + + PR fortran/23446 + * gfortran.h: Primitive for gfc_is_formal_arg. + * resolve.c(gfc_is_formal_arg): New function to signal across + several function calls that formal argument lists are being + processed. + (resolve_formal_arglist): Set/reset the flag for gfc_is_formal_arg. + *expr.c(check_restricted): Add check, via gfc_is_formal_arg, if + symbol is part of an formal argument declaration. + + PR fortran/21459 + * decl.c (add_init_expr_to_sym): Make a new character + length for each variable, when the expression is NULL + and link to cl_list. + + PR fortran/20866 + * match.c (recursive_stmt_fcn): New function that tests if + a statement function resurses through itself or other other + statement functions. + (gfc_match_st_function): Call recursive_stmt_fcn to check + if this is recursive and to raise error if so. + + PR fortran/20849 + PR fortran/20853 + * resolve.c (resolve_symbol): Errors for assumed size arrays + with default initializer and for external objects with an + initializer. + + PR fortran/20837 + * decl.c (match_attr_spec): Prevent PUBLIC from being used + outside a module. + +2005-10-16 Erik Edelmann + + PR 22273 + * expr.c (check_inquiry): Add "len" to inquiry_function. + +2005-10-14 Jakub Jelinek + + * primary.c (match_boz_constant): Add missing break after gfc_error. + +2005-10-12 Paul Thomas + + PR fortran/24092 + * trans-types.c (gfc_get_derived_type): Insert code to obtain backend + declaration for derived types, building if necessary. Return the + derived type if the fields have been built by this process. Otherwise, + continue as before but using the already obtained backend_decls for the + derived type components. Change the gcc_assert to act on the field. + +2005-10-12 Paul Thomas + + PR fortran/18082 + * decl.c (variable_decl): Make a new copy of the character + length for each variable, when the expression is not a + constant. + +2005-10-12 Francois-Xavier Coudert + + * gfortran.h: Add bitmasks for different FPE traps. Add fpe + member to options_t. + * invoke.texi: Document the new -ffpe-trap option. + * lang.opt: Add -ffpe-trap option. + * options.c (gfc_init_options): Initialize the FPE option. + (gfc_handle_fpe_trap_option): New function to parse the argument + of the -ffpe-trap option. + (gfc_handle_option): Add case for -ffpe-trap. + * trans-decl.c: Declare a tree for the set_fpe library function. + (gfc_build_builtin_function_decls): Build this tree. + (gfc_generate_function_code): Generate a call to set_fpe at + the beginning of the main program. + * trans.h: New tree for the set_fpe library function. + +2005-10-12 Paul Thomas + + PR fortran/20847 + PR fortran/20856 + * symbol.c (check_conflict): Prevent common variables and + function results from having the SAVE attribute,as required + by the standard. + +2005-10-12 Paul Thomas + + PR fortran/24207 + * resolve.c (resolve_symbol): Exclude use and host associated + symbols from the test for private objects in a public namelist. + +2005-10-12 Jakub Jelinek + + * trans-common.c (build_field): Fix comment typo. + (create_common): Set backend_decl of COMMON or EQUIVALENCEd + variables to a VAR_DECL with the COMPONENT_REF in + DECL_HAS_VALUE_EXPR rather than COMPONENT_REF directly. + * f95-lang.c (gfc_expand_function): Emit debug info for + EQUIVALENCEd variables if the equiv union is going to be output. + +2005-10-11 Steven G. Kargl + + PR fortran/20786 + * iresolve.c (gfc_resolve_aint, gfc_resolve_anint): Type conversion + of the argument. + +2005-10-11 Jakub Jelinek + + * f95-lang.c (gfc_init_decl_processing): Initialize + void_list_node. + +2005-10-07 Erik Edelmann + + PR 18568 + * resolve.c (find_array_spec): Search through the list of + components in the symbol of the type instead of the symbol of the + variable. + +2005-10-05 Richard Guenther + + PR fortran/24176 + * parse.c (gfc_parse_file): Exit early for empty files. + +2005-10-03 Steve Ellcey + + * fortran/trans-types.c (gfc_init_kinds): Only pass float, double, + and long double floating point types through to Fortran compiler. + +2005-10-03 Francois-Xavier Coudert + + PR fortran/20120 + * f95-lang.c (DO_DEFINE_MATH_BUILTIN): Add support for long + double builtin function. + (gfc_init_builtin_functions): Add mfunc_longdouble, + mfunc_clongdouble and func_clongdouble_longdouble trees. Build + them for round, trunc, cabs, copysign and pow functions. + * iresolve.c (gfc_resolve_reshape, gfc_resolve_transpose): Add + case for kind 10 and 16. + * trans-decl.c: Add trees for cpowl10, cpowl16, ishftc16, + exponent10 and exponent16. + (gfc_build_intrinsic_function_decls): Build nodes for int16, + real10, real16, complex10 and complex16 types. Build all possible + combinations for function _gfortran_pow_?n_?n. Build function + calls cpowl10, cpowl16, ishftc16, exponent10 and exponent16. + * trans-expr.c (gfc_conv_power_op): Add case for integer(16), + real(10) and real(16). + * trans-intrinsic.c: Add suppport for long double builtin + functions in BUILT_IN_FUNCTION, LIBM_FUNCTION and LIBF_FUNCTION + macros. + (gfc_conv_intrinsic_aint): Add case for integer(16), real(10) and + real(16) kinds. + (gfc_build_intrinsic_lib_fndecls): Add support for real10_decl + and real16_decl in library functions. + (gfc_get_intrinsic_lib_fndecl): Add cases for real and complex + kinds 10 and 16. + (gfc_conv_intrinsic_exponent): Add cases for real(10) and real(16) + kinds. + (gfc_conv_intrinsic_sign): Likewise. + (gfc_conv_intrinsic_ishftc): Add case for integer(16) kind. + * trans-types.c (gfc_get_int_type, gfc_get_real_type, + gfc_get_complex_type, gfc_get_logical_type): Doesn't error out in + the case of kinds not available. + * trans.h: Declare trees for cpowl10, cpowl16, ishftc16, + exponent10 and exponent16. + +2005-10-01 Paul Thomas + + PR fortran/16404 + PR fortran/20835 + PR fortran/20890 + PR fortran/20899 + PR fortran/20900 + PR fortran/20901 + PR fortran/20902 + * gfortran.h: Prototype for gfc_add_in_equivalence. + * match.c (gfc_match_equivalence): Make a structure component + an explicit,rather than a syntax, error in an equivalence + group. Call gfc_add_in_equivalence to add the constraints + imposed in check_conflict. + * resolve.c (resolve_symbol): Add constraints: No public + structures with private-type components and no public + procedures with private-type dummy arguments. + (resolve_equivalence_derived): Add constraint that prevents + a structure equivalence member from having a default + initializer. + (sequence_type): New static function to determine whether an + object is default numeric, default character, non-default + or mixed sequence. Add corresponding enum typespec. + (resolve_equivalence): Add constraints to equivalence groups + or their members: No more than one initialized member and + that different types are not equivalenced for std=f95. All + the simple constraints have been moved to check_conflict. + * symbol.c (check_conflict): Simple equivalence constraints + added, including those removed from resolve_symbol. + (gfc_add_in_equivalence): New function to interface calls + match_equivalence to check_conflict. + +2005-09-27 Jakub Jelinek + + PR fortran/18518 + * trans-common.c (build_equiv_decl): Add IS_SAVED argument. + If it is true, set TREE_STATIC on the decl. + (create_common): If any symbol in equivalence has SAVE attribute, + pass true as last argument to build_equiv_decl. + +2005-09-24 Janne Blomqvist + + * trans-io.c (gfc_build_io_library_fndecls): Add entry + iocall_x_array for transfer_array. + (transfer_array_desc): New function. + (gfc_trans_transfer): Add code to call transfer_array_desc. + +2005-09-26 Jakub Jelinek + + PR fortran/23677 + * symbol.c (gfc_is_var_automatic): Return true if character length + is non-constant rather than constant. + * resolve.c (gfc_resolve): Don't handle !gfc_option.flag_automatic + here. + * options.c (gfc_post_options): Set gfc_option.flag_max_stack_var_size + to 0 for -fno-automatic. + +2005-09-23 Paul Thomas + + PR fortran/16861 + * module.c (mio_component_ref): Return if the symbol is NULL + and wait for another iteration during module reads. + (mio_symtree_ref): Suppress the writing of contained symbols, + when a symbol is available in the main namespace. + (read_module): Restrict scope of special treatment of contained + symbols to variables only and suppress redundant call to + find_true_name. + +2005-09-22 Steven G. Kargl + + PR fortran/24005 + * interface.c (check_interface1): Fix NULL dereference. + +2005-09-22 Erik Edelmann + + PR fortran/23843 + * resolve.c (derived_inaccessible): New function. + (resolve_transfer): Use it to check for private + components. + +2005-09-22 Steven G. Kargl + + PR fortran/23516 + * intrinsic.c (add_function): Add IMAG, IMAGPART, and REALPART + intrinsics. + * intrinsic.h: Prototypes for gfc_simplify_realpart and + gfc_resolve_realpart. + * intrinsic.texi: Document intrinsic procedures. + * simplify.c (gfc_simplify_realpart): New function. + * irseolve.c (gfc_resolve_realpart): New function. + +2005-09-21 Erik Edelmann + + PR fortran/19929 + * trans-stmt.c (gfc_trans_deallocate): Check if the + object to be deallocated is an array by looking at + expr->rank instead of expr->symtree->n.sym->attr.dimension. + +2005-09-20 Tobias Schl"uter + + PR fortran/23420 + * io.c (resolve_tag): Don't allow non-CHARACTER constants as formats. + (match_io): Fix usage of gfc_find_symbol. + +2005-09-20 Jakub Jelinek + + PR fortran/23663 + * primary.c (match_actual_arg): Handle ENTRY the same way + as FUNCTION. + +2005-09-18 Francois-Xavier Coudert + + * Make-lang.in: Make check-fortran alias for check-gfortran. + +2005-09-18 Andreas Jaeger + + * module.c (read_module): Add missed line from last patch. + +2005-09-18 Erik Edelmann + + PR fortran/15975 + * resolve.c (resolve_symbol): Don't assign default + initializer to pointers. + +2005-09-18 Paul Thomas + + PR fortran/16861 + * module.c (read_module): Give symbols from module procedures + different true_name entries to those from the module proper. + +2005-09-17 Francois-Xavier Coudert + + PR fortran/15586 + * arith.c (gfc_arith_error): Add translation support for error + messages. + * array.c (gfc_match_array_ref): Likewise. + (gfc_match_array_spec): Likewise. + * check.c (must_be): Add msgid convention to third argument. + (same_type_check): Add translation support for error message. + (rank_check): Likewise. + (kind_value_check): Likewise. + (gfc_check_associated): Correct typo. + (gfc_check_reshape): Add translation support for error message. + (gfc_check_spread): Likewise. + * error.c (error_printf): Add nocmsgid convention to argument. + (gfc_warning, gfc_notify_std, gfc_warning_now, gfc_warning_check) + (gfc_error, gfc_error_now): Likewise. + (gfc_status): Add cmsgid convention to argument. + * expr.c (gfc_extract_int): Add translation support for error + messages. + (gfc_check_conformance): Add msgid convention to argument. + (gfc_check_pointer_assign): Correct tabbing. + * gfortran.h: Include intl.h header. Remove prototype for gfc_article. + * gfortranspec.c: Include intl.h header. + (lang_specific_driver): Add translation support for --version. + * io.c (check_format): Add translation support for error message. + (format_item_1): Likewise. + (data_desc): Likewise. + * matchexp.c: Likewise. + * misc.c (gfc_article): Remove function. + * module.c (bad_module): Use msgid convention. Add translation support + for error messages. + (require_atom): Add translation support for error messages. + * parse.c (gfc_ascii_statement): Likewise. + (gfc_state_name): Likewise. + * primary.c (match_boz_constant): Reorganise error messages for + translations. + * resolve.c (resolve_entries): Likewise. + (resolve_operator): Add translation support for error messages. + (gfc_resolve_expr): Use msgid convention. Reorganise error messages + for translations. + (resolve_symbol): Add translation support for error messages. + * symbol.c (gfc_add_procedure): Remove use of gfc_article function. + * trans-const.c (gfc_build_string_const): Use msgid convention. + +2005-09-16 Paul Brook + + PR fortran/23906 + * dependency.c (transform_sections): Divide by correct value. + Elaborate comment. + +2005-09-14 Paul Thomas + + PR fortran/21875 Internal Unit Array I/O, NIST + * fortran/trans-io.c (gfc_build_io_library_fndecls): Add field for + array descriptor to IOPARM structure. + * fortran/trans-io.c (set_internal_unit): New function to generate code + to store the character (array) and the character length for an internal + unit. + * fortran/trans-io (build_dt): Use the new function set_internal_unit. + +2005-09-14 Paul Thomas + + PR fortran/19358 + * trans-array.c (gfc_trans_dummy_array_bias): correct the typo + which uses dim[i].upper for lbound, rather than dim[i].lower. + +2005-09-13 Erik Edelmann + + PR fortran/17740 + * trans-expr.c (gfc_trans_arrayfunc_assign): Check value + of attr.elemental for specific function instead of generic name. + +2005-09-13 Richard Sandiford + + PR fortran/18899 + * trans-intrinsic.c (gfc_conv_intrinsic_bound): Move initialization + of argse. Remove now-redundant want_pointer assignment. + * trans-array.c (gfc_conv_expr_descriptor): When not assigning to + a pointer, keep the original bounds of a full array reference. + +2005-09-13 Richard Sandiford + + PR target/19269 + * iresolve.c (gfc_resolve_cshift, gfc_resolve_eoshift) + (gfc_resolve_pack, gfc_resolve_reshape, gfc_resolve_spread) + (gfc_resolve_transpose, gfc_resolve_unpack): Add "_char" to the name + for character-based operations. + (gfc_resolve_pack): Remove ATTRIBUTE_UNUSED from array argument. + (gfc_resolve_unpack): Copy the whole typespec from the vector. + * trans-array.c (gfc_conv_expr_descriptor): In the EXPR_FUNCTION + case, get the string length from the scalarization state. + +2005-09-14 Francois-Xavier Coudert + + * Make-lang.in: Change targets prefixes from f95 to fortran. + * config-lang.in: Change language name to "fortran". + * lang.opt: Change language name to "fortran". + * options.c: Change CL_F95 to CL_Fortran. + +2005-09-09 Thomas Koenig + + gfortran.texi: Document IOSTAT= specifier. + +2005-09-09 Thomas Koenig + + * gfortran.h: Add iomsg to gfc_open, gfc_close, gfc_filepos, + gfc_inquire and gfc_dt. + * dump-parse-tree.c (gfc_show_code_node): Add iomsg + for open, close, file positioning, inquire and namelist. + * io.c (io_tag): Add tag_iomsg. + (resolve_tag): Add standards warning for iomsg. + (match_open_element): Add iomsg. + (gfc_free_open): Add iomsg. + (gfc_resolve_open): Add iomsg. + (gfc_free_close): Add iomsg. + (match_close_element): Add iomsg. + (gfc_resolve_close): Add iomsg. + (gfc_free_filepos): Add iomsg. + (match_file_element): Add iomsg. + (gfc_resolve_filepos): Add iostat and iomsg. + (match-dt_element): Add iomsg. + (gfc_free_dt): Add iomsg. + (gfc_resolve_dt): Add iomsg. + (gfc_free_inquire): Add iomsg. + (match_inquire_element): Add iomsg. + (gfc_resolve_inquire): Add iomsg. + * trans_io.c: Add ioparm_iomsg and ioparm_iomsg_len. + (gfc_build_io_library_fndecls): Add iomsg as last field. + (gfc_trans_open): Add iomsg. + (gfc_trans_close): Add iomsg. + (build_fileos): Call set_string for iomsg. + (gfc_trans_inquire): Add iomsg. + (build_dt): Add iomsg. + +2005-09-09 Richard Sandiford + + * match.h (gfc_match_equiv_variable): Declare. + +2005-09-09 Richard Sandiford + + PR fortran/19239 + * Makefile.in (fortran/trans-expr.o): Depend on dependency.h. + * dependency.h (gfc_ref_needs_temporary_p): Declare. + * dependency.c (gfc_ref_needs_temporary_p): New function. + (gfc_check_fncall_dependency): Use it instead of inlined check. + By so doing, take advantage of the fact that character substrings + within an array reference also need a temporary. + * trans.h (GFC_SS_VECTOR): Adjust comment. + * trans-array.c (gfc_free_ss): Remove GFC_SS_VECTOR case. + (gfc_set_vector_loop_bounds): New function. + (gfc_add_loop_ss_code): Call it after evaluating the subscripts of + a GFC_SS_SECTION. Deal with the GFC_SS_VECTOR case by evaluating + the vector expression and caching its descriptor for use within + the loop. + (gfc_conv_array_index_ref, gfc_conv_vector_array_index): Delete. + (gfc_conv_array_index_offset): Handle scalar, vector and range + dimensions as separate cases of a switch statement. In the vector + case, use the loop variable to calculate a vector index and use the + referenced element as the dimension's index. Perform bounds checking + on this final index. + (gfc_conv_section_upper_bound): Return null for vector indexes. + (gfc_conv_section_startstride): Give vector indexes a start value + of 0 and a stride of 1. + (gfc_conv_ss_startstride): Adjust for new GFC_SS_VECTOR representation. + (gfc_conv_expr_descriptor): Expand comments. Generalize the + handling of the !want_pointer && !direct_byref case. Use + gfc_ref_needs_temporary_p to decide whether the variable case + needs a temporary. + (gfc_walk_variable_expr): Handle DIMEN_VECTOR by creating a + GFC_SS_VECTOR index. + * trans-expr.c: Include dependency.h. + (gfc_trans_arrayfunc_assign): Fail if the target needs a temporary. + +2005-09-09 Richard Sandiford + + PR fortran/21104 + * trans.h (gfc_interface_sym_mapping, gfc_interface_mapping): Moved + from trans-expr.c. + (gfc_init_interface_mapping, gfc_free_interface_mapping) + (gfc_add_interface_mapping, gfc_finish_interface_mapping) + (gfc_apply_interface_mapping): Declare. + * trans-array.h (gfc_set_loop_bounds_from_array_spec): Declare. + (gfc_trans_allocate_temp_array): Add pre and post block arguments. + * trans-array.c (gfc_set_loop_bounds_from_array_spec): New function. + (gfc_trans_allocate_array_storage): Replace loop argument with + separate pre and post blocks. + (gfc_trans_allocate_temp_array): Add pre and post block arguments. + Update call to gfc_trans_allocate_array_storage. + (gfc_trans_array_constructor, gfc_conv_loop_setup): Adjust for new + interface to gfc_trans_allocate_temp_array. + * trans-expr.c (gfc_interface_sym_mapping, gfc_interface_mapping): + Moved to trans.h. + (gfc_init_interface_mapping, gfc_free_interface_mapping) + (gfc_add_interface_mapping, gfc_finish_interface_mapping) + (gfc_apply_interface_mapping): Make extern. + (gfc_conv_function_call): Build an interface mapping for array + return values too. Call gfc_set_loop_bounds_from_array_spec. + Adjust call to gfc_trans_allocate_temp_array so that code is + added to SE rather than LOOP. + +2005-09-09 Richard Sandiford + + PR fortran/12840 + * trans.h (gfor_fndecl_internal_realloc): Declare. + (gfor_fndecl_internal_realloc64): Declare. + * trans-decl.c (gfor_fndecl_internal_realloc): New variable. + (gfor_fndecl_internal_realloc64): New variable. + (gfc_build_builtin_function_decls): Initialize them. + * trans-array.h (gfc_trans_allocate_temp_array): Add a fourth argument. + * trans-array.c (gfc_trans_allocate_array_storage): Add an argument + to say whether the array can grow later. Don't allocate the array + on the stack if so. Don't call malloc for zero-sized arrays. + (gfc_trans_allocate_temp_array): Add a similar argument here. + Pass it along to gfc_trans_allocate_array_storage. + (gfc_get_iteration_count, gfc_grow_array): New functions. + (gfc_iterator_has_dynamic_bounds): New function. + (gfc_get_array_constructor_element_size): New function. + (gfc_get_array_constructor_size): New function. + (gfc_trans_array_ctor_element): Replace pointer argument with + a descriptor tree. + (gfc_trans_array_constructor_subarray): Likewise. Take an extra + argument to say whether the variable-sized part of the constructor + must be allocated using realloc. Grow the array when this + argument is true. + (gfc_trans_array_constructor_value): Likewise. + (gfc_get_array_cons_size): Delete. + (gfc_trans_array_constructor): If the loop bound has not been set, + split the allocation into a static part and a dynamic part. Set + loop->to to the bounds for static part before allocating the + temporary. Adjust call to gfc_trans_array_constructor_value. + (gfc_conv_loop_setup): Allow any constructor to determine the + loop bounds. Check whether the constructor has a dynamic size + and prefer to use something else if so. Expect the loop bound + to be set later. Adjust call to gfc_trans_allocate_temp_array. + * trans-expr.c (gfc_conv_function_call): Adjust another call here. + +2005-09-09 Paul Thomas + + PR fortran/18878 + * module.c (find_use_name_n): Based on original + find_use_name. Either counts number of use names for a + given real name or returns use name n. + (find_use_name, number_use_names): Interfaces to the + function find_use_name_n. + (read_module): Add the logic and calls to these functions, + so that mutiple reuses of the same real name are loaded. + +2005-09-09 Paul Thomas + + PR fortran/22304 + PR fortran/23270 + PR fortran/18870 + PR fortran/16511 + PR fortran/17917 + * gfortran.h: Move definition of BLANK_COMMON_NAME from trans- + common.c so that it is accessible to module.c. Add common_head + field to gfc_symbol structure. Add field for the equivalence + name AND new attr field, in_equivalence. + * match.c (gfc_match_common, gfc_match_equivalence): In loops + that flag common block equivalences, emit an error if the + common blocks are different, using sym->common_head as the + common block identifier. Ensure that symbols that are equivalence + associated with a common block are marked as being in_common. + * module.c (write_blank_common): New. + (write_common): Use unmangled common block name. + (load_equiv): New function ported from g95. + (read_module): Call load_equiv. + (write_equiv): New function ported from g95. Correct + string referencing for gfc functions. Give module + equivalences a unique name. + (write_module): Call write_equiv and write_blank_common. + * primary.c (match_variable) Old gfc_match_variable, made + static and third argument provided to indicate if parent + namespace to be visited or not. + (gfc_match_variable) New. Interface to match_variable. + (gfc_match_equiv_variable) New. Interface to match_variable. + * trans-common.c (finish_equivalences): Provide the call + to create_common with a gfc_common_header so that + module equivalences are made external, rather than local. + (find_equivalences): Ensure that all members in common block + equivalences are marked as used. This prevents the subsequent + call to this function from making local unions. + * trans-decl.c (gfc_generate_function_code): Move the call to + gfc_generate_contained_functions to after the call to + gfc_trans_common so the use-associated, contained common + blocks produce the correct references. + (gfc_create_module_variable): Return for equivalenced symbols + with existing backend declaration. + +2005-09-08 Tobias Schl"uter + + PR fortran/23765 + * match.c (gfc_match_common): Remove unnecessary / wrong special + cases for end-of-statement. + +2005-09-08 Janne Blomqvist + + * gfortran.texi: Add section about implemented F2003 features. + +2005-09-08 Richard Sandiford + + PR fortran/15326 + * trans-array.c (gfc_add_loop_ss_code): Set ss->string_length in + the GFC_SS_FUNCTION case too. + * trans-expr.c (gfc_conv_function_val): Allow symbols to be bound + to function pointers as well as function decls. + (gfc_interface_sym_mapping, gfc_interface_mapping): New structures. + (gfc_init_interface_mapping, gfc_free_interface_mapping) + (gfc_get_interface_mapping_charlen, gfc_get_interface_mapping_array) + (gfc_set_interface_mapping_bounds, gfc_add_interface_mapping) + (gfc_finish_interface_mapping, gfc_apply_interface_mapping_to_cons) + (gfc_apply_interface_mapping_to_ref) + (gfc_apply_interface_mapping_to_expr) + (gfc_apply_interface_mapping): New functions. + (gfc_conv_function_call): Evaluate the arguments before working + out where the result should go. Make the null pointer case provide + the string length in parmse.string_length. Cope with non-constant + string lengths, using the above functions to evaluate such lengths. + Use a temporary typespec; don't assign to sym->cl->backend_decl. + Don't assign to se->string_length when returning a cached array + descriptor. + +2005-09-08 Richard Sandiford + + PR fortran/19928 + * trans-array.c (gfc_conv_array_ref): Call gfc_advance_se_ss_chain + after handling scalarized references. Make "indexse" inherit from + "se" when handling AR_ELEMENTs. + (gfc_walk_variable_expr): Add GFC_SS_SCALAR entries for each + substring or scalar reference that follows an array section. + * trans-expr.c (gfc_conv_variable): When called from within a + scalarization loop, start out with "ref" pointing to the scalarized + part of the reference. Don't call gfc_advance_se_ss_chain here. + +2005-09-07 Richard Sandiford + + PR fortran/23373 + * trans-expr.c (gfc_trans_pointer_assignment): Assign to a temporary + descriptor if the rhs is not a null pointer or variable. + +2005-09-07 Thomas Koenig + + PR fortran/20848 + * symbol.c(check_conflict): Add conflict for parameter/save, + +2005-09-06 Richard Sandiford + + PR fortran/19269 + * simplify.c (gfc_simplify_transpose): Set the result's typespec from + the source, not the first element of the return value. + +2005-09-04 Tobias Schl"uter + + PR fortran/23661 + * io.c (match_io): Correctly backup if PRINT followed by + symbol which is not a namelist. Force blank between PRINT + and namelist in free form. + +2005-08-31 Francois-Xavier Coudert + + PR fortran/20592 + * gfortran.h (gfc_option_t): Add flag_automatic. + * invoke.texi: Document the -fno-automatic option. + * lang.opt: Add a -fautomatic option. + * options.c (gfc_init_options): Default for -fautomatic is on. + (gfc_handle_option): Add handling of -fautomatic option. + * resolve.c (gfc_resolve): When -fno-automatic is used, mark + needed variables as SAVE. + +2005-08-27 Erik Edelmann + + * trans-array.c (gfc_trans_deferred_array): Fix comments. + +2005-08-27 Erik Schnetter + + * primary.c (match_charkind_name): Fix typo in comment leading to + function. + +2005-08-25 Erik Edelmann + + PR fortran/20363 + * symbol.c (find_special): Remove. + (build_sym, add_init_expr, attr_decl1): Remove calls to + find_special in favor of calls to gfc_get_symbol. + +2005-08-24 Thomas Koenig + + PR fortran/17758 + * gfortran.h (symbol_attribute): Add noreturn to the structure. + (gfc_intrinsic_sym): Add noreturn to the structure. + * intrinsic.c (make_noreturn): New function. + (add_subroutines): Mark subroutines abort and exit as noreturn. + (gfc_intrinsic_sub_interface): Copy noreturn attribute from + isym to the resolved symbol. + * trans-decl.c (gfc_get_extern_function_decl): Set function + as VOLATILE (== noreturn) if the noreturn attribute is set. + +2005-08-21 Steven G. Kargl + + * decl.c: Typo in comment. + +2005-08-21 Steven G. Kargl + + * array.c: Bump GFC_MAX_AC_EXPAND from 100 to 65535. + +2005-08-21 Tobias Schl"uter + + * gfortran.h (gfc_option_t): Remove source field. Add + flag_d_lines field. + (gfc_new_file): Remove arguments in prototype. + (gfc_source_file): Make 'const char *'. + * f95-lang.c (gfc_init): Use gfc_source_file instead of + gfc_option.source. Call gfc_new_file without arguments. + * invoke.texi: Document new options '-fd-lines-as-code' and + '-fd-lines-as-comment'. + * lang.opt: Add new options. Alphabetize. + * options.c (gfc_init_options): Initialize gfc_source_file instead + of gfc_option.source. Initialize gfc_option.flag_d_lines. + (form_from_filename): Move here from scanner.c. Make + 'filename' argument 'const'. + (gfc_post_options): Set gfc_source_file. Determine source form. + Warn if 'd-lines*' are used in free form. + * scanner.c (gfc_source_file): Constify. + (skip_fixed_comments): Deal with d-lines. + (get_file): Constify argument 'name'. + (load_file): Constify argument 'filename'. + (form_from_filename): Moved to options.c. + (gfc_new_file): Remove arguments. Don't initialize + gfc_source_file, don't determine source form. + * trans-const.c (gfc_init_constants): Use gfc_source_file instead + of gfc_option.source. + +2005-08-19 Steven G. Kargl + + PR fortran/23065 + * gfortran.h: Remove PATH_MAX definition. + * module.c (write_module, gfc_dump_module): Use alloca to allocate + buffers. + * scanner.c (gfc_release_include_path, form_from_filename): Ditto. + +2005-08-16 Huang Chun + + * trans-expr.c (gfc_conv_power_op): Evaluate the expression before + expand. + +2005-08-14 Asher Langton + + * parse.c (match): Enclose macro in do...while(0) and braces. + +2005-08-14 Paul Thomas + + PR fortran/21432. + * gfortran.texi: Document PRINT namelist. + +2005-08-14 Paul Thomas + + PR fortran/21432. + * io.c (match_io): Add code to implement PRINT namelist. + +2005-08-14 Canqun Yang + + * trans-stmt.c (gfc_trans_arithmetic_if): Optimized in case of equal + labels. + +2005-08-11 Francois-Xavier Coudert + Steven Bosscher + + PR libfortran/20006 + * gfortran.h: Add is_main_program member to symbol_attribute. + * trans-decl: Add a gfor_fndecl_set_std tree. + (gfc_build_builtin_function_decls): Create it. + (gfc_generate_function_code): Add this call at the beginning of + the main program. + * trans.c (gfc_generate_code): Move main_program and attr. + * trans.h: Add declaration for gfor_fndecl_set_std. + +2005-08-10 Thomas Koenig + + PR libfortran/22143 + gfortran.h: Declare new function gfc_resolve_dim_arg. + resolve.c: New function gfc_resolve_dim_arg. + iresolve.c (gfc_resolve_all): Use gfc_resolve_dim_arg. + (gfc_resolve_any): Likewise. + (gfc_resolve_count): Likewise. + (gfc_resolve_cshift): Likewise. If the kind of shift is less + gfc_default_integer_kind, convert it to default integer type. + (gfc_resolve_eoshift): Likewise. + (gfc_resolve_maxloc): Use gfc_resolve_dim_arg. + (gfc_resolve_maxval): Likewise. + (gfc_resolve_minloc): Likewise. + (gfc_resolve_minval): Likewise. + (gfc_resolve_product): Likewise. + (gfc_resolve_spread): Likewise. + (gfc_resolve_sum): Likewise. + +2005-08-09 Francois-Xavier Coudert + + * check.c (gfc_check_ttynam_sub, gfc_check_isatty): Add check + functions for new intrinsics TTYNAM and ISATTY. + * intrinsic.c (add_functions, add_subroutines): Add new + intrinsics. + * intrinsic.h: Add prototypes for new check and resolve + functions. + * iresolve.c (gfc_resolve_isatty, gfc_resolve_ttynam_sub): New + resolve functions for intrinsics TTYNAM and ISATTY. + * gfortran.h (gfc_generic_isym_id): Add symbol for ISATTY. + * trans-intrinsic.c: Add case for GFC_ISYM_ISATTY. + +2005-08-09 Jakub Jelinek + + * scanner.c (preprocessor_line): Don't write beyond the end of flag + buffer. + +2005-08-07 Janne Blomqvist + + PR fortran/22390 + * dump-parse-tree.c (gfc_show_code_node): Add case for FLUSH. + * gfortran.h: Add enums for FLUSH. + * io.c (gfc_free_filepos,match_file_element,match_filepos): Modify + comment appropriately. (gfc_match_flush): New function. + * match.c (gfc_match_if): Add match for flush. + * match.h: Add prototype. + * parse.c (decode_statement): Add flush to 'f' case. + (next_statement): Add case for flush. (gfc_ascii_statement): Likewise. + * resolve.c (resolve_code): Add flush case. + * st.c (gfc_free_statement): Add flush case. + * trans-io.c: Add prototype for flush. + (gfc_build_io_library_fndecls): Build fndecl for flush. + (gfc_trans_flush): New function. + * trans-stmt.h: Add prototype. + * trans.c (gfc_trans_code): Add case for flush. + +2005-08-06 Francois-Xavier Coudert + + * primary.c (match_hollerith_constant): Fix typo. + +2005-08-06 Kazu Hirata + + * decl.c, dump-parse-tree.c, gfortran.texi, intrinsic.texi, + invoke.texi, resolve.c, trans-array.c, trans-array.h, + trans-common.c, trans-expr.c, trans-io.c, trans.h: Fix + comment/doc typos. Follow spelling conventions. + +2005-08-06 Jakub Jelinek + + PR fortran/18833 + PR fortran/20850 + * primary.c (match_varspec): If equiv_flag, don't look at sym's + attributes, call gfc_match_array_ref up to twice and don't do any + substring or component processing. + * resolve.c (resolve_equivalence): Transform REF_ARRAY into + REF_SUBSTRING or nothing if needed. Check that substrings + don't have zero length. + +2005-08-05 Thomas Koenig + + * trans-expr.c (gfc_build_builtin_function_decls): Mark + stop_numeric and stop_string as non-returning. + +2005-08-04 Paul Brook + + * trans-expr.c (gfc_conv_expr, gfc_conv_expr_type): Update comments. + (gfc_conv_expr_lhs): Fix assertion. + (gfc_conv_expr_val): Merge post block. Set se.expr to new value. + +2005-08-02 David Edelsohn + + PR fortran/22491 + * expr.c (simplify_parameter_variable): Do not copy the subobject + references if the expression value is a constant. + + * expr.c (gfc_simplify_expr): Evaluate constant substrings. + +2005-07-31 Jerry DeLisle + + * intrinsic.texi: Add documentation for exponent, floor, and fnum and + fix description of ceiling in index. + +2005-07-31 Steven Bosscher + + * trans-decl.c (gfc_build_builtin_function_decls): Give the internal + malloc functions the 'malloc' attribute. Give runtime_error the + 'noreturn' attribute. + +2005-07-31 Steven Bosscher + + * trans-stmt.c (gfc_trans_goto): Jump to the known label instead + of the assigned goto variable. + +2005-07-29 Steven Bosscher + + * trans-types.h (gfc_array_range_type): Add missing GTY decl for this. + +2005-07-28 Andrew Pinski + + * fortran/f95-lang.c (language_function): Remove + named_labels, shadowed_labels, returns_value, returns_abnormally, + warn_about_return_type, and extern_inline fields. + (named_labels): Remove variable. + (gfc_init_decl_processing): Remove setting of named_labels. + +2005-07-27 Volker Reichelt + + PR fortran/22503 + * resolve.c (resolve_operator): Improve diagnostic for comparison + of logicals with invalid operator. + +2005-07-25 Jakub Jelinek + + PR fortran/20063 + * data.c (gfc_assign_data_value_range): Call + create_character_initializer if last_ts is a character type. + +2005-07-22 Manfred Hollstein + + * match.c (gfc_match_symbol): Fix uninitialised warnings. + * matchexp.c (gfc_match_expr): Likewise. + +2005-07-20 Giovanni Bajo + + Make CONSTRUCTOR use VEC to store initializers. + * trans-array.c (gfc_build_null_descriptor, + gfc_trans_array_constructor_value, gfc_conv_array_initializer): + Update to cope with VEC in CONSTRUCTOR_ELTS. + * trans-common.c (create_common): Likewise. + * trans-expr.c (gfc_conv_structure): Likewise. + * trans-stmt.c (gfc_trans_character_select): Use + build_constructor_from_list instead of build_constructor. + +2005-07-19 Paul Thomas + + PR fortran/16940 + * resolve.c (resolve_symbol): A symbol with FL_UNKNOWN + is matched against interfaces in parent namespaces. If there + the symtree is set to point to the interface. + +2005-07-16 David Edelsohn + + PR fortran/21730 + * decl.c (do_parm): Adjust character initializer to character length + of symbol before assigning. + +2005-07-14 Steve Ellcey + + * trans-types.c (MAX_REAL_KINDS): Increase from 4 to 5. + +2005-07-14 Jakub Jelinek + + * gfortran.h (MAX_ERROR_MESSAGE): Remove. + (gfc_error_buf): Add allocated and index fields. Change message + field from array to a pointer. + * error.c (use_warning_buffer, error_ptr, warning_ptr): Remove. + (cur_error_buffer): New variable. + (error_char): Use cur_error_buffer->{message,index} instead of + {warning,error}_{buffer.message,ptr}. Reallocate message buffer + if too small. + (gfc_warning, gfc_notify_std, gfc_error, gfc_error_now): Setup + cur_error_buffer and its index rather than {warning,error}_ptr + and use_warning_buffer. + (gfc_warning_check, gfc_error_check): Don't print anything if + message is NULL. + (gfc_push_error): Allocate saved message with xstrdup. + (gfc_pop_error): Free saved message with gfc_free. + (gfc_free_error): New function. + * primary.c (match_complex_constant): Call gfc_free_error if + gfc_pop_error will not be called. + * match.c (gfc_match_st_function): Likewise. + + PR fortran/22417 + * scanner.c (preprocessor_line): Don't treat flag 3 as the start of a new + file. Fix file left but not entered warning. + +2005-07-14 Feng Wang + Steven G. Kargl + + * array.c (resolve_character_array_constructor): Allocate gfc_charlen + for the array and attach to namespace list for automatic deallocation. + +2005-07-13 Andreas Schwab + + * Make-lang.in (fortran/dependency.o): Depend on + $(GFORTRAN_TRANS_DEPS). + +2005-07-11 Jakub Jelinek + + * trans-stmt.c (gfc_trans_forall_loop): Clear maskindex before + the outermost loop. + (gfc_trans_assign_need_temp, gfc_trans_pointer_assign_need_temp, + gfc_trans_forall_1, gfc_evaluate_where_mask, gfc_trans_where_2): + Don't clear maskindexes here. + +2005-07-08 Daniel Berlin + + * trans-decl.c (create_function_arglist): DECL_ARG_TYPE_AS_WRITTEN + is removed. + +2005-07-08 Jakub Jelinek + + * primary.c (gfc_match_rvalue): Handle ENTRY the same way + as FUNCTION. + +2005-07-07 Jakub Jelinek + + * scanner.c (load_line): Add pbuflen argument, don't make + buflen static. If maxlen == 0 or preprocessor_flag, + don't truncate at buflen, but at maxlen. In xrealloc add + 1 byte at the end for the terminating '\0'. Don't fill + with spaces up to buflen, but gfc_option.fixed_line_length. + (load_file): Adjust load_line caller. Add line_len variable. + + * scanner.c (preprocessor_line): Only set current_file->line when errors + have not been encountered. Warn and don't crash if a file leave + preprocessor line has no corresponding entering line. Formatting. + +2005-07-07 Steven Bosscher + + * primary.c (match_hollerith_constant): Use int, not unsigned int, + for the hollerith length. Fix indentation. + +2005-07-07 Feng Wang + + PR fortran/16531 + PR fortran/15966 + PR fortran/18781 + * arith.c (gfc_hollerith2int, gfc_hollerith2real, + gfc_hollerith2complex, gfc_hollerith2character, gfc_hollerith2logical): + New functions. + (eval_intrinsic): Don't evaluate if Hollerith constant arguments exist. + * arith.h (gfc_hollerith2int, gfc_hollerith2real, + gfc_hollerith2complex, gfc_hollerith2character, gfc_hollerith2logical): + Add prototypes. + * expr.c (free_expr0): Free memery allocated for Hollerith constant. + (gfc_copy_expr): Allocate and copy string if Expr is from Hollerith. + (gfc_check_assign): Enable conversion from Hollerith to other. + * gfortran.h (bt): Add BT_HOLLERITH. + (gfc_expr): Add from_H flag. + * intrinsic.c (gfc_type_letter): Return 'h' for BT_HOLLERITH. + (add_conversions): Add conversions from Hollerith constant to other. + (do_simplify): Don't simplify if Hollerith constant arguments exist. + * io.c (resolve_tag): Enable array in FORMAT tag under GFC_STD_GNU. + * misc.c (gfc_basetype_name): Return "HOLLERITH" for BT_HOLLERITH. + (gfc_type_name): Print "HOLLERITH" for BT_HOLLERITH. + * primary.c (match_hollerith_constant): New function. + (gfc_match_literal_constant): Add match Hollerith before Integer. + * simplify.c (gfc_convert_constant): Add conversion from Hollerith + to other. + * trans-const.c (gfc_conv_constant_to_tree): Use VIEW_CONVERT_EXPR to + convert Hollerith constant to tree. + * trans-io.c (gfc_convert_array_to_string): Get array's address and + length to set string expr. + (set_string): Deal with array assigned Hollerith constant and character + array. + * gfortran.texi: Document Hollerith constants as extention support. + +2005-07-07 Feng Wang + + PR fortran/22327 + * trans-array.c (gfc_trans_array_constructor_value): Fix index of data. + +2005-07-07 Jakub Jelinek + + * decl.c (gfc_match_entry): Allow ENTRY without parentheses + even in FUNCTIONs. + +2005-07-03 Kazu Hirata + + * gfortran.texi, intrinsic.texi: Fix typos. + * symbol.c: Fix a comment typo. + +2005-07-03 Kaveh R. Ghazi + + * error.c (error_printf, error_print): Use ATTRIBUTE_GCC_GFC. + * gfortran.h (ATTRIBUTE_GCC_GFC): New. + (gfc_warning, gfc_warning_now, gfc_error, gfc_error_now, + gfc_fatal_error, gfc_internal_error, gfc_notify_std): Use + ATTRIBUTE_GCC_GFC. + +2005-07-03 Francois-Xavier Coudert + + PR fortran/20842 + * io.c (match_dt_element): Do not allow END tag in PRINT or + WRITE statement. + +2005-07-02 Joseph S. Myers + + * lang.opt: Remove "." from end of help texts. + +2005-07-01 Jerry DeLisle + + * gfortran.texi: Fix typos and grammar. + * invoke.texi: Fix typos and grammar. + * intrinsic.texi: Add documentaion for eoshift, epsilon, etime, and + exit. Fixed alignment of text for dtime syntax. Fixed a few line + lengths. + +2005-06-25 Jakub Jelinek + + * trans-stmt.c (gfc_trans_forall_1): Prefer to use smaller logical + type than boolean_type_node. + +2005-06-25 Kelley Cook + + * all files: Update FSF address in copyright headers. + +2005-06-24 Jerry DeLisle + + PR fortran/21915 + * gfortran.h: Add symbols for new intrinsic functions. + * intrinsic.c: Add new functions acosh, asinh, and atanh. + * intrinsic.h: Add prototypes for the new functions. + * iresolve.c (gfc_resolve_acosh): New function. + (gfc_resolve_asinh): New function. + (gfc_resolve_atanh): New function. + * mathbuiltins.def: Add defines. + * simplify.c (gfc_simplify_acosh): New function. + (gfc_simplify_asinh): New function. + (gfc_simplify_atanh): New function. + +2005-06-24 Feng Wang + + * simplify.c (gfc_simplify_modulo): Don't clear before get result. + +2005-06-22 Paul Brook + + PR fortran/21034 + * symbol.c (gfc_is_var_automatic): New function. + (save_symbol): Use it. + +2005-06-21 Tobias Schlueter + Paul Thomas + + PR fortran/22010 + Port from g95. + * module.c (mio_namelist): New function. Correct to set + namelist_tail and to give error on renaming namelist by use + association. + (mio_symbol): Call mio_namelist. + +2005-06-19 Francois-Xavier Coudert + + * gfortran.h: Add flag_backslash compile-time option. + * lang.opt: Add support for -fbackslash option. + * options.c: Likewise. + * primary.c: Implement behavior for -fno-backslash. + * invoke.texi: Add doc for -fbackslash option. + * gfortran.texi: Remove mention of -fno-backslash as a + possible extension. + +2005-06-20 Steven G. Kargl + (port from g95) + + PR fortran/21257 + * match.c (gfc_match_label): Detect duplicate labels. + + +2005-06-20 Erik Edelmann + + * intrinsic.c (check_intrinsic_standard): Fix spelling error + in a warning message. + +2005-06-18 Erik Edelman + Steven G. Kargl + + PR fortran/19926 + * primary.c (gfc_match_rvalue): expr_type can be EXPR_CONSTANT + for an array; check that sym->as is NULL. + + +2005-06-18 Steven G. Kargl + + * intrinsic.c (gfc_intrinsic_func_interface): Enable errors for generic + functions whose simplification routine return FAILURE. + +2005-06-13 Geoffrey Keating + + * Make-lang.in (fortran.install-man): Doesn't depend on installdirs. + (rule for installing f95.1 manpage): Does depend on installdirs. + +2005-06-13 Jakub Jelinek + + PR fortran/22038 + * trans-stmt.c (gfc_trans_forall_loop): Only increment maskindex + in the innermost loop. + + * trans-expr.c (gfc_conv_function_call): Return int instead of + void. Use a local variable for has_alternate_specifier and + return it. Avoid modification of function type's return value + in place, since it may be shared. + * trans.h (has_alternate_specifier): Remove. + (gfc_conv_function_call): Change return type. + * trans-stmt.c (has_alternate_specifier): Remove. + (gfc_trans_call): Add a local has_alternate_specifier variable, + set it from gfc_conv_function_call return value. + +2005-06-12 Richard Henderson + + * trans-array.c (gfc_conv_descriptor_data_get): Rename from + gfc_conv_descriptor_data. Cast the result to the DATAPTR type. + (gfc_conv_descriptor_data_set, gfc_conv_descriptor_data_addr): New. + (gfc_trans_allocate_array_storage): Use them. + (gfc_array_allocate, gfc_array_deallocate): Likewise. + (gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor): Likewise. + (gfc_trans_deferred_array): Likewise. + * trans-expr.c (gfc_conv_function_call): Likewise. + (gfc_trans_subcomponent_assign): Likewise. + (gfc_trans_pointer_assignment): Likewise. + * trans-intrinsic.c (gfc_conv_allocated): Likewise. + * trans-types.c (gfc_array_descriptor_base): New. + (gfc_get_element_type): Use GFC_TYPE_ARRAY_DATAPTR_TYPE. + (gfc_get_array_descriptor_base): Break out from ... + (gfc_get_array_type_bounds): ... here. Create type variants. + * trans-array.h (gfc_conv_descriptor_data_get): Declare. + (gfc_conv_descriptor_data_set, gfc_conv_descriptor_data_addr): Declare. + +2005-06-12 Tobias Schl"uter + + * trans-expr.c (gfc_conv_variable): POINTER results don't need f2c + calling conventions. Look at sym instead of sym->result. + * trans-types.c (gfc_sym_type): Remove workaround for frontend bug. + Remove condition which is always false with workaround removed. + (gfc_return_by_reference): Always look at sym, never at sym->result. + +2005-06-11 Steven G. Kargl + + PR fortran/17792 + PR fortran/21375 + * trans-array.c (gfc_array_deallocate): pstat is new argument + (gfc_array_allocate): update gfc_array_deallocate() call. + (gfc_trans_deferred_array): ditto. + * trans-array.h: update gfc_array_deallocate() prototype. + * trans-decl.c (gfc_build_builtin_function_decls): update declaration + * trans-stmt.c (gfc_trans_deallocate): Implement STAT= feature. + +2005-06-07 Jerry DeLisle + + * intrinsic.texi: Add documentation for dcmplx, digits, + dim, idim, ddim, dot_product, dprod, dreal, and dtime. + +2005-06-05 Tobias Schl"uter + + PR fortran/21912 + * trans-array.c (gfc_trans_array_constructor_value): Slightly reorder. + Generate correct exit condition in case of negative steps in + implied-do loops. + + * invoke.texi: Fix description of flags required for compatibility + with g77. + +2005-06-04 Tobias Schl"uter + Erik Schnetter + + PR fortran/19195 + * trans.c (gfc_get_backend_locus): Remove unnecessary adjustment, + remove FIXME comment. + +2005-06-04 Tobias Schl"uter + + * match.c (match_forall_iterator): Don't immediately give error if '=' + is not followed by an expression. + +2005-06-04 Tobias Schl"uter + Erik Edelmann + + * array.c (gfc_match_array_constructor): Disallow empty array + constructor. + +2005-06-03 Jerry DeLisle + + * fortran/intrinsic.texi: Add documentation for + command_argument_count, conjg, dconjg, count, + cpu_time, cshift, date_and_time, dble, dfloat. + +2005-06-01 Roger Sayle + + * intrinsic.c (add_conv): No longer take a "simplify" argument as + its always gfc_convert_constant, instead take a "standard" argument. + (add_conversions): Change all existing calls of add_conv to pass + GFC_STD_F77 as appropriate. Additionally, if we're allowing GNU + extensions support integer-logical and logical-integer conversions. + (gfc_convert_type_warn): Warn about use the use of these conversions + as a extension when appropriate, i.e. with -pedantic. + * simplify.c (gfc_convert_constant): Add support for integer to + logical and logical to integer conversions, using gfc_int2log and + gfc_log2int. + * arith.c (gfc_log2int, gfc_int2log): New functions. + * arith.h (gfc_log2int, gfc_int2log): Prototype here. + * gfortran.texi: Document this new GNU extension. + +2005-06-01 Paul Thomas + + * fortran/trans-expr.c (gfc_conv_variable): Clean up bracketting. + * fortran/trans-expr.c (gfc_conv_function_call): Insert spaces. + Correct comments and replace convert of integer_one_node with + build_int_cst. + +2005-06-01 Jakub Jelinek + + PR fortran/21729 + * resolve.c (resolve_contained_fntype): Use sym->attr.untyped + to avoid giving error multiple times. + (resolve_entries): Don't error about BT_UNKNOWN here. + (resolve_unknown_f): Capitalize IMPLICIT for consistency. + (resolve_fntype): New function. + (gfc_resolve): Call resolve_fntype. + +2005-06-01 Feng Wang + + PR fortran/20883 + * fortran/io.c (resolve_tag): Fix error message. + +2005-05-31 Kaveh R. Ghazi + + * fortran/trans-decl.c: Don't include errors.h. + * fortran/Make-lang.in: Updates dependencies. + +2005-05-31 Paul Thomas + + PR fortran/18109 + PR fortran/18283 + PR fortran/19107 + * fortran/trans-array.c (gfc_conv_expr_descriptor): Obtain the + string length from the expression typespec character length value + and set temp_ss->stringlength and backend_decl. Obtain the + tree expression from gfc_conv_expr rather than gfc_conv_expr_val. + Dereference the expression to obtain the character. + * fortran/trans-expr.c (gfc_conv_component_ref): Remove the + dereference of scalar character pointer structure components. + * fortran/trans-expr.c (gfc_trans_subarray_assign): Obtain the + string length for the structure component from the component + expression. + +2005-05-30 Roger Sayle + + * gfortran.h (GFC_STD_LEGACY): New "standard" macro. Reindent. + * options.c (gfc_init_options): By default, allow legacy extensions + but warn about them. + (gfc_post_options): Make -pedantic warn about legacy extensions + even with -std=legacy. + (gfc_handle_option): Make -std=gnu follow the default behaviour + of warning about legacy extensions, but allowing them. Make the + new -std=legacy accept everything and warn about nothing. + * lang.opt (std=legacy): New F95 command line option. + * invoke.texi: Document both -std=f2003 and -std=legacy. + * gfortran.texi: Explain the two types of extensions and document + how they are affected by the various -std= command line options. + +2005-05-30 Kazu Hirata + + * trans-expr.c: Remove trailing ^M. + + * trans-expr.c: Fix comment typos. + +2005-05-29 Paul Thomas + + PR fortran/16939 + PR fortran/17192 + PR fortran/17193 + PR fortran/17202 + PR fortran/18689 + PR fortran/18890 + * fortran/trans-array.c (gfc_conv_resolve_dependencies): Add string + length to temp_ss for character pointer array assignments. + * fortran/trans-expr.c (gfc_conv_variable): Correct errors in + dereferencing of characters and character pointers. + * fortran/trans-expr.c (gfc_conv_function_call): Provide string + length as return argument for various kinds of handling of return. + Return a char[]* temporary for character pointer functions and + dereference the temporary upon return. + +2005-05-29 Janne Blomqvist + Steven G. Kargl + + fortran/PR20846 + * io.c (gfc_match_inquire): Implement constraints on UNIT and FILE usage. + +2005-05-29 Francois-Xavier Coudert + + PR libfortran/20006 + * io.c (format_item_1): Add check and extension warning for + $ edit descriptor. + +2005-05-28 Steven G. Kargl + + * arith.c (gfc_arith_init_1): Fix off by one problem; + (gfc_check_integer_range): Chop extra bits in subnormal numbers. + +2005-05-28 Jerry DeLisle + Steven G. Kargl + + * intrinsic.texi: added documentation for BIT_SIZE, BTEST, CHAR, CEILING + and CMPLX + +2005-05-27 Steven G. Kargl + + * trans-array.c (gfc_trans_deferred_array): Use build_int_cst to force + like types in comparsion. + +2005-05-26 Kazu Hirata + + * data.c, parse.c, trans-array.c, trans-decl.c, + trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.c, + trans.h: Fix comment typos. Follow spelling conventions. + +2005-05-22 Roger Sayle + + * gfortran.texi: Document some more GNU extensions. + +2005-05-22 Francois-Xavier Coudert + + * error.c (gfc_warning): Fix typo in comment. + +2005-05-18 Thomas Koenig + + PR libfortran/21127 + * fortran/iresolve.c (gfc_resolve_reshape): Add + gfc_type_letter (BT_COMPLEX) for complex to + to resolved function name. + +2005-05-18 Erik Edelmann + + * array.c (gfc_match_array_constructor): Support [ ... ] + style array constructors. + +2005-05-18 Tobias Schl"uter + + * f95-lang.c (gfc_init_builtin_functions): Define BUILT_IN_TRUNC + and BUILT_IN_TRUNCF instead of BUILT_IN_FLOOR and BUILT_IN_FLOORF. + * trans-intrinsic.c (build_fix_expr): Change 'op' argument + to correct enum type. + (gfc_conv_intrinsic_aint): Likewise. Clarify comment in front of + function. Add default case to switch, deal with FIX_TRUNC_EXPR + instead of FIX_FLOOR_EXPR. + +2005-05-18 Feng Wang + + PR fortran/20954 + * trans-const.c (gfc_conv_const_charlen): Use gfc_charlen_type_node to + build character length. + +2005-05-17 Zdenek Dvorak + + * trans-types.c (gfc_array_range_type): New variable. + (gfc_init_types): Initialize gfc_array_range_type. + (gfc_get_array_type_bounds): Use gfc_array_range_type. + +2005-05-17 Jakub Jelinek + + PR fortran/15080 + * trans-stmt.c (generate_loop_for_temp_to_lhs): Remove SIZE and COUNT2 + arguments. If LSS is gfc_ss_terminator, increment COUNT1 by 1, instead + of incrementing COUNT2 and using COUNT1+COUNT2 increment COUNT1 and use + just that as index. + (generate_loop_for_rhs_to_temp): Likewise. + (compute_overall_iter_number): Add INNER_SIZE_BODY argument. + It non-NULL, add it to body. + (allocate_temp_for_forall_nest_1): New function, split from + allocate_temp_for_forall_nest. + (allocate_temp_for_forall_nest): Add INNER_SIZE_BODY argument, + propagate it down to compute_overall_iter_number. Use + allocate_temp_for_forall_nest_1. + (gfc_trans_assign_need_temp): Remove COUNT2. Call + compute_inner_temp_size into a new stmtblock_t. Adjust calls to + allocate_temp_for_forall_nest, generate_loop_for_rhs_to_temp + and generate_loop_for_temp_to_lhs. + (gfc_trans_pointer_assign_need_temp): Adjust calls to + allocate_temp_for_forall_nest. + (gfc_evaluate_where_mask): Call compute_inner_temp_size into a new + stmtblock_t. Call compute_overall_iter_number just once, then + allocate_temp_for_forall_nest_1 twice with the same size. + Initialize mask indexes if nested_forall_info != NULL. + (gfc_trans_where_2): Initialize mask indexes before calling + gfc_trans_nested_forall_loop. + +2005-05-15 Feng Wang + Jerry DeLisle + + PR fortran/17432 + * trans-stmt.c (gfc_trans_label_assign): fix pointer type, to + resolve ICE on assign of format label. + * trans-io.c (set_string): add fold-convert to properly + handle assigned format label in write. + +2005-05-13 Paul Brook + + * trans-stmt.c (gfc_trans_forall_1): Fix comment typo. + +2005-05-12 Tobias Schl"uter + + * trans-types.c (gfc_is_nodesc_array): Remove redundant check. + +2005-05-11 Tobias Schl"uter + + PR fortran/21260 + * io.c (check_format): Look for literal characters inside + hollerith constant. + +2005-05-11 Tobias Schl"uter + + * resolve.c (resolve_symbol): Copy 'pointer' and 'dimension' + attribute from result symbol to function symbol. + * trans-expr.c (gfc_conv_function_call): Look at sym->attr.dimension + instead of sym->result->attr.dimension. + +2005-05-10 Tobias Schl"uter + + PR fortran/20178 + * gfortran.h (gfc_option): Add flag_f2c. + * invoke.texi: Document '-ff2c' command line option. Adapt + documentation for '-fno-second-underscore' and '-fno-underscoring'. + * lang.opt (ff2c): New entry. + * options.c (gfc-init_options): Set default calling convention + to -fno-f2c. Mark -fsecond-underscore unset. + (gfc_post_options): Set -fsecond-underscore if not explicitly set + by user. + (handle_options): Set gfc_option.flag_f2c according to requested + calling convention. + * trans-decl.c (gfc_get_extern_function_decl): Use special f2c + intrinsics where necessary. + (gfc_trans_deferred_vars): Change todo error to assertion. + * trans-expr.c (gfc_conv_variable): Dereference access + to hidden result argument. + (gfc_conv_function_call): Add hidden result argument to argument + list if f2c calling conventions requested. Slightly restructure + tests. Convert result of default REAL function to requested type + if f2c calling conventions are used. Dereference COMPLEX result + if f2c cc are used. + * trans-types.c (gfc_sym_type): Return double for default REAL + function if f2c cc are used. + (gfc_return_by_reference): Slightly restructure logic. Return + COMPLEX by reference depending on calling conventions. + (gfc_get_function_type): Correctly make hidden result argument a + pass-by-reference argument for COMPLEX. Remove old code which does + this for derived types. + +2005-05-09 Tobias Schl"uter + + * match.c (gfc_match_return): Only require space after keyword when + it is obligatory. Only give stdwarn to after matching is successful. + * dump-parse-tree.c (gfc_show_symbol): Deal with alternate returns. + +2005-05-08 Kazu Hirata + + * intrinsic.texi: Fix typos. + +2005-05-07 Steven G. Kargl + + * intrinsic.texi: Document ASSOCIATED and ATAN2. Update Bessel function + description to include information about scalar arguments. + +2005-05-03 Kazu Hirata + + * Make-lang.in, dump-parse-tree.c, invoke.texi, lang.opt, + match.h, trans-array.h: Update copyright. + +2005-04-29 Tom Tromey + + * f95-lang.c (poplevel): Updated for change to build_block. + +2005-04-29 Jakub Jelinek + + PR fortran/13082 + PR fortran/18824 + * trans-expr.c (gfc_conv_variable): Handle return values in functions + with alternate entry points. + * resolve.c (resolve_entries): Remove unnecessary string termination + after snprintf. Set result of entry master. + If all entries have the same type, set entry master's type + to that common type, otherwise set mixed_entry_master attribute. + * trans-types.c (gfc_get_mixed_entry_union): New function. + (gfc_get_function_type): Use it for mixed_entry_master functions. + * gfortran.h (symbol_attribute): Add mixed_entry_master bit. + * decl.c (gfc_match_entry): Set entry->result properly for + function ENTRY. + * trans-decl.c (gfc_get_symbol_decl): For entry_master, skip over + __entry argument. + (build_entry_thunks): Handle return values in entry thunks. + Clear BT_CHARACTER's ts.cl->backend_decl, so that it is not + shared between multiple contexts. + (gfc_get_fake_result_decl): Use DECL_ARGUMENTS from + current_function_decl instead of sym->backend_decl. Skip over + entry master's entry id argument. For mixed_entry_master entries or + their results, return a COMPONENT_REF of the fake result. + (gfc_trans_deferred_vars): Don't warn about missing return value if + at least one entry point uses RESULT. + (gfc_generate_function_code): For entry master returning + CHARACTER, copy ts.cl->backend_decl to all entry result syms. + * trans-array.c (gfc_trans_dummy_array_bias): Don't consider return + values optional just because they are in entry master. + +2005-04-29 Francois-Xavier Coudert + + * gfortran.h (gfc_namespace): Add seen_implicit_none field, + Tobias forgot this in previous commit. + +2005-04-29 Paul Brook + + * trans-expr.c (gfc_conv_expr_present): Fix broken assert. Update + comment. + +2005-04-29 Tobias Schl"uter + + * gfortran.h (gfc_namespace): Add seen_implicit_none field. + * symbol.c (gfc_set_implicit_none): Give error if there's a previous + IMPLICIT NONE, set seen_implicit_none. + (gfc_merge_new_implicit): Error if there's an IMPLICIT NONE statement. + +2005-04-28 Tobias Schl"uter + + * gfortran.h (gfc_gsymbol): Make name a const char *. + * symbol.c (gfc_get_gsymbol): Allocate gsymbol name via + gfc_get_string. + +2005-04-28 Francois-Xavier Coudert + + PR fortran/20865 + * resolve.c (resolve_actual_arglist): Issue an error if a statement + functions is used as actual argument. + +2005-04-27 Francois-Xavier Coudert + + PR fortran/21177 + * interface.c (compare_parameter): Ignore type for EXPR_NULL + only if type is BT_UNKNOWN. + +2005-04-25 Paul Brook + Steven G. Kargl + + PR fortran/20879 + * check.c (gfc_check_ichar_iachar): New function. + * instinsic.h (gfc_check_ichar_iachar): Add prototype. + * intrinsic.c (add_functions): Use it. + * primary.c (match_varspec, gfc_match_rvalue): Clear incorrect + character expression lengths. + +2005-04-24 Tobias Schl"uter + + PR fortran/20059 + * trans-common.c (translate_common): Cast offset and + common_segment->offset to type int for warning message. + +2005-04-23 DJ Delorie + + * trans-decl.c: Adjust warning() callers. + +2005-04-23 Tobias Schl"uter + + * trans-const.c (gfc_conv_mpfr_to_tree): Use hexadecimal string as + intermediate representation. Fix typo in comment. + +2005-04-21 Steven G. Kargl + + * trans-const.c (gfc_conv_mpfr_to_tree): Remove unneeded computation; + simplify logic; Add a gcc_assert. + +2005-04-19 Steven G. Kargl + + * trans-const.c (gfc_conv_mpz_to_tree): Fix comment. + +2005-04-19 Arnaud Desitter + Steven G. Kargl + + * invoke.texi: Update -Waliasing description + +2005-04-19 Francois-Xavier Coudert + + PR fortran/16861 + * resolve.c (resolve_variable): If e->symtree is not set, this + ought to be a FAILURE, and not a segfault. + +2005-04-17 Paul Thomas + + PR fortran/17472 + PR fortran/18209 + PR fortran/18396 + PR fortran/19467 + PR fortran/19657 + * fortran/trans-io.c (gfc_build_io_library_fndecls): Create + declaration for st_set_nml_var and st_set_nml_var_dim. Remove + declarations of old namelist functions. + (build_dt): Simplified call to transfer_namelist_element. + (nml_get_addr_expr): Generates address expression for start of + object data. New function. + (nml_full_name): Qualified name for derived type components. New + function. + (transfer_namelist_element): Modified for calls to new functions + and improved derived type handling. + +2005-04-17 Richard Guenther + + * scanner.c (gfc_next_char_literal): Reset truncation flag + for lines ending in a comment for both fixed and free form. + (load_line): Do not set truncated flag if only truncating + the EOL marker. + +2005-04-15 Richard Guenther + + PR fortran/14569 + * gfortran.h (gfc_linebuf): Add truncated field. + * parse.c (next_statement): Handle warning for truncated + lines. + * scanner.c (load_line): Return if line was truncated. + No longer warn for truncated lines. Remove unused parameters. + (load_file): Store load_line return value to linebuf. + (gfc_error_recovery): Do not advance line at the end. + +2005-04-14 Steven G. Kargl + + * gfortran.h (gfc_real_info): Add subnormal struct member. + * arith.c (gfc_arith_init_1): Set it. + (gfc_check_real_range): Use it. + * simplify.c (gfc_simplify_nearest): Fix nearest(0.,1.). + +2005-04-12 Kazu Hirata + + * simplify.c: Fix a comment typo. + +2005-04-11 Richard Sandiford + + * lang.opt: Refer to the GCC internals documentation instead of c.opt. + +2005-04-11 Tobias Schl"uter + + * simplify.c (gfc_simplify_nearest): Overhaul. + +2005-04-10 Kazu Hirata + + * interface.c: Fix a comment typo. + +2005-04-10 Francois-Xavier Coudert + + * match.c (match_arithmetic_if): Arithmetic IF is obsolete in + Fortran 95. + +2005-04-09 Steven G. Kargl + + * simplify.c (gfc_simplify_anint): Use mpfr_round() + (gfc_simplify_dnint): ditto. + (gfc_simplify_nint): ditto. + +2005-04-09 Andrew Pinski + + PR fortran/13257 + * io.c (check_format): Allow an optional comma + between descriptors. + +2005-04-09 Francois-Xavier Coudert + + * match.c (match_arithmetic_if): Remove gfc_ prefix and correct + comment according to GNU coding style. + (gfc_match_if): Remove gfc_ prefix in call to + match_arithmetic_if. + +2005-04-08 Diego Novillo + + * match.c (gfc_match_arithmetic_if): Declare static. + +2005-04-08 Francois-Xavier Coudert + + PR fortran/17229 + * match.c (gfc_match_arithmetic_if): New function to match an + arithmetic IF statement. + (gfc_match_if): Use gfc_match_arithmetic_if to match an + arithmetic IF statement embedded in a simple IF statement. + +2005-04-07 Steven G. Kargl + + * simplify.c (gfc_simplify_exponent): Fix exponent(tiny(x)) + +2005-04-06 Steven G. Kargl + + * invoke.texi: Remove documentation of -std=f90 + +2005-04-06 Tobias Schl"uter + + * expr.c (gfc_check_assign): Don't allow NULL as rhs in a + non-pointer assignment. + +2005-04-05 Feng Wang + + PR fortran/15959 + PR fortran/20713 + + * array.c (resolve_character_array_constructor): New function. Set + constant character array's character length. + (gfc_resolve_array_constructor): Use it. + * decl.c (add_init_expr_to_sym): Set symbol and initializer character + length. + (gfc_set_constant_character_len): New function. Set constant character + expression according the given length. + * match.h (gfc_set_constant_character_len): Add prototype. + +2005-04-04 Francois-Xavier Coudert + + * intrinsic.texi: BES?? functions are not in the f95 standard. + +2005-04-03 Francois-Xavier Coudert + + * intrinsic.texi: Document COS, EXP, LOG, LOG10, SIN, SQRT, TAN. + +2005-04-03 Francois-Xavier Coudert + + * intrinsic.texi: Document BESJ0, BESJ1, BESJN, BESY0, BESY1, + BESYN, ATAN, COSH, ERF, ERC, SINH, TANH. + +2005-04-02 Steven G. Kargl + + * intrinsic.texi: Document ALLOCATED, ANINT, ANY, ASIN; fix typos + +2005-04-01 Kazu Hirata + + * decl.c, f95-lang.c, interface.c, module.c, trans-stmt.c, + trans.h: Fix comment typos. + +2005-03-29 Steven G. Kargl + + * gfortran.h (option_t): Change d8, i8, r8 to flag_default_double, + flag_default_integer, flag_default_real + * invoke.texi: Update documentation + * lang.opt: Remove d8, i8, r8 definitions; Add fdefault-double-8 + fdefault-integer-8, and fdefault-real-8 definitions. + * options.c (gfc_init_options): Set option defaults + (gfc_handle_option): Handle command line options. + * trans-types.c (gfc_init_kinds): Use options. + +2005-03-29 Keith Besaw + + * f95-lang.c (builtin_function): Process the attrs parameter + and apply the "const" attribute to the builtin if found. + +2005-03-27 Steven G. Kargl + + * intrinsic.texi: Document AIMAG, AINT, ALL + +2005-03-26 Steven G. Kargl + + * arith.c (check_result): Fix illogical logic. + +2005-03-26 Canqun Yang + + * trans-common.c (create_common): Build RECORD_NODE for common blocks + contain no equivalence objects. + (add_equivalences): New argument saw_equiv. + (trans_common): New local variable saw_equiv. + (finish_equivalences): Add a local variable dummy, Always pass true + for the 3rd parameter to create_common. + +2005-03-25 Steven G. Kargl + + * intrinsic.texi: Fix "make dvi" + +2005-03-24 Steven G. Kargl + + * intrinsic.texi: New file. + * gfortran.texi: Include it; white space change; fix typo. + +2005-03-23 Joseph S. Myers + + * f95-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove. + +2005-03-23 Steven Bosscher + + * convert.c (convert): Replace fold (buildN (...)) with fold_buildN. + * trans-array.c (gfc_trans_allocate_array_storage, + gfc_trans_allocate_temp_array gfc_trans_array_constructor_value, + gfc_conv_array_index_ref, gfc_trans_array_bound_check, + gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref, + gfc_conv_array_ref, gfc_trans_preloop_setup, gfc_conv_ss_startstride, + gfc_conv_loop_setup, gfc_array_init_size, gfc_trans_array_bounds, + gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias, + gfc_conv_expr_descriptor): Likewise. + * trans-expr.c (gfc_conv_powi, gfc_conv_string_tmp, + gfc_conv_concat_op, gfc_conv_expr_op): Likewise. + * trans-intrinsic.c (build_round_expr, gfc_conv_intrinsic_bound, + gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_sign, + gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval, + gfc_conv_intrinsic_btest, gfc_conv_intrinsic_bitop, + gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ibits, + gfc_conv_intrinsic_ishft, gfc_conv_intrinsic_ishftc, + gfc_conv_intrinsic_merge, prepare_arg_info, + gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_repeat): Likewise. + * trans-stmt.c (gfc_trans_simple_do, gfc_trans_do, gfc_trans_do_while, + gfc_trans_forall_loop, gfc_do_allocate, generate_loop_for_temp_to_lhs, + generate_loop_for_rhs_to_temp, compute_inner_temp_size, + allocate_temp_for_forall_nest, gfc_trans_pointer_assign_need_temp, + gfc_trans_forall_1, gfc_evaluate_where_mask, gfc_trans_where_assign): + Likewise. + * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Likewise. + * trans.c (gfc_add_modify_expr): Likewise. + +2005-03-22 Francois-Xavier Coudert + + * check.c (gfc_check_chdir, gfc_check_chdir_sub, gfc_check_kill, + gfc_check_kill_sub, gfc_check_link, gfc_check_link_sub, + gfc_check_symlnk, gfc_check_symlnk_sub, gfc_check_rename, + gfc_check_rename_sub, gfc_check_sleep_sub, gfc_check_gerror, + gfc_check_getlog, gfc_check_hostnm, gfc_check_hostnm_sub, + gfc_check_perror): new functions to check newly implemented + g77 intrinsics. + * gfortran.h: adding symbols for new intrinsics. + * intrinsic.c (add_functions): adding new intrinsics. + (add_subroutines): adding new intrinsics. + * intrinsic.h: prototype for all checking and resolving + functions. + * iresolve.c (gfc_resolve_chdir, gfc_resolve_chdir_sub, + gfc_resolve_hostnm, gfc_resolve_ierrno, gfc_resolve_kill, + gfc_resolve_link, gfc_resolve_rename, gfc_resolve_symlnk, + gfc_resolve_time, gfc_resolve_time8, gfc_resolve_rename_sub, + gfc_resolve_kill_sub, gfc_resolve_link_sub, + gfc_resolve_symlnk_sub, gfc_resolve_sleep_sub, + gfc_resolve_gerror, gfc_resolve_getlog, gfc_resolve_hostnm_sub, + gfc_resolve_perror): new functions to resolve intrinsics. + * trans-intrinsic.c (gfc_conv_intrinsic_function): add case + for new symbols. + +2005-03-19 Tobias Schl"uter + + * dump-parse-tree.c (gfc_show_expr): Dump name of namespace + in which the variable is declared. + + PR fortran/18525 + * resolve.c (was_declared): Also check for dummy attribute. + +2005-03-19 Tobias Schl"uter + + * gfortran.h (arith): Remove ARITH_0TO0. + * arith.c (gfc_arith_error): Remove handling of ARITH_0TO0. + (gfc_arith_power): Remove special casing of zero to integral + power zero. + +2005-03-18 Kaveh R. Ghazi + + * Make-lang.in (fortran-warn): Remove -Wno-error. + (expr.o-warn, resolve.o-warn, simplify.o-warn, + trans-common.o-warn): Specify -Wno-error. + +2005-03-17 Tobias Schl"uter + + * trans-array.c (gfc_trans_static_array_pointer, + get_array_ctor_var_strlen, gfc_conv_array_index_offset): Fix + comment and formatting typos. + +2005-03-17 Francois-Xavier Coudert + + * invoke.texi: Fix typos. + +2005-03-15 Zack Weinberg + + * Make-lang.in (GFORTRAN_TEXI): Add gcc-vers.texi. + +2005-03-15 Feng Wang + + * trans-stmt.c (gfc_trans_label_assign): Don't set DECL_ARTIFICIAL flag + to zero on label_tree. + +2005-03-15 Feng Wang + + PR fortran/18827 + * io.c (resolve_tag): Add checking on assigned label. + (match_dt_format): Does not set symbol assign attribute. + * match.c (gfc_match_goto):Does not set symbol assign attribute. + * resolve.c (resolve_code): Add checking on assigned label. + * trans-common.c (build_field): Deals with common variable assigned + a label. + * trans-stmt.c (gfc_conv_label_variable): New function. + (gfc_trans_label_assign): Use it. + (gfc_trans_goto): Ditto. + * trans-io.c (set_string): Ditto. + * trans.h (gfc_conv_label_variable): Add prototype. + +2005-03-14 Tobias Schl"uter + + PR fortran/20467 + * symbol.c (check_conflict): A dummy argument can't be a statement + function. + +2005-03-14 Zdenek Dvorak + + * fortran/trans-intrinsic.c (gfc_conv_intrinsic_ishft): Convert + the argument of the shift to the unsigned type. + +2005-03-13 Tobias Schl"uter + + PR fortran/16907 + * resolve.c (gfc_resolve_index): Allow REAL indices as an extension. + +2005-03-13 Tobias Schl"uter + + PR fortran/20323 + * resolve.c (gfc_resolve): Check if character lengths are + specification expressions. + +2005-03-12 Tobias Schl"uter + + PR fortran/20361 + * trans-array.c (gfc_stack_space_left): Remove unused variable. + (gfc_can_put_var_on_stack): Move to trans-decl.c, remove #if 0'ed + code. + * trans-array.h (gfc_stack_space_left, gfc_can_put_var_on_stack): + Remove declaration / prototype. + * trans-common.c (build_equiv_decl): Give union a name. Check if + it can be put on the stack. + * trans-decl.c (gfc_stack_space_left): Move function here. + (gfc_build_qualified_array): Fix comment typo. + * trans.h (gfc_put_var_on_stack): Add prototype. + +2005-03-11 Kaveh R. Ghazi + + * Make-lang.in (fortran-warn): Set to $(STRICT_WARN) -Wno-error. + * decl.c, trans.c: Don't use C++ style comments. + * gfortran.h (sym_flavor, procedure_type, sym_intent, gfc_access, + ifsrc): Give names to enums and use ENUM_BITFIELD. + (gfc_access): Remove trailing comma. + +2005-03-05 Steven G. Kargl + + PR 19936 + * primary.c (match_complex_constant): Mangled complex constant may + be an implied do-loop. Give implied do-loop matcher a chance. + +2005-03-05 Steven G. Kargl + + PR fortran/19754 + * resolve.c (compare_shapes): New function. + (resolve_operator): Use it. + +2005-03-05 Tobias Schl"uter + + * trans-const.c (gfc_conv_constant_to_tree): Use correct tree + type for COMPLEX constants. + +2005-03-04 Tobias Schl"uter + + PR fortran/19673 + * trans-expr.c (gfc_conv_function_call): Correctly dereference + argument from a pointer function also if it has a result clause. + +2005-03-04 Steven G. Kargl + + * expr.c (gfc_copy_shape_excluding): Change && to ||. + +2005-03-04 Tobias Schl"uter + + * trans-intrinsic.c (gfc_get_symbol_for_expr): Fix comment typo, + clarify comment. + +2005-02-28 Tobias Schl"uter + (port from g95) + + PR fortran/19479 + * simplify.c (gfc_simplify_bound): Rename to ... + (simplify_bound): ... this and overhaul. + +2005-02-28 Steven G. Kargl + + * trans-intrinsic.c (gfc_conv_intrinsic_iargc): remove boolean argument. + (gfc_conv_intrinsic_function): update function calls + +2005-02-27 Steven G. Kargl + + PR fortran/20058 + * trans-types.c (gfc_max_integer_kind): Declare + (gfc_init_kinds): Initialize it. + * gfortran.h (gfc_max_integer_kind): extern it. + * primary.c (match_boz_constant): Use it; remove gfortran extension + of kind suffixes on BOZ literal constants + + +2005-02-27 Steven G. Kargl + + * arith.c (gfc_check_real_range): Remove multiple returns + (check_result): New function. + (gfc_arith_uminus,gfc_arith_plus,gfc_arith_times, + gfc_arith_divide,gfc_arith_power,gfc_arith_minus): Use it. + + +2005-02-24 Volker Reichelt + + * decl.c, resolve.c, trans-array.c, trans.h: Fix comment typo(s). + + +2005-02-24 Tobias Schl"uter + + Unrevert previously reverted patch. Adding this fix: + * module.c (find_true_name): Deal with NULL module. + +2005-02-24 Tobias Schl"uter + + Revert yesterday's patch: + 2005-02-23 Tobias Schl"uter + + * gfortran.h (gfc_component, gfc_actual_arglist, ... + ... argument. Copy string instead of pointing to it. + +2005-02-23 Tobias Schl"uter + + * gfortran.h (gfc_get_namespace): Add second argument to prototype. + * intrinsic.c (gfc_intrinsic_init_1): Pass second argument to + gfc_get_namespace. + * module.c (mio_namespace_ref, load_needed): Likewise. + * parse.c (parse_interface, parse_contained): Likewise. Here the + correct second argument matters. + * symbol.c (gfc_get_namespace): Add parent_types argument, only copy + parent's implicit types if this is set. + (gfc_symbol_init_2): Pass second argument to gfc_get_namespace. + * trans-common.c (build_common_decl): Likewise. + + * gfortran.h (symbol_attribute): New 'untyped' field, fix comment + formatting. + * symbol.c (gfc_set_default_type): Issue error only once, by setting + and checking 'untyped' attribute. + + * gfortran.h (gfc_expr): Move 'operator', 'op1', 'op2', and 'uop' + fields into new struct 'op' inside the 'value' union. + * arith.c (eval_intrinsic): Adapt all users. + * dependency.c (gfc_check_dependency): Likewise. + * dump-parse-tree.c (gfc_show_expr): Likewise. + * expr.c (gfc_get_expr): Don't clear removed fields. + (free_expr0, gfc_copy_expr, gfc_type_convert_binary, + gfc_is_constant_expr, simplify_intrinsic_op, check_init_expr, + check_intrinsic_op): Adapt to new field names. + * interface.c (gfc_extend_expr): Likewise. Also explicitly + nullify 'esym' and 'isym' fields of new function call. + * iresolve.c (gfc_resolve_dot_product, gfc_resolve_matmul): + Adapt to renamed structure fields. + * matchexp.c (build_node, match_level_1, match_expr): Likewise. + * module.c (mio_expr): Likewise. + * resolve.c (resolve_operator): Likewise. + (gfc_find_forall_index): Likewise. Only look through operands + if dealing with EXPR_OP + * trans-array.c (gfc_walk_op_expr): Adapt to renamed fields. + * trans-expr.c (gfc_conv_unary_op, gfc_conv_power_op, + gfc_conv_concat_op, gfc_conv_expr_op): Likewise. + + [ Reverted ] + * gfortran.h (gfc_component, gfc_actual_arglist, gfc_user_op): Make + 'name' a 'const char *'. + (gfc_symbol): Likewise, also for 'module'. + (gfc_symtree): Make 'name' a 'const char *'. + (gfc_intrinsic_sym): Likewise, also for 'lib_name'. + (gfc_get_gsymbol, gfc_find_gsymbol): Add 'const' qualifier to + 'char *' argument. + (gfc_intrinsic_symbol): Use 'gfc_get_string' instead of 'strcpy' to + initialize 'SYM->module'. + * check.c (gfc_check_minloc_maxloc, check_reduction): Check for NULL + pointer instead of empty string. + * dump-parse-tree.c (gfc_show_actual_arglist): Likewise. + * interface.c (gfc_compare_types): Adapt check to account for possible + NULL pointer. + (compare_actual_formal): Check for NULL pointer instead of empty + string. + * intrinsic.c (gfc_current_intrinsic, gfc_current_intrinsic_arg): + Add 'const' qualifier. + (conv_name): Return a heap allocated string. + (find_conv): Add 'const' qualifier to 'target'. + (add_sym): Use 'gfc_get_string' instead of 'strcpy'. + (make_generic): Check for NULL pointer instead of empty string. + (make_alias): Use 'gfc_get_string' instead of 'strcpy'. + (add_conv): No need to strcpy result from 'conv_name'. + (sort_actual): Check for NULL pointer instead of empty string. + * intrinsic.h (gfc_current_intrinsic, gfc_current_intrinsic_arg): + Adapt prototype. + * module.c (compare_true_names): Compare pointers instead of strings + for 'module' member. + (find_true_name): Initialize string fields with gfc_get_string. + (mio_pool_string): New function. + (mio_internal_string): Adapt comment. + (mio_component_ref, mio_component, mio_actual_arg): Use + 'mio_pool_string' instead of 'mio_internal_string'. + (mio_symbol_interface): Add 'const' qualifier to string arguments. + Add level of indirection. Use 'mio_pool_string' instead of + 'mio_internal_string'. + (load_needed, read_module): Use 'gfc_get_string' instead of 'strcpy'. + (write_common, write_symbol): Use 'mio_pool_string' instead of + 'mio_internal_string'. + (write_symbol0, write_symbol1): Likewise, also check for NULL pointer + instead of empty string. + (write_operator, write_generic): Pass correct type variable to + 'mio_symbol_interface'. + (write_symtree): Use 'mio_pool_string' instead of + 'mio_internal_string'. + * primary.c (match_keyword_arg): Adapt check to possible + case of NULL pointer. Use 'gfc_get_string' instead of 'strcpy'. + * symbol.c (gfc_add_component, gfc_new_symtree, delete_symtree, + gfc_get_uop, gfc_new_symbol): Use 'gfc_get_string' instead of + 'strcpy'. + (ambiguous_symbol): Check for NULL pointer instead of empty string. + (gfc_find_gsymbol, gfc_get_gsymbol): Add 'const' qualifier on string + arguments. + * trans-array.c (gfc_trans_auto_array_allocation): Check for NULL + pointer instead of empty string. + * trans-decl.c (gfc_sym_mangled_identifier, + gfc_sym_mangled_function_id, gfc_finish_var_decl, gfc_get_symbol_decl, + gfc_get_symbol_decl): Likewise. + * trans-io.c (gfc_new_nml_name_expr): Add 'const' qualifier to + argument. Copy string instead of pointing to it. + +2005-02-23 Kazu Hirata + + * intrinsic.h, st.c: Update copyright. + +2005-02-20 Steven G. Kargl + + * symbol.c: Typos in comments. + +2005-02-20 Steven G. Kargl + + * expr.c (gfc_type_convert_binary): Typo in comment. + +2005-02-19 Steven G. Kargl + + * check.c (gfc_check_selected_int_kind): New function. + * intrinsic.h: Prototype it. + * intrinsic.c (add_function): Use it. + * simplify (gfc_simplify_ceiling,gfc_simplify_floor): Change + BT_REAL to BT_INTEGER and use gfc_default_integer_kind. + +2005-02-19 Steven G. Kargl + + * check.c (gfc_check_int): improve checking of optional kind + * simplify.c (gfc_simplify_int): Change BT_REAL to BT_INTEGER + +2005-02-19 Steven G. Kargl + + * check.c (gfc_check_achar): New function + * intrinsic.h: Prototype it. + * intrinsic.c (add_function): Use it. + +2005-02-13 Tobias Schl"uter + + * trans-stmt.c (generate_loop_for_temp_to_lhs, + generate_loop_for_rhs_to_temp): Remove if whose condition is + always true. + +2005-02-12 Tobias Schl"uter + + * symbol.c (gfc_use_ha_derived): Remove, fold functionality into ... + (gfc_use_derived): ... this function. + +2005-02-09 Richard Henderson + + * f95-lang.c (gfc_init_builtin_functions): Call + build_common_builtin_nodes; do not define any functions handled + by it. + +2005-02-08 Tobias Schl"uter + + * expr.c (gfc_copy_expr): Don't copy 'op1' and 'op2' for + EXPR_SUBSTRING. + (gfc_is_constant_expr): Check 'ref' to determine if substring + reference is constant. + (gfc_simplify_expr): Simplify 'ref' instead of 'op1' and 'op2'. + (check_init_expr, check_restricted): Check 'ref' instead of 'op1' + and 'op2'. + * module.c (mio_expr): Read / write 'ref' instead of 'op1' and 'op2'. + +2005-02-07 Tobias Schl"uter + + * gfortran.h (gfc_add_dimension, gfc_add_result, gfc_add_save, + gfc_add_dummy, gfc_add_generic, gfc_add_in_common, gfc_add_data, + gfc_add_in_namelist, gfc_add_sequence, gfc_add_function, + gfc_add_subroutine, gfc_add_access, gfc_add_flavor, gfc_add_entry, + gfc_add_procedure): Add argument. + * array.c (gfc_set_array_spec), decl.c (var_element, get_proc_name, + gfc_match_null, match_type_spec, match_attr_spec, + gfc_match_formal_arglist, match_result, gfc_match_function_decl): + Update callers to match. + (gfc_match_entry): Likewise, fix comment typo. + (gfc_match_subroutine, attr_decl1, gfc_add_dimension, + access_attr_decl, do_parm, gfc_match_save, gfc_match_modproc, + gfc_match_derived_decl): Update callers. + * interface.c (gfc_match_interface): Likewise. + * match.c (gfc_match_label, gfc_add_flavor, + gfc_match_call, gfc_match_common, gfc_match_block_data, + gfc_match_namelist, gfc_match_module, gfc_match_st_function): + Likewise. + * parse.c (parse_derived, parse_interface, parse_contained), + primary.c (gfc_match_rvalue, gfc_match_variable): Likewise. + * resolve.c (resolve_formal_arglist, resolve_entries): Update callers. + * symbol.c (check_conflict, check_used): Add new 'name' argument, + use when printing error message. + (gfc_add_dimension, gfc_add_result, gfc_add_save, gfc_add_dummy, + gfc_add_generic, gfc_add_in_common, gfc_add_data, + gfc_add_in_namelist, gfc_add_sequence, gfc_add_function, + gfc_add_subroutine, gfc_add_access, gfc_add_flavor, gfc_add_entry, + gfc_add_procedure): Add new 'name' argument. Pass along to + check_conflict and check_used. + (gfc_add_allocatable, gfc_add_external, gfc_add_intrinsic, + gfc_add_optional, gfc_add_pointer, gfc_add_target, gfc_add_elemental, + gfc_add_pure, gfc_add_recursive, gfc_add_intent, + gfc_add_explicit_interface, gfc_copy_attr): Pass NULL for new + argument in calls to any of the modified functions. + +2005-02-06 Joseph S. Myers + + * gfortran.texi: Don't give last update date. + +2006-01-30 Richard Henderson + + * options.c (gfc_init_options): Zero flag_errno_math. + +2005-01-29 Paul Brook + + PR fortran/18565 + * check.c (real_or_complex_check): New function. + (gfc_check_fn_c, gfc_check_fn_r, gfc_check_fn_rc): New functions. + * intrinsic.c (add_functions): Use new check functions. + * intrinsic.h (gfc_check_fn_c, gfc_check_fn_r, gfc_check_fn_rc): + Add prototypes. + +2005-01-29 Steven G. Kargl + + PR fortran/19589 + * expr.c (gfc_check_assign): Check for conformance of logical operands + +2005-01-27 Steven Bosscher + + * trans-decl.c (gfc_build_label_decl): Set DECL_ARTIFICAL and + TREE_USED for all labels. + (gfc_trans_entry_master_switch): Use it instead of building a + label by hand. + * trans-io.c (add_case): Likewise. + * trans-stmt.c (gfc_trans_integer_select): Likewise. + +2005-01-23 Paul Brook + Steven G. Kargl + + PR fortran/17941 + * arith.c (gfc_convert_real): Remove sign handling. + * primary.c (match_digits): Allow whitespace after initial sign. + (match_real_const): Handle signs here. Allow whitespace after + initial sign. Remove dead code. + (match_const_complex_part): Remove. + (match_complex_part): Use match_{real,integer}_const. + (match_complex_constant): Cross-promote integer types. + +2005-01-23 James A. Morrison + + PR fortran/19294 + * iresolve.c (gfc_resolve_transpose): Resolve to transpose_c4 or + transpose_c8 for complex types. + +2005-01-23 Kazu Hirata + + * data.c, dependency.c, f95-lang.c, io.c, trans-array.c, + trans-decl.c, trans-expr.c, trans-intrinsic.c, trans-io.c, + trans-stmt.c, trans-types.c, trans.h: Fix comment typos. + Follow spelling conventions. + +2005-01-22 Bud Davis + + PR fortran/19313 + * trans-io.c (gfc_trans_inquire): Added code to support + pad. + +2005-01-22 Steven G. Kargl + + * intrinsic.c (make_alias): Add standard argument. + (add_functions): Update make_alias calls. + +2005-01-22 Paul Brook + + * trans-expr.c (gfc_conv_function_call): Remove bogus TODO. + +2005-01-22 Paul Brook + + * gfortran.h (gfc_check_access): Add prototype. + * match.c (gfc_match_namelist): Remove TODO. + * module.c (check_access): Rename ... + (gfc_check_access): ... to this. Boolify. Update callers. + * resolve.c (resolve_symbol): Check for private objects in public + namelists. + +2005-01-22 Paul Brook + + * primary.c (gfc_match_rvalue): Only apply implicit type if variable + does not have an explicit type. + (gfc_match_variable): Resolve implicit derived types in all cases. + Resolve contained function types from their own namespace, not the + parent. + * resolve.c (resolve_contained_fntype): Remove duplicate sym->result + checking. Resolve from the contained namespace, not the parent. + +2005-01-22 Tobias Schl"uter + + PR fortran/19543 + * trans-const.c (gfc_conv_constant_to_tree): Give logical + constants the correct type. + + PR fortran/19194 + * trans-io.c (ADD_STRING): Use gfc_charlen_type_node for string + length parameters. + (gfc_build_io_library_fndecls): 'rec' and 'recl_in' are not + pointer fields. + +2005-01-18 Kazu Hirata + + * arith.c, array.c, check.c, decl.c, expr.c, f95-lang.c, + gfortran.h, interface.c, intrinsic.c, io.c, iresolve.c, + match.c, matchexp.c, misc.c, module.c, options.c, parse.c, + scanner.c, simplify.c, symbol.c, trans-array.c, trans-expr.c, + trans-io.c, trans-stmt.c, trans.c: Update copyright. + +2005-01-17 Ira Rosen + + * f95-lang.c (gfc_init_builtin_functions): Call targetm.init_builtins. + +2005-01-16 Tobias Schlueter + + PR fortran/19182 + * error.c (error_char): Line-buffer errors / warnings. + +2005-01-16 Tobias Schlueter + + * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Fix signed / + unsigned issue. Use build_int_cst instead of converting + integer_zero_node. Remove unnecessary conversion. + + * trans-types.c (gfc_get_character_type_len): Use + gfc_charlen_type_node as basic type for the range field. + + * trans-intrinsic.c (build_fixbound_expr, + gfc_conv_intrinsic_bound, gfc_conv_intrinsic_anyall, + gfc_conv_intrinsic_count, gfc_conv_intrinsic_btest, + gfc_conv_intrinsic_singlebitop): Use 'build_int_cst' instead + of converting 'integer_zero_node' or 'integer_one_node' + respectively. + (gfc_conv_intrinsic_ishftc): Same, but store in local variable to + evade re-building. + (gfc_conv_intrinsic_strcmp, gfc_conv_intrinsic_rrspacing, + gfc_conv_intrinsic_trim, gfc_conv_intrinsic_iargc): Use + 'build_int_cst' instead of converting 'integer_zero_node' or + 'integer_one_node' respectively. + + * trans-intrinsic.c (gfc_conv_intrinsic_index, + gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify): Remove + 'gfc'-prefix from local variable, remove dead code, use correct + type when inserting argument. + + * trans-intrinsic.c, trans-types.c: Update copyright years. + +2005-01-16 Steven G. Kargl + + PR 19168 + * resolve.c (check_case_overlap): Typo in comment. + (validate_case_label_expr): Fix up kinds of case values + (resolve_select): Properly handle kind mismatches. + +2005-01-16 Paul Brook + + PR fortran/17675 + * trans-common.c (translate_common): Remove duplicate function call. + (finish_equivalences): Preserve alignment when biasing offsets. + +2005-01-15 Tobias Schl"uter + + * resolve.c (compare_case): Cleanup. + +2005-01-14 Steven G. Kargl + + * resolve.c (compare_case): Give arguments correct type. + +2005-01-13 Kazu Hirata + + * iresolve.c, trans-common.c, trans-types.c: Fix comment + typos. + +2005-01-09 Paul Brook + + PR fortran/17675 + * trans-common.c (current_common, current_offset): Remove. + (create_common): Add head argument. + (align_segment): New function. + (apply_segment_offset): New function. + (translate_common): Merge code from new_segment. Handle alignment. + (new_segment): Remove. + (finish_equivalences): Ensure proper alignment. + +2005-01-08 Tobias Schl"uter + + * trans-const.c: Don't include unused math.h. + + * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl, + gfc_conv_intrinsic_bound, gfc_conv_intrinsic_minmaxloc, + gfc_conv_intrinsic_ishft, gfc_conv_intrinsic_len): Remove + trailing whitespace. + (prepare_arg_info): Fix formatting, indenting and remove trailing + whitespace. + (gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_trim): Remove + trailing whitespace. + + * arith.c (arctangent2, gfc_arith_init_1, gfc_arith_done_1, + gfc_constant_result, gfc_range_check, gfc_arith_power, + eval_type_intrinsic0, eval_intrinsic_f2, gfc_real2real, + gfc_real2complex, gfc_complex2int, gfc_complex2real, + gfc_complex2complex): Fix whitespace issues. + * check.c (must_be, type_check, numeric_check, int_or_real_check, + logical_array_check, array_check, scalar_check, nonoptional_check, + variable_check, dim_check, check_a_kind, gfc_check_a_ikind, + gfc_check_a_xkind, gfc_check_abs, gfc_check_all_any, + gfc_check_allocated, gfc_check_a_p, gfc_check_besn, + gfc_check_btest, gfc_check_char, gfc_check_cmplx, gfc_check_count, + gfc_check_cshift, gfc_check_dcmplx, gfc_check_dble, + gfc_check_digits, gfc_check_dot_product, gfc_check_eoshift, + gfc_check_fnum, gfc_check_g77_math1, gfc_check_huge, gfc_check_i, + gfc_check_iand, gfc_check_ibclr, gfc_check_ibits, gfc_check_ibset, + gfc_check_idnint, gfc_check_ieor, gfc_check_index, gfc_check_int, + gfc_check_ior, gfc_check_ishft, gfc_check_ishftc, gfc_check_kind, + gfc_check_lbound, gfc_check_logical, min_max_args, + gfc_check_min_max_integer, gfc_check_min_max_real, + gfc_check_min_max_double, gfc_check_matmul, + gfc_check_minval_maxval, gfc_check_merge, gfc_check_nearest, + gfc_check_pack, gfc_check_precision, gfc_check_radix, + gfc_check_range, gfc_check_real, gfc_check_repeat, + gfc_check_scale, gfc_check_scan, gfc_check_selected_real_kind, + gfc_check_set_exponent): Fix formatting issues. + (gfc_check_size, gfc_check_sign): Alphabetize function order, + remove whitespace-only line. + (gfc_check_fstat, gfc_check_fstat_sub, gfc_check_stat, + gfc_check_stat_sub, gfc_check_transfer, gfc_check_transpose, + gfc_check_ubound, gfc_check_unpack, gfc_check_verify, gfc_check_x, + gfc_check_cpu_time, gfc_check_date_and_time, gfc_check_mvbits, + gfc_check_random_number, gfc_check_random_seed, + gfc_check_second_sub, gfc_check_system_clock, + gfc_check_getcwd_sub, gfc_check_exit, gfc_check_flush, + gfc_check_umask, gfc_check_umask_sub, gfc_check_unlink, + gfc_check_unlink_sub): Fix formatting issues. + +2005-01-08 Tobias Schl"uter + + * gfortran.h: Remove outdated comment. Don't include stdio.h + explicitly. + +2005-01-06 Tobias Schlueter + + * gfortranspec.c (lang_specific_driver): Change year to 2005 in + output of 'gfortran --version'. + +2005-01-03 Steven G. Kargl + + * arith.c: Add system.h; remove string.h + * decl.c: Ditto + * matchexp.c: Ditto + * parse.c: Ditto + * resolve.c: Ditto + * st.c: Ditto + * check.c: Remove stdlib.h and stdarg.h + * error.c: Remove stdlib.h, stdarg.h, stdio.h, string.h + * expr.c: Add system.h; remove stdarg.h, stdio.h, and string.h + * f95-lang.c: Add system.h; remove stdio.h + * interface.c: Add system.h; remove stdlib.h and string.h + * intrinsic.c: Remove stdarg.h, stdio.h, and string.h + * io.c: Remove string.h + * simplify.c: Ditto + * match.c: Remove stdarg.h and string.h + * misc.c: Update copyright; add system.h; remove stdlib.h, + string.h, and sys/stat.h + * module.c: Add system.h; remove string.h, stdio.h, errno.h, + unistd.h, and time.h + * option.c: Remove string.h and stdlib.h + * primary.c: Ditto + * scanner.c: Update copyright; add system.h; remove stdlib.h, + stdio.h, string.h, and strings.h + * symbol.c: Add system.h; remove stdlib.h, stdio.h, and string.h + * trans-array.c: Remove stdio.h and gmp.h + * trans-const.c: Ditto + * trans-expr.c: Ditto + * trans-io.c: Ditto + * trans-stmt.c: Ditto + * trans.c: Ditto + * trans-intrinsic.c: Remove stdio.h and string.h