OSDN Git Service

2004-07-04 Matthias Klose <doko@debian.org>
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
index 9eed0e9..922f5ee 100644 (file)
@@ -1,3 +1,659 @@
+2004-07-04  Matthias Klose  <doko@debian.org>
+
+       * Make-lang.in: Generate and install gfortran man page.
+       * invoke.texi: Remove extra '@c man end'.
+
+2004-07-04  Richard Henderson  <rth@redhat.com>
+
+       * f95-lang.c (gfc_mark_addressable): Don't put_var_into_stack.
+
+2004-07-04  Paul Brook  <paul@codesourcery.com>
+
+       * decl.c (gfc_match_implicit_range): Don't use typespec.
+       (gfc_match_implicit): Handle character selectors.
+       * gfortran.h (gfc_set_implicit): Remove prototype.
+       (gfc_add_new_implicit_range, gfc_merge_new_implicit): Update.
+       * parse.c (accept_statement): Don't call gfc_set_implicit.
+       * symbol.c (new_ts): Remove.
+       (gfc_set_implicit_none): Use same loop bounds as other functions.
+       (gfc_set_implicit): Remove.
+       (gfc_clear_new_implicit, gfc_add_new_implicit_range): Only set flags.
+       (gfc_merge_new_implicit): Combine with gfc_set_implicit.
+
+2004-06-30  Richard Henderson  <rth@redhat.com>
+
+       * match.c (var_element): Remove unused variable.
+
+       * trans-decl.c (gfc_generate_function_code): Don't set
+       x_whole_function_mode_p.
+       (gfc_generate_constructors): Likewise.
+
+2004-06-30  Richard Henderson  <rth@redhat.com>
+
+       * trans-decl.c (gfc_generate_function_code): Don't set
+       immediate_size_expand.
+       (gfc_generate_constructors): Likewise.
+
+2004-06-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
+
+       PR fortran/16161
+       * decl.c (gfc_match_type_spec): Rename second argument to
+       'implicit_flag', reverse meaning. Don't match_char_spec if
+       'implicit_flag' is set. Rename to ...
+       (match_type_spec): ... this.
+       (gfc_match_implicit_none, match_implicit_range): Move here
+       from match.c.
+       (gfc_match_implicit): Move here from match.c, try to
+       match_char_len if match_implicit_range doesn't succeed for
+       CHARACTER implicits. Call renamed fucntion match_type_spec.
+       (gfc_match_data_decl, match_prefix): Call renamed function
+       match_type_spec.
+       * match.c (gfc_match_implicit_none, match_implicit_range,
+       gfc_match_implicit): Move to decl.c.
+       * match.h (gfc_match_implicit_none, gfc_match_implicit):
+       Move protoypes to section 'decl.c'.
+       (gfc_match_type_spec): Remove prototype.
+
+2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
+
+       * decl.c, interface.c, symbol.c, trans-common.c: Add 2004 to 
+       copyright years.
+
+2004-06-29  Steven Bosscher  <stevenb@suse.de>
+
+       Make sure types in assignments are compatible.  Mostly mechanical.
+       * trans-const.h (gfc_index_one_node): New define.
+       * trans-array.c (gfc_trans_allocate_array_storage,
+       gfc_trans_allocate_temp_array, gfc_trans_array_constructor_subarray,
+       gfc_trans_array_constructor_value, gfc_trans_array_constructor,
+       gfc_conv_array_ubound, gfc_conv_array_ref,
+       gfc_trans_scalarized_loop_end, gfc_conv_section_startstride,
+       gfc_conv_ss_startstride, gfc_conv_loop_setup, gfc_array_init_size,
+       gfc_trans_array_bounds, gfc_trans_dummy_array_bias,
+       gfc_conv_expr_descriptor, gfc_trans_deferred_array): Use the correct
+       types in assignments, conversions and conditionals for expressions.
+       * trans-expr.c (gfc_conv_expr_present, gfc_conv_substring,
+       gfc_conv_unary_op, gfc_conv_cst_int_power, gfc_conv_string_tmp,
+       gfc_conv_function_call, gfc_trans_pointer_assignment,
+       gfc_trans_scalar_assign): Likewise.
+       * trans-intrinsic.c (build_fixbound_expr, gfc_conv_intrinsic_bound,
+       gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count,
+       gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_btest,
+       gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ishft,
+       gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_strcmp,
+       gfc_conv_allocated, gfc_conv_associated,
+       gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_trim): Likewise.
+       * trans-io.c (set_string): Likewise.
+       * trans-stmt.c (gfc_trans_do, gfc_trans_forall_loop,
+       gfc_do_allocate, generate_loop_for_temp_to_lhs,
+       generate_loop_for_rhs_to_temp, compute_inner_temp_size,
+       compute_overall_iter_number, gfc_trans_assign_need_temp,
+       gfc_trans_pointer_assign_need_temp, gfc_trans_forall_1,
+       gfc_evaluate_where_mask, gfc_trans_where_assign,
+       gfc_trans_where_2): Likewise.
+       * trans-types.c (gfc_get_character_type, gfc_build_array_type,
+       gfc_get_nodesc_array_type, gfc_get_array_type_bounds): Likewise.
+
+       * trans.c (gfc_add_modify_expr): Add sanity check that types
+       for the lhs and rhs are the same for scalar assignments.
+
+2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
+
+       * dump-parse-tree.c (show_common): New function.
+       (gfc_show_namespace): Show commons.
+
+2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
+       Andrew Vaught  <andyv@firstinter.net>
+
+       PR fortran/13249
+       PR fortran/15481
+       * decl.c (gfc_match_save): Adapt to new common structures,
+       don't allow saving USE-associated common.
+       * dump-parse-tree (gfc_show_attr): (saved_)common are not
+       symbol attributes any longer.
+       (gfc_show_symbol): Don't show old-style commons any longer.
+       (gfc_show_namespace): Adapt call to gfc_traverse_symtree to new
+       interface.
+       * gfortran.h (symbol_attribute): Remove common and saved_common
+       attributes.
+       (gfc_symbol): Remove common_head element.
+       (gfc_common_head): New struct.
+       (gfc_get_common_head): New macro.
+       (gfc_symtree): Add field 'common' to union.
+       (gfc_namespace): Add field 'common_root'; change type of field
+       'blank_common' to blank_common.
+       (gfc_add_data): New prototype.
+       (gfc_traverse_symtree): Expect a symtree as first argument
+       instead of namespace.
+       * match.c (gfc_get_common): New function.
+       (match_common_name): Change to take char * as argument, adapt,
+       fix bug with empty name.
+       (gfc_match_common): Adapt to new data structures. Disallow
+       redeclaration of USE-associated COMMON-block. Fix bug with
+       empty common.
+       (var_element): Adapt to new common structures.
+       * match.h (gfc_get_common): Declare.
+       * module.c: Add 2004 to copyright years, add commons to module
+       file layout description.
+       (ab_attribute, attr_bits, mio_symbol_attributes): Remove code
+       for removed attributes.
+       (mio_symbol): Adapt to new way of storing common relations.
+       (load_commons): New function.
+       (read_module): Skip common list on first pass, load_commons at
+       second.
+       (write_commons): New function.
+       (write_module): Call write_commons().
+       * symbol.c (gfc_add_saved_comon, gfc_add_common): Remove
+       functions related to removed attributes.
+       (gfc_add_data): New function.
+       (gfc_clear_attr): Don't set removed attributes.
+       (gfc_copy_attr): Don't copy removed attributes.
+       (traverse_symtree): Remove.
+       (gfc_traverse_symtree): Don't traverse symbol 
+       tree of the passed namespace, but require a symtree to be passed
+       instead. Unify with traverse_symtree.
+       (gfc_traverse_ns): Call gfc_traverse_symtree according to new
+       interface.
+       (save_symbol): Remove setting of removed attribute.
+       * trans-common.c (gfc_sym_mangled_common_id): Change to
+       take 'char *' argument instead of 'gfc_symbol'.
+       (build_common_decl, new_segment, translate_common): Adapt to new
+       data structures, add new
+       argument name.
+       (create_common): Adapt to new data structures, add new
+       argument name. Fix typo in intialization of derived types.
+       (finish_equivalences): Add second argument in call to
+       create_common.
+       (named_common): take 'gfc_symtree' instead of 'gfc_symbol'.
+       (gfc_trans_common): Adapt to new data structures.
+       * trans-decl.c (gfc_create_module_variables): Remove test for 
+       removed attribute.
+
+2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
+
+       * io.c: Add 2004 to copyright years.
+
+2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
+       Andrew Vaught  <andyv@firstinter.net>
+
+       * gfortran.h (gfc_gsymbol): New typedef.
+       (gfc_gsym_root): New variable.
+       (gfc_get_gsymbol, gfc_find_gsym): New prototypes.
+       * parse.c (global_used): New function.
+       (parse_block_data): Check for double empty BLOCK DATA,
+       use global symbol table.
+       (parse_module): Use global symbol table.
+       (add_global_procedure, add_global_program): New functions.
+       (gfc_parse_file): Use global symbol table.
+       * symbol.c (gfc_gsym_root): New variable.
+       (gfc_find_gsym, gsym_compare, gfc_get_gsymbol): New
+       functions.
+
+2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
+
+       * module.c (mio_gmp_real): Correct writing of negative numbers.
+
+2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
+
+       PR fortran/15963
+       * expr.c (check_intrinsic_op): Allow comparison of characters.
+       Make logic easier.
+
+2004-06-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
+       Andrew Vaught  <andyv@firstinter.net>
+
+       * decl.c (contained_procedure): New function.
+       (match_end): Verify correctness of END STATEMENT in
+       all cases.
+
+2004-06-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
+       Andrew Vaught  <andyv@firstinter.net>
+
+       PR fortran/15190
+       * decl.c (gfc_match_type_spec), io.c (match_io), parse.c
+       (decode_statement): Enforce required space in free-form.
+
+2004-06-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * f95-lang.c (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Deleted.
+       * trans-array.c (gfc_conv_descriptor_data): Add operand
+       for COMPONENT_REF.
+       (gfc_conv_descriptor_offset, gfc_conv_descriptor_dtype): Likewise.
+       (gfc_conv_descriptor_dimension, gfc_conv_descriptor_stride): Likewise.
+       (gfc_conv_descriptor_lbound, gfc_conv_descriptor_ubound): Likewise.
+       * trans-common.c (create_common): Likewise.
+       * trans-expr.c (gfc_conv_component_ref): Likewise.
+       * trans-io.c (set_parameter_value): Likewise.
+       (set_parameter_ref, set_string, set_flag, io_result): Likewise.
+       (transfer_expr): Likewise.
+       * trans-decl.c (gfc_trans_auto_character_variable):
+       Set up to get DECL_SIZE and DECL_SIZE_UNIT gimplified.
+       (gfc_gimplify_function): New function.
+       (gfc_generate_function-code): Properly handle nested functions.
+       * trans.c (gfc_build_array_ref): Add two new operands for ARRAY_REF.
+
+2004-06-22  Janne Blomqvist  <jblomqvi@cc.hut.fi>
+
+       PR fortran/15750
+       * io.c (gfc_match_inquire): Bugfix for iolength related stuff.
+       (gfc_resolve_inquire): Resolve the iolength tag.  Return
+       SUCCESS at end of function if no failure has occured.
+       * resolve.c (resolve_code): Resolve if iolength is encountered.
+       * trans-io.c: (ioparm_iolength, iocall_iolength,
+       iocall_iolength_done): New variables.
+       (last_dt): Add IOLENGTH.
+       (gfc_build_io_library_fndecls ): Set iolength related variables.
+       (gfc_trans_iolength): Implement.
+       (gfc_trans_dt_end): Treat iolength as a third form of data transfer.
+
+2004-06-21  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de
+
+       PR fortran/15511
+       * scanner.c (load_line): Don't truncate preprocessor lines.
+       Reformat error message.
+       (preprocessor_line): Issue warning in case of malformed
+       preprocessor line. 
+
+2004-06-21  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
+
+       * resolve.c (resolve_symbol): Add comment in function body.
+       (check_data_variable): Change type of mark to ar_type, adapt code
+       accordingly.
+
+2004-06-21  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
+
+       * array.c (gfc_insert_constructor): Avoid redundant call to
+       mpz_comp. Add 2004 to copyright years.
+       
+2004-06-21  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       * trans.h (stmtblock_t): Change has_scope to unsigned int.
+
+2004-06-20  Steven G. Kargl  <kargls@comcast.net>
+
+       * arith.c (gfc_range_check): correct complex underflow.
+
+2004-06-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
+
+       PR fortran/15962
+       * match.c (match_case_selector): Call gfc_match_init_expr
+       instead of gfc_match_expr.
+       * resolve.c (validate_case_label_expr): No need to check for
+       constant, since it wouldn't have been matched with the fix to
+       match.c.
+
+2004-06-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
+
+       PR fortran/15211
+       * trans-intrinsic.c (gfc_conv_intrinsic_len): Deal with arrays
+       of strings. 
+
+2004-06-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
+
+       PR fortran/15510
+       * trans-deecl.c (generate_local_decl): Do not issue warning for
+       unused variables if they're use associated.
+
+2004-06-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
+        Andrew Vaught <andyv@firstinter.net>
+
+       PR fortran/14928
+       * gfortran.h (gfc_check_f): Add new field f3ml.
+       * check.c (gfc_check_minloc_maxloc): Take argument list instead
+       of individual arguments, reorder if necessary.
+       * intrinsic.h (gfc_check_minloc_maxloc): ... adapt prototype.
+       * intrinsic.c (add_sym_3ml): New function.
+       (add_functions): Change to add_sym_3ml for MINLOC, MAXLOC.
+       (check_specific): Catch special case MINLOC, MAXLOC. 
+
+2004-06-14  Paul Brook  <paul@codesourcery.com>
+
+       * intrinsic.c (add_sym_2s): Use correct function types.
+
+2004-06-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
+
+       * Make-lang.in (F95_OBJS, F95_PARSER_OBJS): Alphabetize.  Move data.c
+       * data.c (gfc_get_section_index):  Remove dependency on trans.h.
+
+2004-06-12  Steven G. Kargl  <kargls@comcast.net>
+
+       * check.c (gfc_check_second_sub, gfc_check_irand, gfc_check_rand
+       gfc_check_srand, gfc_check_etime, gfc_check_etime_sub): New functions.
+       * gfortran.h (gfc_generic_isym_id): New symbols GFC_ISYM_ETIME,
+       GFC_ISYM_IRAND, GFC_ISYM_RAND, GFC_ISYM_SECOND.
+       * trans-intrinsic.c:  Use symbols.
+       * intrinsic.c (add_sym_2s): New function.
+       * intrinsic.c: Add etime, dtime, irand, rand, second, srand.
+       * intrinsic.h: Function prototypes.
+       * iresolve.c (gfc_resolve_etime_sub, gfc_resolve_second_sub 
+       gfc_resolve_srand):  New functions.
+
+2004-06-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
+
+       PR fortran/14957
+       * decl.c (gfc_match_end): Require END {SUBROUTINE|FUNCTION} for
+       contained procedure.
+       
+2004-06-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
+
+       PR fortran/12841
+       * interface.c (compare_parameter, compare_actual_formal): Don't
+       check types and array shapes for NULL()
+       * trans-expr.c (conv_function_call): No double indirection for
+       NULL() 
+
+2004-06-09  Toon Moene  <toon@moene.indiv.nluug.nl>
+
+       * trans-expr.c (gfc_conv_cst_int_power): Compute
+       x**(-n) by converting it to (1/x)**n instead of
+       1/x**n.
+
+2004-06-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
+
+       PR fortran/13372
+       * module.c (write_symbol, write_symtree): Don't write symbols
+       wrongly added to namespace.
+       * trans-decl.c (gfc_create_module_variable): Don't create a
+       backend decl for a symbol incorrectly added to namespace.
+
+2004-06-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
+
+       PR fortran/13201
+       * resolve.c (resolve_symbol): Verify that parameter array has an
+       explicit shape. Fix typos and coding style issues in surrounding
+       lines.
+
+2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
+
+       PR fortran/15478
+       * gfortran.texi: The documentation doesn't contain infomration on
+       how to report bugs, and shouldn't, so remove the line which
+       says it does.
+
+2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
+
+       * intrinsic.c (sort_actual): Keep track of type of missing 
+       arguments. (Missing from previous commit.)
+
+2004-06-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
+
+       * gfortran.h (gfc_actual_arglist): New field missing_arg_type.
+       * interface.c (compare_actual_formal): Keep type of omitted
+       optional arguments.
+       * trans-expr.c (gfc_conv_function_call): Add string length
+       argument for omitted string argument.
+
+2004-06-03  Paul Brook  <paul@codesourcery.com>
+
+       * trans.c (gfc_finish_block, gfc_add_expr_to_block): Build statement
+       lists instead of compound expr chains.
+       (gfc_trans_code): Annotate statement lists.
+
+2004-06-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
+
+       * trans-array.c: Fix spelling in comments.
+
+2004-06-02  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
+
+       PR fortran/15557
+       * data.c (assign_substring_data_value): New function.
+       (gfc_assign_data_value): Call the new function if we're dealing
+       with a substring LHS.
+
+2004-06-01  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
+
+       PR fortran/15477
+       * gfortran.h (GFC_VERSION): Remove.
+       * gfortran.texi (version-gfortran): Remove, replace by version-GCC
+       where used.
+
+2004-05-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
+
+       * trans-types.c: Fix spelling & layout in comments.
+
+2004-05-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
+
+       PR fortran/14067
+       * trans-const.c (gfc_conv_string_init): Allow variable string
+       length lower than initialization string length.
+
+2004-05-30  Paul Brook  <paul@codesourcery.com>
+
+       PR fortran/15620
+       * trans-decl.c (gfc_shadow_sym, gfc_restore_sym): New functions.
+       * trans-expr.c (gfc_trans_string_copy): New function.
+       (gfc_conv_statement_function): Use them.  Create temp vars.  Enforce
+       character lengths.
+       (gfc_conv_string_parameter): Use gfc_trans_string_copy.
+       * trans-stmt.c (gfc_trans_forall_1): Use gfc_{shadow,restore}_sym.
+       * trans.h (struct gfc_saved_var): Define.
+       (gfc_shadow_sym, gfc_restore_sym): Add prototypes.
+
+2004-05-30  Steven G. Kargl  <kargls@comcast.net>
+
+       * iresolve.c (gfc_resolve_random_number): Clean up conditional.
+
+2004-05-29  Steven G. Kargl  <kargls@comcast.net>
+
+       * simplify.c (gfc_simplify_log): Remove useless line of code.
+
+2004-05-29  Paul Brook  <paul@codesourcery.com>
+
+       * trans-common.c (find_equivalence): Find multiple rules.
+
+2004-05-27  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
+
+       * gfortran.h (gfc_current_locus, gfc_set_locus): Remove.
+       (gfc_current_locus): Declare new global variable.
+       * scanner.c (gfc_current_locus, gfc_set_locus): Remove.
+       (gfc_current_locus1): Rename ...
+       (gfc_current_locus): ... to this.
+       (gfc_at_eof, gfc_at_bol, gfc_at_eol, gfc_advance_line, next_char,
+       skip_fixed_comments, skip_free_comments, gfc_next_char_literal,
+       gfc_peek_char, gfc_gobble_whitespace, gfc_new_file): Use
+       gfc_current_locus instead of gfc_current_locus1, gfc_set_locus()
+       and gfc_current_locus(), respectively.
+       * array.c (match_subscript, gfc_match_array_ref, match_array_list,
+       match_array_cons_element, gfc_match_array_constructor):
+       Read/modify gfc_current_locus instead of calling gfc_set_locus()
+       and gfc_current_locus().
+       * decl.c (gfc_match_null, variable_decl, gfc_match_kind_spec,
+       match_attr_spec, gfc_match_function_decl, gfc_match_end,
+       attr_decl1, gfc_match_save): Likewise.
+       * error.c (error_print, gfc_internal_error): Likewise.
+       * expr.c (gfc_int_expr, gfc_default_logical_kind): Likewise.
+       * interface.c (gfc_add_interface): Likewise.
+       * io.c (gfc_match_format, match_dt_format, match_dt_element,
+       match_io_iterator, match_io): Likewise.
+       * match.c (gfc_match_space, gfc_match_eos,
+       gfc_match_small_literal_int, gfc_match_st_label,
+       gfc_match_strings, gfc_match_name, gfc_match_iterator,
+       gfc_match_char, gfc_match, gfc_match_assignment,
+       gfc_match_pointer_assignment, gfc_match_if, gfc_match_do,
+       gfc_match_nullify, gfc_match_call, match_implicit_range,
+       gfc_match_implicit, gfc_match_data, match_case_selector,
+       gfc_match_case, match_forall_iterator): Likewise.
+       * matchexp.c (gfc_match_defined_op_name, next_operator,
+       match_level_1, match_mult_operand, match_ext_mult_operand,
+       match_add_operand, match_ext_add_operand, match_level_2,
+       match_level_3, match_level_4, match_and_operand, match_or_operand,
+       match_equiv_operand, match_level_5, gfc_match_expr): Likewise.
+       * module.c (gfc_match_use, mio_array_ref, mio_expr): Likewise.
+       * parse.c (match_word, decode_statement, next_free, next_fixed,
+       add_statement, verify_st_order, parse_if_block, gfc_parse_file):
+       Likewise.
+       * primary.c (match_digits, match_integer_constant,
+       match_boz_constant, match_real_constant, match_substring,
+       next_string_char, match_charkind_name, match_string_constant,
+       match_logical_constant, match_const_complex_part,
+       match_complex_constant, match_actual_arg, match_keyword_arg,
+       gfc_match_actual_arglist, gfc_match_structure_constructor,
+       gfc_match_rvalue, gfc_match_variable): Likewise.
+       * st.c (gfc_get_code): Likewise.
+       * symbol.c (check_conflict, check_used, check_done,
+       duplicate_attr, add_flavor, gfc_add_procedure, gfc_add_intent,
+       gfc_add_access, gfc_add_explicit_interface, gfc_add_type,
+       gfc_add_component, gfc_reference_st_label, gfc_new_symbol): Likewise.
+
+2004-05-26  Roger Sayle  <roger@eyesopen.com>
+
+       * io.c (format_asterisk): Silence compiler warnings by correcting
+       the number of elements of a "locus" initializer.
+
+2004-05-25  Roger Sayle  <roger@eyesopen.com>
+
+       PR fortran/13912
+       * matchexp.c: Allow unary operators after arithmetic operators
+       as a GNU extension.
+       (match_ext_mult_operand, match_ext_add_operand): New functions.
+       (match_mult_operand): Tweak to call match_ext_mult_operand.
+       (match_add_operand): Tweak to call match_ext_mult_operand.
+       (match_level_2): Rearrange to call match_ext_add_operand.
+
+2004-05-25  Paul Brook  <paul@codesourcery.com>
+
+       * expr.c (check_inquiry): Remove bogus tests.
+
+2004-05-23  Paul Brook  <paul@codesourcery.com>
+
+       PR fortran/13773
+       * expr.c (restricted_args): Remove redundant checks/argument.
+       (external_spec_function): Update to match.
+       (restricted_intrinsic): Rewrite.
+
+2004-05-23  Paul Brook  <paul@codesourcery.com>
+       Victor Leikehman  <lei@haifasphere.co.il>
+
+       * gfortran.h (struct gfc_symbol): Add equiv_built.
+       * trans-common.c: Change int to HOST_WIDE_INT.  Capitalize error
+       messages.
+       (current_length): Remove.
+       (add_segments): New function.
+       (build_equiv_decl): Create initialized common blocks.
+       (build_common_decl): Always add decl to bindings.
+       (create_common): Create initializers.
+       (find_segment_info): Reformat to match coding conventions.
+       (new_condition): Use add_segments.
+       (add_condition, find_equivalence, add_equivalences): Move iteration
+       inside functions.  Only process each segment once.
+       (new_segment, finish_equivalences, translate_common): Simplify.
+
+2004-05-23  Steven G. Kargl  <kargls@comcast.net>
+
+       * check.c (gfc_check_random_seed): Issue for too many arguments.
+
+2004-05-22  Steven G. Kargl  <kargls@comcast.net>
+
+       * intrinsic.c (add_subroutines): Use add_sym_3s for random_seed.
+
+2004-05-22  Paul Brook  <paul@codesourcery.com>
+
+       * dump-parse-tree.c (gfc_show_equiv): New function.
+       (gfc_show_namespace): Use it.
+
+2004-05-22  Victor Leikehman  <lei@haifasphere.co.il>
+
+       PR fortran/13249
+       * symbol.c (gfc_add_common): Disable checks to work around other more
+       fundamental inadequacies.
+
+2004-05-22  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>
+
+       * trans-decl.c (gfc_get_extern_function_decl): Set DECL_IS_PURE
+       only for functions.
+       (gfc_build_function_decl): Likewise.
+
+2004-05-22  Steven G. Kargl  <kargls@comcast.net>
+
+       * check.c (gfc_check_system_clock): New function.
+       * intrinsic.c (add_sym_3s): New function.
+       (add_subroutines): Use it.
+       * intrinsic.h (gfc_check_system_clock, gfc_resolve_system_clock):
+       Add prototypes.
+       * iresolve.c (gfc_resolve_system_clock): New function.
+
+2004-05-22  Steven G. Kargl  <kargls@comcast.net>
+
+       * invoke.texi: Document -Wunderflow and spell check.
+       * lang.opt: Add Wunderflow.
+       * gfortran.h (gfc_option_t): Add warn_underflow option.
+       * options.c (gfc_init_options, set_Wall): Use it.
+       * primary.c (match_real_constant): Explicitly handle UNDERFLOW.
+       * arith.c (gfc_arith_uminus, gfc_arith_plus, gfc_arith_minus,
+       gfc_arith_times, gfc_arith_divide, gfc_arith_power, gfc_real2real,
+       gfc_real2complex, gfc_complex2real, gfc_complex2complex): Ditto.
+       * arith.c (common_logarithm): Fix typo in comment.
+
+2004-05-21  Roger Sayle  <roger@eyesopen.com>
+
+       * io.c (check_format): As a GNU extension, allow the comma after a
+       string literal to be optional in a format.  Use gfc_notify_std to
+       issue an error/warning as appropriate.
+
+2004-05-21  Roger Sayle  <roger@eyesopen.com>
+
+       * io.c (check_format): Use gfc_notify_std to determine whether to
+       issue an error/warning for omitting the digits from the X format.
+
+2004-05-20  Roger Sayle  <roger@eyesopen.com>
+
+       * io.c (check_format): Allow the number before the X format to
+       be optional when not -pedantic.
+
+2004-05-18  Feng Wang  <fengwang@nudt.edu.cn>
+       Paul Brook  <paul@codesourcery.com>
+
+       * f95-lang.c (gfc_init_builtin_functions): Use vold_list_node.
+       Create decls for __builtin_pow{,f}.
+       * gfortran.h (PREFIX_LEN): Define.
+       * trans-decl.c (gfor_fndecl_math_powi): Add.
+       (gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.
+       (gfc_build_intrinsic_function_decls): Create decls for powi.
+       * trans-expr.c (powi_table): Add.
+       (gfc_conv_integer_power): Remove.
+       (gfc_conv_powi): New function.
+       (gfc_conv_cst_int_power): New function.
+       (gfc_conv_power_op): Use new powi routines.
+       * trans.h (struct gfc_powdecl_list): Add.
+       (gfor_fndecl_math_powi): Add.
+       (gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.
+
+2004-05-18  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
+
+       * trans.c, trans-decl.c: Fix comment typos.
+
+2004-05-18  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
+
+       * trans-const.c (gfc_conv_mpf_to_tree): Fix typo.
+
+2004-05-18  Steve Kargl  <kargls@comcast.net>
+
+       * arith.c (gfc_int2complex): Fix incorrect range checking.
+
+2004-05-18  Paul Brook  <paul@codesourcery.com>
+
+       PR fortran/13930
+       * decl.c (add_init_expr_to_sym): Remove incorrect check.
+       (default_initializer): Move to expr.c.
+       (variable_decl): Don't assign default initializer to variables.
+       * expr.c (gfc_default_initializer): Move to here.
+       * gfortran.h (gfc_default_initializer): Add prototype.
+       * resolve.c (resolve_symbol): Check for illegal initializers.
+       Assign default initializer.
+
+2004-05-17  Steve Kargl  <kargls@comcast.net>
+
+       * arith.c (gfc_arith_power): Complex number raised to 0 power is 1.
+
+2004-05-17  Steve Kargl  <kargls@comcast.net>
+
+       * arith.c (gfc_real2complex): Range checking wrong part of complex
+        number. 
+       
+2004-05-16  Paul Brook  <paul@codesourcery.com>
+
+       * options.c (gfc_handle_module_path_options): Fix buffer overrun.
+
 2004-05-16  Paul Brook  <paul@codesourcery.com>
 
        * arith.c (gfc_range_check): Fix logic error.