From caf38560722a95700eae50a51a1adae6ce2458c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20Schl=C3=BCter?= Date: Wed, 2 Jan 2008 18:54:50 +0100 Subject: Rotate Fortran ChangeLogs. From-SVN: r131261 --- gcc/fortran/ChangeLog | 5770 -------------------------------------------- gcc/fortran/ChangeLog-2007 | 5770 ++++++++++++++++++++++++++++++++++++++++++++ libgfortran/ChangeLog | 2480 ------------------- libgfortran/ChangeLog-2007 | 2480 +++++++++++++++++++ 4 files changed, 8250 insertions(+), 8250 deletions(-) create mode 100644 gcc/fortran/ChangeLog-2007 create mode 100644 libgfortran/ChangeLog-2007 diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 8b92ad1..e69de29 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,5770 +0,0 @@ -2007-12-31 Paul Thomas - - PR fortran/34558 - * interface.c (gfc_compare_types): Prevent linked lists from - putting this function into an endless recursive loop. - -2007-12-26 Daniel Franke - - PR fortran/34532 - * gfortran.texi: Fixed section about implicit conversion of - logical and integer variables. - -2007-12-25 Tobias Burnus - - PR fortran/34514 - * decl.c (attr_decl1): Reject specifying the DIMENSION for - already initialized variable. - (do_parm): Reject PARAMETER for already initialized variable. - -2007-12-25 Daniel Franke - - PR fortran/34533 - * intrinsic.h (gfc_check_etime): Renamed to ... - (gfc_check_dtime_etime): ... this. - (gfc_check_etime_sub): Renamed to ... - (gfc_check_dtime_etime_sub): ... this. - (gfc_resolve_dtime_sub): New prototype. - * check.c (gfc_check_etime): Renamed to ... - (gfc_check_dtime_etime): ... this. - (gfc_check_etime_sub): Renamed to ... - (gfc_check_dtime_etime_sub): ... this. - * iresolve.c (gfc_resolve_dtime_sub): New implementation. - * intrinsic.c (add_functions): Removed alias from ETIME to DTIME, - added stand-alone intrinsic DTIME. - (add_subroutines): Adjusted check and resolve function names for - DTIME and ETIME. - * trans-intrinsic.c (gfc_conv_intrinsic_function): Added DTIME - to known functions in switch. - * intrinsic.texi (DTIME): Added paragraph about thread-safety, - fixed return value section. - (CPU_TIME): Clarified intent and added implementation notes. - -2007-12-23 Tobias Burnus - - PR fortran/34421 - * resolve.c (resolve_entries): Add standard error for functions - returning characters with different length. - -2007-12-23 Daniel Franke - - PR fortran/34536 - * matchexp.c (match_ext_mult_operand): Print warning for unary - operators following arithmetic ones by default. - (match_ext_add_operand): Likewise. - -2007-12-22 Daniel Franke - - PR fortran/34559 - * simplify.c (gfc_simplify_repeat): Added safeguard for empty - string literals. - -2007-12-22 Thomas Koenig - - PR fortran/34549 - * check.c (gfc_check_cshift): Add check that shift is - type INTEGER. - -2007-12-21 Jerry DeLisle - - PR fortran/34540 - * iresolve.c (gfc_resolve_cshift): Take optional dim path - only if the argument is an optional itself. - * iresolve.c (gfc_resolve_eoshift): Same. - -2007-12-21 Paul Thomas - - PR fortran/34438 - * trans-decl.c (gfc_finish_var_decl): Do not mark derived types - with default initializers as TREE_STATIC unless they are in the - main program scope. - (gfc_get_symbol_decl): Pass derived types with a default - initializer to gfc_defer_symbol_init. - (init_default_dt): Apply default initializer to a derived type. - (init_intent_out_dt): Call init_default_dt. - (gfc_trans_deferred_vars): Ditto. - - * module.c (read_module): Check sym->module is there before - using it in a string comparison. - ->>>>>>> .r131138 -2007-12-20 Tobias Burnus - - PR fortran/34482 - * gfortran.texi (BOZ): Document behavior for complex - numbers. - * target-memory.h (gfc_convert_boz): Update prototype. - * target-memory.c (gfc_convert_boz): Add error check - and convert BOZ to smallest possible bit size. - * resolve.c (resolve_ordinary_assign): Check return value. - * expr.c (gfc_check_assign): Ditto. - * simplify.c (simplify_cmplx, gfc_simplify_dble, - gfc_simplify_float, gfc_simplify_real): Ditto. - -2007-12-19 Jerry DeLisle - - PR fortran/34325 - * match.h: New function declaration. - * match.c (gfc_match_parens): New function to look for mismatched - parenthesis. (gfc_match_if): Use new function to catch missing '('. - -2007-12-19 Daniel Franke - - PR fortran/34495 - * expr.c (check_init_expr): Check whether variables with flavor - FL_PARAMETER do have a value assigned. Added error messages where - appropriate. - * simplify.c (gfc_simplify_transfer): Added check if the MOLD - argument is a constant if working with initialization - expressions. - -2007-12-17 Tobias Burnus - - * intrinsic.c (add_functions): Undo change; mark float and - sngl as STD_F77. - * intrinsic.texi (FLOAT, SNGL): Change standard to F77 and later. - * gfortran.texi (BOZ): Make note about FLOAT etc. clearer. - -2007-12-16 Tobias Burnus - - PR fortran/34495 - * intrinsic.c (add_functions): Mark float and sngl as STD_GNU. - (gfc_intrinsic_func_interface): Reject REAL, DBLE and CMPLX - in initialization expressions for -std=f95. - -2007-12-16 Thomas Koenig - - PR fortran/34305 - * resolve.c (compare_bound): If either of the types of - the arguments isn't INTEGER, return CMP_UNKNOWN. - -2007-12-16 Tobias Burnus - - PR fortran/34246 - * trans-types.c (gfc_init_types): Change build_type_variant - to build_qualified_type. - (gfc_sym_type): Return gfc_character1_type_node for - character-returning bind(C) functions. - * trans-expr.c (gfc_conv_function_call): Do not set - se->string_length for character-returning bind(c) functions. - (gfc_trans_string_copy,gfc_trans_scalar_assign): - Support also single characters. - -2007-12-16 Bernhard Fischer - - * errors.c (gfc_notify_std): As originally stated but improperly - changed, disregard warnings_are_errors for deciding which buffer - to use for warnings. - -2007-12-16 Paul Thomas - - PR fortran/31213 - PR fortran/33888 - PR fortran/33998 - * trans-array.c (gfc_trans_array_constructor_value): If the - iterator variable does not have a backend_decl, use a local - temporary. - (get_elemental_fcn_charlen): New function to map the character - length of an elemental function onto its actual arglist. - (gfc_conv_expr_descriptor): Call the above so that the size of - the temporary can be evaluated. - * trans-expr.c : Include arith.h and change prototype of - gfc_apply_interface_mapping_to_expr to return void. Change all - references to gfc_apply_interface_mapping_to_expr accordingly. - (gfc_free_interface_mapping): Free the 'expr' field. - (gfc_add_interface_mapping): Add an argument for the actual - argument expression. This is copied to the 'expr' field of the - mapping. Only stabilize the backend_decl if the se is present. - Copy the character length expression and only add it's backend - declaration if se is present. Return without working on the - backend declaration for the new symbol if se is not present. - (gfc_map_intrinsic_function) : To simplify intrinsics 'len', - 'size', 'ubound' and 'lbound' and then to map the result. - (gfc_map_fcn_formal_to_actual): Performs the formal to actual - mapping for the case of a function found in a specification - expression in the interface being mapped. - (gfc_apply_interface_mapping_to_ref): Remove seen_result and - all its references. Remove the inline simplification of LEN - and call gfc_map_intrinsic_function instead. Change the - order of mapping of the actual arguments and simplifying - intrinsic functions. Finally, if a function maps to an - actual argument, call gfc_map_fcn_formal_to_actual. - (gfc_conv_function_call): Add 'e' to the call to - gfc_add_interface_mapping. - * dump-parse-tree.c (gfc_show_symbol_n): New function for - diagnostic purposes. - * gfortran.h : Add prototype for gfc_show_symbol_n. - * trans.h : Add 'expr' field to gfc_add_interface_mapping. - Add 'expr' to prototype for gfc_show_symbol_n. - * resolve.c (resolve_generic_f0): Set specific function as - referenced. - -2007-12-14 Tobias Burnus - - PR fortran/34438 - * resolve.c (resolve_symbol): Do not emit public-variable- - of-private-derived-type error for non-module variables. - -2007-12-14 Tobias Burnus - - PR fortran/34398 - * expr.c (gfc_check_assign): Add range checks for assignments of BOZs. - * resolve.c (resolve_ordinary_assign): Ditto. - * arith.c (gfc_range_check): Fix return value for complex numbers. - -2007-12-14 Daniel Franke - - PR fortran/34324 - * module.c (parse_atom): Fixed parsing of modules files whose - lines are terminated by CRLF. - -2007-12-13 Anton Korobeynikov - - * trans-decl.c (gfc_build_builtin_function_decls): Correct decl - construction for select_string() and internal_unpack() - -2007-12-13 Duncan Sands - Anton Korobeynikov - - * trans-expr.c (gfc_conv_structure): Make sure record constructors - for static variables are marked constant. - -2007-12-12 Tobias Burnus - - PR fortran/34254 - * decl.c (match_char_kind): Support use-associated/imported - kind parameters. - (gfc_match_kind_spec): Support als BT_CHARACTER, when - re-scanning kind spec. - -2007-12-11 Aldy Hernandez - - * decl.c (add_global_entry): Make type unsigned. - -2007-12-11 Bernhard Fischer - - * decl.c (match_prefix): Make seen_type a boolean. - (add_global_entry): Cache type distinction. - * trans-decl.c: Whitespace cleanup. - -2007-12-10 Tobias Burnus - - PR fortran/34425 - * interface.c (get_expr_storage_size): Use signed integer when - obtaining the bounds. - -2007-12-09 Jakub Jelinek - - PR fortran/22244 - * trans.h (struct array_descr_info): Forward declaration. - (gfc_get_array_descr_info): New prototype. - (enum gfc_array_kind): New type. - (struct lang_type): Add akind field. - (GFC_TYPE_ARRAY_AKIND): Define. - * trans-types.c: Include dwarf2out.h. - (gfc_build_array_type): Add akind argument. Adjust - gfc_get_array_type_bounds call. - (gfc_get_nodesc_array_type): Include proper debug info even for - assumed-size arrays. - (gfc_get_array_type_bounds): Add akind argument, set - GFC_TYPE_ARRAY_AKIND to it. - (gfc_sym_type, gfc_get_derived_type): Adjust gfc_build_array_type - callers. - (gfc_get_array_descr_info): New function. - * trans-array.c (gfc_trans_create_temp_array, - gfc_conv_expr_descriptor): Adjust gfc_get_array_type_bounds - callers. - * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Likewise. - * trans-types.h (gfc_get_array_type_bounds): Adjust prototype. - * Make-lang.in (fortran/trans-types.o): Depend on dwarf2out.h. - * f95-lang.c (LANG_HOOKS_GET_ARRAY_DESCR_INFO): Define. - -2007-12-09 Paul Thomas - - PR fortran/32129 - * dump-parse-tree.c (gfc_show_expr_n): New function for - debugging. - * gfortran.h : Add prototype for gfc_show_expr_n. - * expr.c (simplify_constructor): Copy the constructor - expression and try to simplify that. If success, replace the - original. Otherwise discard the copy, keep going through - the structure and return success. - - PR fortran/31487 - * decl.c (build_struct): Pad out default initializers with - spaces to the component character length. - -2007-12-08 Tobias Burnus - - PR fortran/34342 - PR fortran/34345 - PR fortran/18026 - PR fortran/29471 - * gfortran.texi (BOZ literal constants): Improve documentation - and adapt for BOZ changes. - * Make-lang.ini (resolve.o): Add target-memory.h dependency. - * gfortran.h (gfc_expr): Add is_boz flag. - * expr.c: Include target-memory.h. - (gfc_check_assign): Support transferring BOZ for real/cmlx. - * resolve.c: Include target-memory.h - (resolve_ordinary_assign): Support transferring BOZ for real/cmlx. - * target-memory.c (gfc_convert_boz): New function. - * target-memory.c (gfc_convert_boz): Add prototype. - * primary.c (match_boz_constant): Set is_boz, enable F95 error - also without -pedantic, and allow for Fortran 2003 BOZ. - (match_real_constant): Fix comment. - * simplify.c (simplify_cmplx,gfc_simplify_dble,gfc_simplify_float, - gfc_simplify_real): Support Fortran 2003 BOZ. - -2007-12-08 Jakub Jelinek - - PR fortran/34359 - * gfortran.h (gfc_file): Remove sibling and down fields. - * scanner.c (file_changes, file_changes_cur, file_changes_count, - file_changes_allocated): New variables. - (add_file_change, report_file_change): New functions. - (change_file): Remove. - (gfc_start_source_files, gfc_end_source_files): Call - report_file_change instead of change_file. - (gfc_advance_line): Call report_file_change instead of change_file, - call it even if lb->file == lb->next->file. - (get_file): Revert last changes. - (preprocessor_line): Call add_file_change when entering or leaving - a file. - (load_file): Likewise. Set file_change[...].lb for all newly added - file changes. - -2007-12-06 Tobias Burnus - - PR fortran/34333 - * primary.c (match_boz_constant): Add gfc_notify_std diagnostics. - -2007-12-06 Paul Thomas - - PR fortran/34335 - * module.c (find_symbol): Do not return symtrees with unique - names, which shows that they are private. - -2007-12-05 Jakub Jelinek - - PR debug/33739 - * gfortran.h (gfc_file): Remove included_by field, add sibling and - down. - (gfc_start_source_files, gfc_end_source_files): New prototypes. - * parse.c (gfc_parse_file): Call gfc_start_source_files and - gfc_end_source_files instead of calling the debugging hooks directly. - * error.c (show_locus): Use up field instead of included_by. - * scanner.c (change_file, gfc_start_source_files, - gfc_end_source_files): New functions. - (gfc_advance_line): Call change_file instead of calling debug hooks - directly. - (get_file): Set up rather than included_by. Initialize down and - sibling. - (preprocessor_line, load_file): Don't set up field here. - -2007-12-05 Tobias Burnus - - PR fortran/34333 - * arith.h (gfc_compare_expr): Add operator argument, needed - for compare_real. - * arith.c (gfc_arith_init_1): Use mpfr_min instead of mpfr_cmp/set - to account for NaN. - (compare_real): New function, as mpfr_cmp but takes NaN into account. - (gfc_compare_expr): Use compare_real. - (compare_complex): Take NaN into account. - (gfc_arith_eq,gfc_arith_ne,gfc_arith_gt,gfc_arith_ge,gfc_arith_lt, - gfc_arith_le): Pass operator to gfc_compare_expr. - * resolve.c (compare_cases,resolve_select): Pass operator - to gfc_compare_expr. - * simplify.c (simplify_min_max): Take NaN into account. - -2007-12-04 Tobias Burnus - - PR fortran/34318 - * module.c (mio_gmp_real): Properly write NaN and Infinity. - -2007-12-02 Tobias Burnus - - PR fortran/34186 - * symbol.c (generate_isocbinding_symbol): Fix setting string length. - -2007-11-30 Tobias Burnus - - PR fortran/34133 - * match.h: Add bool allow_binding_name to gfc_match_bind_c. - * decl.c (match_attr_spec,gfc_match_bind_c_stmt,gfc_match_entry): - Adjust accordingly. - (gfc_match_bind_c): Add allow_binding_name argument, reject - binding name for dummy arguments. - (gfc_match_suffix,gfc_match_subroutine): Make use of - allow_binding_name. - -2007-11-30 Tobias Burnus - - PR fortran/34186 - * symbol.c (generate_isocbinding_symbol): Set string length. - * dump-parse-tree.c (gfc_show_attr): Show BIND(C) attribute. - * misc.c (gfc_basic_typename): Handle BT_VOID. - -2007-11-29 Steven G. Kargl - - PR fortran/34230 - * fortran/arith.c (gfc_check_real_range): Set intermediate values - to +-Inf and 0 when -fno-range-check is in effect. - * fortran/invoke.texi: Improve -fno-range-check description. - - PR fortran/34203 - * fortran/invoke.texi: Document the C escaped characters activated - by -fbackslash. - -2007-11-29 Tobias Burnus - - PR fortran/34248 - * trans-decl.c (generate_dependency_declarations): Check - for NULL pointers before accessing the string length. - -2007-11-29 Tobias Burnus - - PR fortran/34262 - * intrinsic.c (gfc_get_intrinsic_sub_symbol): Add comment. - (gfc_intrinsic_sub_interface): Copy elemental state if needed. - * iresolve.c (gfc_resolve_mvbits): Mark procedure as elemental. - -2007-11-28 Jakub Jelinek - - * trans-expr.c (gfc_trans_string_copy): Convert both dest and - src to void *. - - PR fortran/34247 - * trans-openmp.c (gfc_omp_privatize_by_reference): For REFERENCE_TYPE - pass by reference only PARM_DECLs or non-artificial decls. - -2007-11-27 Jerry DeLisle - - PR fortran/32928 - * decl.c (match_data_constant): Use gfc_match_init_expr to match the - array spec and set the initializer expression. - -2007-11-27 Jerry DeLisle - - PR fortran/34227 - * match.c (gfc_match_common): Add additional check for BLOCK DATA. - -2007-11-27 Paul Thomas - - PR fortran/29389 - *resolve.c (resolve_ordinary_assign): Use find_sym_in_expr to - test if a temporary should be written for a vector subscript - on the lhs. - - PR fortran/33850 - * restore.c (pure_stmt_function): Add prototype and new - function. Calls impure_stmt_fcn. - (pure_function): Call it. - (impure_stmt_fcn): New function. - - * expr.c (gfc_traverse_expr): Call *func for all expression - types, not just variables. Add traversal of character lengths, - iterators and component character lengths and arrayspecs. - (expr_set_symbols_referenced): Return false if not a variable. - * trans-stmt.c (forall_replace, forall_restore): Ditto. - * resolve.c (forall_index): Ditto. - (sym_in_expr): New function. - (find_sym_in_expr): Rewrite to traverse expression calling - sym_in_expr. - *trans-decl.c (expr_decls): New function. - (generate_expr_decls): Rewrite to traverse expression calling - expr_decls. - *match.c (check_stmt_fcn): New function. - (recursive_stmt_fcn): Rewrite to traverse expression calling - check_stmt_fcn. - -2007-11-27 Paul Thomas - - PR fortran/33541 - *interface.c (compare_actual_formal): Exclude assumed size - arrays from the possibility of scalar to array mapping. - * decl.c (get_proc_name): Fix whitespace problem. - - PR fortran/34231 - * gfortran.h : Add 'use_rename' bit to symbol_attribute. - * module.c : Add 'renamed' field to pointer_info.u.rsym. - (load_generic_interfaces): Add 'renamed' that is set after the - number_use_names is called. This is used to set the attribute - use_rename, which, in its turn identifies those symbols that - have not been renamed. - (load_needed): If pointer_info.u.rsym->renamed is set, then - set the use_rename attribute of the symbol. - (read_module): Correct an erroneous use of use_flag. Use the - renamed flag and the use_rename attribute to determine which - symbols are not renamed. - -2007-11-26 Steven G. Kargl - - PR fortran/34203 - * options.c: Change default behavior of backslash processing. - * invoke.texi: Update documentation. - -2007-11-25 Jerry DeLisle - - PR fortran/33152 - * decl.c (add_init_expr_to_sym): Remove error message. - * resolve.c (check_data_variable): Add new check for a data variable - that has an array spec, but no ref and issue an error. - * match.c (gfc_match_common): Remove error message. - -2007-11-25 Tobias Burnus - - PR fortran/34079 - * trans-types.c (gfc_return_by_reference, - gfc_get_function_type): Do not return result of - character-returning bind(C) functions as argument. - * trans-expr.c (gfc_conv_function_call): Ditto. - -2007-11-25 Jerry DeLisle - - PR fortran/34175 - * gfortran.texi: Document default forms assumed for various file - extensions. - -2007-11-25 Paul Thomas - - PR fortran/33499 - * decl.c (get_proc_name): If ENTRY statement occurs before type - specification, set the symbol untyped and ensure that it is in - the procedure namespace. - -2007-11-24 Paul Thomas - - PR fortran/33541 - * module.c (find_symtree_for_symbol): Move to new location. - (find_symbol): New function. - (load_generic_interfaces): Rework completely so that symtrees - have the local name and symbols have the use name. Renamed - generic interfaces exclude the use of the interface without an - ONLY clause (11.3.2). - (read_module): Implement 11.3.2 in the same way as for generic - interfaces. - -2007-11-23 Christopher D. Rickett - - * trans-common.c (build_common_decl): Fix the alignment for - BIND(C) common blocks. - -2007-11-23 Jerry DeLisle - - PR fortran/34209 - * iresolve.c (gfc_resolve_nearest): If sign variable kind does not match - kind of input variable, convert it to match. - - PR fortran/33317 - * trans.h: Modify prototype for gfc_conv_missing_dummy. - * trans-expr.c (gfc_conv_missing_dummy): Modify to pass an integer kind - parameter in. Set the type of the dummy to the kind given. - (gfc_conv_function_call): Pass representation.length to - gfc_conv_missing_dummy. - * iresolve.c (gfc_resolve_cshift): Determine the correct kind to use and - if appropriate set representation.length to this kind value. - (gfc_resolve_eoshift): Likewise. - * check.c (gfc_check_cshift): Enable dim_check to allow DIM as an - optional argument. (gfc_check_eoshift): Likewise. - * trans_intrinsic.c (gfc_conv_intrinsic_function_args): Update call to - gfc_conv_missing_dummy. - -2007-11-23 Tobias Burnus - - PR fortran/34187 - * module.c (load_needed): Ensure binding_label is not lost. - - * decl.c (set_binding_label,gfc_match_bind_c): Replace - strncpy by strcpy. - -2007-11-23 Tobias Burnus - Steven G. Kargl - - PR fortran/34192 - * simplify.c (gfc_simplify_nearest): Fix NEAREST for - subnormal numbers. - -2007-11-23 Aldy Hernandez - - * trans-expr.c (gfc_trans_string_copy): Use "void *" when building a - memset. - -2007-11-22 Tobias Burnus - - * primary.c (gfc_match_structure_constructor): Allow - constructor for types without components. - -2007-11-22 Tobias Burnus - - PR fortran/34079 - * trans-expr.c (gfc_conv_function_call): Do not append - string length arguments when calling bind(c) procedures. - * trans-decl.c (create_function_arglist): Do not append - string length arguments when declaring bind(c) procedures. - -2007-11-21 Francois-Xavier Coudert - - PR fortran/34083 - * resolve.c (resolve_structure_cons): Also check for zero rank. - -2007-11-19 Jerry DeLisle - - PR fortran/33317 - * trans-expr.c (gfc_conv_missing_dummy): Revert. - * iresolve.c (gfc_resolve_cshift): Revert. - (gfc_resolve_eoshift): Likewise. - * check.c (gfc_check_cshift): Revert. - (gfc_check_eoshift): Likewise. - -2007-11-19 Tobias Burnus - - PR fortran/34079 - * decl.c (gfc_match_entry): Support BIND(C). - (gfc_match_subroutine): Fix comment typo. - -2007-11-18 Jerry DeLisle - - PR fortran/33317 - * trans-expr.c (gfc_conv_missing_dummy): Set the type of the dummy - argument to default integer if flagged to do so. Fix typo in comment. - * resolve.c (gfc_resolve_dim_arg): Whitespace cleanup. - * iresolve.c (gfc_resolve_cshift): Do not convert type, mark attribute - for converting the DIM type appropriately in trans-expr.c. - (gfc_resolve_eoshift): Likewise. - * check.c (dim_check): Remove pre-existing dead code. - (gfc_check_cshift): Enable dim_check to allow DIM as an optional. - (gfc_check_eoshift): Likewise. - * trans_intrinsic.c (gfc_conv_intrinsic_function_args): Fix whitespace. - -2007-11-18 Paul Thomas - - PR fortran/31608 - * trans-array.c (gfc_conv_expr_descriptor): Remove exception - for indirect references in the call to gfc_trans_scalar_assign. - * trans-expr.c (gfc_conv_string_parameter): Instead of asserting - that the expression is not an indirect reference, cast it to a - pointer type of the length given by se->string_length. - -2007-11-18 Tobias Burnus - - PR fortran/34137 - * primary.c (match_variable): Reject non-result entry symbols. - * resolve.c (resolve_contained_fntype): Do not check entry master - functions. - -2007-11-17 Francois-Xavier Coudert - - * trans-types.c (gfc_init_types): Use wider buffer. - -2007-11-17 Francois-Xavier Coudert - - * trans-types.c (gfc_init_types): Use Fortran-90-style type - names, with kinds. - -2007-11-17 Tobias Burnus - - PR fortran/34133 - * decl.c (gfc_match_suffix,gfc_match_subroutine): Disallow - bind(c) attribute for internal procedures. - -2007-11-17 Francois-Xavier Coudert - - PR fortran/25252 - * interface.c (gfc_current_interface_head, - gfc_set_current_interface_head): New functions. - * decl.c (gfc_match_modproc): Move check for syntax error earlier. - On syntax error, restore previous state of the interface. - * gfortran.h (gfc_current_interface_head, - gfc_set_current_interface_head): New prototypes. - -2007-11-17 Francois-Xavier Coudert - - PR fortran/30285 - * module.c (struct written_common, written_commons): New structure. - (compare_written_commons, free_written_common, write_common_0): - New functions. - (write_common): Call recursive function write_common_0. - -2007-11-17 Francois-Xavier Coudert - - PR fortran/34108 - * io.c (check_format_string): Only check character expressions. - (match_dt_format): Return MATCH_ERROR if that is what - gfc_match_st_label said. - -2007-11-16 Francois-Xavier Coudert - - PR fortran/33957 - * expr.c (check_inquiry): Don't call gfc_error now. - -2007-11-16 Francois-Xavier Coudert - - PR fortran/33739 - PR fortran/34084 - * scanner.c (start_source_file, end_source_file, - exit_remaining_files, gfc_advance_line): Revert rev. 130016. - -2007-11-16 Paul Thomas - - PR fortran/34008 - * trans-stmt.c (gfc_conv_elemental_dependencies): Add check for - INTENT_INOUT as well as INTENT_OUT. - (gfc_trans_call): Remove redundant gcc_asserts in dependency - check. - -2007-11-16 Paul Thomas - - PR fortran/33986 - * trans-array.c (gfc_conv_array_parameter ): Allow allocatable - function results. - -2007-11-15 Tobias Burnus - - PR fortran/33917 - * decl.c (match_procedure_decl): Pre-resolve interface. - * resolve.c (resolve_symbol): Reject interfaces later - declared in procedure statements. - -2007-11-13 Jerry DeLisle - - PR fortran/33162 - * decl.c (match_procedure_decl): Remove TODO and allow intrinsics in - PROCEDURE declarations. Set attr.untyped to allow the interface to be - resolved later where the symbol type will be set. - * interface.c (compare_intr_interfaces): Remove static from pointer - declarations. Add type and kind checks for dummy function arguments. - (compare_actual_formal_intr): New function to compare an actual - argument with an intrinsic function. (gfc_procedures_use): Add check for - interface that points to an intrinsic function, use the new function. - * resolve.c (resolve_specific_f0): Resolve the intrinsic interface. - (resolve_specific_s0): Ditto. - -2007-11-13 Paul Thomas - - PR fortran/34080 - * iresolve.c (gfc_resolve_transfer): Do not try to convert - to a constant MOLD expression, if it is an assumed size - dummy. - -2007-11-10 Francois-Xavier Coudert - - * trans-common.c: Remove prototype for gfc_get_common. - -2007-11-10 Francois-Xavier Coudert - - PR fortran/33592 - * trans.c (gfc_call_realloc): Fix the logic and rename variables. - -2007-11-08 Francois-Xavier Coudert - - PR fortran/33739 - * scanner.c (start_source_file, end_source_file, - exit_remaining_files): New functions. - (gfc_advance_line): Use the new functions. - -2007-11-08 Francois-Xavier Coudert - - PR fortran/34028 - * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Use correct type. - -2007-11-08 Tobias Burnus - - PR fortran/33917 - * interface.c (check_sym_interfaces): Disallow PROCEDURE-declared - procedures for MODULE PROCEDURE. - * decl.c (match_procedure_in_interface): Do not mark as procedure. - -2007-11-03 Francois-Xavier Coudert - - PR fortran/33881 - * trans-array.c (gfc_conv_array_parameter): Evaluate - se->string_length instead of the expr->ts.cl->backend_decl. - -2007-11-03 Francois-Xavier Coudert - - * gfortran.h: Shorten comment. - * trans-types.c (gfc_get_function_type): Allow argument to have - flavor FL_PROGRAM. - * trans-decl.c (gfc_sym_mangled_function_id): Mangle main program - name into MAIN__. - (build_function_decl): Fix comment. - * parse.c (main_program_symbol): Give the main program its proper - name, if any. Set its flavor to FL_PROGRAM. - (gfc_parse_file): Likewise. - -2007-11-02 Francois-Xavier Coudert - - * intrinsic.texi (ALLOCATED): Fix typo. - -2007-10-31 Tobias Burnus - - PR fortran/33941 - * modules.c (intrinsics): Use only alphabetic names for - intrinsic operators. - -2007-10-31 Jerry DeLisle - - PR fortran/33162 - * interface.c (compare_intr_interfaces): New function to check intrinsic - function arguments against formal arguments. (compare_interfaces): Fix - logic in comparison of function and subroutine attributes. - (compare_parameter): Use new function for intrinsic as argument. - * resolve.c (resolve_actual_arglist): Allow an intrinsic without - function attribute to be checked further. Set function attribute if - intrinsic symbol is found, return FAILURE if not. - -2007-10-31 Paul Thomas - - PR fortran/33897 - * decl.c (gfc_match_entry): Do not make ENTRY name - global for contained procedures. - * parse.c (gfc_fixup_sibling_symbols): Fix code for - determining whether a procedure is external. - -2007-10-30 Francois-Xavier Coudert - - PR fortran/33596 - * trans-intrinsic.c (gfc_conv_intrinsic_isnan): Strip NOP_EXPR - from the result of build_call_expr. - -2007-10-29 Paul Thomas - - PR fortran/31217 - PR fortran/33811 - PR fortran/33686 - - * trans-array.c (gfc_conv_loop_setup): Send a complete type to - gfc_trans_create_temp_array if the temporary is character. - * trans-stmt.c (gfc_trans_assign_need_temp): Do likewise for - allocate_temp_for_forall_nest. - (forall_replace): New function. - (forall_replace_symtree): New function. - (forall_restore): New function. - (forall_restore_symtree): New function. - (forall_make_variable_temp): New function. - (check_forall_dependencies): New function. - (cleanup_forall_symtrees): New function. - gfc_trans_forall_1): Add and initialize pre and post blocks. - Call check_forall_dependencies to check for all dependencies - and either trigger second forall block to copy temporary or - copy lval, outside the forall construct and replace all - dependent references. After assignment clean-up and coalesce - the blocks at the end of the function. - * gfortran.h : Add prototypes for gfc_traverse_expr and - find_forall_index. - expr.c (gfc_traverse_expr): New function to traverse expression - and visit all subexpressions, under control of a logical flag, - a symbol and an integer pointer. The slave function is caller - defined and is only called on EXPR_VARIABLE. - (expr_set_symbols_referenced): Called by above to set symbols - referenced. - (gfc_expr_set_symbols_referenced): Rework of this function to - use two new functions above. - * resolve.c (find_forall_index): Rework with gfc_traverse_expr, - using forall_index. - (forall_index): New function used by previous. - * dependency.c (gfc_check_dependency): Use gfc_dep_resolver for - all references, not just REF_ARRAY. - (gfc_dep_resolver): Correct the logic for substrings so that - overlapping arrays are handled correctly. - -2007-10-28 Tobias Schlüter - - PR fortran/32147 - * module.c (write_symbol): Fix whitespace. - (write_symbol0): Walk symtree from left-to-right instead - breadth-first. - (write_symbol1): Similarly change walk of pointer info tree. - (write_module): Insert linebreak. - * symbol.c (gfc_traverse_symtree): Change to left-to-right order. - (traverse_ns): Likewise. - -2007-10-27 Jerry DeLisle - - PR fortran/31306 - * decl.c (char_len_param_value): Add check for conflicting attributes of - function argument. - -2007-10-27 Tobias Burnus - - PR fortran/33862 - * lang-specs.h: Support .ftn and .FTN extension, use CPP for .FOR. - * options.c (form_from_filename): Support .ftn extension. - * gfortran.texi: Document support of .for and .ftn file extension. - -2007-10-26 Jerry DeLisle - - PR fortran/33162 - * intrinsic.h: Add prototypes for four new functions, gfc_check_datan2, - gfc_check_dprod, gfc_check_fn_d, and gfc_check_x_yd. - * intrinsic.c (add_functions): Add double precision checks for dabs, - dacos, dacosh, dasin, dasinh, datan, datanh, datan2, dbesj0, dbesj1, - dbesy0, dbesy1, dcos, dcosh, ddim, derf, derfc, dexp, dgamma, - dlgama, dlog, dlog10, dmod, dsign, dsin, dsinh, dsqrt, dtan, and dtanh. - Add real check dprod. - * check.c (gfc_check_datan2): New function to check for double precision - argumants. (gfc_check_dprod, gfc_check_fn_d, and gfc_check_x_yd): Ditto. - -2007-10-26 Jerry DeLisle - - * invoke.texi: Fix typo in -fmax-errors=. - -2007-10-26 Francois-Xavier Coudert - - PR fortran/29784 - * gfortran.texi: Document that there is no logical/integer - conversion performed during I/O operations. - -2007-10-22 Jerry DeLisle - - PR fortran/33849 - * resolve.c (resolve_actual_arglist): Fix error message text. - -2007-10-22 Steven G. Kargl - - PR fortran/31244 - * gfortran.h (gfc_data_value): Change repeat from unsigned int - to mpz_t. - * decl.c(top_val_list): Remove msg variable. Use mpz_t for - repeat count. - * resolve.c (values): Change left from unsigned int to mpz_t. - (next_data_value): Change for mpz_t. - (check_data_variable): Change ??? to FIXME in a comment. Use - "mpz_t left". - (resolve_data ): Use "mpz_t left". - -2007-10-21 Paul Thomas - - PR fortran/33749 - * resolve.c (resolve_ordinary_assign): New function that takes - the code to resolve an assignment from resolve_code. In - addition, it makes a temporary of any vector index, on the - lhs, using gfc_get_parentheses. - (resolve_code): On EXEC_ASSIGN call the new function. - -2007-10-20 Tobias Burnus - - PR fortran/33818 - * resolve.c (resolve_variable): Check that symbol is in the same - namespace as the entry function. - -2007-10-20 Paul Thomas - FX Coudert - - PR fortran/31608 - * trans-array.c (gfc_conv_expr_descriptor): For all except - indirect references, use gfc_trans_scalar_assign instead of - gfc_add_modify_expr. - * iresolve.c (check_charlen_present): Separate creation of cl - if necessary and add code to treat an EXPR_ARRAY. - (gfc_resolve_char_achar): New function. - (gfc_resolve_achar, gfc_resolve_char): Call it. - (gfc_resolve_transfer): If the MOLD expression does not have a - character length expression, get it from a constant length. - -2007-10-19 Jerry DeLisle - - PR fortran/33544 - * simplify.c (gfc_simplify_transfer): Only warn for short transfer when - -Wsurprising is given. - * invoke.texi: Document revised behavior. - -2007-10-18 Jerry DeLisle - - PR fortran/33795 - * gfortran.texi: Document GFORTRAN_UNBUFFERED_PRECONNECTED - environment variable. Delete mention of environment variable - GFORTRAN_UNBUFFERED_n. - -2007-10-18 Paul Thomas - - PR fortran/33233 - * resolve.c (check_host_association): Check singly contained - namespaces and start search for symbol in current namespace. - -2007-10-18 Paul Thomas - Dominique d'Humieres - - PR fortran/33733 - * simplify.c (gfc_simplify_transfer): Return null if the source - expression is EXPR_FUNCTION. - -2007-10-17 Christopher D. Rickett - - PR fortran/33760 - * symbol.c (gen_special_c_interop_ptr): Remove code to create - constructor for c_null_ptr and c_null_funptr with value of 0. - * expr.c (check_init_expr): Prevent check on constructors for - iso_c_binding derived types. - * resolve.c (resolve_structure_cons): Verify that the user isn't - trying to invoke a structure constructor for one of the - iso_c_binding derived types. - -2007-10-15 Christopher D. Rickett - - PR fortran/32600 - * trans-expr.c (gfc_conv_function_call): Generate code to inline - c_associated. - * symbol.c (get_iso_c_sym): Preserve from_intmod and intmod_sym_id - attributes in the resolved symbol. - * resolve.c (gfc_iso_c_sub_interface): Remove dead code. - -2007-10-15 Jerry DeLisle - - PR fortran/33055 - * trans-io.c (create_dummy_iostat): New function to create a unique - dummy variable expression to use with IOSTAT. - (gfc_trans_inquire): Use the new function to pass unit number error info - to run-time library if a regular IOSTAT variable was not given. - -2007-10-14 Tobias Burnus - - PR fortran/33745 - * trans-array.c (gfc_conv_ss_startstride): Fix dimension check. - (gfc_trans_array_bound_check, gfc_conv_array_ref, - gfc_conv_ss_startstride): Simplify error message. - * resolve.c (check_dimension): Fix dimension-type switch; - improve error message. - -2007-10-13 Tobias Schlüter - Paul Thomas - - PR fortran/33254 - PR fortran/33727 - * trans-array.c (get_array_ctor_var_strlen): Check upper bound for - constness instead of lower bound. - (get_array_ctor_strlen): Add bounds-checking code. - -2007-10-12 Paul Thomas - - PR fortran/33542 - * resolve.c (resolve_actual_arglist): If the actual argument is - ambiguous, then there is an error. - -2007-10-12 Paul Thomas - - PR fortran/33664 - * expr.c (gfc_specification_expr): If a function is not - external, intrinsic or pure is an error. Set the symbol pure - to prevent repeat errors. - -2007-10-10 Francois-Xavier Coudert - - PR fortran/33636 - * expr.c (find_array_section): Check for constructor constantness. - -2007-10-08 Tobias Schlüter - - PR fortran/33689 - * resolve.c (gfc_resolve_expr): Fix indentation. - (resolve_fl_variable_derived): Rename argument. - (resolve_fl_variable): Fix case in message. Clarify logic. - Correctly simplify array bounds. - -2007-10-07 Thomas Koenig - - PR libfortran/33683 - * mathbuiltins.def (GAMMA): Change function name to - "tgamma" instad of "gamma". - -2007-10-07 Tobias Schlüter - - PR fortran/20851 - * expr.c (check_inquiry): Typo fix in error message. - (check_init_expr): Same * 3. - (check_restricted): Verify that no dummy arguments appear in - restricted expressions in ELEMENTAL procedures. - * resolve.c (resolve_fl_variable): Exchange order of checks to - avoid side-effect. - -2007-10-06 Jerry DeLisle - - PR fortran/33609 - * simplify.c (range_check): Return gfc_bad_expr if incoming expression - is NULL. - -2007-10-06 Tobias Schlüter - - * simplify.c (gfc_simplify_size): Fix typo. - -2007-10-06 Tobias Schlüter - - PR fortran/25076 - * resolve.c (gfc_find_forall_index): Move towards top, - renaming to ... - (find_forall_index): ... this. Add check for NULL expr. - (resolve_forall_iterators): Verify additional constraint. - (resolve_forall): Remove checks obsoleted by new code in - resolve_forall_iterators. - -2007-10-05 Francois-Xavier Coudert - - * gfortran.h (gfc_get_data_variable, gfc_get_data_value, - gfc_get_data): Move to decl.c. - (global_used): Rename into gfc_global_used. - (gfc_formalize_init_value, gfc_get_section_index, - gfc_assign_data_value, gfc_assign_data_value_range, - gfc_advance_section): Move to data.h. - (gfc_set_in_match_data): Remove. - * decl.c (gfc_get_data_variable, gfc_get_data_value, - gfc_get_data): Move here. - (gfc_set_in_match_data): Rename into set_in_match_data. - (gfc_match_data): Likewise. - (add_global_entry): Rename global_used into gfc_global_used. - * data.c: Include data.h. - * trans.h (gfc_todo_error): Remove. - * trans-array.c (gfc_trans_array_constructor, - gfc_conv_ss_startstride, gfc_conv_loop_setup): Change - gfc_todo_error into assertions. - * resolve.c (resolve_global_procedure): Rename global_used into - gfc_global_used. - * parse.c (gfc_global_used, parse_module, add_global_procedure, - add_global_program): Likewise. - * trans-intrinsic.c (gfc_walk_intrinsic_function): Rename - global_used into gfc_global_used. - * Make-lang.in: Add dependencies on fortran/data.h. - * data.h: New file. - -2007-10-04 Francois-Xavier Coudert - - PR fortran/33529 - * decl.c (match_char_kind): New function. - (match_char_spec): Use match_char_kind. - -2007-10-04 Francois-Xavier Coudert - - PR fortran/33502 - * scanner.c (gfc_advance_line): Call debug_hooks->end_source_file - and debug_hooks->start_source_file when appropriate, and set - dbg_emitted. - (gfc_define_undef_line): New function. - (load_file): Don't error out on #define and #undef lines. - * parse.c (next_statement): Call gfc_define_undef_line. - (gfc_parse_file): Call debug_hooks->start_source_file and - debug_hooks->end_source_file for the main source file if - required. - * gfortran.h (gfc_linebuf): Add dbg_emitted field. - (gfc_define_undef_line): New prototype. - -2007-10-04 Tobias Schlüter - - PR fortran/33626 - * resolve.c (resolve_operator): Always copy the type for - expressions in parentheses. - -2007-10-04 Paul Thomas - - PR fortran/33646 - PR fortran/33542 - * interface.c (check_interface1): Revert patch of 10-02. - -2007-10-03 Francois-Xavier Coudert - - PR fortran/26682 - * trans-decl.c (build_function_decl): Set "externally_visible" - attribute on the MAIN program decl. - -2007-10-03 Tobias Schlüter - - PR fortran/33198 - * resolve.c (has_default_initializer): Move to top. Make bool. - (resolve_common_blocks): Simplify logic. Add case for derived - type initialization. - (resolve_fl_variable_derived): Split out from ... - (resolve_fl_variable): ... here, while adapting to new h_d_i - interface. - -2007-10-03 Francois-Xavier Coudert - - PR fortran/26682 - * options.c (gfc_post_options): Issue an error when - -fwhole-program is used. - -2007-10-02 Paul Thomas - - PR fortran/33542 - * interface.c (check_interface1): Specific procedures are - always ambiguous if they have the same name. - -2007-10-02 Paul Thomas - - PR fortran/33566 - * primary.c (gfc_match_rvalue): Make all expressions with array - references to structure parameters into variable expressions. - -2007-10-02 Paul Thomas - - PR fortran/33554 - * trans-decl.c (init_intent_out_dt): New function. - (gfc_trans_deferred_vars): Remove the code for default - initialization of INTENT(OUT) derived types and put it - in the new function. Call it earlier than before, so - that array offsets and lower bounds are available. - -2007-10-02 Paul Thomas - - PR fortran/33550 - * decl.c (get_proc_name): Return rc if rc is non-zero; ie. if - the name is a reference to an ambiguous symbol. - -2007-10-02 Paul Thomas - - PR fortran/31154 - PR fortran/31229 - PR fortran/33334 - * decl.c : Declare gfc_function_kind_locs and - gfc_function_type_locus. - (gfc_match_kind_spec): Add second argument kind_expr_only. - Store locus before trying to match the expression. If the - current state corresponds to a function declaration and there - is no match to the expression, read to the parenthesis, return - kind = -1, dump the expression and return. - (gfc_match_type_spec): Renamed from match_type_spec and all - references changed. If an interface or an external function, - store the locus, set kind = -1 and return. Otherwise, if kind - is already = -1, use gfc_find_symbol to try to find a use - associated or imported type. - match.h : Prototype for gfc_match_type_spec. - * parse.c (match_deferred_characteristics): New function. - (parse_spec): If in a function, statement is USE or IMPORT - or DERIVED_DECL and the function kind=-1, call - match_deferred_characteristics. If kind=-1 at the end of the - specification expressions, this is an error. - * parse.h : Declare external gfc_function_kind_locs and - gfc_function_type_locus. - -2007-09-27 Kaveh R. Ghazi - - * module.c (mio_expr): Avoid -Wcast-qual warning. - -2007-09-27 Tobias Schlüter - - * arith.c (reduce_binary_aa): Fix capitalization. - * check.c (gfc_check_dot_product): Likewise. - (gfc_check_matmul): Likewise. - * expr.c (gfc_check_conformance): Likewise. - (gfc_check_assign): Likewise. - (gfc_default_initializer): Simplify logic. - * trans.c (gfc_msg_bounds): Make const. - (gfc_msg_fault): Likewise. - (gfc_msg_wrong_return): Likewise. - * trans.h: Add const to corresponding extern declarations. - -2007-09-27 Paul Thomas - - PR fortran/33568 - * trans-intrinsic.c (gfc_conv_intrinsic_aint): Allow for the - possibility of the optional KIND argument by making arg - an array, counting the number of arguments and using arg[0]. - -2007-09-26 Francois-Xavier Coudert - - PR fortran/30780 - * invoke.texi: Add note to -ffpe-trap option. Fix typos. - -2007-09-23 Tobias Schlüter - - PR fortran/33269 - * io.c (check_format_string): Move NULL and constant checks into - this function. - (check_io_constraints): Call gfc_simplify_expr() before calling - check_format_string(). Remove NULL and constant checks. - -2007-09-24 Francois-Xavier Coudert - - PR fortran/33538 - * scanner.c, parse.c, gfortran.h: Revert revision 128671. - -2007-09-23 Francois-Xavier Coudert - - PR fortran/33528 - * scanner.c (preprocessor_line): Call linemap_add when exiting - a file. - (gfc_new_file): Adjust debug code for USE_MAPPED_LOCATION. - -2007-09-22 Francois-Xavier Coudert - - PR fortran/33522 - * trans-types.c (gfc_get_desc_dim_type): Mark artificial - variables with TREE_NO_WARNING. - (gfc_get_array_descriptor_base): Likewise. - -2007-09-22 Paul Thomas - - PR fortran/33337 - PR fortran/33376 - * trans-decl.c (gfc_create_module_variable): Output - derived type parameters. - * arith.c (gfc_parentheses): Return the argument if - it is a constant expression. - * primary.c (gfc_match_rvalue): Remove the clearing of - the module name and the use_assoc attribute for derived - type parameter expressions. - -2007-09-22 Francois-Xavier Coudert - - PR fortran/33502 - * scanner.c (gfc_advance_line): Call debug_hooks->start_source_file - and debug_hooks->end_source_file when entering and exiting - included files. - (gfc_define_undef_line): New function. - (load_file): Ignore #define and #undef preprocessor lines - while reading source files. - * parse.c (next_statement): Handle #define and #undef - preprocessor lines. - (gfc_parse_file): Call debug_hooks->start_source_file and - debug_hooks->end_source_file for the main source file if - requested by the debug format. - * gfortran.h (gfc_define_undef_line): Add prototype. - -2007-09-22 Tobias Burnus - - PR fortran/33445 - * scanner.c (skip_free_comments): Warn if !$OMP& is used - if no OpenMP directive is to be continued. - -2007-09-21 Paul Thomas - - *trans-expr.c (gfc_trans_pointer_assignment): Convert array - descriptor for subref pointer assignements, rather than using - the loop info version. - -2007-09-21 Tobias Burnus - - PR fortran/33037 - * simplify.c (gfc_simplify_transfer): Warn if source size - is smaller than result size. - -2007-09-20 Asher Langton - - PR fortran/20441 - * gfortran.h : Add init_local_* enums and init_flag_* flags to - gfc_option_t. - * lang.opt: Add -finit-local-zero, -finit-real, -finit-integer, - -finit-character, and -finit-logical flags. - * invoke.texi: Document new options. - * resolve.c (build_init_assign): New function. - (apply_init_assign): Move part of function into build_init_assign. - (build_default_init_expr): Build local initializer (-finit-*). - (apply_default_init_local): Apply local initializer (-finit-*). - (resolve_fl_variable): Try to add local initializer (-finit-*). - * options.c (gfc_init_options, gfc_handle_option, - gfc_post_options): Handle -finit-local-zero, -finit-real, - -finit-integer, -finit-character, and -finit-logical flags. - -2007-09-20 Francois-Xavier Coudert - - PR fortran/33221 - * gfortran.h (symbol_attribute): Add zero_comp field. - * symbol.c (gfc_use_derived): Handle case of emtpy derived types. - * decl.c (gfc_match_data_decl): Likewise. - (gfc_match_derived_decl): Likewise. - * module.c (ab_attribute, attr_bits): Add AB_ZERO_COMP member. - (mio_symbol_attribute): Write and read AB_ZERO_COMP. - * resolve.c (resolve_symbol): Handle case of emtpy derived types. - * parse.c (parse_derived): Likewise. - -2007-09-20 Francois-Xavier Coudert - - PR fortran/33288 - * arith.c (reduce_unary, reduce_binary_ac, reduce_binary_ca, - reduce_binary_aa): Call ourselves recursively if an element of - the constructor is itself a constant array. - -2007-09-20 Tobias Schlüter - - * io.c (resolve_tag_format): New function using code split out - and simplified from ... - (resolve_tag): ... this function. Simplify logic. Unify - IOSTAT, IOLENGTH and SIZE handling. - -2007-09-20 Christopher D. Rickett - - PR fortran/33497 - * resolve.c (gfc_iso_c_func_interface): Use information from - subcomponent if applicable. - -2007-09-20 Tobias Burnus - - PR fortran/33325 - * intrinsic.text: Add documentation of the intrinsic modules. - * gfortran.texi: Link to intrinsic-modules section and to - the GOMP manual. - -2007-09-18 Francois-Xavier Coudert - - PR fortran/31119 - * trans-array.c (gfc_conv_ss_startstride): Only perform bounds - checking for optional args when they are present. - -2007-09-18 Tobias Burnus - - PR fortran/33231 - * resolve.c (resolve_elemental_actual): Check for conformance - of intent out/inout dummies. - -2007-09-17 Tobias Burnus - - PR fortran/33106 - * resolve.c (resolve_symbol): Reject public variable of - private derived-types for Fortran 95. - -2007-09-17 Tobias Burnus - - * resolve.c (resolve_fl_procedure): Allow private dummies - for Fortran 2003. - -2007-09-17 Francois-Xavier Coudert - - * trans-types.c (gfc_get_desc_dim_type): Do not to try - emit debug info. - (gfc_get_array_descriptor_base): Likewise. - (gfc_get_mixed_entry_union): Likewise - (gfc_get_derived_type): Set decl location for fields and - derived type itself. - -2007-09-16 Paul Thomas - - PR fortran/29396 - PR fortran/29606 - PR fortran/30625 - PR fortran/30871 - * trans.h : Add extra argument to gfc_build_array_ref. Rename - gfc_conv_aliased_arg to gfc_conv_subref_array_arg. Move - prototype of is_aliased_array to gfortran.h and rename it - gfc_is_subref_array. Add field span to lang_decl, add a new - decl lang specific flag accessed by GFC_DECL_SUBREF_ARRAY_P - and a new type flag GFC_DECL_SUBREF_ARRAY_P. - * trans.c (gfc_build_array_ref): Add the new argument, decl. - If this is a subreference array pointer, use the lang_decl - field 'span' to calculate the offset in bytes and use pointer - arithmetic to address the element. - * trans-array.c (gfc_conv_scalarized_array_ref, - gfc_conv_array_ref): Add the backend declaration as the third - field, if it is likely to be a subreference array pointer. - (gfc_conv_descriptor_dimension, gfc_trans_array_ctor_element, - gfc_trans_array_constructor_element, structure_alloc_comps, - gfc_conv_array_index_offset): For all other references to - gfc_build_array_ref, set the third argument to NULL. - (gfc_get_dataptr_offset): New function. - (gfc_conv_expr_descriptor): If the rhs of a pointer assignment - is a subreference array, then calculate the offset to the - subreference of the first element and set the descriptor data - pointer to this, using gfc_get_dataptr_offset. - trans-expr.c (gfc_get_expr_charlen): Use the expression for the - character length for a character subreference. - (gfc_conv_substring, gfc_conv_subref_array_arg): Add NULL for - third argument in call to gfc_build_array_ref. - (gfc_conv_aliased_arg): Rename to gfc_conv_subref_array_arg. - (is_aliased_array): Remove. - (gfc_conv_function_call): Change reference to is_aliased_array - to gfc_is_subref_array and reference to gfc_conv_aliased_arg to - gfc_conv_subref_array_arg. - (gfc_trans_pointer_assignment): Add the array element length to - the lang_decl 'span' field. - * gfortran.h : Add subref_array_pointer to symbol_attribute and - add the prototype for gfc_is_subref_array. - * trans-stmt.c : Add NULL for third argument in all references - to gfc_build_array_ref. - * expr.c (gfc_is_subref_array): Renamed is_aliased_array. - If this is a subreference array pointer, return true. - (gfc_check_pointer_assign): If the rhs is a subreference array, - set the lhs subreference_array_pointer attribute. - * trans-decl.c (gfc_get_symbol_decl): Allocate the lang_decl - field if the symbol is a subreference array pointer and set an - initial value of zero for the 'span' field. - * trans-io.c (set_internal_unit): Refer to is_subref_array and - gfc_conv_subref_array_arg. - (nml_get_addr_expr): Add NULL third argument to - gfc_build_array_ref. - (gfc_trans_transfer): Use the scalarizer for a subreference - array. - -2007-09-13 Thomas Koenig - - * iresolve.c (resolve_mask_arg): If a mask is an array - expression, convert it to kind=1. - -2007-09-13 Tobias Burnus - - PR fortran/33343 - * expr.c (gfc_check_conformance): Print ranks in the error message. - * resolve.c (resolve_elemental_actual): Check also conformance of - the actual arguments for elemental functions. - -2007-09-13 Tobias Burnus - - * symbol.c (gfc_add_elemental,gfc_add_pure,gfc_add_recursive): - Allow prefixes only to be specified once. - -2007-09-13 Tobias Burnus - - PR fortran/33412 - * symbol.c (check_conflict): Add conflict of ELEMENTAL with Bind(C). - -2007-09-12 Tobias Burnus - - PR fortran/33297 - * check.c (scalar_check): Move up in the file. - (kind_check): Call scalar_check. - (dim_check): If optional, do not call nonoptional_check; use - bool for optional. - (gfc_check_all_any,gfc_check_count,gfc_check_cshift,gfc_check_eoshift, - gfc_check_lbound,gfc_check_minloc_maxloc,check_reduction, - gfc_check_spread,gfc_check_ubound): Use true/false instead of 0/1 - for dim_check; honor changed meaning of optional. - (gfc_check_int): Replace checks by kind_check. - (gfc_check_size): Replace checks by dim_check. - -2007-09-12 Tobias Burnus - - PR fortran/33284 - PR fortran/33310 - * symbol.c (check_conflict): Add conflict between INTRINSIC and ENTRY - and between BIND(C) and PARAMETER. - -2007-09-12 Tobias Burnus - - * trans-expr.c (gfc_conv_initializer): Fix expr == NULL check. - -2007-09-12 Jan Hubicka - - * f95-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill. - -2007-09-12 Christopher D. Rickett - - PR fortran/33395 - * trans-expr.c (gfc_conv_initializer): Remove unnecessary test for - intmod_sym_id and use derived symbol to set new kind of C_NULL_PTR - and C_NULL_FUNPTR expressions. - -2007-09-11 Christopher D. Rickett - - PR fortran/33040 - * trans-expr.c (gfc_trans_structure_assign): Convert component - C_NULL_PTR and C_NULL_FUNPTR component initializers to (void *). - * trans-types.c (gfc_get_derived_type): Create a backend_decl for - the c_address field of C_PTR and C_FUNPTR and ensure initializer - is of proper type/kind for (void *). - -2007-09-11 Jan Hubicka - - * f95-lang.c (gfc_expand_function): Kill. - (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill. - -2007-09-08 Tobias Burnus - - PR fortran/31547 - * gfortran.texi: Document when CPP is called. - - * intrinsic.texi (IOR): Fix typos. - -2007-09-10 Paul Thomas - - PR fortran/33370 - * trans-expr.c (copyable_array_p): Add tests that expression - is a variable, that it has no subreferences and that it is a - full array. - (gfc_trans_assignment): Change conditions to suit modifications - to copyable_array_p. - -2007-09-06 Tom Tromey - - * scanner.c (get_file): Update. - (load_file): Update. - (gfc_next_char_literal): Use gfc_linebuf_linenum. - * f95-lang.c (gfc_init): Update. - * gfortran.h (gfc_linebuf_linenum): New macro. - -2007-09-05 Sandra Loosemore - - * trans-decl.c (build_entry_thunks): Use set_cfun. - (gfc_generate_function_code): Likewise. - -2007-09-05 Paul Thomas - - PR fortran/31564 - * primary.c (gfc_match_rvalue): Make expressions that refer - to derived type parameters that have array references into - variable expressions. Remove references to use association - from the symbol. - - PR fortran/33241 - * decl.c (add_init_expr_to_sym): Provide assumed character - length parameters with the length of the initialization - expression, if a constant, or that of the first element of - an array. - -2007-09-04 Janus Weil - Paul Thomas - - * decl.c (match_procedure_decl,match_procedure_in_interface, - gfc_match_procedure): Handle PROCEDURE statements. - * gfortran.h (struct gfc_symbol): New member "gfc_symbol *interface". - (enum gfc_statement): New element "ST_PROCEDURE". - (strcut symbol_attribute): New member "unsigned procedure". - * interface.c (check_interface0): Extended error checking. - * match.h: Add gfc_match_procedure prototype. - * parse.c (decode_statement,next_statement,gfc_ascii_statement, - parse_derived,parse_interface): Implement PROCEDURE statements. - * resolve.c (resolve_symbol): Ditto. - * symbol.c (check_conflict): Ditto. - (gfc_add_proc): New function for setting the procedure attribute. - (copy_formal_args): New function for copying formal argument lists. - -2007-09-03 Daniel Jacobowitz - - * Make-lang.in (gfortranspec.o): Remove SHLIB_MULTILIB. - -2007-09-03 Kaveh R. Ghazi - - * gfortranspec.c (lang_specific_driver): Use CONST_CAST2. - * options.c (gfc_post_options): Supply a TYPE for CONST_CAST. - * parse.c (parse_omp_structured_block): Likewise, - * st.c (gfc_free_statement): Likewise, - -2007-09-03 Francois-Xavier Coudert - - PR fortran/31675 - * libgfortran.h: New file. - * iso-fortran-env.def: Use macros in the new header instead of - hardcoded integer constants. - * Make-lang.in (F95_PARSER_OBJS, GFORTRAN_TRANS_DEPS): Add - fortran/libgfortran.h. - * gfortran.h (GFC_STD_*, GFC_FPE_*, options_convert, - ioerror_codes): Remove. - * trans.c (ERROR_ALLOCATION): Remove. - (gfc_call_malloc, gfc_allocate_with_status, - gfc_allocate_array_with_status): Use LIBERROR_ALLOCATION. - * trans-types.h (GFC_DTYPE_*): Remove. - * trans-decl.c (gfc_generate_function_code): Use - GFC_CONVERT_NATIVE instead of CONVERT_NATIVE. - * trans-io.c (set_parameter_value, set_parameter_ref): Use - LIBERROR_* macros instead of IOERROR_ macros. - * trans-intrinsic.c (gfc_conv_intrinsic_function): Use - LIBERROR_END and LIBERROR_EOR instead of hardcoded constants. - * options.c (gfc_init_options): Use GFC_CONVERT_NATIVE instead of - CONVERT_NATIVE. - (gfc_handle_option): Use GFC_CONVERT_* macros instead of CONVERT_*. - -2007-09-02 Steven G. Kargl - - * invoke.texi: Fix the -frange-checking option entry. - -2007-09-02 Roger Sayle - - * decl.c (match_string_p): New helper function to explicitly match - a string of characters. - (match_attr_spec): Remove no longer needed DECL_COLON from decl_types. - Delete decls array and peek_char. Rewrite decl attribute parser to - avoid calling gfc_match_strings. - * match.c (gfc_match_strings): Delete unused function. - * match.h (gfc_match_strings): Delete prototype. - -2007-09-02 Tobias Schlüuter - - * dump-parse-tree.c (show_char_const): New function. - (gfc_show_expr): Use it. - * expr.c (find_substring_ref): Rework to not keep characters - dangling beyond end of string. - -2007-09-02 H.J. Lu - - PR fortran/33276 - * array.c (expand_iterator): Initialize frame.prev. - -2007-08-31 Tobias Burnus - - PR fortran/33232 - * io.c (match_io): Also diagnose extra comma for READ. - -2007-08-31 Joseph Myers - - * intrinsic.texi (LGAMMA): Remove empty @cindex line. - -2007-08-31 Paul Thomas - - PR fortran/31879 - PR fortran/31197 - PR fortran/31258 - PR fortran/32703 - * gfortran.h : Add prototype for gfc_resolve_substring_charlen. - * resolve.c (gfc_resolve_substring_charlen): New function. - (resolve_ref): Call gfc_resolve_substring_charlen. - (gfc_resolve_character_operator): New function. - (gfc_resolve_expr): Call the new functions in cases where the - character length is missing. - * iresolve.c (cshift, eoshift, merge, pack, reshape, spread, - transpose, unpack): Call gfc_resolve_substring_charlen for - source expressions that are character and have a reference. - * trans.h (gfc_trans_init_string_length) Change name to - gfc_conv_string_length; modify references in trans-expr.c, - trans-array.c and trans-decl.c. - * trans-expr.c (gfc_trans_string_length): Handle case of no - backend_decl. - (gfc_conv_aliased_arg): Remove code for treating substrings - and replace with call to gfc_trans_string_length. - * trans-array.c (gfc_conv_expr_descriptor): Remove code for - treating strings and call gfc_trans_string_length instead. - -2007-08-30 Tobias Burnus - - PR fortran/33228 - * interface.c (check_interface0): Improve error for external procs. - (check_sym_interfaces): Fix checking of module procedures. - -2007-08-29 Francois-Xavier Coudert - - PR fortran/32989 - * iresolve.c (gfc_resolve_getarg): Handle non-default integer - kinds. - * check.c (gfc_check_getarg): New function - * intrinsic.h: Add prototype for gfc_check_getarg. - * intrinsic.c (add_subroutines): Add reference to gfc_check_getarg. - * intrinsic.texi (GETARG): Adjust documentation. - -2007-08-29 Francois-Xavier Coudert - Tobias Burnus - - PR fortran/33105 - * intrinsic.c (add_functions): Add IS_IOSTAT_END and - IS_IOSTAT_EOR intrinsics. - * gfortran.h (gfc_isym_id): Add GFC_ISYM_IS_IOSTAT_END and - GFC_ISYM_IS_IOSTAT_EOR. - * trans-intrinsic.c (gfc_conv_has_intvalue): New function. - (gfc_conv_intrinsic_function): Call gfc_conv_has_intvalue for - GFC_ISYM_IS_IOSTAT_END and GFC_ISYM_IS_IOSTAT_EOR. - * intrinsic.texi: Add IS_IOSTAT_END and IS_IOSTAT_EOR. - -2007-08-28 Christopher D. Rickett - - PR fortran/33215 - * decl.c (build_sym): Pass number of identifiers on line to - set_binding_label. - (set_binding_label): Verify that only one identifier given if - NAME= specified, even if the given binding label has zero length. - (gfc_match_bind_c): Remove declaration for has_name_equals because - it hides the static global one that is needed. - -2007-08-29 Francois-Xavier Coudert - - * trans-array.c (gfc_grow_array): Use gfc_call_realloc. - (gfc_array_allocate): Use gfc_allocate_with_status and - gfc_allocate_array_with_status. - (gfc_array_deallocate): Use gfc_deallocate_with_status. - (gfc_trans_dealloc_allocated): Use gfc_deallocate_with_status. - * trans-stmt.c (gfc_trans_allocate): Use gfc_allocate_with_status. - (gfc_trans_deallocate): Use gfc_deallocate_with_status. - * trans.c (gfc_allocate_with_status, gfc_allocate_array_with_status, - gfc_deallocate_with_status, gfc_call_realloc): New functions. - * trans.h (gfc_allocate_with_status, gfc_allocate_array_with_status, - gfc_deallocate_with_status, gfc_call_realloc): New prototypes. - (gfor_fndecl_internal_realloc, gfor_fndecl_allocate, - gfor_fndecl_allocate_array, gfor_fndecl_deallocate): Remove. - * f95-lang.c (gfc_init_builtin_functions): Create decl for - BUILT_IN_REALLOC. - * trans-decl.c (gfor_fndecl_internal_realloc, - gfor_fndecl_allocate, gfor_fndecl_allocate_array, - gfor_fndecl_deallocate): Remove function decls. - (gfc_build_builtin_function_decls): Likewise. - -2007-08-28 Jerry DeLisle - - PR fortran/33055 - Revert previous patch. - -2007-08-28 Jakub Jelinek - - PR fortran/22244 - * Make-lang.in (fortran/trans-types.o): Depend on $(FLAGS_H). - * trans-types.c: Include flags.h. - (gfc_get_nodesc_array_type): Add TYPE_DECL TYPE_NAME with - correct bounds and dimensions for packed arrays. - -2007-08-27 Tobias Burnus - - * simplify.c (gfc_simplify_lgamma): Fix mpfr_lgamma call. - -2007-08-26 Jerry DeLisle - - PR fortran/33055 - * trans-io.c (create_dummy_iostat): New function to create a unique - dummy variable expression to use with IOSTAT. - (gfc_trans_inquire): Use the new function to pass unit number error info - to run-time library if a regular IOSTAT variable was not given. - -2007-08-26 H.J. Lu - - * gfortran.h (gfc_isym_id): Add GFC_ISYM_GAMMA and - GFC_ISYM_LGAMMA. - -2007-08-26 Asher Langton - Tobias Burnus - - * gfortran.h (gfc_option_t): Add flag_recursive. - * lang.opt: Add -frecursive option and update -fopenmp. - * invoke.texi (-frecursive): Document new option. - (-fopenmp,-fno-automatic,-fmax-stack-var-size): Update. - * options.c (gfc_init_options, gfc_post_options, - gfc_handle_option): Add -frecursive and modify -fopenmp. - (gfc_post_options): Add warning for conflicting flags. - -2007-08-26 Tobias Burnus - - PR fortran/31298 - * module.c (mio_symbol_ref,mio_interface_rest): Return pointer_info. - (load_operator_interfaces): Support multible loading of an operator. - -2007-08-26 Tobias Burnus - - PR fortran/32985 - * match.c (gfc_match_common): Remove SEQUENCE diagnostics. - * resolve.c (resolve_common_blocks): Add SEQUENCE diagnostics; - fix walking through the tree. - -2007-08-26 Tobias Burnus - - PR fortran/32980 - * intrinsic.h (gfc_simplify_gamma,gfc_simplify_lgamma, - gfc_resolve_gamma,gfc_resolve_lgamma): New function declations. - * mathbuiltins.def: Define GAMMA and LGAMMA. - * intrinsic.c (add_functions): Add GAMMA, DGAMMA, LGAMMA, ALGAMA - and DLGAMA. - * simplify.c (gfc_simplify_gamma,gfc_simplify_lgamma): New functions. - * iresolve.c (gfc_resolve_gamma,gfc_resolve_lgamma): New functions. - * intrinsic.texi: Add documentation for GAMMA and LGAMMA. - -2007-08-26 Tobias Burnus - - PR fortran/33188 - * parse.c (parse_derived): Support empty derived type - definitions for Fortran 2003. - -2007-08-25 Kaveh R. Ghazi - - * trans-openmp.c (gfc_omp_privatize_by_reference): Constify. - * trans.h (gfc_omp_privatize_by_reference): Likewise. - -2007-08-24 Tobias Burnus - - PR fortran/33178 - * intrinsic.c (gfc_intrinsic_func_interface): Fix initialization - expression check. - -2007-08-24 Thomas Koenig - - PR fortran/32972 - * iresolve.c: Don't convert array masks. - -2007-08-24 Tobias Burnus - - PR fortran/33139 - * trans-array.c (gfc_conv_expr_descriptor): Copy bounds for - whole-array pointer assignments. - -2007-08-23 Jakub Jelinek - - * decl.c (variable_decl): Don't share charlen structs if - length == NULL. - * trans-decl.c (create_function_arglist): Assert - f->sym->ts.cl->backend_decl is NULL instead of unsharing - charlen struct here. - -2007-08-23 Francois-Xavier Coudert - - PR fortran/33095 - * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Remove - runtime error checking. - -2007-08-22 Roger Sayle - Tobias Schlüter - - * match.c (intrinsic_operators): Delete. - (gfc_match_intrinsic_op): Rewrite matcher to avoid calling - gfc_match_strings. - -2007-08-22 Christopher D. Rickett - - PR fortran/33020 - * resolve.c (gfc_iso_c_sub_interface): Remove setting of type and - kind for optional SHAPE parameter of C_F_POINTER. - -2007-08-22 Janus Weil - - * decl.c (match_attr_spec): Pass on errors from gfc_match_bind_c. - (gfc_match_bind_c): Bugfix in check for NAME= with abstract interfaces. - (gfc_match_mopdproc): Bugfix to reject module procedures in - abstract interfaces. - -2007-08-22 Kai Tietz - - * f95-lang.c: (gfc_init_decl_processing): Choose sizetype by using - Pmode. - -2007-08-21 Paul Brook - Nathan Sidwell - Mark Mitchell - Joseph Myers - - * gfortranspec.c (lang_specific_driver): Use pkgversion_string. - * Make-lang.in (gfortran.pod): Define BUGURL. - * invoke.texi: Use BUGURL for bug-reporting instructions. - -2007-08-19 Roger Sayle - - * match.c (intrinsic_operators): Make static. - (gfc_op2string): New function for converting a gfc_intrinsic_op to - to a "const char*", replacing the macro of the same name. - * gfortran.h (intrinsic_operators): Delete prototype. - (gfc_op2string): Replace macro with function prototype. - -2007-08-18 Tobias Burnus - - * gfortran.h (gfc_is_intrinsic_typename): Add declaration. - * symbol.c (gfc_is_intrinsic_typename): New function. - * parse.c (decode_statement): Check for space in ABSTRACT INTERFACE. - (parse_interface): Use gfc_is_intrinsic_typename. - * decl.c (gfc_match_derived_decl): Ditto. - * module.c (gfc_match_use): Use gcc_unreachable() for - INTERFACE_ABSTRACT in switch(). - -2007-08-18 Roger Sayle - - * primary.c (match_logical_constant_string): New function to match - a ".true." or a ".false.". - (match_logical_constant): Use it instead of gfc_match_strings. - -2007-08-18 Paul Thomas - Janus Weil - - * interface.c (gfc_match_interface,gfc_match_abstract_interface, - gfc_match_end_interface,gfc_add_interface): Add abstract interface. - * dump-parse-tree.c (gfc_show_attr): Ditto. - * gfortran.h (interface_type,symbol_attribute): Ditto. - * module.c (gfc_match_use,ab_attribute,attr_bits, - mio_symbol_attribute): Ditto. - * resolve.c (resolve_function): Ditto. - * match.h: Ditto. - * parse.c (decode_statement): Ditto. - (parse_interface): Ditto, check for C1203 (name of abstract interface - cannot be the same as an intrinsic type). - * decl.c (gfc_match_bind_c): Check for NAME= with abstract interfaces. - (access_attr_decl): Handle Abstract interfaces. - -2007-08-18 Paul Thomas - - PR fortran/32881 - * expr.c (gfc_check_pointer_assign): If the rhs is the - initialization expression for the rhs, there is no error. - -2007-08-18 Paul Thomas - - PR fortran/32875 - * trans-array.c (get_array_ctor_strlen): Set the character - length of a zero length array to zero. - -2007-08-16 Tobias Burnus - - PR fortran/33072 - * module.c (gfc_match_use): Mark user operators as such. - (find_use_name_n): Distinguish between operators and other symbols. - (find_use_name,number_use_names,mio_namelist, - load_operator_interfaces,load_generic_interfaces,read_module, - write_generic): Update find_use_name_n calls. - -2007-08-15 Francois-Xavier Coudert - - PR fortran/29459 - * trans.c (gfc_create_var_np): Do not emit warnings for - anonymous variables. - -2007-08-15 Francois-Xavier Coudert - - PR fortran/33066 - * decl.c (gfc_get_type_attr_spec): Fix whitespace. - (gfc_match_derived_decl): Fix logic. - -2007-08-14 Francois-Xavier Coudert - - PR fortran/33073 - * trans-intrinsic.c (build_fixbound_expr): Convert to result type - in all cases. - -2007-08-14 Francois-Xavier Coudert - - PR fortran/32594 - * trans-expr.c (gfc_conv_substring_expr): Only call - gfc_conv_substring if expr->ref is not NULL. - * expr.c (gfc_is_constant_expr): If e->ref is NULL, the substring - expression might be a constant. - (gfc_simplify_expr): Handle missing start and end, as well as - missing ref. - -2007-08-13 Paul Thomas - - PR fortran/32926 - * match.c (gfc_match_call): Do not create a new symtree in the - case where the existing symbol is external and not referenced. - -2007-08-13 Paul Thomas - - PR fortran/32827 - * decl.c (variable_decl): Check for an imported symbol - by looking for its symtree and testing for the imported - attribute. - (gfc_match_import): Remove change of symbol's namespace - and set the attribute imported instead. - * symbol.c (gfc_get_sym_tree): It is not an error if a - symbol is imported. - * gfortran.h : Add the 'imported' to symbol_attribute. - -2007-08-13 Paul Thomas - - PR fortran/32962 - * trans-array.c (gfc_conv_array_transpose): Set the offset - of the destination to zero if the loop is zero based. - -2007-08-12 Francois-Xavier Coudert - - PR fortran/29600 - * intrinsic.c (add_functions): Add optional KIND argument to ACHAR. - * iresolve.c (gfc_resolve_achar): Handle the KIND argument. - * check.c (gfc_check_achar): Check for the optional KIND argument. - * simplify.c (gfc_simplify_achar): Use KIND argument. - * intrinsic.h (gfc_check_achar, gfc_simplify_achar, - gfc_resolve_achar): Adjust prototypes. - -2007-08-12 Francois-Xavier Coudert - - PR fortran/30964 - PR fortran/33054 - * trans-expr.c (gfc_conv_function_call): When no formal argument - list is available, we still substitute missing optional arguments. - * check.c (gfc_check_random_seed): Correct the check on the - number of arguments to RANDOM_SEED. - * intrinsic.c (add_subroutines): Add a resolution function to - RANDOM_SEED. - * iresolve.c (gfc_resolve_random_seed): New function. - * intrinsic.h (gfc_resolve_random_seed): New prototype. - -2007-08-12 Francois-Xavier Coudert - - PR fortran/32860 - * error.c (error_uinteger): New function. - (error_integer): Call error_uinteger. - (error_print): Handle %u, %lu, %li and %ld format specifiers. - * interface.c (compare_actual_formal): Use the new %lu specifier. - -2007-08-12 Francois-Xavier Coudert - - PR fortran/31629 - * lang.opt (-fmodule-private): New option. - * gfortran.h (gfc_option_t): Add flag_module_private member. - * invoke.texi (-fmodule-private): Document the new option. - * module.c (gfc_check_access): Allow the -fmodule-private option - to modify the default behaviour. - * options.c (gfc_init_options): Initialize flag_module_private. - (gfc_handle_option): Handle -fmodule-private. - -2007-08-12 Francois-Xavier Coudert - - PR fortran/29600 - * intrinsic.c (add_functions): Add KIND arguments to COUNT, - IACHAR, ICHAR, INDEX, LBOUND, LEN, LEN_TRIM, SCAN, SIZE, UBOUND - and VERIFY. - * iresolve.c (gfc_resolve_count): Add kind argument. - (gfc_resolve_iachar): New function. - (gfc_resolve_ichar): Add kind argument. - (gfc_resolve_index_func): Likewise. - (gfc_resolve_lbound): Likewise. - (gfc_resolve_len): Likewise. - (gfc_resolve_len_trim): Likewise. - (gfc_resolve_scan): Likewise. - (gfc_resolve_size): New function. - (gfc_resolve_ubound): Add kind argument. - (gfc_resolve_verify): Likewise. - * trans-decl.c (gfc_get_extern_function_decl): Allow specific - intrinsics to have 4 arguments. - * check.c (gfc_check_count): Add kind argument. - (gfc_check_ichar_iachar): Likewise. - (gfc_check_index): Likewise. - (gfc_check_lbound): Likewise. - (gfc_check_len_lentrim): New function. - (gfc_check_scan): Add kind argument. - (gfc_check_size): Likewise. - (gfc_check_ubound): Likewise. - (gfc_check_verify): Likewise. - * intrinsic.texi: Update documentation for COUNT, IACHAR, ICHAR, - INDEX, LBOUND, LEN, LEN_TRIM, SCAN, SIZE, UBOUND and VERIFY. - * simplify.c (get_kind): Whitespace fix. - (int_expr_with_kind): New function. - (gfc_simplify_iachar): Add kind argument. - (gfc_simplify_iachar): Likewise. - (gfc_simplify_ichar): Likewise. - (gfc_simplify_index): Likewise. - (simplify_bound_dim): Likewise. - (simplify_bound): Likewise. - (gfc_simplify_lbound): Likewise. - (gfc_simplify_len): Likewise. - (gfc_simplify_len_trim): Likewise. - (gfc_simplify_scan): Likewise. - (gfc_simplify_shape): Pass NULL as kind argument to gfc_simplify_size. - (gfc_simplify_size): Add kind argument. - (gfc_simplify_ubound): Likewise. - (gfc_simplify_verify): Likewise. - * intrinsic.h: Update prototypes and add new ones. - * trans-intrinsic.c (gfc_conv_intrinsic_index): Rename into - gfc_conv_intrinsic_index_scan_verify. - (gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify): Remove. - (gfc_conv_intrinsic_function): Call - gfc_conv_intrinsic_index_scan_verify to translate the INDEX, - SCAN and VERIFY intrinsics. - -2007-08-11 Francois-Xavier Coudert - - PR fortran/31189 - * invoke.texi (-fbacktrace): Document the new behaviour. - -2007-08-11 Francois-Xavier Coudert - - PR fortran/32937 - * trans-array.c (gfc_conv_expr_descriptor): Use - gfc_conv_const_charlen to generate backend_decl of right type. - * trans-expr.c (gfc_conv_expr_op): Use correct return type. - (gfc_build_compare_string): Use int type instead of default - integer kind for single character comparison. - (gfc_conv_aliased_arg): Give backend_decl the right type. - * trans-decl.c (gfc_build_intrinsic_function_decls): Make - compare_string return an int. - -2007-08-11 Ian Lance Taylor - - * f95-lang.c (gfc_get_alias_set): Change return type to - alias_set_type. - -2007-08-10 Francois-Xavier Coudert - - PR fortran/31270 - * trans.c (gfc_trans_runtime_check): Reorder arguments and - add extra variable arguments. Hand them to the library function. - * trans.h (gfc_trans_runtime_check): Update prototype. - * trans-array.c (gfc_trans_array_bound_check): Issue more - detailled error messages. - (gfc_conv_array_ref): Likewise. - (gfc_conv_ss_startstride): Likewise. - (gfc_trans_dummy_array_bias): Reorder arguments to - gfc_trans_runtime_check. - * trans-expr.c (gfc_conv_substring): Issue more detailled - error messages. - (gfc_conv_function_call): Reorder arguments to gfc_trans_runtime_check. - * trans-stmt.c (gfc_trans_goto): Likewise. - * trans-io.c (set_string): Reorder arguments to - gfc_trans_runtime_check and issue a more detailled error message. - * trans-decl.c (gfc_build_builtin_function_decls): Make - runtime_error and runtime_error_at handle a variable number of - arguments. - * trans-intrinsic.c (gfc_conv_intrinsic_bound): Reorder arguments - to gfc_trans_runtime_check. - (gfc_conv_intrinsic_minmax): Likewise. - (gfc_conv_intrinsic_repeat): Issue more detailled error messages. - -2007-08-10 Kaveh R. Ghazi - - * gfortranspec.c (lang_specific_driver): Use CONST_CAST. - * options.c (gfc_post_options): Likewise. - * parse.c (parse_omp_structured_block): Likewise. - * st.c (gfc_free_statement): Likewise. - -2007-08-10 Francois-Xavier Coudert - - PR fortran/32933 - * trans-decl.c (gfc_build_builtin_function_decls): Change - prototype for associated. - * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Convert the - result of __builtin_isnan into a boolean. - (gfc_conv_intrinsic_strcmp): Cleanup. - (gfc_conv_associated): Convert the result of the associated - function into a boolean. - -2007-08-09 Tobias Burnus - - PR fortran/32987 - * io.c (format_token): Add FMT_ERROR. - (next_char_not_space): Print error/warning when - '\t' are used in format specifications. - (format_lex): Propagate error. - (check_format): Ditto. - -2007-08-09 Tobias Burnus - - PR fortran/33001 - * arith.c (arith_error): Point in the error message - to -fno-range-check. - -2007-08-09 Francois-Xavier Coudert - - PR fortran/32902 - * intrinsic.texi (SIZEOF): Add mention to C_SIZE_T. - -2007-08-06 Christopher D. Rickett - - PR fortran/32732 - * trans-expr.c (gfc_conv_scalar_char_value): Convert the tree and - actual arg expressions for scalar characters passed by-value to - bind(c) routines. - (gfc_conv_function_call): Call gfc_conv_scalar_char_value. - * trans.h: Add prototype for gfc_conv_scalar_char_value. - * trans-decl.c (generate_local_decl): Convert by-value character - dummy args of bind(c) procedures using - gfc_conv_scalar_char_value. - -2007-08-06 Francois-Xavier Coudert - - PR fortran/30947 - * iresolve.c (gfc_resolve_alarm_sub): Suffix the subroutine name - with the kind of the STATUS argument. - -2007-08-06 Francois-Xavier Coudert - - PR fortran/30948 - * intrinsic.c (add_functions): Fix name of argument to CHDIR. - -2007-08-06 Francois-Xavier Coudert - - PR fortran/30933 - * iresolve.c (gfc_resolve_exit): Convert argument to default - integer kind. - -2007-08-06 Daniel Franke - - * resolve.c (derived_pointer): Removed, replaced callers by access - to appropiate attribute bit. - (derived_inaccessable): Shortcut recursion depth. - (resolve_fl_namelist): Fixed checks for private components in namelists. - -2007-08-06 Francois-Xavier Coudert - - PR fortran/29828 - * trans.h (gfor_fndecl_string_minmax): New prototype. - * trans-decl.c (gfor_fndecl_string_minmax): New variable. - (gfc_build_intrinsic_function_decls): Create gfor_fndecl_string_minmax. - * check.c (gfc_check_min_max): Allow for character arguments. - * trans-intrinsic.c (gfc_conv_intrinsic_minmax_char): New function. - (gfc_conv_intrinsic_function): Add special case for MIN and MAX - intrinsics with character arguments. - * simplify.c (simplify_min_max): Add simplification for character - arguments. - -2007-08-06 Francois-Xavier Coudert - - PR fortran/31612 - * invoke.texi: Adjust documentation for option -fsyntax-only. - -2007-08-05 Francois-Xavier Coudert - Tobias Burnus - - PR fortran/32979 - * intrinsic.h (gfc_check_isnan): Add prototype. - * gfortran.h (gfc_isym_id): Add GFC_ISYM_ISNAN. - * intrinsic.c (add_functions): Add ISNAN intrinsic. - * check.c (gfc_check_isnan): New function. - * trans-intrinsic.c (gfc_conv_intrinsic_isnan): New function. - (gfc_conv_intrinsic_function): Call gfc_conv_intrinsic_isnan - to translate ISNAN. - * intrinsic.texi: Document ISNAN. - -2007-08-04 Paul Thomas - - PR fortran/31214 - * symbol.c (get_unique_symtree): Moved from module.c. - * module.c (get_unique_symtree): Moved to symbol.c. - * decl.c (get_proc_name): Transfer the typespec from the local - symbol to the module symbol, in the case that an entry is also - a module procedure. Ensure the local symbol is cleaned up by - pointing to it with a unique symtree. - - * dump_parse_tree (gfc_show_code_node): Add EXEC_ASSIGN_CALL. - -2008-08-04 Steven G. Kargl - - PR fortran/32969 - * iresolve.c (gfc_resolve_rrspacing): Convert argument(s) to - expected KIND. - (gfc_resolve_scale): Ditto. - (gfc_resolve_set_exponent): Ditto. - (gfc_resolve_spacing): Ditto. - - PR fortran/32968 - * trans-intrinsic.c (gfc_conv_intrinsic_si_kind, - gfc_conv_intrinsic_sr_kind): Convert the argument(s) to the - expected KIND, and fold the result to the expected KIND. - -2007-08-03 Francois-Xavier Coudert - - PR fortran/31202 - * f95-lang.c (gfc_init_builtin_functions): Defin builtins for - lround{f,,l} and llround{f,,l}. - * trans-intrinsic.c (build_fix_expr): Generate calls to the - {l,}round{f,,l} functions. - -2007-08-01 Thomas Koenig - - PR libfortran/32954 - * intrinsic.c (resolve_mask_arg): New function. - (gfc_resolve_maxloc): Use resolve_mask_arg for mask resolution. - (gfc_resolve_maxval): Likewise. - (gfc_resolve_minloc): Likewise. - (gfc_resolve_minval): Likewise. - (gfc_resolve_pack): Likewise. - (gfc_resolve_product): Likewise. - (gfc_resolve_sum): Likewise. - (gfc_resolve_unpack): Likewise. - -2007-08-01 Tobias Burnus - - PR fortran/32936 - * match.c (gfc_match_allocate): Better check that STAT is - a variable. - - * check.c (gfc_check_allocated): Reorder checks to improve - error message. - -2007-08-01 Nick Clifton - - * arith.c: Change copyright header to refer to version 3 of the - GNU General Public License and to point readers at the COPYING3 - file and the FSF's license web page. - * openmp.c, interface.c, intrinsic.c, trans-array.c, trans-expr.c, - symbol.c, iso-fortran-env.def, intrinsic.h, decl.c, trans-array.h, - matchexp.c, dump-parse-tree.c, trans-common.c, array.c, - Make-lang.in, trans-openmp.c, gfortran.h, error.c, - iso-c-binding.def, lang.opt, data.c, trans-const.c, trans-stmt.c, - expr.c, trans-const.h, trans-stmt.h, module.c, trans.c, scanner.c, - trans-types.c, trans.h, gfortranspec.c, trans-types.h, - lang-specs.h, io.c, bbt.c, resolve.c, f95-lang.c, st.c, - iresolve.c, match.c, trans-decl.c, trans-io.c, target-memory.c, - match.h, target-memory.h, parse.c, arith.h, check.c, dependency.c, - parse.h, types.def, convert.c, dependency.h, primary.c, - trans-intrinsic.c, options.c, misc.c, simplify.c: Likewise. - -2007-08-01 Daniel Franke - - * trans-decl.c (generate_local_decl): Emit warning on unused parameter - on "-Wall -Wextra" or "-Wunused-parameter" but not on "-Wall", changed - messages that start with lower case to upper case. - * invoke.texi (-Wparameter-unused): Document differences between gcc - and gfortran regarding this option. - -2007-08-01 Daniel Franke - - PR fortran/32945 - * expr.c (check_specification_function): Skip check if no symtree - is available. - -2007-08-01 Paul Thomas - - PR fortran/31609 - * resolve.c (resolve_entries): Entries declared to be module - procedures must point to the function namespace. - -2007-07-31 Francois-Xavier Coudert - - PR fortran/32938 - * trans-stmt.c (gfc_trans_return): Convert to correct type. - -2007-07-31 Steven G. Kargl - - PR fortran/32942 - * trans-intrinsic.c (gfc_conv_intrinsic_exponent): Convert to correct - type. - -2007-07-29 Jerry DeLisle - - * invoke.texi: Document -fsign-zero flag. - -2007-07-29 Paul Thomas - - PR fortran/31211 - * trans-expr.c (gfc_conv_expr_reference): Add block for case of - scalar pointer functions so that NULL result is correctly - handled. - - PR fortran/32682 - * trans-array.c (gfc_trans_array_constructor): On detecting a - multi-dimensional parameter array, set the loop limits. - -2007-07-29 Daniel Franke - - PR fortran/32906 - * resolve.c (resolve_fl_parameter): Check for constant shape arrays, - adjusted error message. - -2007-07-29 Daniel Franke - - * invoke.texi: Removed -w from option summary. - -2007-07-29 Daniel Franke - - PR fortran/32879 - * intrinsic.texi (IRAND, RAND, RANDOM_NUMBER): Document algorithm - used for random number generator. - -2007-07-28 Kazu Hirata - - * gfortran.h, interface.c, resolve.c, symbol.c: Fix comment - typos. - * intrinsic.texi, invoke.texi: Fix typos. - -2007-07-28 Jerry DeLisle - - PR fortran/31609 - * resolve.c (generic_sym): Check for a same symbol and if so, return to - avoid infinite recursion. - -2007-07-28 Daniel Franke - - PR fortran/31818 - PR fortran/32876 - PR fortran/32905 - * gfortran.h (symbol_attribute): Added bits for pointer_comp, - private_comp. - * parse.c (parse_derived): Set pointer_comp/private_comp bits if - the derived type ultimately contains pointer components or private - components. - * module.c (ab_attribute): New values AB_POINTER_COMP, AB_PRIVATE_COMP. - (attr_bits): Added names for new ab_attributes. - (mio_symbol_attribute): Save/restore new attribute bits in modules. - * match.c (gfc_match_namelist): Removed check for namelist objects - of assumed shape. - * resolve.c (resolve_fl_namelist): Added check for pointer or - private components in nested types. Added check for namelist objects - of assumed shape. - -2007-07-28 Paul Thomas - - PR fortran/32880 - * trans-expr.c (gfc_trans_scalar_assign): Revert to fixed order - for lse and rse pre expressions, for derived types with - allocatable components. Instead, assign the lhs to a temporary - and deallocate after the assignment. - -2007-07-28 Janne Blomqvist - - PR fortran/32909 - * trans-stmt.c (gfc_trans_character_select): Replace occurrences - of gfc_c_int_type_node with integer_type_node. - * trans-decl.c (gfc_build_intrinsic_function_decls): Likewise. - (gfc_build_builtin_function_decls): Likewise. - (gfc_generate_function_code): Likewise. - * trans-io.c (gfc_build_io_library_fndecls): Likewise. - -2007-07-27 Janne Blomqvist - - * trans-decl.c (gfc_build_builtin_function_decls): Use existing - gfc_array_index_type rather than creating another typenode for - gfc_index_integer_kind. - -2007-07-27 Janne Blomqvist - - * trans-io.c (gfc_build_io_library_fndecls): Change to use - gfc_array_index_type for array descriptor triplets instead of - gfc_int4_type_node. - -2007-07-26 Steven G. Kargl - - PR fortran/32899 - * resolve.c (resolve_operator): Add INTRINSIC_EQ_OS comparison. - -2007-07-27 Jerry DeLisle - Daniel Franke - - PR fortran/32760 - * primary.c (match_variable): Do not call gfc_add_flavor if symbol has - attribute of ACCESS_PUBLIC or ACCESS_PRIVATE already marked. - -2007-07-27 Francois-Xavier Coudert - - PR fortran/32035 - * trans-stmt.c (gfc_trans_character_select): Replace the - mechanism with labels by a SWITCH_EXPR. - * trans-decl.c (gfc_build_builtin_function_decls): Change - return type for select_string. - -2007-07-27 Paul Thomas - - PR fortran/32903 - * trans-decl.c (gfc_trans_deferred_vars): Set intent(out) - derived types as referenced, if they have the the default - initializer set. - -2007-07-25 Kaveh R. Ghazi - - * gfortran.h (generate_isocbinding_symbol): Constify. - * symbol.c (gen_special_c_interop_ptr, gen_cptr_param, - generate_isocbinding_symbol): Likewise. - -2007-07-24 Paul Thomas - - PR fortran/31205 - PR fortran/32842 - * trans-expr.c (gfc_conv_function_call): Remove the default - initialization of intent(out) derived types. - * symbol.c (gfc_lval_expr_from_sym): New function. - * matchexp.c (gfc_get_parentheses): Return argument, if it is - character and posseses a ref. - * gfortran.h : Add prototype for gfc_lval_expr_from_sym. - * resolve.c (has_default_initializer): Move higher up in file. - (resolve_code): On detecting an interface assignment, check - if the rhs and the lhs are the same symbol. If this is so, - enclose the rhs in parenetheses to generate a temporary and - prevent any possible aliasing. - (apply_default_init): Remove code making the lval and call - gfc_lval_expr_from_sym instead. - (resolve_operator): Give a parentheses expression a type- - spec if it has no type. - * trans-decl.c (gfc_trans_deferred_vars): Apply the a default - initializer, if any, to an intent(out) derived type, using - gfc_lval_expr_from_sym and gfc_trans_assignment. Check if - the dummy is present. - -2007-07-24 Daniel Franke - - PR fortran/32867 - * expr.c (check_init_expr): Simplify matched functions. - -2007-07-24 Daniel Franke - - PR fortran/32778 - * intrinsic.c (add_sym): Do not exclude any symbols, even if not part - of the selected standard. - (make generic): Likewise. - (make alias): Likewise, set standard the alias belongs to. - (add_subroutines): Call make_noreturn unconditionally. - (check_intrinsic_standard): Change return value to try. - (gfc_intrinsic_func_interface): Check return value of above function. - (gfc_intrinsic_sub_interface): Likewise. - -2007-07-24 Thomas Koenig - - PR fortran/30814 - * trans-decl.c (generate_function_code): Add argument - for flag_bounds_check to the array for set_options. - * invoke.texi (-fbounds-check): Document new libarary run-time - behaviour. - -2007-07-23 Daniel Franke - - PR fortran/25104 - PR fortran/31639 - * expr.c (check_transformational): Reject valid transformational - intrinsics to avoid ICE. - (check_inquiry): Report error for assumed character lengths for - all supported standards. - (check_init_expr): Whitespace fix. - -2007-07-23 Christopher D. Rickett - - PR fortran/32797 - PR fortran/32800 - * decl.c (verify_bind_c_sym): Use the result symbol for functions - with a result clause. Warn if implicitly typed. Verify the type - and rank of the SHAPE argument, if given. - * resolve.c (gfc_iso_c_sub_interface): Use gfc_procedure_use to - check the actual args against the formal, sorting them if - necessary. - * symbol.c (gen_shape_param): Initialize type of SHAPE param to - BT_VOID. - -2007-07-23 Christopher D. Rickett - - PR fortran/32732 - * trans-decl.c (generate_local_decl): Convert the TREE_TYPE for by - value character dummy args of BIND(C) procedures. - * trans-expr.c (gfc_conv_variable): Do not build address - expression for BT_CHARACTER dummy args. - -2007-07-23 Christopher D. Rickett - Tobias Burnus - - PR fortran/32600 - * trans-expr.c (gfc_conv_function_call): Handle c_funloc. - * trans-types.c: Add pfunc_type_node. - (gfc_init_types,gfc_typenode_for_spec): Use it. - * resolve.c (gfc_iso_c_func_interface): Fix whitespace and - improve error message. - -2007-07-22 Daniel Franke - - PR fortran/32710 - * parse.c (gfc_fixup_sibling_symbols): No replacement of symbols if - the current is a namelist. - -2007-07-22 Daniel Franke - - PR fortran/29962 - PR fortran/31253 - PR fortran/31265 - PR fortran/31639 - * gfortran.h (gfc_intrinsic_sym): Changed members elemental, pure, - generic, specific, actual_ok, noreturn into bits of a bitfield, - added bits for inquiry, transformational, conversion. - * check.c (non_init_transformational): Removed, removed all callers. - * intrinsic.c (enum class): New. - (add_sym*): Replaced argument elemetal by enum class. Changed all - callers. - (add_functions): Assign appropriate classes to intrinsic functions. - (add_subroutines): Assign appropriate classes to intrinsic subroutines. - (add_conv): Set conversion attribute. - (gfc_init_expr_extensions): Removed, removed all callers. - (gfc_intrinsic_func_interface): Reimplemented check for non-standard - initializatione expressions. - * expr.c (check_specification_function): New. - (gfc_is_constant_expr): Added check for specification functions. - (check_init_expr_arguments): New. - (check_inquiry): Changed return value to MATCH, added checks for - inquiry functions defined by F2003. - (check_transformational): New. - (check_null): New. - (check_elemental): New. - (check_conversion): New. - (check_init_expr): Call new check functions, add more specific error - messages. - -2007-07-21 Christopher D. Rickett - - PR fortran/32627 - * resolve.c (set_name_and_label): Set kind number for character - version of c_f_pointer. - (gfc_iso_c_sub_interface): Set the kind of the SHAPE formal arg to - that of the actual SHAPE arg. - * symbol.c (gen_shape_param): Initialize kind for SHAPE arg. - -2007-07-21 Christopher D. Rickett - - PR fortran/32801 - * symbol.c (generate_isocbinding_symbol): Remove unnecessary - conditional. - - PR fortran/32804 - * resolve.c (gfc_iso_c_func_interface): Reject assumed-shape and - deferred-shape arrays as args to C_LOC. Fix bug in testing - character args to C_LOC. - -2007-07-21 Lee Millward - - PR fortran/32823 - * trans-intrinsic.c (gfc_conv_intrinsic_int): Evaluate all - arguments passed, not just the first one. Adjust code to - refer to "args[0]" instead of "arg" as a result. - -2007-07-19 Christopher D. Rickett - - PR fortran/32600 - * trans-expr.c (gfc_conv_function_call): Inline C_LOC. - -2007-07-18 Christopher D. Rickett - - PR fortran/32801 - * symbol.c (generate_isocbinding_symbol): Fix bug where - ISOCBINDING_FUNPTR was generated for C_LOC instead of the needed - ISOCBINDING_PTR. - -2007-07-17 Janus Weil - - PR fortran/32535 - * resolve.c (resolve_fl_namelist): Check for namelist private - components in contained subprograms. - -2007-07-17 Paul Thomas - - PR fortran/31320 - PR fortran/32665 - * trans-expr.c (gfc_trans_subcomponent_assign): Ensure that - renormalization unity base is done independently of existing - lbound value. - (gfc_trans_scalar_assign): If rhs is not a variable, put - lse->pre after rse->pre to ensure that de-allocation of lhs - occurs after evaluation of rhs. - -2007-07-16 Lee Millward - - PR fortran/32222 - PR fortran/32238 - PR fortran/32242 - * trans-intrinsic.c (gfc_conv_intrinsic_function_args): Adjust - to operate on a stack allocated array for the intrinsic arguments - instead of creating a TREE_LIST. Add two new parameters for the - array and the number of elements. Update all callers to allocate - an array of the correct length to pass in. Update comment. - (gfc_intrinsic_argument_list_length): New function. - (gfc_conv_intrinsic_conversion): Call it. - (gfc_conv_intrinsic_mnimax): Likewise. - (gfc_conv_intrinsic_merge): Likewise. - (gfc_conv_intrinsic_lib_function): Call it. Use new CALL_EXPR - constructors. - (gfc_conv_intrinsic_cmplx): Likewise. - (gfc_conv_intrinsic_ctime): Likewise. - (gfc_covn_intrinsic_fdate): Likewise. - (gfc_conv_intrinsic_ttynam): Likewise. - (gfc_conv_intrinsic_ishftc): Likewise. - (gfc_conv_intrinsic_index): Likewise. - (gfc_conv_intrinsic_scan): Likewise. - (gfc_conv_intrinsic_verify): Likewise. - (gfc_conv_intrinsic_trim): Likewise. - (gfc_conv_intrinsic_aint): Use new CALL_EXPR constructors. - (gfc_conv_intrinsic_exponent): Likewise. - (gfc_conv_intrinsic_bound): Likewise. - (gfc_conv_intrinsic_abs): Likewise. - (gfc_conv_intrinsic_mod): Likewise. - (gfc_conv_intrinsic_sign): Likewise. - (gfc_conv_intrinsic_len): Likewise. - (gfc_conv_intrinsic_adjust): Likewise. - (gfc_conv_intrinsic_si_kind): Likewise. - -2007-07-16 Janne Blomqvist - - PR fortran/32748 - * trans-decl.c (gfc_build_builtin_function_decls): Remove - DECL_IS_MALLOC attribute from internal_realloc, thus reverting - part of my 2007-07-03 patch. - -2007-07-15 Jerry DeLisle - Francois-Xavier Coudert - - PR fortran/32611 - * gfortran.h (gfc_option_t): Add flag_sign_zero field. - * lang.opt (-fsign-zero): New option. - * trans.h: Rename gfor_fndecl_set_std into gfor_fndecl_set_options. - * trans-decl.c (gfc_build_builtin_function_decls): Build the function - declaration to pass an array containing the options to be used by the - runtime library. (gfc_generate_function_code): Build an array that - contains option values to be passed to the runtime library and the call - to the function. - * options.c (gfc_init_options): Initialize the flag_sign_zero field. - (gfc_handle_option): Handle the -fsign-zero option. - -2007-07-15 Francois-Xavier Coudert - - PR fortran/32036 - * trans-array.c (gfc_conv_array_ref): Only evaluate index once. - -2007-07-15 Francois-Xavier Coudert - - PR fortran/32357 - * iresolve.c (gfc_resolve_mvbits): Convert FROMPOS, LEN and TOPOS - to C int. - -2007-07-14 Thomas Koenig - - PR libfortran/32731 - * iresolve.c(gfc_resolve_pack): A scalar mask has - to be kind=4, an array mask with kind<4 is converted - to gfc_default_logical_kind automatically. - (gfc_resolve_unpack): Convert mask to gfc_default_lotical_kind - if it has a kind<4. - -2007-07-14 Paul Thomas - - PR fortran/32724 - * parse.c (parse_spec): Emit error on unexpected statement - function. - -2007-07-13 Daniel Franke - - * invoke.texi: Unified upper- and lower-case in menus. - (-w, -W): Removed, documented by gcc. - * intrinsic.texi: Unified Class-section entries, added - subroutine/function warning where appropiate. - -2007-07-12 Daniel Franke - - PR fortran/31639 - * decl.c (gfc_match_suffix): Removed surplus general error that hides - a more specific message. - * resolve.c (resolve_fl_variable): Reject illegal initializiers only - if not already done. - (resolve_fl_procedure): Added check for initializers of functions. - -2007-07-12 Daniel Franke - - PR fortran/32704 - * invoke.texi (-static-libgfortran): Document new option. - -2007-07-12 Paul Thomas - - PR fortran/32634 - PR fortran/32727 - * module.c (write_generic): Restore patch of 2007-07-10 and use - symbol name if there are no use names. - -2007-07-12 Christopher D. Rickett - - PR fortran/32599 - * decl.c (verify_c_interop_param): Require character string dummy - args to BIND(C) procedures to have length 1. - * resolve.c (resolve_fl_procedure): Modify parameter checking for - BIND(C) procedures. - - PR fortran/32601 - * resolve.c (gfc_iso_c_func_interface): Verify that a valid - expression is given as an argument to C_LOC and C_ASSOCIATED. - * trans-io.c (transfer_expr): Add argument for code block. Add - standards check to determine if an error message should be - reported for printing C_PTR or C_FUNPTR. - (transfer_array_component): Update arguments to transfer_expr. - (gfc_trans_transfer): Ditto. - - * symbol.c (gen_cptr_param): Fix whitespace. - -2007-07-12 Jakub Jelinek - - PR fortran/32550 - * trans.h (GFC_POINTER_TYPE_P): Define. - * trans-types.c (gfc_sym_type): Set it for types on attr->sym.pointer. - * trans-openmp.c (gfc_omp_privatize_by_reference): Return false - if GFC_POINTER_TYPE_P is set on the type. - -2007-07-12 Richard Guenther - - * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Convert - arguments to gfc_charlen_type_node. - * trans-io.c (gfc_convert_array_to_string): Convert type - size to gfc_array_index_type. - -2007-07-12 Daniel Franke - - PR fortran/32634 - PR fortran/32727 - * module.c: Reverted Paul's patch from 2007-07-10. - -2007-07-11 Richard Guenther - - * trans-array.c (gfc_conv_array_parameter): Use correct - types for comparison. - * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Use - correct types for POINTER_PLUS_EXPR. - * trans-stmt.c (gfc_trans_forall_loop): Use correct type - for integer one constant. - -2007-07-10 Paul Thomas - - PR fortran/32157 - * resolve.c (is_external_proc): New function. Adds test that - the symbol is not an intrinsic procedure. - * (resolve_function, resolve_call): Replace logical statements - with call to is_external_proc. - - PR fortran/32689 - * simplify.c (gfc_simplify_transfer): If mold has rank, the - result is an array. - - PR fortran/32634 - * module.c (write_generic): Write the local name of the - interface. - -2007-07-09 Francois-Xavier Coudert - - PR fortran/29459 - * trans-array.c (gfc_trans_array_constructor): Mark offset field - with TREE_NO_WARNING. - * trans-decl.c (gfc_build_qualified_array): Mark lbound, ubound, - stride and size variables with TREE_NO_WARNING. - -2007-07-09 Steven G. Kargl - - * trans-decl.c (set_tree_decl_type_code): Remove function. - (generate_local_decl): Remove reference to set_tree_decl_type_code. - -2007-07-09 Daniel Franke - - PR fortran/31129 - * trans-decl.c (generate_local_decl) Emit a warning if an unused - parameter is found. - -2007-07-08 Daniel Franke - - PR fortran/29876 - * module.c (gfc_match_use): Do not set an non-existant - intrinsic operator if a user-defined operator is found. - -2007-07-08 Daniel Franke - - PR fortran/24784 - PR fortran/28004 - * trans-decl.c (generate_local_decl): Adjusted warning on unused - dummy arguments, tell middle-end not to emit additional warnings. - -2007-07-08 Daniel Franke - Tobias Schlüter - - PR fortran/17711 - * gfortran.h (gfc_intrinsic_op): Added INTRINSIC_EQ_OS, - INTRINSIC_NE_OS, INTRINSIC_GT_OS, INTRINSIC_GE_OS, - INTRINSIC_LT_OS and INTRINSIC_LE_OS. - * arith.c (eval_intrinsic, eval_type_intrinsic0): Likewise. - * arith.h (gfc_eq, gfc_ne, gfc_gt, gfc_ge, gfc_lt, gfc_le): - Added gfc_intrinsic_op as third argument type. - * dump-parse-tree.c (gfc_show_expr): Account for new enum values. - * expr.c (simplify_intrinsic_op, check_intrinsic_op): Likewise. - * interface.c (check_operator_interface): Likewise. - (gfc_check_interfaces): Added cross-checks for FORTRAN 77 and - Fortran 90 style operators using new enum values. - (gfc_extend_expr): Likewise. - (gfc_add_interface): Likewise. - * match.c (intrinsic_operators): Distinguish FORTRAN 77 style - operators from Fortran 90 style operators using new enum values. - * matchexp.c (match_level_4): Account for new enum values. - * module.c (mio_expr): Likewise. - * resolve.c (resolve_operator): Deal with new enum values, fix - inconsistent error messages. - * trans-expr.c (gfc_conv_expr_op): Account for new enum values. - -2007-07-08 Tobias Burnus - - PR fortran/32669 - * interface.c (get_expr_storage_size): Properly obtain lower bound. - (compare_actual_formal): Add space before parenthesis. - -2007-07-08 Daniel Franke - - PR fortran/25094 - * resolve.c (resolve_fl_procedure): Added check for PRIVATE types - in PUBLIC interfaces. - -2007-07-07 Jerry DeLisle - - PR fortran/32644 - * decl.c (match_attr_spec): Don't return MATCH_ERROR if comma found and - gfc_match_bind_c does not return MATCH_YES. - -2007-07-07 Kazu Hirata - - * decl.c, gfortran.h, interface.c, module.c, resolve.c, - trans-array.c, trans-decl.c: Fix comment typos. Follow - spelling conventions. - * intrinsic.texi: Fix typos. Follow spelling conventions. - -2007-05-06 Daniel Franke - - PR fortran/32633 - * symbol.c (save_status): New. - * gfortran.h (save_status): Added external declaration. - (check_conflict): Check for conflicting explicite SAVE statements - only. - (gen_special_c_interop_ptr): Use SAVE_EXPLICIT constant. - * module.c (ab_attribute, attr_bits): Removed enumerator value - AB_SAVE for save attribute. - (mio_symbol_attribute): Import/export the full SAVE status, - removed usage of AB_SAVE. - * dump-parse-tree.c (gfc_show_attr): Dump full SAVE status. - * decl.c (add_init_expr_to_sym): Set SAVE_IMPLICIT only if not - already explicit. - -2007-07-05 Daniel Franke - Tobias Burnus - - PR fortran/32359 - * gfortran.h (symbol_attribute): Change save attribute into an enum. - * decl.c (add_init_expr_to_sym): Set it to SAVE_IMPLICIT. - * symbol.c (gfc_add_save): Check for SAVE_EXPLICIT. - * resolve.c (resolve_fl_variable): Check for SAVE_EXPLICIT. - (resolve_symbol): Allow OMP threadprivate with - initialization SAVEd and save_all variable. - * trans-decl.c (gfc_finish_var_decl): Remove obsolete sym->value check. - -2007-07-05 Paul Thomas - - PR fortran/32526 - * match.c (gfc_match_call): Check, in all cases, that a symbol - is neither generic nor a subroutine before trying to add it as - a subroutine. - - PR fortran/32613 - * match.c (gfc_match_do): Reset the implied_index attribute. - -2007-07-04 Francois-Xavier Coudert - - PR fortran/31198 - * trans-intrinsic.c (trans-intrinsic.c): Handle optional - arguments correctly for MIN and MAX intrinsics. - -2007-07-03 Jerry DeLisle - - PR fortran/32545 - * io.c (check_format): Always call gfc_error for errors. - (check_format_string): Change type of this function to try and - return the result of check_format. - (check_io_constraints): Return MATCH_ERROR if check_format_string - returns FAILURE. - -2007-07-03 Jerry DeLisle - - PR fortran/32612 - * decl.c (get_proc_name): Include attr->mod_proc in check for error. - -2007-07-03 Jerry DeLisle - - PR fortran/32432 - * gfortran.h: Change type of gfc_assign_data_value from void to try. - * data.c (gfc_assign_data_value): Return FAILURE if error found. - * resolve.c (check_data_variable): If gfc_assign_data_value returns - failure, break out of loop and return failure. - -2007-07-03 Christopher D. Rickett - - PR fortran/32579 - * symbol.c (gen_cptr_param): Generate C_PTR and C_FUNPTR if necessary. - (build_formal_args): Pass intrinsic module symbol id to - gen_cptr_param. - -2007-07-03 Tobias Burnus - - PR fortran/25062 - * resolve.c (resolve_common_blocks): New check function. - (resolve_types): Use it. - -2007-07-03 Tobias Burnus - - PR fortran/30940 - * interface.c (get_sym_storage_size): New function. - (get_sym_storage_size): New function. - (compare_actual_formal): Enhance sequence association - support and improve checking. - -2007-07-03 Janne Blomqvist - - * trans-decl.c (gfc_build_builtin_function_decls): Mark - internal_realloc as a malloc function. - -2007-07-03 Tobias Burnus - - PR fortran/20888 - * resolve.c (resolve_operator): Check for NULL as operand. - -2007-07-02 Tobias Burnus - - * gfortran.texi (Fortran 2003): Add ISO Bind C. - * intrinsic.texi (C_ASSOCIATED,C_F_POINTER,C_F_PROCPOINTER, - C_FUNLOC,C_LOC): Document new ISO Bind C intrinsics. - -2007-07-01 Christopher D. Rickett - - * interface.c (gfc_compare_derived_types): Special case for comparing - derived types across namespaces. - (gfc_compare_types): Deal with BT_VOID. - (compare_parameter): Use BT_VOID to accept ISO C Binding pointers. - * trans-expr.c (gfc_conv_function_call): Remove setting parm_kind - to SCALAR - (gfc_conv_initializer): Deal with ISO C Binding NULL_PTR and - NULL_FUNPTR. - (gfc_conv_expr): Convert expressions for ISO C Binding derived types. - * symbol.c (gfc_set_default_type): BIND(C) variables should not be - Implicitly declared. - (check_conflict): Add BIND(C) and check for conflicts. - (gfc_add_explicit_interface): Whitespace. - (gfc_add_is_bind_c): New function. - (gfc_copy_attr): Use it. - (gfc_new_symbol): Initialize ISO C Binding objects. - (get_iso_c_binding_dt): New function. - (verify_bind_c_derived_type): Ditto. - (gen_special_c_interop_ptr): Ditto. - (add_formal_arg): Ditto. - (gen_cptr_param): Ditto. - (gen_fptr_param): Ditto. - (gen_shape_param): Ditto. - (add_proc_interface): Ditto. - (build_formal_args): Ditto. - (generate_isocbinding_symbol): Ditto. - (get_iso_c_sym): Ditto. - * decl.c (num_idents_on_line, has_name_equals): New variables. - (verify_c_interop_param): New function. - (build_sym): Finish binding labels and deal with COMMON blocks. - (add_init_expr_to_sym): Check if the initialized expression is - an iso_c_binding named constants - (variable_decl): Set ISO C Binding type_spec components. - (gfc_match_kind_spec): Check match for C interoperable kind. - (match_char_spec): Fix comment. Chnage gfc_match_small_int - to gfc_match_small_int_expr. Check for C interoperable kind. - (match_type_spec): Clear the current binding label. - (match_attr_spec): Add DECL_IS_BIND_C. If BIND(C) is found, use it - to set attributes. - (set_binding_label): New function. - (set_com_block_bind_c): Ditto. - (verify_c_interop): Ditto. - (verify_com_block_vars_c_interop): Ditto. - (verify_bind_c_sym): Ditto. - (set_verify_bind_c_sym): Ditto. - (set_verify_bind_c_com_block): Ditto. - (get_bind_c_idents): Ditto. - (gfc_match_bind_c_stmt): Ditto. - (gfc_match_data_decl): Use num_idents_on_line. - (match_result): Deal with right paren in BIND(C). - (gfc_match_suffix): New function. - (gfc_match_function_decl): Use it. Code is re-arranged to deal with - ISO C Binding result clauses. - (gfc_match_subroutine): Deal with BIND(C). - (gfc_match_bind_c): New function. - (gfc_get_type_attr_spec): New function. Code is re-arranged in and - taken from gfc_match_derived_decl. - (gfc_match_derived_decl): Add check for BIND(C). - * trans-common.c: Forward declare gfc_get_common. - (gfc_sym_mangled_common_id): Change arg from 'const char *name' to - 'gfc_common_head *com'. Check for ISO C Binding of the common block. - (build_common_decl): 'com->name' to 'com in SET_DECL_ASSEMBLER_NAME. - * gfortran.h: Add GFC_MAX_BINDING_LABEL_LEN - (bt): Add BT_VOID - (sym_flavor): Add FL_VOID. - (iso_fortran_env_symbol, iso_c_binding_symbol, intmod_id): New enum - (CInteropKind_t): New struct. - (c_interop_kinds_table): Use it. Declare an array of structs. - (symbol_attribute): Add is_bind_c, is_c_interop, and is_iso_c - bitfields. - (gfc_typespec): Add is_c_interop; is_iso_c, and f90_type members. - (gfc_symbol): Add from_intmod, intmod_sym_id, binding_label, and - common_block members. - (gfc_common_head): Add binding_label and is_bind_c members. - (gfc_gsymbol): Add sym_name, mod_name, and binding_label members. - Add prototypes for get_c_kind, gfc_validate_c_kind, - gfc_check_any_c_kind, gfc_add_is_bind_c, gfc_add_value, - verify_c_interop, verify_c_interop_param, verify_bind_c_sym, - verify_bind_c_derived_type, verify_com_block_vars_c_interop, - generate_isocbinding_symbol, get_iso_c_sym, gfc_iso_c_sub_interface - * iso-c-binding.def: New file. This file contains the definitions - of the types provided by the Fortran 2003 ISO_C_BINDING intrinsic - module. - * trans-const.c (gfc_conv_constant_to_tree): Deal with C_NULL_PTR - or C_NULL_FUNPTR expressions. - * expr.c (gfc_copy_expr): Add BT_VOID case. For BT_CHARACTER, the - ISO C Binding requires a minimum string length of 1 for '\0'. - * module.c (intmod_sym): New struct. - (pointer_info): Add binding_label member. - (write_atom): Set len to 0 for NULL pointers. Check for NULL p and *p. - (ab_attribute): Add AB_IS_BIND_C, AB_IS_C_INTEROP and AB_IS_ISO_C. - (attr_bits): Add "IS_BIND_C", "IS_C_INTEROP", and "IS_ISO_C". - (mio_symbol_attribute): Deal with ISO C Binding attributes. - (bt_types): Add "VOID". - (mio_typespec): Deal with ISO C Binding components. - (mio_namespace_ref): Add intmod variable. - (mio_symbol): Check for symbols from an intrinsic module. - (load_commons): Check for BIND(C) common block. - (read_module): Read binding_label and use it. - (write_common): Add label. Write BIND(C) info. - (write_blank_common): Blank commons are not BIND(C). Explicitly - set is_bind_c=0. - (write_symbol): Deal with binding_label. - (sort_iso_c_rename_list): New function. - (import_iso_c_binding_module): Ditto. - (create_int_parameter): Add to args. - (use_iso_fortran_env_module): Adjust to deal with iso_c_binding - intrinsic module. - * trans-types.c (c_interop_kinds_table): new array of structs. - (gfc_validate_c_kind): New function. - (gfc_check_any_c_kind): Ditto. - (get_real_kind_from_node): Ditto. - (get_int_kind_from_node): Ditto. - (get_int_kind_from_width): Ditto. - (get_int_kind_from_minimal_width): Ditto. - (init_c_interop_kinds): Ditto. - (gfc_init_kinds): call init_c_interop_kinds. - (gfc_typenode_for_spec): Adjust for BT_VOID and ISO C Binding pointers. - Adjust handling of BT_DERIVED. - (gfc_sym_type): Whitespace. - (gfc_get_derived_type): Account for iso_c_binding derived types - * resolve.c (is_scalar_expr_ptr): New function. - (gfc_iso_c_func_interface): Ditto. - (resolve_function): Use gfc_iso_c_func_interface. - (set_name_and_label): New function. - (gfc_iso_c_sub_interface): Ditto. - (resolve_specific_s0): Use gfc_iso_c_sub_interface. - (resolve_bind_c_comms): New function. - (resolve_bind_c_derived_types): Ditto. - (gfc_verify_binding_labels): Ditto. - (resolve_fl_procedure): Check for ISO C interoperability. - (resolve_symbol): Check C interoperability. - (resolve_types): Walk the namespace. Check COMMON blocks. - * trans-decl.c (gfc_sym_mangled_identifier): Prevent the mangling - of identifiers that have an assigned binding label. - (gfc_sym_mangled_function_id): Use the binding label rather than - the mangled name. - (gfc_finish_var_decl): Put variables that are BIND(C) into a common - segment of the object file, because this is what C would do. - (gfc_create_module_variable): Conver to proper types - (set_tree_decl_type_code): New function. - (generate_local_decl): Check dummy variables and derived types for - ISO C Binding attributes. - * match.c (gfc_match_small_int_expr): New function. - (gfc_match_name_C): Ditto. - (match_common_name): Deal with ISO C Binding in COMMON blocks - * trans-io.c (transfer_expr): Deal with C_NULL_PTR or C_NULL_FUNPTR - expressions - * match.h: Add prototypes for gfc_match_small_int_expr, - gfc_match_name_C, match_common_name, set_com_block_bind_c, - set_binding_label, set_verify_bind_c_sym, - set_verify_bind_c_com_block, get_bind_c_idents, - gfc_match_bind_c_stmt, gfc_match_suffix, gfc_match_bind_c, - gfc_get_type_attr_spec - * parse.c (decode_statement): Use gfc_match_bind_c_stmt - (parse_derived): Init *derived_sym = NULL, and gfc_current_block - later for valiadation. - * primary.c (got_delim): Set ISO C Binding components of ts. - (match_logical_constant): Ditto. - (match_complex_constant): Ditto. - (match_complex_constant): Ditto. - (gfc_match_rvalue): Check for existence of at least one arg for - C_LOC, C_FUNLOC, and C_ASSOCIATED. - * misc.c (gfc_clear_ts): Clear ISO C Bindoing components in ts. - (get_c_kind): New function. - -2007-07-01 Janne Blomqvist - - PR fortran/32239 - * trans-expr.c (gfc_conv_power_op): Use builtin_powi for - real**int4 powers. - * f95-lang.c (gfc_init_builtin_functions): Add builtin_powi to the - builtins table. - -2007-07-01 Janne Blomqvist - - * trans.h: Remove decls for 64-bit allocation functions. - * trans-array.c (gfc_grow_array): Always pick the standard realloc - function decl. - (gfc_array_allocate): Likewise. - * trans-decl.c: Remove trees for 64-bit allocation functions. - (gfc_build_builtin_function_decls): Don't build fndecls for 64-bit - allocations functions, use index_int_type for normal allocation - functions. - -2007-06-30 Daniel Franke - - PR fortran/20373 - * intrinsic.c (add_functions): Additional function types. - (gfc_convert_type_warn): Remove intrinsic-flag from - conversion functions. - * resolve.c (resolve_symbol): Added type checks to - explicitly defined intrinsics. - -2007-06-30 Tobias Burnus - - PR fortran/32555 - * io.c (check_format): Allow zero to precede the - P edit descriptor. - -2007-06-30 Paul Thomas - - PR fortran/32472 - * simplify.c (gfc_simplify_repeat): Add handling of character - literal for first argument. - -2007-06-29 Daniel Franke - - * resolve.c (resolve_operator): Added check whether a user - defined operator is available. - -2007-06-29 Daniel Franke - - * openmp.c (resolve_omp_clauses): Adjust error message to - better reflect the actual requirement. - -2007-06-29 Tobias Burnus - - PR fortran/32483 - * io.c (format_lex): Fix FMT_ZERO. - (check_format,check_format_string,gfc_match_format, - check_io_constraints) Additional checking for READ. - -2007-06-28 Francois-Xavier Coudert - - PR other/31400 - * lang.opt (static-libgfortran): New option. - * gfortranspec.c (ADD_ARG_LIBGFORTRAN): New macro. - (Option): Add OPTION_static and OPTION_static_libgfortran. - (lookup_option): Handle the new -static-libgfortran option. - (lang_specific_driver): Check whether -static is passed. - Handle the new -static-libgfortran option. - * options.c (gfc_handle_option): If -static-libgfortran is - passed and isn't supported on this configuration, error out. - -2007-06-27 Daniel Franke - - PR fortran/32467 - * openmp.c (resolve_omp_clauses): Emit error on allocatable - components in COPYIN, COPYPRIVATE, FIRSTPRIVATE and LASTPRIVATE - clauses. - -2007-06-25 Paul Thomas - - PR fortran/32464 - * resolve.c (check_host_association): Return if the old symbol - is use associated. Introduce retval to reduce the number of - evaluations of the first-order return value. - - PR fortran/31494 - * match.c (gfc_match_call): If a host associated symbol is not - a subroutine, build a new symtree/symbol in the current name - space. - -2007-06-24 Tobias Burnus - - PR fortran/32460 - * interface.c (gfc_compare_derived_types): Add access check. - * symbol.c (gfc_find_component): Ditto. - (gfc_set_component_attr,gfc_get_component_attr) Copy access state. - * dump-parse-tree.c (gfc_show_components): Dump access state. - * gfortran.h (struct gfc_component): Add gfc_access. - * module.c (mio_component): Add access state. - * (gfc_match_structure_constructor): Check for private access state. - -2007-06-24 Paul Thomas - - PR fortran/32298 - PR fortran/31726 - * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Calculate - the offset between the loop counter and the position as - defined. Add the offset within the loop so that the mask acts - correctly. Do not advance the location on the basis that it - is zero. - -2007-06-22 Daniel Franke - - PR fortran/31473 - * symbol.c (gfc_copy_attr): Emit errors for duplicate - EXTERNAL/INTRINSIC statements. - -2007-06-22 Jerry DeLisle - - PR fortran/32360 - * expr.c (gfc_check_assign): If the rvalue expression type is NULL_EXPR, - check to see if the lvalue has attribute pointer and data. - -2007-06-21 Jerry DeLisle - - PR fortran/31162 - * resolve.c (gfc_resolve_iterator_expr): Add check for REAL using - gfc_notify_standard. (gfc_resolve_iterator): Remove check. - (resolve_branch): Change "Obsolete" to "Deleted feature". - * io.c (resolve_tag): Ditto. - * match.c (gfc_match_pause, gfc_match_assign, gfc_match_goto): Ditto. - -2007-06-20 Jerry DeLisle - - PR fortran/32361 - * match.c (gfc_match_common): If the symbol value expression type is - NULL_EXPR, don't error if previously initialized. - -2007-06-20 Jerry DeLisle - - PR fortran/25061 - * decl.c (get_proc_name) Check symbol for generic interface - and issue an error. - -2007-06-20 Andrew Pinski - Richard Guenther - - PR fortran/32140 - * trans.c (gfc_build_addr_expr): Use the correct types. - -2007-06-19 Paul Thomas - - PR fortran/20863 - PR fortran/20882 - * resolve.c (resolve_code): Use gfc_impure_variable as a - condition for rejecting derived types with pointers, in pure - procedures. - (gfc_impure_variable): Add test for dummy arguments of pure - procedures; any for functions and INTENT_IN for subroutines. - - PR fortran/32236 - * data.c (gfc_assign_data_value): Change the ICE on an array - reference initializer not being an array into an error and - clear init to prevent a repetition of the error. - -2007-06-17 Janne Blomqvist - - * gfortran.texi: Add documentation for GFORTRAN_UNBUFFERED_n - environment variables. Fix documentation for - GFORTRAN_UNBUFFERED_ALL environment variable. - -2007-06-15 Andrew Pinski - - * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Use - POINTER_PLUS_EXPR instead of PLUS_EXPR for pointer addition. - * trans-expr.c (gfc_trans_string_copy): Create - POINTER_PLUS_EXPR instead of a PLUS_EXPR - for pointer types. - -2007-06-14 Paul Thomas - - PR fortran/32302 - * trans-common.c (build_common_decl): If resizing of common - decl is needed, update the TREE_TYPE. - -2007-06-13 Tobias Burnus - - PR fortran/32323 - * interface.c (has_vector_section): New. - (compare_actual_formal): Check for array sections with vector subscript. - -2007-06-12 Dirk Mueller - - * trans-stmt.c (gfc_trans_call): fix gcc_assert to - a comparison, not an assignment. - -2007-06-12 Paul Thomas - - * trans-common.c (create_common): Initialize 'field_init'. - -2007-06-12 Paul Thomas - - PR fortran/29786 - PR fortran/30875 - * trans-common.c (get_init_field): New function. - (create_common): Call get_init_field for overlapping - initializers in equivalence blocks. - * resolve.c (resolve_equivalence_derived, resolve_equivalence): - Remove constraints on initializers in equivalence blocks. - * target-memory.c (expr_to_char, gfc_merge_initializers): - New functions. - (encode_derived): Add the bit offset to the byte offset to get - the total offset to the field. - * target-memory.h : Add prototype for gfc_merge_initializers. - -2007-06-11 Rafael Avila de Espindola - - * trans-types.c (gfc_signed_type): Remove. - * trans-types.h (gfc_signed_type): Remove. - * f95-lang.c (LANG_HOOKS_SIGNED_TYPE): Remove. - -2007-06-08 Francois-Xavier Coudert - - * trans-intrinsic.c: Revert Lee's 2007-06-04 patch. - -2007-06-07 Steven G. Kargl - Jerry DeLisle - - PR fortran/32223 - * match.c (gfc_match_special_char): New function. Match special char. - Add handling '\0'. - * match.h: Add prototype. - * io.c (next_char): Use it. - * primary.c (next_string_char): Ditto. - -2007-06-06 Steven G. Kargl - - * decl.c: Miscellaneous whitespace fixes. - * expr.c: Likewise. - * gfortran.h: Likewise. - * interface.c : Likewise. - * io.c: Likewise. - * match.c: Likewise. - * match.h: Likewise. - * module.c: Likewise. - * parse.c: Likewise. - * resolve.c: Likewise. - * symbol.c: Likewise. - * trans-array.c: Likewise. - * trans-common.c: Likewise. - * trans-decl.c: Likewise. - * trans-intrinsic.c: Likewise. - * trans-io.c: Likewise. - * trans-stmt.c: Likewise. - * trans-types.c: Likewise. - -2007-06-05 Jerry DeLisle - - PR fortran/18923 - * parse.c (decode_statement): Don't call gfc_undo_symbols on MATCH_ERROR - for ST_FUNCTION since it is called in reject_statement. - (parse_contained): If error, loop back after reject_statement and try - again. Free the namespace if an error occured. - -2007-06-04 Lee Millward - - * trans-intrinsic.c (gfc_conv_intrinsic_function_args): Adjust - to operate on a stack allocated array for the intrinsic arguments - instead of creating a TREE_LIST. Add two new parameters for the - array and the number of elements. Update all callers to allocate - an array of the correct length to pass in. Update comment. - (gfc_intrinsic_argument_list_length): New function. - (gfc_conv_intrinsic_mnimax): Call it. - (gfc_conv_intrinsic_merge): Likewise. - (gfc_conv_intrinsic_lib_function): Call it. Use new CALL_EXPR - constructors. - (gfc_conv_intrinsic_cmplx): Likewise. - (gfc_conv_intrinsic_ctime): Likewise. - (gfc_covn_intrinsic_fdate): Likewise. - (gfc_conv_intrinsic_ttynam): Likewise. - (gfc_conv_intrinsic_ishftc): Likewise. - (gfc_conv_intrinsic_index): Likewise. - (gfc_conv_intrinsic_scan): Likewise. - (gfc_conv_intrinsic_verify): Likewise. - (gfc_conv_intrinsic_trim): Likewise. - (gfc_conv_intrinsic_aint): Use new CALL_EXPR constructors. - (gfc_conv_intrinsic_exponent): Likewise. - (gfc_conv_intrinsic_bound): Likewise. - (gfc_conv_intrinsic_abs): Likewise. - (gfc_conv_intrinsic_mod): Likewise. - (gfc_conv_intrinsic_sign): Likewise. - (gfc_conv_intrinsic_len): Likewise. - (gfc_conv_intrinsic_adjust): Likewise. - (gfc_conv_intrinsic_si_kind): Likewise. - -2007-06-04 Steve Ellcey - - * trans-array.c (gfc_conv_array_parameter): Initialize tmp. - -2007-05-31 Richard Guenther - - * trans-expr.c (gfc_conv_expr_op): Use zero constant - that matches the lse type. - (gfc_trans_string_copy): Use sizetype zero constant. - * intrinsic.c (add_functions): The sizeof intrinsic has - index type result. - * trans-types.c (gfc_get_dtype): Convert size to index - type before shifting. - * trans-array.c (gfc_trans_array_constructor_value): Use - index type for offset computation. - * trans-intrinsic.c (gfc_conv_associated): Use correct type - for zero constant. - -2007-05-31 Paul Thomas - - PR fortran/32156 - * trans-array.c (gfc_trans_array_constructor): Treat the case - where the ss expression charlen is missing. - -22007-05-31 Paul Thomas - - PR fortran/32103 - * module.c (mio_symtree_ref): If an equivalence group member - is not used, give it a hidden symbol and set the pointer_info. - (load_equiv): Only free the equivalence if none of the members - are used. - -2007-05-29 Daniel Franke - - * gfortran.h: Renamed 'enum gfc_generic_isym_id' to 'enum gfc_isym_id', - added missing GFC_ISYM_* enumerators, ordered alphabetically. - (struct gfc_intrinsic_sym): Renamed 'generic_id' to 'id'. - (gfc_find_subroutine): New prototype. - * intrinsic.c (add_sym, add_sym_*): Added argument 'id' and changed all callers. - (find_subroutine): Renamed to 'gfc_find_subroutine', removed static. - * dependency.c: Changed usage of isym->generic_id to isym->id. - * openmp.c: Likewise. - * resolve.c: Likewise. - * trans-array.c: Likewise. - * trans-expr.c: Likewise. - * trans-intrinsic.c: Likewise. - * trans-openmp.c: Likewise. - -2007-05-28 Tobias Schlüter - - * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SIZEOF. - * intrinsic.c (add_functions): Add stuff for SIZEOF intrinsic. - * intrinsic.h (gfc_check_sizeof): Add prototype of ... - * check.c (gfc_check_sizeof): .. new function. - * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): New function. - (gfc_conv_intrinsic_strcmp): Whitespace fix. - (gfc_conv_intrinsic_array_transfer): Remove double initialization, - use fold_build. where appropriate. - (gfc_conv_intrinsic_function): Add case for SIZEOF. - * intrinsic.texi: Add documentation for SIZEOF. - -2007-05-28 Brooks Moses - - * trans-array.c (gfc_conv_expr_descriptor): Edit comment. - -2007-05-28 Brooks Moses - - PR fortran/31972 - * target-memory.c (gfc_target_expr_size): Add handling - for size of BT_HOLLERITH variables. - * check.c (gfc_check_transfer): Reject BT_HOLLERITH - variables in MOLD argument of TRANSFER. - -2007-05-28 Brooks Moses - - * gfortran.h (gfc_expr): Remove from_H, add "representation" - struct. - * primary.c (match_hollerith_constant): Store the representation - of the Hollerith in representation, not in value.character. - * arith.c: Add dependency on target-memory.h. - (eval_intrinsic): Remove check for from_H. - (hollerith2representation): New function. - (gfc_hollerith2int): Determine value of the new constant. - (gfc_hollerith2real): Likewise. - (gfc_hollerith2complex): Likewise. - (gfc_hollerith2logical): Likewise. - (gfc_hollerith2character): Point both representation.string and - value.character.string at the value string. - * data.c (create_character_initializer): For BT_HOLLERITH - rvalues, get the value from the representation rather than - value.character. - * expr.c (free_expr0): Update handling of BT_HOLLERITH values - and values with representation.string. - (gfc_copy_expr): Likewise. - * intrinsic.c (do_simplify): Remove special treatement of - variables resulting from Hollerith constants. - * dump-parse-trees.c (gfc_show_expr): Update handling of - Holleriths. - * trans-const.c (gfc_conv_constant_to_tree): Replace from_H - check with check for representation.string; get Hollerith - representation from representation.string, not value.character. - * trans-expr.c (is_zero_initializer_p): Replace from_H check - with check for representation.string. - * trans-stmt.c (gfc_trans_integer_select): Use - gfc_conv_mpz_to_tree for case values, so as to avoid picking up - the memory representation if the case is given by a transfer - expression. - * target-memory.c (gfc_target_encode_expr): Use the known memory - representation rather than the value, if it exists. - (gfc_target_interpret_expr): Store the memory representation of - the interpreted expression as well as its value. - (interpret_integer): Move to gfc_interpret_integer, make - non-static. - (interpret_float): Move to gfc_interpret_float, make non-static. - (interpret_complex): Move to gfc_interpret_complex, make - non-static. - (interpret_logical): Move to gfc_interpret_logical, make - non-static. - (interpret_character): Move to gfc_interpret_character, make - non-static. - (interpret_derived): Move to gfc_interpret_derived, make - non-static. - * target-memory.h: Add prototypes for newly-exported - gfc_interpret_* functions. - -2007-05-27 Jerry DeLisle - - PR fortran/31812 - * parse.c (next_statement): Warn for truncated lines if source is free - form. - -2007-05-27 Paul Thomas - Tobias Burnus - - PR fortran/32088 - * symbol.c (gfc_check_function_type): Copy dimensions of - result variable. - * resolve.c (resolve_contained_fntype): Improve symbol output in - the error message. - -2007-05-26 Jerry DeLisle - - PR fortran/31813 - * io.c (check_format): Add warning for H specifier in format. - -2007-05-26 Tobias Burnus - - * gfortran.texi: Document the GFORTRAN_ERROR_DUMPCORE and - GFORTRAN_ERROR_BACKTRACE environment variables. - -2007-05-26 Paul Thomas - - PR fortran/31219 - * trans.h : Add no_function_call bitfield to gfc_se structure. - Add stmtblock_t argument to prototype of get_array_ctor_strlen. - * trans-array.c (get_array_ctor_all_strlen): New function. - (get_array_ctor_strlen): Add new stmtblock_t argument and call - new function for character elements that are not constants, - arrays or variables. - (gfc_conv_array_parameter): Call get_array_ctor_strlen to get - good string length. - * trans-intrinsic (gfc_conv_intrinsic_len): Add new argument - to call of get_array_ctor_strlen. - -2007-05-25 Kazu Hirata - - * intrinsic.texi: Fix typos. - -2007-05-25 Paul Thomas - - PR fortran/32047 - * trans-expr.c (gfc_apply_interface_mapping_to_expr): Change - order in logic under EXPR_FUNCTION to handle functions with - no arguments. - -2007-05-23 Jerry DeLisle - - PR fortran/31716 - * array.c (spec_dimen_size): Test for correct BT_INTEGER type. - -2007-05-23 Francois-Xavier Coudert - - PR fortran/32046 - * trans-expr.c (gfc_trans_zero_assign): Convert the result of - TYPE_SIZE_UNIT into a signed type. - (gfc_trans_array_copy): Likewise. - (gfc_trans_array_constructor_copy): Likewise. - * trans-array.c (gfc_trans_create_temp_array): Likewise. - (gfc_grow_array): Likewise. - (gfc_array_init_size): Likewise. - (gfc_duplicate_allocatable): Likewise. - * trans-stmt.c (allocate_temp_for_forall_nest_1): Likewise. - -2007-05-22 Jerry DeLisle - - PR fortran/18923 - * resolve.c (resolve_function): Don't call resolve_global_procedure if - there is no name. Delete duplicated statement in ELSE clause. - -2007-05-22 Francois-Xavier Coudert - - PR fortran/31627 - * trans-array.c (gfc_trans_array_bound_check): Take extra argument to - indicate whether we should check the upper bound in that dimension. - (gfc_conv_array_index_offset): Check only the lower bound of the - last dimension for assumed-size arrays. - (gfc_conv_array_ref): Likewise. - (gfc_conv_ss_startstride): Likewise. - -2007-05-21 Jerry DeLisle - Daniel Franke - - PR fortran/32002 - * resolve.c (resolve_actual_arglist): Resolve actual argument after - being identified as variable. - -2007-05-21 Francois-Xavier Coudert - - PR fortran/32027 - * trans-stmt.c (gfc_trans_do): Fix the value of loop variable - when the loop ends. - -2007-05-21 H.J. Lu - - * trans-stmt.c (gfc_trans_do): Fix a typo in comment. - -2007-05-21 Paul Thomas - - PR fortran/31867 - PR fortran/31994 - * trans-array.c (gfc_conv_expr_descriptor): Obtain the stored - offset for non-descriptor, source arrays and correct for stride - not equal to one before writing to field of output descriptor. - -2007-05-20 Daniel Franke - - PR fortran/32001 - * check.c (check_rest): Improved argument conformance check and - fixed error message generation. - -2007-05-19 Francois-Xavier Coudert - - PR fortran/30820 - * Make-lang.in: Remove use of -Wno-error for expr.o, resolve.o, - simplify.o and trans-common.o. - -2007-05-19 Francois-Xavier Coudert - - PR fortran/31974 - * trans-array.c (gfc_trans_auto_array_allocation): Avoid - multiplication of mismatched types. - -2007-05-18 Daniel Franke - - PR fortran/24633 - * symbol.c (gfc_add_flavor): Add the NAME to error message if - available. - -2007-05-15 Daniel Franke - - PR fortran/31919 - PR fortran/31929 - PR fortran/31930 - * intrinsic.c (check_specific): Check elemental intrinsics for - rank and shape. - (add_functions): Fixed dummy argument names of BESJN and BESYN. - Fixed elemental status of MCLOCK and MCLOCK8. - * check.c (check_rest): Added check for array conformance. - (gfc_check_merge): Removed check for array conformance. - (gfc_check_besn): Removed check for scalarity. - * intrinsic.texi (CSHIFT, EOSHIFT): Fixed typos. - (BESJN, BESYN): Clarified documentation. - -2007-05-17 Tobias Burnus - - * gfortran.texi (GFORTRAN_CONVERT_UNIT): Improve documentation. - -2007-05-16 Brooks Moses - - PR fortran/18769 - PR fortran/30881 - PR fortran/31194 - PR fortran/31216 - PR fortran/31427 - * target-memory.c: New file. - * target-memory.h: New file. - * simplify.c: Add #include "target-memory.h". - (gfc_simplify_transfer): Implement constant- - folding for TRANSFER intrinsic. - * Make-lang.in: Add dependencies on new target-memory.* files. - -2007-05-15 Paul Brook - - * trans-types.c (gfc_type_for_size): Handle signed TImode. - -2007-05-14 Francois-Xavier Coudert - - PR fortran/30723 - * trans.h (gfor_fndecl_internal_malloc, gfor_fndecl_internal_malloc64, - gfor_fndecl_internal_free): Remove prototypes. - (gfor_fndecl_os_error, gfc_call_free, gfc_call_malloc): Add prototypes. - * trans.c (gfc_call_malloc, gfc_call_free): New functions. - * f95-lang.c (gfc_init_builtin_functions): Add __builtin_free - and __builtin_malloc builtins. - * trans-decl.c (gfor_fndecl_internal_malloc, - gfor_fndecl_internal_malloc64, gfor_fndecl_internal_free): Remove. - (gfor_fndecl_os_error): Add. - (gfc_build_builtin_function_decls): Don't create internal_malloc, - internal_malloc64 and internal_free library function declaration. - Create os_error library call function declaration. - * trans-array.c (gfc_trans_allocate_array_storage, - gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias, - gfc_conv_array_parameter, gfc_duplicate_allocatable): Use - gfc_call_malloc and gfc_call_free instead of building calls to - internal_malloc and internal_free. - * trans-expr.c (gfc_conv_string_tmp): Likewise. - * trans-stmt.c (gfc_do_allocate, gfc_trans_assign_need_temp, - gfc_trans_pointer_assign_need_temp, gfc_trans_forall_1, - gfc_trans_where_2: Likewise. - * trans-intrinsic.c (gfc_conv_intrinsic_ctime, - gfc_conv_intrinsic_fdate, gfc_conv_intrinsic_ttynam, - gfc_conv_intrinsic_array_transfer, gfc_conv_intrinsic_trim): Likewise. - -2007-05-14 Francois-Xavier Coudert - - PR fortran/31725 - * trans-expr.c (gfc_conv_substring): Evaluate substring bounds - only once. - -2007-05-14 Rafael Avila de Espindola - - * f95-lang.c (LANG_HOOKS_UNSIGNED_TYPE): Remove. - * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Use unsigned_type_for - instead of gfc_unsigned_type. - * trans-stmt.c (gfc_trans_do): Use unsigned_type_for instead of - gfc_unsigned_type. - * trans-types.c (gfc_unsigned_type): Remove. - * trans-types.h (gfc_unsigned_type): Remove. - -2007-05-12 Paul Thomas - - PR fortran/30746 - * resolve.c (check_host_association): New function that detects - incorrect host association and corrects it. - (gfc_resolve_expr): Call the new function for variables and - functions. - * match.h : Remove prototype for gfc_match_rvalue. - * gfortran.h : Add prototype for gfc_match_rvalue. - -2007-05-11 Paul Thomas - - PR fortran/30876 - * trans-expr.c (gfc_conv_function_call): Reduce indirection for - direct assignments of recursive array valued functions. - * primary.c (gfc_match_rvalue): Correct error for recursive - function calls such that directly recursive calls of scalar - function without an explicit result are disallowed. - -2007-05-11 Paul Thomas - - PR fortran/30878 - * resolve.c (resolve_fl_namelist): It is not an error if the - namelist element is the result variable of the enclosing - function. Search for the symbol in current and all parent - namespaces for a potential conflict. - * symbol.c (check_conflict): Remove the conflict between - 'in_namelist' and 'FL_PROCEDURE' because the symbol info - is not available to exclude function result variables. - * trans-io.c (nml_get_addr_expr): Use the fake result decl - if the symbol is an implicit result variable. - -2007-05-11 Paul Thomas - - PR fortran/31474 - * decl.c (get_proc_name): If an entry has already been declared - as a module procedure, pick up the symbol and the symtree and - use them for the entry. - -2007-05-08 Paul Thomas - - PR fortran/31630 - * resolve.c (resolve_symbol): Remove the flagging mechanism from the - formal namespace resolution and instead check that the formal - namespace is not the current namespace. - -2007-05-08 Paul Thomas - - PR fortran/31692 - * trans-array.c (gfc_conv_array_parameter): Convert full array - references to the result of the procedure enclusing the call. - -2007-05-08 Paul Thomas - - PR fortran/29397 - PR fortran/29400 - * decl.c (add_init_expr_to_sym): Expand a scalar initializer - for a parameter array into an array expression with the right - shape. - * array.c (spec_dimen_size): Remove static attribute. - * gfortran.h : Prototype for spec_dimen_size. - -2007-05-07 Francois-Xavier Coudert - - PR fortran/31399 - * trans-stmt.c (gfc_trans_do): Handle large loop counts. - -2007-05-07 Francois-Xavier Coudert - - PR fortran/31764 - * simplify.c (gfc_simplify_new_line): NEW_LINE can be simplified - even for non constant arguments. - -2007-05-06 Jerry DeLisle - Francois-Xavier Coudert - - PR fortran/31201 - * gfortran.h: Add runtime error codes from libgfortran.h. Define - MAX_UNIT_NUMBER. - * trans.c (gfc_trans_runtime_check): Update the format of runtime error - messages to match library runtime errors. Use call to new library - function runtime_error_at(). - * trans.h: Add prototype for new function gfc_trans_io_runtime_check. - Add declaration for library functions runtime_error_at and - generate_error. - * trans_io.c (gfc_trans_io_runtime_check): New function. - (set_parameter_value): Add error checking for UNIT numbers. - (set_parameter_ref): Initialize the users variable to zero. - (gfc_trans_open): Move setting of unit number to after setting of common - flags so that runtime error trapping can be detected. - (gfc_trans_close): Likewise. (build_filepos): Likewise. - (gfc_trans_inquire): Likewise. (build_dt): Likewise. - * trans-decl.c: Add declarations for runtime_error_at and - generate_error. (gfc_build_builtin_function_decls): Build function - declarations for runtime_error_at and generate_error. - -2007-05-06 Paul Thomas - - PR fortran/31540 - * resolve.c (resolve_fl_procedure): Resolve constant character - lengths. - -2007-05-05 Jerry DeLisle - - PR fortran/31251 - * decl.c (match_char_spec): Add check for invalid character lengths. - -2007-05-04 Brooks Moses - - * intrinsic.texi (CMPLX): Document result kind. - (COMPLEX): Add documentation. - -2007-05-04 Daniel Franke - - PR fortran/31760 - * intrinsic.c (add_functions): Replaced calls to gfc_check_g77_math1 - by gfc_check_fn_r to avoid checks for scalarity. - * check.c (gfc_check_besn): Removed check for scalarity. - (gfc_check_g77_math1): Removed. - * intrinsic.h (gfc_check_g77_math1): Removed. - -2007-05-04 Daniel Franke - - * check.c (gfc_check_fseek_sub): Fixed typo. - -2007-05-04 Daniel Franke - - PR fortran/22359 - * intrinsic.c (add_subroutines): Added FSEEK. - * intrinsic.h (gfc_resolve_fseek_sub, gfc_check_fseek_sub): New. - * iresolve.c (gfc_resolve_fseek_sub): New. - * check.c (gfc_check_fseek_sub): New. - * intrinsic.texi (FSEEK): Updated. - -2007-05-04 Tobias Burnus - - PR fortran/31803 - * expr.c (gfc_check_pointer_assign): Check for NULL pointer. - -2007-05-04 Jerry DeLisle - - PR fortran/31251 - * simplify.c (gfc_simplify_len): Only simplify integer lengths. - -2007-05-04 Francois-Xavier Coudert - - PR fortran/31781 - * simplify.c (gfc_simplify_repeat): Don't put function call with - side effect in a gcc_assert(). - -2007-05-04 Tobias Burnus - - PR fortran/25071 - * interface.c (compare_actual_formal): Check character length. - -2007-05-01 Thomas Koenig - - PR fortran/31732 - * dependency.c (gfc_full_array_ref_p): If the reference is - to a single element, check that the array has a single - element and that the correct element is referenced. - -2007-05-01 Daniel Franke - - * intrinsic.c (add_functions): Fixed ELEMENTAL specifications. - (add_subroutines): Replaced magic numbers in function calls by - ELEMENTAL and NOT_ELEMENTAL respectively. - * intrinsic.texi (MVBITS): Changed class to elemental subroutine. - (RANDOM_NUMBER): Changed class to subroutine. - (HUGE, TINY): Changed class to inquiry function. - -2007-04-30 Brooks Moses - - * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_get_double_int. - (gfc_conv_tree_to_mpz): New function. - (gfc_conv_mpfr_to_tree): Use real_from_mpfr. - (gfc_conv_tree_to_mpfr): New function. - * trans-const.h: (gfc_conv_tree_to_mpz): New prototype. - (gfc_conv_tree_to_mpfr): New prototype. - -2007-04-30 Daniel Franke - - * intrinsic.texi (IERRNO): Changed class to non-elemental function. - (LOG10): Removed COMPLEX as accepted argument type. - (NEW_LINE): Changed class from elemental to inquiry function. - (SIGN): Removed requirement of scalar arguments. - (SNGL): Changed class to elemental function. - -2007-04-29 Francois-Xavier Coudert - - PR fortran/31591 - * simplify.c (simplify_bound_dim): New function. - (simplify_bound): Use the above. Perform simplification of LBOUND - and UBOUND when DIM argument is not present. - -2007-04-29 Daniel Franke - - * gfortran.texi: Cleaned up keyword index. - * invoke.texi: Likewise. - * intrinsic.texi: Likewise. - -2007-04-29 Francois-Xavier Coudert - - PR fortran/31645 - * scanner.c (load_file): Discard the byte order mark if one is - found on the first non-preprocessor line of a file. - -2007-04-29 Paul Thomas - - PR fortran/31711 - * trans-array.c (gfc_conv_resolve_dependencies): Create a temp - whenever a dependency is found. - -2007-04-28 Tobias Schlüter - - * options.c (gfc_handle_option): Ensure requested free form line - length is not too small. - -2007-04-27 Brooks Moses - - * intrinsic.texi (Transfer): Improve documentation. - -2007-04-27 Brooks Moses - - * gfortran.texi (Option Index): Add @samp as needed. - -2007-04-27 Daniel Franke - - * gfortran.texi: Added node and menu entry for an option index. - * invoke.texi: Moved command line option related entries of the concept - index to the option index. - -2007-04-27 Daniel Franke - - * intrinsic.texi (AND, FPUT, FPUTC, MODULO, OR, SET_EXPONENT, - XOR): Fixed examples. - -2007-04-27 Daniel Franke - - * intrinsic.texi (PRODUCT, RESHAPE, SPACING, SPREAD, SUM, - SYSTEM_CLOCK, TRANSFER, UNPACK): New. - (DATE_AND_TIME, CPU_TIME, RRSPACING): Added cross references. - -2007-04-26 Daniel Franke - - * intrinsic.texi (NULL, PACK, PRESENT, REPEAT, SCAN, SHAPE, - SIZE, TRANSPOSE, TRIM, VERIFY): New. - (ADJUSTL, ADJUSTR, INDEX): Added cross references. - (INT, INT2, INT8, LONG): Enabled section header. - -2007-04-25 Janne Blomqvist - - * module.c (module_char): Replace fgetc() with - getc(). - (write_char): Replace fputc() with putc(). - * scanner.c (load_line): Replace fgetc() with getc(). - (gfc_read_orig_filename): Likewise. - -2007-04-25 Tobias Burnus - - PR fortran/31668 - * error.c (error_print): Fix %% support. - * intrinsic.c (sort_actual): Improve error message. - * resolve.c (resolve_actual_arglist): Allow %VAL for - interfaces defined in the module declaration part. - -2007-04-25 Francois-Xavier Coudert - - PR libfortran/31299 - * intrinsic.texi (GETLOG): Update documentation to reflect - library changes. - -2007-04-24 Francois-Xavier Coudert - - PR fortran/31587 - * module.c (write_char): Add character to the MD5 buffer. - (read_md5_from_module_file): New function. - (gfc_dump_module): Compute MD5 for new module file. Call - read_md5_from_module_file. Only overwrite old module file - if the new MD5 is different. - -2007-04-23 Paul Thomas - - PR fortran/31630 - * resolve.c (resolve_symbol): Allow resolution of formal - namespaces nested within formal namespaces coming from modules. - - PR fortran/31620 - * trans-expr.c (gfc_trans_assignment): Make the call to - gfc_trans_zero_assign conditional on the lhs array ref being - the only reference. - -2007-04-23 Tobias Burnus - - * primary.c (match_integer_constant): Mention -fno-range-check - in the error message. - -2007-04-21 Jerry DeLisle - - PR fortran/31495 - * scanner.c (load_line): Remove check for comment after ampersand and - adjust tracking of ampersand. - -2007-04-21 Andrew Pinski - - * f95-lang.c (lang_tree_node): Use GENERIC_NEXT - instead of checking GIMPLE_STMT_P in chain_next. - -2007-04-17 Tobias Schlüter - - * trans-types.h (gfc_packed): New enum. - (gfc_get_nodesc_array_type): Change prototype to use new enum. - * trans-types.c (gfc_get_nodesc_array): Use gfc_packed for - argument packed. Adapt all references to values accordingly. - (gfc_sym_type): Use enum values in call to gfc_get_nodesc_array. - (gfc_get_derived_type): Likewise. - * trans-array.c (gfc_build_constant_array_constructor): Likewise. - * trans-expr.c (gfc_get_interface_mapping_charlen): Changed packed - argument to type gfc_packed. - (gfc_add_interface_mapping): Use enum values in call to - gfc_get_interface_mapping. - * trans-decl.c (gfc_build_dummy_array_decl): Adapt to use enum - values when determining packing. - - * trans-decl.c (gfc_finish_decl): Remove unused second argument - 'init'. Simplify code accordingly. Remove calls to - gfc_fatal_error in favor of gcc_assert. - (create_function_arglist): Remove second argument from calls to - gfc_finish-decl. - (gfc_trans_dummy_character): Likewise. - - * arith.h: Update copyright years. - * dependency.h: Likewise. - * gfortran.h: Likewise. - * lang-specs.h: Likewise. - * parse.h: Likewise. - * symbol.c: Likewise. - * trans.h: Likewise. - * trans.c: Likewise. - * trans-array.c: Likewise. - * trans-common.c: Likewise. - * trans-const.h: Likewise. - * trans-const.c: Likewise. - * trans-decl.c: Likewise. - * trans-expr.c: Likewise. - * trans-io.c: Likewise. - * trans-openmp.c: Likewise. - * trans-types.h: Likewise. - * types.def: Likewise. - -2007-04-17 Tobias Schlüter - - PR fortran/31144 - * decl.c (gfc_sym_mangled_identifier): Use capital letters in name - mangling. - (gfc_sym_mangled_function_id): Likewise. - -2007-04-15 Paul Thomas - - PR fortran/31204 - * primary.c (check_for_implicit_index): New function to check - that a host associated variable is not an undeclared implied - do loop index. - (gfc_match_rvalue, match_variable): Use it and reset the - implied_index attribute. - * gfortran.h : Add the implied_index field to symbol_attribute. - * match.c (gfc_match_iterator): Mark the iterator variable - with the new attribute. - * decl.c (build_sym): Reset the new attribute. - -2007-04-15 Kazu Hirata - - * gfc-internals.texi: Fix typos. - * simplify.c: Fix a comment typo. - -2007-04-14 Bernhard Fischer - - * primary.c: Commentary typo fix; Add question about redundant (?) - set. - -2007-04-14 Paul Thomas - - PR fortran/29507 - PR fortran/31404 - * expr.c (scalarize_intrinsic_call): New function to - scalarize elemental intrinsic functions in initialization - expressions. - (check_init_expr): Detect elemental intrinsic functions - in initalization expressions and call previous. - -2007-04-13 Tobias Burnus - - PR fortran/31559 - * primary.c (match_variable): External functions - are no variables. - -2007-04-13 Paul Thomas - - PR fortran/31550 - * trans-types.c (copy_dt_decls_ifequal): Do not get pointer - derived type components. - -2007-04-13 Tobias Schlüter - - PR fortran/18937 - * resolve.c: Include obstack.h and bitmap.h. New variable - labels_obstack. - (code_stack): Add tail and reachable_labels fields. - (reachable_labels): New function. - (resolve_branch): Rework to use new fields in code_stack. - (resolve_code): Call reachable_labels. - (resolve_codes): Allocate and free labels_obstack. - -2007-04-12 Tobias Schlüter - - PR fortran/31250 - * decl.c (match_char_spec): Move check for negative CHARACTER - length ... - * resolve.c (resolve_charlen): ... here. - (resolve_types): Resolve CHARACTER lengths earlier. - -2007-04-12 Daniel Franke - - PR fortran/31234 - * intrinsic.texi (RANDOM_SEED, RANDOM_NUMBER): New. - -2007-04-12 Tobias Schlüter - - PR fortran/31266 - * primary.c (gfc_variable_attr): Don't copy string length if it - doesn't make sense. - * resolve.c (resolve_code): Clarify error message. - - PR fortran/31471 - * decl.c (gfc_match_end): Also check for construct name in END - FORALL and END WERE statements. - * match.c (match_case_eos): Use uppercase for statement name in - error message. - (match_elsewhere): Construct name may appear iff construct has a - name. - - * trans-types.c: Update copyright years. Reformat long comment - explaining array descriptor format. Remove obsolete mention of - TYPE_SET. - - * arith.c (gfc_arith_uplus): Rename to ... - (gfc_arith_identity): ... this. - (gfc_parentheses): New function. - (gfc_uplus): Adapt to renamed function. - * arith.h (gfc_parentheses): Add prototype. - * expr.c (gfc_copy_expr): Deal with INTRINSIC_PARENTHESES. - (simplifiy_intrinsic_op): Treat INTRINSIC_UPLUS separately from - INTRINSIC_PARENTHESES. - -2007-04-12 Tobias Burnus - - PR fortran/31472 - * decl.c (match_attr_spec): Allow PRIVATE/PUBLIC - attribute in type definitions. - (gfc_match_private): Allow PRIVATE statement only - in specification part of modules. - (gfc_match_public): Ditto for PUBLIC. - (gfc_match_derived_decl): Allow PRIVATE/PUBLIC attribute only in - specificification part of modules. - -2007-04-07 Paul Thomas - - PR fortran/31257 - * intrinsic.c (add_functions): Add ref. to gfc_resolve_achar. - * intrinsic.h : Add prototype for gfc_resolve_achar. - * iresolve.c (gfc_resolve_achar): New function. - -2007-04-07 Paul Thomas - - PR fortran/30880 - * resolve.c (resolve_fl_variable): Set flag to 2 for automatic - arrays. Make condition for automatic array error explicit. - If a dummy, no error on an INTENT(OUT) derived type. - -2007-04-07 Paul Thomas - - PR fortran/30872 - * expr.c (find_array_element): Correct arithmetic for rank > 1. - -2007-04-07 Paul Thomas - - PR fortran/31222 - * check.c (numeric_check): If an expresson has not got a type, - see if it is a symbol for which a default type applies. - -2007-04-07 Paul Thomas - - PR fortran/31214 - * trans-decl.c (gfc_get_symbol_decl): Allow unreferenced use - associated symbols. - -2007-04-07 Paul Thomas - - PR fortran/31293 - * symbol.c (gfc_check_function_type): New function. - * gfortran.h : Add prototype for previous. - * parse.c (parse_progunit): Call it after parsing specification - statements. - -2007-04-05 Paul Thomas - - PR fortran/31483 - * trans-expr.c (gfc_conv_function_call): Give a dummy - procedure the correct type if it has alternate returns. - -2007-04-05 Paul Thomas - - PR fortran/31292 - * decl.c (gfc_match_modproc): Go up to the top of the namespace - tree to find the module namespace for gfc_get_symbol. - -2007-04-03 Francois-Xavier Coudert - - PR fortran/31304 - * fortran/gfortran.h (gfc_charlen_int_kind): New prototype. - * fortran/trans-types.c (gfc_charlen_int_kind): New variable. - (gfc_init_types): Define gfc_charlen_int_kind. - * fortran/trans.h (gfor_fndecl_string_repeat): Remove prototype. - * fortran/trans-decl.c (gfor_fndecl_string_repeat): Delete. - (gfc_build_intrinsic_function_decls): Don't set - gfor_fndecl_string_repeat. - * fortran/trans-intrinsic.c (gfc_conv_intrinsic_repeat): Rewrite - so that we don't have to call a library function. - * fortran/simplify.c (gfc_simplify_repeat): Perform the necessary - checks on the NCOPIES argument, and work with arbitrary size - arguments. - -2007-03-31 Tobias Burnus - - * intrinsic.c (add_functions): Fix name of dummy argument - for new_line and exit intrinsic. - -2007-03-31 Paul Thomas - - PR fortran/31160 - * gfortran.texi: Add a section for the %VAL, %REF and %LOC - extensions. - -2007-03-30 Rafael Avila de Espindola - - * trans-types.c (gfc_signed_or_unsigned_type): Remove. - (gfc_unsigned_type): Use get_signed_or_unsigned_type instead of - gfc_signed_or_unsigned_type. - (gfc_signed_type): Ditto. - * trans-types.h (gfc_signed_or_unsigned_type): Remove. - * f95-lang.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove. - -2007-03-30 Tobias Schlüter - - * symbol.c (gfc_find_gsymbol): Simplify, don't unconditionally - descend into all branches. - -2007-03-29 Tobias Schlüter - - * intrinsic.c (conv_name): Let gfc_get_string handle the format. - (find_conv): Compare pointers instead of calling strcmp. - (find_sym): Likewise, but ensure that the compared pointer is in - the global string table. - -2007-03-28 Tobias Schlüter - - * gfc-internals.texi: Fix output filename. Merge type index into - concept index. Start documentation of gfc_code structure. - -2007-03-26 Brooks Moses - - * gfc-internals.texi: New file, - * Make-lang.in: Add rules to convert it to dvi, pdf, and info. - -2007-03-26 Brooks Moses - - * error.c (show_locus): Remove always-false test. - -2007-03-26 Brooks Moses - - * lang.opt: Minor edits to descriptions. - -2007-03-25 Francois-Xavier Coudert - - PR fortran/30877 - * fortran/interface.c (check_operator_interface): Implement - the standard checks on user operators extending intrinsic operators. - * fortran/resolve.c (resolve_operator): If the ranks of operators - don't match, don't error out but try the user-defined ones first. - -2007-03-24 Francois-Xavier Coudert - - PR fortran/30655 - * expr.c (check_dimension): Fix logic of comparisons. - -2007-03-24 Paul Thomas - - PR fortran/31215 - * trans-expr.c (gfc_apply_interface_mapping_to_expr): Return - int result that is non-zero if the expression is the function - result. Only the characteristics of the result expression - can be used in a procedure interface, so simplify LEN in situ - using its character length. - - PR fortran/31209 - PR fortran/31200 - * trans-expr.c (gfc_conv_function_call): Do not use - gfc_conv_expr_reference for actual pointer function with formal - target because a temporary is created that does not transfer - the reference correctly. Do not indirect formal pointer - functions since it is the function reference that is needed. - -2007-03-24 Brooks Moses - - * gfortran.h: Edit comments on GFC_STD_*. - -2007-03-23 Brooks Moses - - * invoke.texi: Misc. small typo fixes. - (-Wcharacter-truncation): Add. - (-Wnonstd-intrinsics): Correct spelling. - (-std=): Edit. - (-fintrinsic-modules-path): Add. - -2007-03-23 Francois-Xavier Coudert - - PR fortran/30834 - * arith.c (complex_pow): Rewrite to handle large power. - (gfc_arith_power): Handle large power in the real and integer - cases. - -2007-03-22 Francois-Xavier Coudert - - PR fortran/31262 - * trans-const.c (gfc_conv_mpz_to_tree): Allow integer constants - larger than twice the width of a HOST_WIDE_INT. - -2006-03-22 Paul Thomas - - PR fortran/31193 - * trans-intrinsic.c (gfc_size_in_bytes): Remove function. - (gfc_conv_intrinsic_array_transfer): Remove calls to previous. - Explicitly extract TREE_TYPEs for source and mold. Use these - to calculate length of source and mold, except for characters, - where the se string_length is used. For mold, the TREE_TYPE is - recalculated using gfc_get_character_type_len so that the - result is correctly cast for character literals and substrings. - Do not use gfc_typenode_for_spec for the final cast. - -2007-03-22 Tobias Schlüter - - PR fortran/20897 - * decl.c (gfc_match_derived_decl): Reliably reject - 'doubleprecision' and 'doublecomplex' as type names. - -2007-03-19 Francois-Xavier Coudert - - PR fortran/31203 - * trans-expr.c (gfc_trans_init_string_length): Length should - never be negative. - (gfc_conv_function_call): Likewise. - -2007-03-18 Paul Thomas - - PR fortran/30531 - PR fortran/31086 - * symbo.c : Add gfc_derived_types. - (gfc_free_dt_list): Free derived type list gfc_derived_types. - (gfc_free_namespace): Remove call to gfc_free_dt_list. - (gfc_symbol_done_2): Call gfc_free_dt_list. - * gfortran.h : Declare gfc_derived_types to be external. Remove - derived types field from gfc_namespace. - * resolve.c (resolve_fl_derived): Refer to gfc_derived types - rather than namespace derived_types. - (resolve_fntype): Remove special treatment for module - derived type functions. - * trans-types.c (gfc_get_derived_type): Remove search for like - derived types. Finish by copying back end declaration to like - derived types in the derived type list gfc_derived_types. - - 2007-03-17 Francois-Xavier Coudert - - PR fortran/31120 - * trans-expr.c (gfc_conv_powi): Make n argument unsigned hwi. - (gfc_conv_cst_int_power): Handle integer exponent with care, - since it might be too large for us. - -2007-03-17 Francois-Xavier Coudert - - PR fortran/31184 - * invoke.texi: Fix typo. - -2007-03-16 Tobias Burnus - - * trans-decl.c (gfc_generate_function_code): Use all arguments of - set_std. - -2007-03-15 Francois-Xavier Coudert - - * gfortran.h (gfc_option_t): Add flag_backtrace field. - * lang.opt: Add -fbacktrace option. - * invoke.texi: Document the new option. - * trans-decl.c (gfc_build_builtin_function_decls): Add new - option to the call to set_std. - * options.c (gfc_init_options, gfc_handle_option): Handle the - new option. - -2007-03-15 Tobias Burnus - Paul Thomas - - PR fortran/30922 - * decl.c (gfc_match_import): If the parent of the current name- - space is null, try looking for an imported symbol in the parent - of the proc_name interface. - * resolve.c (resolve_fl_variable): Do not check for blocking of - host association by a same symbol, if the symbol is in an - interface body. - -2007-03-15 Paul Thomas - - PR fortran/30879 - * decl.c (match_data_constant): Before going on to try to match - a name, try to match a structure component. - - - PR fortran/30870 - * resolve.c (resolve_actual_arglist): Do not reject a generic - actual argument if it has a same name specific interface. - - PR fortran/31163 - * trans-array.c (parse_interface): Do not nullify allocatable - components if the symbol has the saved attribute. - -2007-03-14 Francois-Xavier Coudert - - * trans-array.c (gfc_trans_auto_array_allocation): Replace - fold(convert()) by fold_convert(). - (gfc_duplicate_allocatable): Likewise. - * trans-intrinsic.c (gfc_conv_intrinsic_dot_product): Use - build_int_cst instead of converting an integer_zero_node - to the final type. - -2007-03-14 Jakub Jelinek - - * module.c (mio_typespec): Don't look at ts->cl if not BT_CHARACTER. - -2007-03-13 Brooks Moses - - PR fortran/30933 - PR fortran/30948 - PR fortran/30953 - * intrinsics.texi (CHDIR): Fix argument names, note - that STATUS must be a default integer. - (CTIME): Fix argument names, note that RESULT must - be a default integer. - (EXIT): Note that STATUS must be a default integer. - -2007-03-13 Brooks Moses - - PR fortran/28068 - * intrinsic.texi: General whitespace cleanup, remove - comment about missing intrinsics. - (menu): Add lines for new entries listed below. - (ACOSH): Mention specific function DACOSH, correct - description phrasing. - (ASINH): Mention specific function DASINH, correct - description phrasing. - (ATANH): Mention specific function DATANH, correct - description phrasing. - (COS): Add index entry for CCOS. - (CPU_TIME): Correct "REAL" to "REAL(*)". - (EXP): Add index entry for CEXP. - (INT): Correct argument name to "A". - (INT2): New entry. - (INT8): New entry. - (LONG): New entry. - (MAX): Add index entries for specific variants. - (MCLOCK): New entry. - (MCLOCK8): New entry. - (SECNDS): Adjust to a more standard form. - (SECOND): New entry. - (TIME): Add cross-reference to MCLOCK. - (TIME8): Add cross-reference to MCLOCK8. - -2007-03-11 Paul Thomas - - PR fortran/30883 - * parse.c (parse_interface): Use the default types from the - formal namespace if a function or its result do not have a type - after parsing the specification statements. - -2007-03-08 Brooks Moses - - * intrinsic.texi: (ICHAR) Improve internal I/O note. - (ACHAR): Reference it. - (CHAR): Reference it. - (IACHAR): Reference it. - -2007-03-08 Brooks Moses - - * intrinsic.texi: (LINK) Document function form. - (RENAME): Likewise. - (SYMLNK): Likewise. - (SYSTEM): Likewise. - (UNLINK): Likewise. - -2007-03-08 Brooks Moses - - * intrinsic.texi: minor typo fixes, removed prologue. - (FSEEK): moved to correct place in alphabetical order. - -2007-03-08 Daniel Franke - - PR fortran/30947 - * check.c (gfc_check_alarm_sub): Added check for default integer - kind of status argument. - * iresolve.c (gfc_resolve_alarm_sub): Removed conversion of - status argument. - * intrinsic.texi (ALARM): Extended documentation. - -2007-03-08 Daniel Franke - - * intrinsic.texi (GERROR, ISATTY, TTYNAM): New. - (ABORT, FLUSH, FNUM, IRAND, MALLOC, SIGNAL, SRAND): Fixed typo. - * intrinsic.c (add_subroutines): Adjusted dummy argument names - of GERROR and TTYNAM. - -2007-07-08 Tobias Burnus - - * module.c (gfc_match_use): Support renaming of operators - in USE statements. - * gfortran.texi (Fortran 2003 Status): Document support of - renaming of operators. - -2007-07-08 Tobias Burnus - - PR fortran/30973 - * module.c (read_module): Always import module name as symbol. - (gfc_match_use): Disallow module name in the only clause of - a use statement. - -2007-03-08 Paul Thomas - - PR fortran/31011 - * expr.c (find_array_section): Correct arithmetic for section - size. - -2007-03-07 Brooks Moses - - * iresolve.c (gfc_resolve_ishftc): Correct s_kind value. - -2007-03-06 Daniel Franke - - PR documentation/30950 - * intrinsic.texi (AND, CPU_TIME): Fix dummy argument names. - (FREE): Fix call syntax. - -2007-03-06 Brooks Moses - - * intrinsic.texi: Limit column widths to a total of .85. - -2007-03-05 Brooks Moses - - * gfortran.texi (GFortran and G77): Rewrite completely. - -2007-03-05 Brooks Moses - - * match.c (gfc_match_name): Expanded comment. - -2007-03-05 Brooks Moses - - * gfortran.texi (Old-style kind specifications): Document - special handling of old-style kind specifiers for COMPLEX. - * decl.c (gfc_match_old_kind_spec): Document kind/bytesize - assumptions for COMPLEX in comment. - -2007-03-05 Brooks Moses - - PR 31050 - * gfortranspec.c (lang_specific_driver): Update program - name and copyright date. - -2007-03-03 Paul Thomas - - PR fortran/30882 - * check.c (dim_rank_check): The shape of subsections of - assumed-size arrays is known. - -2007-03-02 Paul Thomas - Tobias Burnus - - PR fortran/30873 - * decl.c (gfc_match_entry): Remove erroneous entry result check. - -2007-03-01 Brooks Moses - - * Make-lang.in: Add install-pdf target as copied from - automake v1.10 rules. - -2007-03-01 Tobias Burnus - - PR fortran/30865 - * trans-intrinsic.c (gfc_conv_intrinsic_size): Compare pointers. - -2007-02-28 Tobias Burnus - Paul Thomas - - PR fortran/30888 - PR fortran/30887 - * resolve.c (resolve_actual_arglist): Allow by-value - arguments and non-default-kind for %VAL(). - * trans-expr.c (conv_arglist_function): Allow - non-default-kind for %VAL(). - -2007-02-28 Tobias Burnus - - PR fortran/30968 - * primary.c (next_string_char): Correct reading a character - after the delimiter. - (match_string_constant): Print warning message only once. - -2007-02-27 Richard Guenther - - * trans-array.c (structure_alloc_comps): Use correct type - for null pointer constant. - -2007-02-26 Brooks Moses - - * gfortran.texi: Standardize title page, remove version number - from copyright page. - -2007-02-26 Thomas Koenig - Paul Thomas - - PR fortran/30865 - * trans-intrinsic.c (gfc_conv_intrinsic_size): - If dim is an optional argument, check for its - presence and call size0 or size1, respectively. - -2007-02-23 Paul Thomas - - PR fortran/30660 - * resolve.c (has_default_initializer): New function. - (resolve_fl_variable): Call has_default_initializer to determine if - the derived type has a default initializer to its ultimate - components. - - -2007-02-22 Jerry DeLisle - - * options.c (set_default_std_flags): New function to consolidate - setting the flags. - (gfc_init_options): Use new function. - (gfc_handle_option): Use new function. - -2007-02-22 Brooks Moses - - * gfortran.texi (Old-style kind specifications): Document - special handling of old-style kind specifiers for COMPLEX. - * decl.c (gfc_match_old_kind_spec): Documented kind/bytesize - assumptions in comment. - -2007-02-21 Bernhard Fischer - - * parse.c (next_free): Gooble spaces after OpenMP sentinel. - -2007-02-20 Thomas Koenig - - PR fortran/30869 - * match.c (gfc_match_iterator): Remove conflict between - loop variable and pointer. - -2007-02-20 Tobias Burnus - - PR fortran/30522 - * symbol.c (gfc_add_volatile): Allow to set VOLATILE - attribute for host-associated variables. - * gfortran.h (symbol_attribute): Save namespace - where VOLATILE has been set. - * trans-decl.c (gfc_finish_var_decl): Move variable - declaration to the top. - -2007-02-20 Tobias Burnus - - PR fortran/30783 - * resolve.c (resolve_symbol): Add character dummy VALUE check. - -2007-02-19 Thomas Koenig - - PR libfortran/30533 - * fortran/iresolve.c (gfc_resolve_maxloc): Remove coercion of - argument to default integer. - (gfc_resolve_minloc): Likewise. - -2007-02-18 Jerry DeLisle - - PR fortran/30681 - * options.c (gfc_init_options): Relax warning level for obsolescent. - * match.c (match_arithmetic_if): Change to obsolescent from deleted. - (gfc_match_if): Same. - -2007-02-18 Roger Sayle - - * trans-array.c (gfc_build_constant_array_constructor): When the - shape of the constructor is known, use that to construct the - gfc_array_spec. - (gfc_trans_constant_array_constructor): Initialize the "info" - information for all of the dimensions of the array constructor. - (constant_array_constructor_loop_size): New function. - (gfc_trans_array_constructor): Use it to determine whether a - loop is suitable for "constant array constructor" optimization. - - * trans-intrinsic.c (gfc_conv_intrinsic_anyall): Use fold_build2 - instead of build2, to avoid conditions like "(a != b) != 0". - -2007-02-18 Roger Sayle - Paul Thomas - - PR fortran/30400 - * match.c (match_forall_iterator): Use gfc_match_expr instead - of gfc_match_variable to match the iterator variable. Return - MATCH_NO if not a variable. Remove the reset of the symbol's - flavor in cleanup. - -2007-02-16 Tobias Burnus - - PR fortran/30793 - * trans-decl.c (gfc_generate_function_code): Do not initialize - pointers to derived components. - -2007-02-15 Sandra Loosemore - Brooks Moses - Lee Millward - - * trans-expr.c (gfc_conv_power_op): Use build_call_expr. - (gfc_conv_string_tmp): Likewise. - (gfc_conv_concat_op): Likewise. - (gfc_build_compare_string): Likewise. - (gfc_conv_function_call): Use build_call_list instead of build3. - - * trans-array.c (gfc_trans_allocate_array_storage): Use - build_call_expr. - (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. - (gfc_trans_dealloc_allocated): Likewise. - (gfc_duplicate_allocatable): Likewise. - - * trans-openmp.c (gfc_trans_omp_barrier): Use build_call_expr. - (gfc_trans_omp_flush): Likewise. - - * trans-stmt.c (gfc_conv_elementel_dependencies): Use build_call_expr. - (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_2): Likewise. - (gfc_trans_allocate): Likewise. - (gfc_trans_deallocate): Likewise. - - * trans.c (gfc_trans_runtime_check): Use build_call_expr. - - * trans-io.c (gfc_trans_open): Use build_call_expr. - (gfc_trans_close): Likewise. - (build_filepos): Likewise. - (gfc_trans_inquire): Likewise. - (NML_FIRST_ARG): Delete. - (NML_ADD_ARG): Delete. - (transfer_namelist_element): Use build_call_expr. - (build_dt): Likewise. - (gfc_trans_dt_end): Likewise. - (transfer_expr): Likewise. - (transfer_array-desc): Likewise. - - * trans-decl.c (gfc_generate_function_code): Use build_call_expr. - (gfc_generate_constructors): Likewise. - - * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Use build_call_expr. - (gfc_conv_intrinsic_fdate): Likewise. - (gfc_conv_intrinsic_ttynam): Likewise. - (gfc_conv_intrinsic_array_transfer): Likewise. - (gfc_conv_associated): Likewise. - (gfc_conv_intrinsic_si_kind): Likewise. - (gfc_conv_intrinsic_trim): Likewise. - (gfc_conv_intrinsic_repeat: Likewise. - (gfc_conv_intrinsic_iargc): Likewise. - -2007-02-14 Jerry DeLisle - - PR fortran/30779 - * scanner.c (gfc_next_char_literal): Add check for end of file after - call to advance_line. - -2007-02-14 Steven G. Kargl - - PR fortran/30799 - * primary.c (match_logical_constant): Return MATCH_ERROR on invalid - kind. - -2007-02-14 Steven G. Kargl - - * misc.c (gfc_typename): Fix potential buffer overflow. - -2007-02-13 Paul Thomas - - PR fortran/30554 - * module.c (read_module): Set pointer_info to referenced if the - symbol has no namespace. - -2007-02-12 Nick Clifton - - * lang.opt: Add Warning attribute to warning options. - -2007-02-11 Daniel Franke - - * intrinsic.texi (HOSTNM): Fix typographical error in syntax. - (SLEEP): Added section and documentation. - -2007-02-11 Tobias Schlüter - - PR fortran/30478 - * decl.c (add_init_expr_to_sym): Remove ENUM specific code. - (variable_decl): Likewise. Rewrap comment. - (match_attr_spec): Remove ENUM specific code. - (gfc_match_enum): Fix typo in error message. - (enumerator_decl): New function. - (gfc_match_enumerator_def): Use enumerator_decl instead of - variable_decl. Adapt code accordingly. - -2007-02-11 Paul Thomas - - PR fortran/30554 - * module.c (find_symtree_for_symbol): New function to return - a symtree that is not a "unique symtree" given a symbol. - (read_module): Do not automatically set pointer_info to - referenced because this inhibits the generation of a unique - symtree. Recycle the existing symtree if possible by calling - find_symtree_for_symbol. - - PR fortran/30319 - * decl.c (add_init_expr_to_sym): Make new charlen for an array - constructor initializer. - -2007-02-10 Richard Henderson , Jakub Jelinek - - * f95-lang.c (gfc_init_builtin_functions): Add __emutls_get_address - and __emutls_register_common. - * openmp.c (gfc_match_omp_threadprivate): Don't error if !have_tls. - * trans-common.c (build_common_decl): Don't check have_tls. - * trans-decl.c (gfc_finish_var_decl): Likewise. - * types.def (BT_WORD, BT_FN_PTR_PTR): New. - (BT_FN_VOID_PTR_WORD_WORD_PTR): New. - -2007-02-09 Tobias Burnus - - PR fortran/30512 - * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc, - gfc_conv_intrinsic_minmaxval): Use HUGE-1 for most negative integer. - -2007-02-09 Francois-Xavier Coudert - - PR fortran/30720 - * trans-array.c (gfc_trans_create_temp_array): Remove use of the - function argument. Always generate code for negative extent. - Simplify said code. - * trans-array.h (gfc_trans_create_temp_array): Change prototype. - * trans-expr.c (gfc_conv_function_call): Remove use of last argument - of gfc_trans_create_temp_array. - * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): Likewise. - * trans-stmt.c (gfc_conv_elemental_dependencies): Likewise. - -2007-02-08 Roger Sayle - - * trans-stmt.c (gfc_trans_forall_1): Optimize the cases where the - mask expression is a compile-time constant (".true." or ".false."). - -2007-02-04 Francois-Xavier Coudert - - PR fortran/30611 - * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Evaluate - arguments only once. Generate check that NCOPIES argument is not - negative. - -2007-02-04 Steven G. Kargl - - PR fortran/30605 - * fortran/invoke.texi: Update documentation. - * fortran/options.c (gfc_post_options): Deal with tabs with -std=f2003 - and -pedantic. - -2007-02-03 Kazu Hirata - - * trans-array.c: Fix a comment typo. - -2007-02-03 Paul Thomas - - PR fortran/30514 - * array.c (match_array_element_spec): If the length of an array is - negative, adjust the upper limit to make it zero length. - - PR fortran/30660 - * resolve.c (pure_function, resolve_function): Initialize name to - null to clear up build warnings. - (resolve_fl_variable): Look at components explicitly to check for - default initializer, rather than using gfc_default_initializer. - -2007-02-02 Steven G. Kargl - - PR fortran/30683 - * resolve.c (resolve_generic_f): Check for non-NULL sym. - -2007-02-02 Roger Sayle - - * trans.c (gfc_build_array_ref): Use STRIP_TYPE_NOPS to eliminate - NON_LVALUE_EXPR nodes and useless type conversions. - -2007-02-02 Paul Thomas - - PR fortran/30284 - PR fortran/30626 - * trans-expr.c (gfc_conv_aliased_arg): Remove static attribute - from function and make sure that substring lengths are - translated. - (is_aliased_array): Remove static attribute. - * trans.c : Add prototypes for gfc_conv_aliased_arg and - is_aliased_array. - * trans-io.c (set_internal_unit): Add the post block to the - arguments of the function. Use is_aliased_array to check if - temporary is needed; if so call gfc_conv_aliased_arg. - (build_dt): Pass the post block to set_internal_unit and - add to the block after all io activiy is done. - -2007-02-01 Roger Sayle - - * trans-array.c (gfc_conv_expr_descriptor): We don't need to use - a temporary array to pass a constant non-character array constructor. - Generalize the descriptor generation code to handle scalarizer - "info" without an array reference. - -2007-02-01 Roger Sayle - - * dependency.c (gfc_check_dependency) : Implement - dependency checking for array constructors. - -2007-02-01 Roger Sayle - - * trans-stmt.c (compute_overall_iter_number): Document function - arguments. Generalize "unconditional forall nest with constant - bounds" optimization to eliminate unconditional inner loops with - constant bounds. - -2007-01-31 Tobias Burnus - - PR fortran/30520 - * interface.c (compare_actual_formal): Check conformance between - actual and VOLATILE dummy arguments. - * symbol.c (gfc_add_volatile): Allow setting of VOLATILE - multiple times in different scopes. - * decl.c (gfc_match_volatile): Search symbol in host association. - -2007-01-31 Kazu Hirata - - * simplify.c, trans-array.c: Fix comment typos. - -2007-01-30 Ralf Wildenhues - - * invoke.texi (Code Gen Options): Fix abbreviation typo. - * intrinsic.texi (ACCESS, LSHIFT, RSHIFT): Fix typos. - -2007-01-30 Steve Ellcey - - PR fortran/30432 - * trans-types.c (gfc_get_function_type): Do not add void_type_node - to empty arg list. - * trans-decl.c (create_function_arglist): Change assert. - -2007-01-29 Paul Thomas - - PR fortran/30554 - * module.c (read_module): If a symbol is excluded by an ONLY - clause, check to see if there is a symtree already loaded. If - so, attach the symtree to the pointer_info. - -2007-01-28 Thomas Koenig - - PR libfortran/30389 - * gfortran.h: Remove gfc_simplify_init_1. - * arith.h: Remove third argument from gfc_compare_string. - * arith.c (gfc_compare_expression): Remove third argument - from call to gfc_compare_string. - (gfc_compare_string): Remove third argument xcoll_table. - Remove use of xcoll_table. - * misc.c (gfc_init_1): Remove call to gfc_simplify_init_1. - * simplify.c (ascii_table): Remove. - (xascii_table): Likewise. - (gfc_simplify_achar): ICE if extract_int fails. Remove use of - ascii_table. Warn if -Wsurprising and value < 0 or > 127. - (gfc_simplify_char): ICE if extract_int fails. Error if - value < 0 or value > 255. - (gfc_simplify_iachar): Remove use of xascii_table. - Char values outside of 0..255 are an ICE. - (gfc_simplify_lge): Remove use of xascii_table. - (gfc_simplify_lgt): Likewise. - (gfc_simplify_lle): Likewise. - (gfc_simplify_llt): Likewise. - (invert_table): Remove. - (gfc_simplify_init_1): Remove. - -2007-01-27 Roger Sayle - - * trans-stmt.c (forall_info): Replace the next_nest and outer - fields that previously implemented a doubly-linked list with a - single prev_nest field (singly-linked list). - (gfc_trans_nested_forall_loop): The nested_forall_info argument - now denotes the innermost FORALL in the loop nest. - (compute_overall_iter_number): Use prev_nest instead of next_nest. - (gfc_trans_forall_1): Link/cons the new "info" to the head of the - nested_forall_info linked list. Free the current "info" when done. - -2007-01-27 Paul Thomas - - PR fortran/30407 - * trans-expr.c (gfc_conv_operator_assign): New function. - * trans.h : Add prototype for gfc_conv_operator_assign. - * trans-stmt.c (gfc_trans_where_assign): Add a gfc_symbol for - a potential operator assignment subroutine. If it is non-NULL - call gfc_conv_operator_assign instead of the first assignment. - ( gfc_trans_where_2): In the case of an operator assignment, - extract the argument expressions from the code for the - subroutine call and pass the symbol to gfc_trans_where_assign. - resolve.c (resolve_where, gfc_resolve_where_code_in_forall, - gfc_resolve_forall_body): Resolve the subroutine call for - operator assignments. - -2007-01-26 Steven Bosscher - Steven G. Kargl - - PR fortran/30278 - * fortran/io.c (next_char): Deal with backslash escaped characters. - Issue warnings in non -std=gnu cases. - * fortran/primary.c (next_string_char): Issue warnings in non - -2007-01-26 Tobias Burnus - - * lang-specs.h: Add support for .f03 and .F03 extensions. - * gfortran.texi: Document .f03 extension. - * options.c (form_from_filename): Recognize .f03. - -2007-01-25 Manuel Lopez-Ibanez - - PR fortran/30437 - * lang.opt (Wall): Remove RejectNegative. - * options.c (gfc_handle_option): Wall can be disabled. - (set_Wall): Add a parameter for disabling Wall. - -2007-01-23 Jerry DeLisle - - PR fortran/30532 - * scanner.c (load_line): Remove check fot ctrl-z and don't gobble. - -2007-01-23 Paul Thomas - - PR fortran/30481 - * match.c (gfc_match_namelist): Add check for assumed size character - in namelist and provide error if found. - -2007-01-21 Brooks Moses - - * intrinsic.texi (ACHAR): Added cross-references. - (CHAR): Put cross-references in alphabetical order. - (IACHAR): Added cross-references. - (ICHAR): Added cross-references. - -2007-01-20 Brooks Moses - - * intrinsic.texi: Edited all "Syntax" examples to a consistent form. - (MAXVAL): Corrected description of result characteristics. - (MINVAL): Same. - (UMASK): Added documentation. - -2007-01-20 Steven G. Kargl - - * openmp.c, matchexp.c, module.c, scanner.c, resolve.c, st.c, - parse.c, primary.c, options.c, misc.c, simplify.c: Next installment - in the massive whitespace patch. - -2007-01-20 Roger Sayle - - * module.c (mio_array_ref): The dimen_type fields of an array ref - are an enumerated type and can't be read/written directly with a - call to mio_integer. Instead loop over and cast each element. - -2007-01-20 Roger Sayle - - * dependency.c (gfc_full_array_ref_p): Check that ref->next is NULL, - i.e. that the ARRAY_REF doesn't mention components. - * trans-array.c (gfc_constant_array_constructor_p): Export external - function renamed from constant_array_constructor_p. - (gfc_build_constant_array_constructor): Export. - (gfc_trans_array_constructor): Update call to the renamed function - constant_array_constructor_p. - * trans-array.h (gfc_constant_array_constructor_p): Prototype here. - (gfc_build_constant_array_constructor): Likewise. - * trans-expr.c (gfc_build_memcpy_call): New helper function split - out from gfc_trans_array_copy. - (gfc_trans_array_copy): Use gfc_build_memcpy_call. - (gfc_trans_array_constructor_copy): New function to optimize - assigning an entire array from a constant array constructor. - (gfc_trans_assignment): Call gfc_trans_array_constructor_copy - when appropriate. - -2007-01-20 Roger Sayle - - * trans-intrinsic.c (gfc_conv_intrinsic_sign): New branchless - implementation for the SIGN intrinsic with integral operands. - (gfc_conv_intrinsic_minmax): Fix whitespace. - -2007-01-20 Francois-Xavier Coudert - - * gfortran.h (gfc_options_t): Add flag_allow_leading_underscore. - * lang.opt: Add -fallow-leading-underscore. - * match.c (gfc_match_name): Allow leading underscore in symbol - name if -fallow-leading-underscore is used. - * symbol.c (gfc_get_default_type): Add special case for symbol - names beginning with an underscore. - * trans-decl.c (gfc_get_extern_function_decl, - gfc_build_intrinsic_function_decls): Add _gfortran prefix to - library symbols selected_int_kind, selected_real_kind and - all specifics. - * options.c (gfc_init_options, gfc_handle_option): Handle the - new -fallow-leading-underscore option. - -2007-01-20 Francois-Xavier Coudert - - PR fortran/30446 - * options.c (gfc_handle_module_path_options): Path used in -J - option is now added to the module search path. - -2007-01-20 Richard Guenther - - PR fortran/30223 - * f95-lang.c (gfc_init_builtin_functions): Provide cbrt and - cexpi builtins if we have TARGET_C99_FUNCTIONS. Provide - sincos builtins if the target has sincos. - -2007-01-19 Brooks Moses - - * intrinsic.texi (MATMUL): Corrected a typo. - (MAX): Separated @var arguments. - (MIN): Separated @var arguments. - -2007-01-19 Brooks Moses - - * intrinsic.texi: general whitespace cleanup. - (menu): Added TIME8, removed UNMASK. - (AINT): Clarified argument requirement. - (ANINT): Clarified argument requirement. - (CEILING): Clarified argument requirement. - (CHAR): Clarified argument requirement. - (CMPLX): Clarified argument requirement. - (DCMPLX): Clarified argument requirement. - (FGET): Line rewrapping. - (FLOOR): Clarified argument requirement. - (GMTIME): Added documentation. - (IAND): Added cross-reference. - (IBCLR): Added cross-reference. - (IBSET): Added cross-reference. - (IEOR): Added cross-reference. - (INT): Collapsed examples, clarified argument requirement. - (IOR): Added cross-references. - (LEN_TRIM): Corrected result kind. - (LINK): Added cross-reference. - (LLT): Removed "documentation pending". - (LOGICAL): Added documentation. - (LSHIFT): Added documentation. - (LTIME): Added documentation. - (MATMUL): Added documentation. - (MAX): Added documentation. - (MAXLOC): Added documentation. - (MAXVAL): Added documentation. - (MERGE): Added documentation. - (MIN): Added documentation. - (MINLOC): Added documentation. - (MINVAL): Added documentation. - (MVBITS): Moved to correct place, added documentation. - (NOT): Added documentation. - (PERROR): Added documentation. - (RAN): Moved to correct place, added documentation. - (REAL): Clarified argument requirement. - (RENAME): Added documentation. - (RSHIFT): Clarified argument requirement. - (SIGN): Corrected table specification. - (SYMLNK): Added documentation. - (SYSTEM): Added documentation. - (TIME): Added documentation. - (TIME8): Added section and documentation. - (UNMASK): Removed erroneous section. - -2007-01-18 H.J. Lu - - * trans-stmt.c (compute_overall_iter_number): Fix a typo. - -2007-01-18 Roger Sayle - - * trans-expr.c (copyable_array_p): Consider user derived types without - allocatable components to be copyable. - -2007-01-18 Roger Sayle - - * trans-stmt.c (compute_overall_iter_number): Enhance to precompute - the number of interations in unconditional FORALL nests with constant - bounds. - -2007-01-18 Francois-Xavier Coudert - Tobias Burnus - - PR libfortran/29649 - * gfortran.h (gfc_option_t): Add flag_dump_core. - * lang.opt: Add -fdump-core option. - * invoke.texi: Document the new options. - * trans-decl.c (gfc_build_builtin_function_decls): Add new - options to the call to set_std. - * options.c (gfc_init_options, gfc_handle_option): Set the - new options. - -2007-01-17 Paul Thomas - - PR fortran/30476 - * module.c (load_generic_interfaces): Make the marking of the - symbol as ambiguous conditional on the module names being - different. - (write_generic): Ensure that the generic interface has a - non-NULL module field. - -2007-01-16 Roger Sayle - - PR fortran/30404 - * trans-stmt.c (forall_info): Remove pmask field. - (gfc_trans_forall_loop): Remove NVAR argument, instead assume that - NVAR covers all the interation variables in the current forall_info. - Add an extra OUTER parameter, which specified the loop header in - which to place mask index initializations. - (gfc_trans_nested_forall_loop): Remove NEST_FLAG argument. - Change the semantics of MASK_FLAG to only control the mask in the - innermost loop. - (compute_overall_iter_number): Optimize the trivial case of a - top-level loop having a constant number of iterations. Update - call to gfc_trans_nested_forall_loop. Calculate the number of - times the inner loop will be executed, not to size of the - iteration space. - (allocate_temp_for_forall_nest_1): Reuse SIZE as BYTESIZE when - sizeof(type) == 1. Tidy up. - (gfc_trans_assign_need_temp): Remove NEST_FLAG argument from calls - to gfc_trans_nested_forall_loop. - (gfc_trans_pointer_assign_need_temp): Likewise. - (gfc_trans_forall_1): Remove unused BYTESIZE, TMPVAR, SIZEVAR and - LENVAR local variables. Split mask allocation into a separate - hunk/pass from mask population. Use allocate_temp_for_forall_nest - to allocate the FORALL mask with the correct size. Update calls - to gfc_trans_nested_forall_loop. - (gfc_evaluate_where_mask): Update call to - gfc_trans_nested_forall_loop. - (gfc_trans_where_2): Likewise. - -2007-01-15 Paul Thomas - - PR fortran/28172 - * trans-stmt.c (gfc_trans_call): If it does not have one, get - a backend_decl for an alternate return. - - PR fortran/29389 - * resolve.c (pure_function): Statement functions are pure. Note - that this will have to recurse to comply fully with F95. - - PR fortran/29712 - * resolve.c (resolve_function): Only a reference to the final - dimension of an assumed size array is an error in an inquiry - function. - - PR fortran/30283 - * resolve.c (resolve_function): Make sure that the function - expression has a type. - -2007-01-14 Paul Thomas - - PR fortran/30410 - * trans-decl.c (gfc_sym_mangled_function_id): Module, external - symbols must not have the module name prepended. - -2007-01-11 Thomas Koenig - - PR libfortran/30415 - * iresolve.c (gfc_resolve_maxloc): If the rank - of the return array is nonzero and we process an - integer array smaller than default kind, coerce - the array to default integer. - * iresolve.c (gfc_resolve_minloc): Likewise. - -2007-01-11 Brooks Moses - - * simplify.c: Update copyright to 2007. - * scanner.c: Same. - -2007-01-11 Francois-Xavier Coudert - - PR fortran/30430 - * scanner.c (gfc_release_include_path): Free gfc_option.module_dir - only once! - -2007-01-09 Brooks Moses - - * simplify.c (gfc_simplify_ibclr): Fix POS comparison. - (gfc_simplify_ibset): Same. - -2007-01-09 Brooks Moses - - PR 30381 - PR 30420 - * simplify.c (convert_mpz_to_unsigned): New function. - (convert_mpz_to_signed): New function, largely based on - twos_complement(). - (twos_complement): Removed. - (gfc_simplify_ibclr): Add conversions to and from an - unsigned representation before bit-twiddling. - (gfc_simplify_ibset): Same. - (gfc_simplify_ishftc): Add checks for overly large - constant arguments, only check the third argument if - it's present, carry over high bits into the result as - appropriate, and perform the final conversion back to - a signed representation using the correct sign bit. - (gfc_simplify_not): Removed unnecessary masking. - -2007-01-09 Paul Thomas - - PR fortran/30408 - * resolve.c (resolve_code): Use the code->expr character length - directly to set length of llen. - -2007-01-09 Jerry DeLisle - - PR fortran/30408 - * lang.opt: Add Wcharacter_truncation option. - * options.c (gfc_init_options): Initialize - gfc_option.warn_character_truncation to zero. - (gfc_handle_option): Add case for OPT_Wcharacter_truncation. - -2007-01-08 Steven G. Kargl - - * interface.c, intrinsic.c, gfortranspec.c, io.c, f95-lang.c, - iresolve.c, match.c: Update Copyright years. Whitespace. - -2007-01-08 Richard Guenther - - * trans-io.c (transfer_array_desc): Use build_int_cst instead - of build_int_cstu. - -2007-01-08 Roger Sayle - - * trans-array.c (constant_array_constructor_p): New function to - determine whether an array constructor consists only of constant - elements, and if so return it's size. - (gfc_build_constant_array_constructor): Construct a statically - initialized gfortran array for a given EXPR_ARRAY. - (gfc_trans_constant_array_constructor): Efficiently scalarize - a constant array constructor. - (gfc_trans_array_constructor): Tidy up use of CONST_STRING. - Special case scalarization of constant array constructors, all of - whose elements are specified, using constant_array_constructor_p - and gfc_trans_constant_array_constructor. - (gfc_conv_scalarized_array_ref): Check whetger info->offset is zero - before adding it to index, to avoid creating a NON_LVALUE_EXPR. - -2007-01-08 Kazu Hirata - - gfortran.texi: Fix typos. - -2007-01-07 Steven G. Kargl - - * decl.c, dump-parse-tree.c, error.c, data.c, expr.c, dependency.c, - convert.c: Update Copyright dates. Fix whitespace. - -2007-01-07 Bernhard Fischer - - * data.c (gfc_assign_data_value): Fix whitespace. - -2007-01-07 Bernhard Fischer - - * trans-array.c (gfc_trans_create_temp_array, gfc_array_init_size): - Commentary typo fix. - -2007-01-07 Bernhard Fischer - - PR fortran/27698 - * match.c (gfc_match_name): Print diagnostics for invalid - character in names. - -2007-01-06 Steven G. Kargl - - * array.c: Fix whitespace in comment table. - -2007-01-06 Steven G. Kargl - - * array.c, bbt.c, check.c: Update copyright years. Whitespace. - -2007-01-06 Steven G. Kargl - - * arith.c: Update copyright years. Whitespace. - -2007-01-05 Roger Sayle - - * trans-expr.c (gfc_trans_assignment_1): New subroutine to scalarize - array assignments split out from gfc_trans_assignment. - (gfc_trans_array_copy): New function to implement array to array - copies via calls to __builtin_memcpy. - (copyable_array_p): New helper function to identify an array of - simple/POD types, that may be copied/assigned using memcpy. - (gfc_trans_assignment): Use gfc_trans_array_copy to handle simple - whole array assignments considered suitable by copyable_array_p. - Invoke gfc_trans_assignment_1 to perform the fallback scalarization. - -2007-01-05 Roger Sayle - - * trans-array.c (gfc_trans_array_constructor_value): Make the - static const "data" array as TREE_READONLY. - * trans-stmt.c (gfc_trans_character_select): Likewise. - -2007-01-05 Roger Sayle - - * trans-array.c (gfc_conv_loop_setup): Test whether the loop - stride is one, to avoid fold_build2 introducing a useless - NON_LVALUE_EXPR node. - -2007-01-05 Tobias Burnus - - * symbol.c (check_conflict): Fix error message. - -2007-01-05 Paul Thomas - - PR fortran/23232 - * decl.c (gfc_in_match_data, gfc_set_in_match_data): New - functions to signal that a DATA statement is being matched. - (gfc_match_data): Call gfc_set_in_match_data on entry and on - exit. - * gfortran.h : Add prototypes for above. - * expr.c (check_init_expr): Avoid check on parameter or - variable if gfc_in_match_data is true. - (gfc_match_init_expr): Do not call error on non-reduction of - expression if gfc_in_match_data is true. - - PR fortran/27996 - PR fortran/27998 - * decl.c (gfc_set_constant_character_len): Add boolean arg to - flag array constructor resolution. Warn if string is being - truncated. Standard dependent error if string is padded. Set - new arg to false for all three calls to - gfc_set_constant_character_len. - * match.h : Add boolean arg to prototype for - gfc_set_constant_character_len. - * gfortran.h : Add warn_character_truncation to gfc_options. - * options.c (set_Wall): Set warn_character_truncation if -Wall - is set. - * resolve.c (resolve_code): Warn if rhs string in character - assignment has to be truncated. - * array.c (gfc_resolve_character_array_constructor): Set new - argument to true for call to gfc_set_constant_character_len. - -2007-01-05 Tobias Burnus - - PR fortran/29624 - * interface.c (compare_parameter_intent): New function. - (check_intents): Support pointer intents. - * symbol.c (check_conflict): Support pointer intents, - better conflict_std message. - * expr.c (gfc_check_assign,gfc_check_pointer_assign): - Support pointer intents. - * resolve.c (resolve_deallocate_expr,resolve_allocate_expr): - Support pointer intents. - -2007-01-03 Brooks Moses - - PR 30371 - * check.c (gfc_check_kill_sub): Add checks for non-scalar - arguments. - -2007-01-04 Brooks Moses - - * intrinsic.texi: Minor cleanup, reflowing overlong - paragraphs, and correcting whitespace. - -2007-01-04 Brooks Moses - - * intrinsic.texi (LBOUND): Add documentation. - (LGE): Add documentation. - (LGT): Add documentation. - (LINK): Add documentation. - (LLE): Add documentation. - (LLT): Add documentation. - (LNBLNK): Add documentation. - (UBOUND): Add documentation. - (UNLINK): Add documentation. - -2007-01-04 Brooks Moses - - * intrinsic.texi (IAND): Clarify argument specifications. - (IBCLR): Add documentation. - (IBITS): Add documentation. - (IBSET): Add documentation. - (IEOR): Add documentation. - (IERRNO): Add documentation. - (INDEX): Add documentation. - (IOR): Add documentation. - (ISHFT): Add documentation. - (ISHFTC): Add documentation. - (KILL): Add documentation. - (LEN_TRIM): Add documentation. - -2007-01-04 Brooks Moses - - PR 30235 - * interface.c (compare_actual_formal): check for - alternate returns when iterating over non-present - arguments. - -2007-01-04 Brooks Moses - - * invoke.texi: Update manpage copyright to include 2007. - -2007-01-04 Brooks Moses - - * gfortran.texi: Update copyright to include 2007. - * intrinsic.texi: Update copyright to include 2007. - * invoke.texi: Update copyright to include 2007. - -2007-01-02 Tobias Burnus - Jakub Jelinek - - PR fortran/30276 - * scanner.c (open_included_file): Revert patch. - (gfc_open_included_file): Support absolute pathnames. - (gfc_open_intrinsic_module): Support absolute pathnames. - -2007-01-03 Brooks Moses - - * gfortran.texi (GNU Fortran and GCC): Rewrite - -2007-01-03 Brooks Moses - - * gfortran.texi (Introduction): Lower "Part I: - Introduction" to a chapter, renumber Parts II and III to - Parts I and II. - * intrinsic.texi (Introduction): Rename to "Introduction - to Intrinsics" to avoid conflict with the new chapter. - -2007-01-03 Brooks Moses - - * intrinsic.texi (Introduction): Rewrite first paragraph. - -2007-01-03 Brooks Moses - - * invoke.texi (OpenMP): Added index entry. - * gfortran.texi (title page): Removed erroneous '*'. - -2007-01-03 Brooks Moses - - * gfortran.texi (GFORTRAN_DEFAULT_RECL): Added units - to description. - (Extensions): Miscellaneous minor rewriting and copyediting. - (BOZ-literal constants): Renamed from Hexadecimal constants. - (Hollerith constants support): Added explanation and - suggestions for standard-conforming modern equivalents. - -2007-01-03 Brooks Moses - - * intrinsic.texi: Improvements to index entries; change - @findex entries to @cindex entries. - * invoke.texi: Standardize and improve index entries. - * gfortran.texi: Fix @code in one index entry. - -2007-01-03 Brooks Moses - - * invoke.texi: Change @code-type macros to appropriate - variants (@command, @option, etc.) - * gfortran.texi: Same. - -2007-01-03 Brooks Moses - - * intrinsic.texi: Various minor cleanups. - -2007-01-02 Steven G. Kargl - - * trans-intrinsic.c (gfc_conv_intrinsic_ibits): Fix call to - build_int_cst. - -2007-01-02 Tobias Burnus - - PR fortran/30276 - * scanner.c (open_included_file): Support full-path filenames. - -2007-01-02 Paul Thomas - - PR fortran/20896 - * interface.c (check_sym_interfaces): Remove call to - resolve_global_procedure. - gfortran.h : Remove prototype for resolve_global_procedure. - resolve.c (resolve_global_procedure): Add static attribute - to function declaration. - -2007-01-01 Steven G. Kargl - - * ChangeLog: Copy to ... - * ChangeLog-2006: here. diff --git a/gcc/fortran/ChangeLog-2007 b/gcc/fortran/ChangeLog-2007 new file mode 100644 index 0000000..8b92ad1 --- /dev/null +++ b/gcc/fortran/ChangeLog-2007 @@ -0,0 +1,5770 @@ +2007-12-31 Paul Thomas + + PR fortran/34558 + * interface.c (gfc_compare_types): Prevent linked lists from + putting this function into an endless recursive loop. + +2007-12-26 Daniel Franke + + PR fortran/34532 + * gfortran.texi: Fixed section about implicit conversion of + logical and integer variables. + +2007-12-25 Tobias Burnus + + PR fortran/34514 + * decl.c (attr_decl1): Reject specifying the DIMENSION for + already initialized variable. + (do_parm): Reject PARAMETER for already initialized variable. + +2007-12-25 Daniel Franke + + PR fortran/34533 + * intrinsic.h (gfc_check_etime): Renamed to ... + (gfc_check_dtime_etime): ... this. + (gfc_check_etime_sub): Renamed to ... + (gfc_check_dtime_etime_sub): ... this. + (gfc_resolve_dtime_sub): New prototype. + * check.c (gfc_check_etime): Renamed to ... + (gfc_check_dtime_etime): ... this. + (gfc_check_etime_sub): Renamed to ... + (gfc_check_dtime_etime_sub): ... this. + * iresolve.c (gfc_resolve_dtime_sub): New implementation. + * intrinsic.c (add_functions): Removed alias from ETIME to DTIME, + added stand-alone intrinsic DTIME. + (add_subroutines): Adjusted check and resolve function names for + DTIME and ETIME. + * trans-intrinsic.c (gfc_conv_intrinsic_function): Added DTIME + to known functions in switch. + * intrinsic.texi (DTIME): Added paragraph about thread-safety, + fixed return value section. + (CPU_TIME): Clarified intent and added implementation notes. + +2007-12-23 Tobias Burnus + + PR fortran/34421 + * resolve.c (resolve_entries): Add standard error for functions + returning characters with different length. + +2007-12-23 Daniel Franke + + PR fortran/34536 + * matchexp.c (match_ext_mult_operand): Print warning for unary + operators following arithmetic ones by default. + (match_ext_add_operand): Likewise. + +2007-12-22 Daniel Franke + + PR fortran/34559 + * simplify.c (gfc_simplify_repeat): Added safeguard for empty + string literals. + +2007-12-22 Thomas Koenig + + PR fortran/34549 + * check.c (gfc_check_cshift): Add check that shift is + type INTEGER. + +2007-12-21 Jerry DeLisle + + PR fortran/34540 + * iresolve.c (gfc_resolve_cshift): Take optional dim path + only if the argument is an optional itself. + * iresolve.c (gfc_resolve_eoshift): Same. + +2007-12-21 Paul Thomas + + PR fortran/34438 + * trans-decl.c (gfc_finish_var_decl): Do not mark derived types + with default initializers as TREE_STATIC unless they are in the + main program scope. + (gfc_get_symbol_decl): Pass derived types with a default + initializer to gfc_defer_symbol_init. + (init_default_dt): Apply default initializer to a derived type. + (init_intent_out_dt): Call init_default_dt. + (gfc_trans_deferred_vars): Ditto. + + * module.c (read_module): Check sym->module is there before + using it in a string comparison. + +>>>>>>> .r131138 +2007-12-20 Tobias Burnus + + PR fortran/34482 + * gfortran.texi (BOZ): Document behavior for complex + numbers. + * target-memory.h (gfc_convert_boz): Update prototype. + * target-memory.c (gfc_convert_boz): Add error check + and convert BOZ to smallest possible bit size. + * resolve.c (resolve_ordinary_assign): Check return value. + * expr.c (gfc_check_assign): Ditto. + * simplify.c (simplify_cmplx, gfc_simplify_dble, + gfc_simplify_float, gfc_simplify_real): Ditto. + +2007-12-19 Jerry DeLisle + + PR fortran/34325 + * match.h: New function declaration. + * match.c (gfc_match_parens): New function to look for mismatched + parenthesis. (gfc_match_if): Use new function to catch missing '('. + +2007-12-19 Daniel Franke + + PR fortran/34495 + * expr.c (check_init_expr): Check whether variables with flavor + FL_PARAMETER do have a value assigned. Added error messages where + appropriate. + * simplify.c (gfc_simplify_transfer): Added check if the MOLD + argument is a constant if working with initialization + expressions. + +2007-12-17 Tobias Burnus + + * intrinsic.c (add_functions): Undo change; mark float and + sngl as STD_F77. + * intrinsic.texi (FLOAT, SNGL): Change standard to F77 and later. + * gfortran.texi (BOZ): Make note about FLOAT etc. clearer. + +2007-12-16 Tobias Burnus + + PR fortran/34495 + * intrinsic.c (add_functions): Mark float and sngl as STD_GNU. + (gfc_intrinsic_func_interface): Reject REAL, DBLE and CMPLX + in initialization expressions for -std=f95. + +2007-12-16 Thomas Koenig + + PR fortran/34305 + * resolve.c (compare_bound): If either of the types of + the arguments isn't INTEGER, return CMP_UNKNOWN. + +2007-12-16 Tobias Burnus + + PR fortran/34246 + * trans-types.c (gfc_init_types): Change build_type_variant + to build_qualified_type. + (gfc_sym_type): Return gfc_character1_type_node for + character-returning bind(C) functions. + * trans-expr.c (gfc_conv_function_call): Do not set + se->string_length for character-returning bind(c) functions. + (gfc_trans_string_copy,gfc_trans_scalar_assign): + Support also single characters. + +2007-12-16 Bernhard Fischer + + * errors.c (gfc_notify_std): As originally stated but improperly + changed, disregard warnings_are_errors for deciding which buffer + to use for warnings. + +2007-12-16 Paul Thomas + + PR fortran/31213 + PR fortran/33888 + PR fortran/33998 + * trans-array.c (gfc_trans_array_constructor_value): If the + iterator variable does not have a backend_decl, use a local + temporary. + (get_elemental_fcn_charlen): New function to map the character + length of an elemental function onto its actual arglist. + (gfc_conv_expr_descriptor): Call the above so that the size of + the temporary can be evaluated. + * trans-expr.c : Include arith.h and change prototype of + gfc_apply_interface_mapping_to_expr to return void. Change all + references to gfc_apply_interface_mapping_to_expr accordingly. + (gfc_free_interface_mapping): Free the 'expr' field. + (gfc_add_interface_mapping): Add an argument for the actual + argument expression. This is copied to the 'expr' field of the + mapping. Only stabilize the backend_decl if the se is present. + Copy the character length expression and only add it's backend + declaration if se is present. Return without working on the + backend declaration for the new symbol if se is not present. + (gfc_map_intrinsic_function) : To simplify intrinsics 'len', + 'size', 'ubound' and 'lbound' and then to map the result. + (gfc_map_fcn_formal_to_actual): Performs the formal to actual + mapping for the case of a function found in a specification + expression in the interface being mapped. + (gfc_apply_interface_mapping_to_ref): Remove seen_result and + all its references. Remove the inline simplification of LEN + and call gfc_map_intrinsic_function instead. Change the + order of mapping of the actual arguments and simplifying + intrinsic functions. Finally, if a function maps to an + actual argument, call gfc_map_fcn_formal_to_actual. + (gfc_conv_function_call): Add 'e' to the call to + gfc_add_interface_mapping. + * dump-parse-tree.c (gfc_show_symbol_n): New function for + diagnostic purposes. + * gfortran.h : Add prototype for gfc_show_symbol_n. + * trans.h : Add 'expr' field to gfc_add_interface_mapping. + Add 'expr' to prototype for gfc_show_symbol_n. + * resolve.c (resolve_generic_f0): Set specific function as + referenced. + +2007-12-14 Tobias Burnus + + PR fortran/34438 + * resolve.c (resolve_symbol): Do not emit public-variable- + of-private-derived-type error for non-module variables. + +2007-12-14 Tobias Burnus + + PR fortran/34398 + * expr.c (gfc_check_assign): Add range checks for assignments of BOZs. + * resolve.c (resolve_ordinary_assign): Ditto. + * arith.c (gfc_range_check): Fix return value for complex numbers. + +2007-12-14 Daniel Franke + + PR fortran/34324 + * module.c (parse_atom): Fixed parsing of modules files whose + lines are terminated by CRLF. + +2007-12-13 Anton Korobeynikov + + * trans-decl.c (gfc_build_builtin_function_decls): Correct decl + construction for select_string() and internal_unpack() + +2007-12-13 Duncan Sands + Anton Korobeynikov + + * trans-expr.c (gfc_conv_structure): Make sure record constructors + for static variables are marked constant. + +2007-12-12 Tobias Burnus + + PR fortran/34254 + * decl.c (match_char_kind): Support use-associated/imported + kind parameters. + (gfc_match_kind_spec): Support als BT_CHARACTER, when + re-scanning kind spec. + +2007-12-11 Aldy Hernandez + + * decl.c (add_global_entry): Make type unsigned. + +2007-12-11 Bernhard Fischer + + * decl.c (match_prefix): Make seen_type a boolean. + (add_global_entry): Cache type distinction. + * trans-decl.c: Whitespace cleanup. + +2007-12-10 Tobias Burnus + + PR fortran/34425 + * interface.c (get_expr_storage_size): Use signed integer when + obtaining the bounds. + +2007-12-09 Jakub Jelinek + + PR fortran/22244 + * trans.h (struct array_descr_info): Forward declaration. + (gfc_get_array_descr_info): New prototype. + (enum gfc_array_kind): New type. + (struct lang_type): Add akind field. + (GFC_TYPE_ARRAY_AKIND): Define. + * trans-types.c: Include dwarf2out.h. + (gfc_build_array_type): Add akind argument. Adjust + gfc_get_array_type_bounds call. + (gfc_get_nodesc_array_type): Include proper debug info even for + assumed-size arrays. + (gfc_get_array_type_bounds): Add akind argument, set + GFC_TYPE_ARRAY_AKIND to it. + (gfc_sym_type, gfc_get_derived_type): Adjust gfc_build_array_type + callers. + (gfc_get_array_descr_info): New function. + * trans-array.c (gfc_trans_create_temp_array, + gfc_conv_expr_descriptor): Adjust gfc_get_array_type_bounds + callers. + * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Likewise. + * trans-types.h (gfc_get_array_type_bounds): Adjust prototype. + * Make-lang.in (fortran/trans-types.o): Depend on dwarf2out.h. + * f95-lang.c (LANG_HOOKS_GET_ARRAY_DESCR_INFO): Define. + +2007-12-09 Paul Thomas + + PR fortran/32129 + * dump-parse-tree.c (gfc_show_expr_n): New function for + debugging. + * gfortran.h : Add prototype for gfc_show_expr_n. + * expr.c (simplify_constructor): Copy the constructor + expression and try to simplify that. If success, replace the + original. Otherwise discard the copy, keep going through + the structure and return success. + + PR fortran/31487 + * decl.c (build_struct): Pad out default initializers with + spaces to the component character length. + +2007-12-08 Tobias Burnus + + PR fortran/34342 + PR fortran/34345 + PR fortran/18026 + PR fortran/29471 + * gfortran.texi (BOZ literal constants): Improve documentation + and adapt for BOZ changes. + * Make-lang.ini (resolve.o): Add target-memory.h dependency. + * gfortran.h (gfc_expr): Add is_boz flag. + * expr.c: Include target-memory.h. + (gfc_check_assign): Support transferring BOZ for real/cmlx. + * resolve.c: Include target-memory.h + (resolve_ordinary_assign): Support transferring BOZ for real/cmlx. + * target-memory.c (gfc_convert_boz): New function. + * target-memory.c (gfc_convert_boz): Add prototype. + * primary.c (match_boz_constant): Set is_boz, enable F95 error + also without -pedantic, and allow for Fortran 2003 BOZ. + (match_real_constant): Fix comment. + * simplify.c (simplify_cmplx,gfc_simplify_dble,gfc_simplify_float, + gfc_simplify_real): Support Fortran 2003 BOZ. + +2007-12-08 Jakub Jelinek + + PR fortran/34359 + * gfortran.h (gfc_file): Remove sibling and down fields. + * scanner.c (file_changes, file_changes_cur, file_changes_count, + file_changes_allocated): New variables. + (add_file_change, report_file_change): New functions. + (change_file): Remove. + (gfc_start_source_files, gfc_end_source_files): Call + report_file_change instead of change_file. + (gfc_advance_line): Call report_file_change instead of change_file, + call it even if lb->file == lb->next->file. + (get_file): Revert last changes. + (preprocessor_line): Call add_file_change when entering or leaving + a file. + (load_file): Likewise. Set file_change[...].lb for all newly added + file changes. + +2007-12-06 Tobias Burnus + + PR fortran/34333 + * primary.c (match_boz_constant): Add gfc_notify_std diagnostics. + +2007-12-06 Paul Thomas + + PR fortran/34335 + * module.c (find_symbol): Do not return symtrees with unique + names, which shows that they are private. + +2007-12-05 Jakub Jelinek + + PR debug/33739 + * gfortran.h (gfc_file): Remove included_by field, add sibling and + down. + (gfc_start_source_files, gfc_end_source_files): New prototypes. + * parse.c (gfc_parse_file): Call gfc_start_source_files and + gfc_end_source_files instead of calling the debugging hooks directly. + * error.c (show_locus): Use up field instead of included_by. + * scanner.c (change_file, gfc_start_source_files, + gfc_end_source_files): New functions. + (gfc_advance_line): Call change_file instead of calling debug hooks + directly. + (get_file): Set up rather than included_by. Initialize down and + sibling. + (preprocessor_line, load_file): Don't set up field here. + +2007-12-05 Tobias Burnus + + PR fortran/34333 + * arith.h (gfc_compare_expr): Add operator argument, needed + for compare_real. + * arith.c (gfc_arith_init_1): Use mpfr_min instead of mpfr_cmp/set + to account for NaN. + (compare_real): New function, as mpfr_cmp but takes NaN into account. + (gfc_compare_expr): Use compare_real. + (compare_complex): Take NaN into account. + (gfc_arith_eq,gfc_arith_ne,gfc_arith_gt,gfc_arith_ge,gfc_arith_lt, + gfc_arith_le): Pass operator to gfc_compare_expr. + * resolve.c (compare_cases,resolve_select): Pass operator + to gfc_compare_expr. + * simplify.c (simplify_min_max): Take NaN into account. + +2007-12-04 Tobias Burnus + + PR fortran/34318 + * module.c (mio_gmp_real): Properly write NaN and Infinity. + +2007-12-02 Tobias Burnus + + PR fortran/34186 + * symbol.c (generate_isocbinding_symbol): Fix setting string length. + +2007-11-30 Tobias Burnus + + PR fortran/34133 + * match.h: Add bool allow_binding_name to gfc_match_bind_c. + * decl.c (match_attr_spec,gfc_match_bind_c_stmt,gfc_match_entry): + Adjust accordingly. + (gfc_match_bind_c): Add allow_binding_name argument, reject + binding name for dummy arguments. + (gfc_match_suffix,gfc_match_subroutine): Make use of + allow_binding_name. + +2007-11-30 Tobias Burnus + + PR fortran/34186 + * symbol.c (generate_isocbinding_symbol): Set string length. + * dump-parse-tree.c (gfc_show_attr): Show BIND(C) attribute. + * misc.c (gfc_basic_typename): Handle BT_VOID. + +2007-11-29 Steven G. Kargl + + PR fortran/34230 + * fortran/arith.c (gfc_check_real_range): Set intermediate values + to +-Inf and 0 when -fno-range-check is in effect. + * fortran/invoke.texi: Improve -fno-range-check description. + + PR fortran/34203 + * fortran/invoke.texi: Document the C escaped characters activated + by -fbackslash. + +2007-11-29 Tobias Burnus + + PR fortran/34248 + * trans-decl.c (generate_dependency_declarations): Check + for NULL pointers before accessing the string length. + +2007-11-29 Tobias Burnus + + PR fortran/34262 + * intrinsic.c (gfc_get_intrinsic_sub_symbol): Add comment. + (gfc_intrinsic_sub_interface): Copy elemental state if needed. + * iresolve.c (gfc_resolve_mvbits): Mark procedure as elemental. + +2007-11-28 Jakub Jelinek + + * trans-expr.c (gfc_trans_string_copy): Convert both dest and + src to void *. + + PR fortran/34247 + * trans-openmp.c (gfc_omp_privatize_by_reference): For REFERENCE_TYPE + pass by reference only PARM_DECLs or non-artificial decls. + +2007-11-27 Jerry DeLisle + + PR fortran/32928 + * decl.c (match_data_constant): Use gfc_match_init_expr to match the + array spec and set the initializer expression. + +2007-11-27 Jerry DeLisle + + PR fortran/34227 + * match.c (gfc_match_common): Add additional check for BLOCK DATA. + +2007-11-27 Paul Thomas + + PR fortran/29389 + *resolve.c (resolve_ordinary_assign): Use find_sym_in_expr to + test if a temporary should be written for a vector subscript + on the lhs. + + PR fortran/33850 + * restore.c (pure_stmt_function): Add prototype and new + function. Calls impure_stmt_fcn. + (pure_function): Call it. + (impure_stmt_fcn): New function. + + * expr.c (gfc_traverse_expr): Call *func for all expression + types, not just variables. Add traversal of character lengths, + iterators and component character lengths and arrayspecs. + (expr_set_symbols_referenced): Return false if not a variable. + * trans-stmt.c (forall_replace, forall_restore): Ditto. + * resolve.c (forall_index): Ditto. + (sym_in_expr): New function. + (find_sym_in_expr): Rewrite to traverse expression calling + sym_in_expr. + *trans-decl.c (expr_decls): New function. + (generate_expr_decls): Rewrite to traverse expression calling + expr_decls. + *match.c (check_stmt_fcn): New function. + (recursive_stmt_fcn): Rewrite to traverse expression calling + check_stmt_fcn. + +2007-11-27 Paul Thomas + + PR fortran/33541 + *interface.c (compare_actual_formal): Exclude assumed size + arrays from the possibility of scalar to array mapping. + * decl.c (get_proc_name): Fix whitespace problem. + + PR fortran/34231 + * gfortran.h : Add 'use_rename' bit to symbol_attribute. + * module.c : Add 'renamed' field to pointer_info.u.rsym. + (load_generic_interfaces): Add 'renamed' that is set after the + number_use_names is called. This is used to set the attribute + use_rename, which, in its turn identifies those symbols that + have not been renamed. + (load_needed): If pointer_info.u.rsym->renamed is set, then + set the use_rename attribute of the symbol. + (read_module): Correct an erroneous use of use_flag. Use the + renamed flag and the use_rename attribute to determine which + symbols are not renamed. + +2007-11-26 Steven G. Kargl + + PR fortran/34203 + * options.c: Change default behavior of backslash processing. + * invoke.texi: Update documentation. + +2007-11-25 Jerry DeLisle + + PR fortran/33152 + * decl.c (add_init_expr_to_sym): Remove error message. + * resolve.c (check_data_variable): Add new check for a data variable + that has an array spec, but no ref and issue an error. + * match.c (gfc_match_common): Remove error message. + +2007-11-25 Tobias Burnus + + PR fortran/34079 + * trans-types.c (gfc_return_by_reference, + gfc_get_function_type): Do not return result of + character-returning bind(C) functions as argument. + * trans-expr.c (gfc_conv_function_call): Ditto. + +2007-11-25 Jerry DeLisle + + PR fortran/34175 + * gfortran.texi: Document default forms assumed for various file + extensions. + +2007-11-25 Paul Thomas + + PR fortran/33499 + * decl.c (get_proc_name): If ENTRY statement occurs before type + specification, set the symbol untyped and ensure that it is in + the procedure namespace. + +2007-11-24 Paul Thomas + + PR fortran/33541 + * module.c (find_symtree_for_symbol): Move to new location. + (find_symbol): New function. + (load_generic_interfaces): Rework completely so that symtrees + have the local name and symbols have the use name. Renamed + generic interfaces exclude the use of the interface without an + ONLY clause (11.3.2). + (read_module): Implement 11.3.2 in the same way as for generic + interfaces. + +2007-11-23 Christopher D. Rickett + + * trans-common.c (build_common_decl): Fix the alignment for + BIND(C) common blocks. + +2007-11-23 Jerry DeLisle + + PR fortran/34209 + * iresolve.c (gfc_resolve_nearest): If sign variable kind does not match + kind of input variable, convert it to match. + + PR fortran/33317 + * trans.h: Modify prototype for gfc_conv_missing_dummy. + * trans-expr.c (gfc_conv_missing_dummy): Modify to pass an integer kind + parameter in. Set the type of the dummy to the kind given. + (gfc_conv_function_call): Pass representation.length to + gfc_conv_missing_dummy. + * iresolve.c (gfc_resolve_cshift): Determine the correct kind to use and + if appropriate set representation.length to this kind value. + (gfc_resolve_eoshift): Likewise. + * check.c (gfc_check_cshift): Enable dim_check to allow DIM as an + optional argument. (gfc_check_eoshift): Likewise. + * trans_intrinsic.c (gfc_conv_intrinsic_function_args): Update call to + gfc_conv_missing_dummy. + +2007-11-23 Tobias Burnus + + PR fortran/34187 + * module.c (load_needed): Ensure binding_label is not lost. + + * decl.c (set_binding_label,gfc_match_bind_c): Replace + strncpy by strcpy. + +2007-11-23 Tobias Burnus + Steven G. Kargl + + PR fortran/34192 + * simplify.c (gfc_simplify_nearest): Fix NEAREST for + subnormal numbers. + +2007-11-23 Aldy Hernandez + + * trans-expr.c (gfc_trans_string_copy): Use "void *" when building a + memset. + +2007-11-22 Tobias Burnus + + * primary.c (gfc_match_structure_constructor): Allow + constructor for types without components. + +2007-11-22 Tobias Burnus + + PR fortran/34079 + * trans-expr.c (gfc_conv_function_call): Do not append + string length arguments when calling bind(c) procedures. + * trans-decl.c (create_function_arglist): Do not append + string length arguments when declaring bind(c) procedures. + +2007-11-21 Francois-Xavier Coudert + + PR fortran/34083 + * resolve.c (resolve_structure_cons): Also check for zero rank. + +2007-11-19 Jerry DeLisle + + PR fortran/33317 + * trans-expr.c (gfc_conv_missing_dummy): Revert. + * iresolve.c (gfc_resolve_cshift): Revert. + (gfc_resolve_eoshift): Likewise. + * check.c (gfc_check_cshift): Revert. + (gfc_check_eoshift): Likewise. + +2007-11-19 Tobias Burnus + + PR fortran/34079 + * decl.c (gfc_match_entry): Support BIND(C). + (gfc_match_subroutine): Fix comment typo. + +2007-11-18 Jerry DeLisle + + PR fortran/33317 + * trans-expr.c (gfc_conv_missing_dummy): Set the type of the dummy + argument to default integer if flagged to do so. Fix typo in comment. + * resolve.c (gfc_resolve_dim_arg): Whitespace cleanup. + * iresolve.c (gfc_resolve_cshift): Do not convert type, mark attribute + for converting the DIM type appropriately in trans-expr.c. + (gfc_resolve_eoshift): Likewise. + * check.c (dim_check): Remove pre-existing dead code. + (gfc_check_cshift): Enable dim_check to allow DIM as an optional. + (gfc_check_eoshift): Likewise. + * trans_intrinsic.c (gfc_conv_intrinsic_function_args): Fix whitespace. + +2007-11-18 Paul Thomas + + PR fortran/31608 + * trans-array.c (gfc_conv_expr_descriptor): Remove exception + for indirect references in the call to gfc_trans_scalar_assign. + * trans-expr.c (gfc_conv_string_parameter): Instead of asserting + that the expression is not an indirect reference, cast it to a + pointer type of the length given by se->string_length. + +2007-11-18 Tobias Burnus + + PR fortran/34137 + * primary.c (match_variable): Reject non-result entry symbols. + * resolve.c (resolve_contained_fntype): Do not check entry master + functions. + +2007-11-17 Francois-Xavier Coudert + + * trans-types.c (gfc_init_types): Use wider buffer. + +2007-11-17 Francois-Xavier Coudert + + * trans-types.c (gfc_init_types): Use Fortran-90-style type + names, with kinds. + +2007-11-17 Tobias Burnus + + PR fortran/34133 + * decl.c (gfc_match_suffix,gfc_match_subroutine): Disallow + bind(c) attribute for internal procedures. + +2007-11-17 Francois-Xavier Coudert + + PR fortran/25252 + * interface.c (gfc_current_interface_head, + gfc_set_current_interface_head): New functions. + * decl.c (gfc_match_modproc): Move check for syntax error earlier. + On syntax error, restore previous state of the interface. + * gfortran.h (gfc_current_interface_head, + gfc_set_current_interface_head): New prototypes. + +2007-11-17 Francois-Xavier Coudert + + PR fortran/30285 + * module.c (struct written_common, written_commons): New structure. + (compare_written_commons, free_written_common, write_common_0): + New functions. + (write_common): Call recursive function write_common_0. + +2007-11-17 Francois-Xavier Coudert + + PR fortran/34108 + * io.c (check_format_string): Only check character expressions. + (match_dt_format): Return MATCH_ERROR if that is what + gfc_match_st_label said. + +2007-11-16 Francois-Xavier Coudert + + PR fortran/33957 + * expr.c (check_inquiry): Don't call gfc_error now. + +2007-11-16 Francois-Xavier Coudert + + PR fortran/33739 + PR fortran/34084 + * scanner.c (start_source_file, end_source_file, + exit_remaining_files, gfc_advance_line): Revert rev. 130016. + +2007-11-16 Paul Thomas + + PR fortran/34008 + * trans-stmt.c (gfc_conv_elemental_dependencies): Add check for + INTENT_INOUT as well as INTENT_OUT. + (gfc_trans_call): Remove redundant gcc_asserts in dependency + check. + +2007-11-16 Paul Thomas + + PR fortran/33986 + * trans-array.c (gfc_conv_array_parameter ): Allow allocatable + function results. + +2007-11-15 Tobias Burnus + + PR fortran/33917 + * decl.c (match_procedure_decl): Pre-resolve interface. + * resolve.c (resolve_symbol): Reject interfaces later + declared in procedure statements. + +2007-11-13 Jerry DeLisle + + PR fortran/33162 + * decl.c (match_procedure_decl): Remove TODO and allow intrinsics in + PROCEDURE declarations. Set attr.untyped to allow the interface to be + resolved later where the symbol type will be set. + * interface.c (compare_intr_interfaces): Remove static from pointer + declarations. Add type and kind checks for dummy function arguments. + (compare_actual_formal_intr): New function to compare an actual + argument with an intrinsic function. (gfc_procedures_use): Add check for + interface that points to an intrinsic function, use the new function. + * resolve.c (resolve_specific_f0): Resolve the intrinsic interface. + (resolve_specific_s0): Ditto. + +2007-11-13 Paul Thomas + + PR fortran/34080 + * iresolve.c (gfc_resolve_transfer): Do not try to convert + to a constant MOLD expression, if it is an assumed size + dummy. + +2007-11-10 Francois-Xavier Coudert + + * trans-common.c: Remove prototype for gfc_get_common. + +2007-11-10 Francois-Xavier Coudert + + PR fortran/33592 + * trans.c (gfc_call_realloc): Fix the logic and rename variables. + +2007-11-08 Francois-Xavier Coudert + + PR fortran/33739 + * scanner.c (start_source_file, end_source_file, + exit_remaining_files): New functions. + (gfc_advance_line): Use the new functions. + +2007-11-08 Francois-Xavier Coudert + + PR fortran/34028 + * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Use correct type. + +2007-11-08 Tobias Burnus + + PR fortran/33917 + * interface.c (check_sym_interfaces): Disallow PROCEDURE-declared + procedures for MODULE PROCEDURE. + * decl.c (match_procedure_in_interface): Do not mark as procedure. + +2007-11-03 Francois-Xavier Coudert + + PR fortran/33881 + * trans-array.c (gfc_conv_array_parameter): Evaluate + se->string_length instead of the expr->ts.cl->backend_decl. + +2007-11-03 Francois-Xavier Coudert + + * gfortran.h: Shorten comment. + * trans-types.c (gfc_get_function_type): Allow argument to have + flavor FL_PROGRAM. + * trans-decl.c (gfc_sym_mangled_function_id): Mangle main program + name into MAIN__. + (build_function_decl): Fix comment. + * parse.c (main_program_symbol): Give the main program its proper + name, if any. Set its flavor to FL_PROGRAM. + (gfc_parse_file): Likewise. + +2007-11-02 Francois-Xavier Coudert + + * intrinsic.texi (ALLOCATED): Fix typo. + +2007-10-31 Tobias Burnus + + PR fortran/33941 + * modules.c (intrinsics): Use only alphabetic names for + intrinsic operators. + +2007-10-31 Jerry DeLisle + + PR fortran/33162 + * interface.c (compare_intr_interfaces): New function to check intrinsic + function arguments against formal arguments. (compare_interfaces): Fix + logic in comparison of function and subroutine attributes. + (compare_parameter): Use new function for intrinsic as argument. + * resolve.c (resolve_actual_arglist): Allow an intrinsic without + function attribute to be checked further. Set function attribute if + intrinsic symbol is found, return FAILURE if not. + +2007-10-31 Paul Thomas + + PR fortran/33897 + * decl.c (gfc_match_entry): Do not make ENTRY name + global for contained procedures. + * parse.c (gfc_fixup_sibling_symbols): Fix code for + determining whether a procedure is external. + +2007-10-30 Francois-Xavier Coudert + + PR fortran/33596 + * trans-intrinsic.c (gfc_conv_intrinsic_isnan): Strip NOP_EXPR + from the result of build_call_expr. + +2007-10-29 Paul Thomas + + PR fortran/31217 + PR fortran/33811 + PR fortran/33686 + + * trans-array.c (gfc_conv_loop_setup): Send a complete type to + gfc_trans_create_temp_array if the temporary is character. + * trans-stmt.c (gfc_trans_assign_need_temp): Do likewise for + allocate_temp_for_forall_nest. + (forall_replace): New function. + (forall_replace_symtree): New function. + (forall_restore): New function. + (forall_restore_symtree): New function. + (forall_make_variable_temp): New function. + (check_forall_dependencies): New function. + (cleanup_forall_symtrees): New function. + gfc_trans_forall_1): Add and initialize pre and post blocks. + Call check_forall_dependencies to check for all dependencies + and either trigger second forall block to copy temporary or + copy lval, outside the forall construct and replace all + dependent references. After assignment clean-up and coalesce + the blocks at the end of the function. + * gfortran.h : Add prototypes for gfc_traverse_expr and + find_forall_index. + expr.c (gfc_traverse_expr): New function to traverse expression + and visit all subexpressions, under control of a logical flag, + a symbol and an integer pointer. The slave function is caller + defined and is only called on EXPR_VARIABLE. + (expr_set_symbols_referenced): Called by above to set symbols + referenced. + (gfc_expr_set_symbols_referenced): Rework of this function to + use two new functions above. + * resolve.c (find_forall_index): Rework with gfc_traverse_expr, + using forall_index. + (forall_index): New function used by previous. + * dependency.c (gfc_check_dependency): Use gfc_dep_resolver for + all references, not just REF_ARRAY. + (gfc_dep_resolver): Correct the logic for substrings so that + overlapping arrays are handled correctly. + +2007-10-28 Tobias Schlüter + + PR fortran/32147 + * module.c (write_symbol): Fix whitespace. + (write_symbol0): Walk symtree from left-to-right instead + breadth-first. + (write_symbol1): Similarly change walk of pointer info tree. + (write_module): Insert linebreak. + * symbol.c (gfc_traverse_symtree): Change to left-to-right order. + (traverse_ns): Likewise. + +2007-10-27 Jerry DeLisle + + PR fortran/31306 + * decl.c (char_len_param_value): Add check for conflicting attributes of + function argument. + +2007-10-27 Tobias Burnus + + PR fortran/33862 + * lang-specs.h: Support .ftn and .FTN extension, use CPP for .FOR. + * options.c (form_from_filename): Support .ftn extension. + * gfortran.texi: Document support of .for and .ftn file extension. + +2007-10-26 Jerry DeLisle + + PR fortran/33162 + * intrinsic.h: Add prototypes for four new functions, gfc_check_datan2, + gfc_check_dprod, gfc_check_fn_d, and gfc_check_x_yd. + * intrinsic.c (add_functions): Add double precision checks for dabs, + dacos, dacosh, dasin, dasinh, datan, datanh, datan2, dbesj0, dbesj1, + dbesy0, dbesy1, dcos, dcosh, ddim, derf, derfc, dexp, dgamma, + dlgama, dlog, dlog10, dmod, dsign, dsin, dsinh, dsqrt, dtan, and dtanh. + Add real check dprod. + * check.c (gfc_check_datan2): New function to check for double precision + argumants. (gfc_check_dprod, gfc_check_fn_d, and gfc_check_x_yd): Ditto. + +2007-10-26 Jerry DeLisle + + * invoke.texi: Fix typo in -fmax-errors=. + +2007-10-26 Francois-Xavier Coudert + + PR fortran/29784 + * gfortran.texi: Document that there is no logical/integer + conversion performed during I/O operations. + +2007-10-22 Jerry DeLisle + + PR fortran/33849 + * resolve.c (resolve_actual_arglist): Fix error message text. + +2007-10-22 Steven G. Kargl + + PR fortran/31244 + * gfortran.h (gfc_data_value): Change repeat from unsigned int + to mpz_t. + * decl.c(top_val_list): Remove msg variable. Use mpz_t for + repeat count. + * resolve.c (values): Change left from unsigned int to mpz_t. + (next_data_value): Change for mpz_t. + (check_data_variable): Change ??? to FIXME in a comment. Use + "mpz_t left". + (resolve_data ): Use "mpz_t left". + +2007-10-21 Paul Thomas + + PR fortran/33749 + * resolve.c (resolve_ordinary_assign): New function that takes + the code to resolve an assignment from resolve_code. In + addition, it makes a temporary of any vector index, on the + lhs, using gfc_get_parentheses. + (resolve_code): On EXEC_ASSIGN call the new function. + +2007-10-20 Tobias Burnus + + PR fortran/33818 + * resolve.c (resolve_variable): Check that symbol is in the same + namespace as the entry function. + +2007-10-20 Paul Thomas + FX Coudert + + PR fortran/31608 + * trans-array.c (gfc_conv_expr_descriptor): For all except + indirect references, use gfc_trans_scalar_assign instead of + gfc_add_modify_expr. + * iresolve.c (check_charlen_present): Separate creation of cl + if necessary and add code to treat an EXPR_ARRAY. + (gfc_resolve_char_achar): New function. + (gfc_resolve_achar, gfc_resolve_char): Call it. + (gfc_resolve_transfer): If the MOLD expression does not have a + character length expression, get it from a constant length. + +2007-10-19 Jerry DeLisle + + PR fortran/33544 + * simplify.c (gfc_simplify_transfer): Only warn for short transfer when + -Wsurprising is given. + * invoke.texi: Document revised behavior. + +2007-10-18 Jerry DeLisle + + PR fortran/33795 + * gfortran.texi: Document GFORTRAN_UNBUFFERED_PRECONNECTED + environment variable. Delete mention of environment variable + GFORTRAN_UNBUFFERED_n. + +2007-10-18 Paul Thomas + + PR fortran/33233 + * resolve.c (check_host_association): Check singly contained + namespaces and start search for symbol in current namespace. + +2007-10-18 Paul Thomas + Dominique d'Humieres + + PR fortran/33733 + * simplify.c (gfc_simplify_transfer): Return null if the source + expression is EXPR_FUNCTION. + +2007-10-17 Christopher D. Rickett + + PR fortran/33760 + * symbol.c (gen_special_c_interop_ptr): Remove code to create + constructor for c_null_ptr and c_null_funptr with value of 0. + * expr.c (check_init_expr): Prevent check on constructors for + iso_c_binding derived types. + * resolve.c (resolve_structure_cons): Verify that the user isn't + trying to invoke a structure constructor for one of the + iso_c_binding derived types. + +2007-10-15 Christopher D. Rickett + + PR fortran/32600 + * trans-expr.c (gfc_conv_function_call): Generate code to inline + c_associated. + * symbol.c (get_iso_c_sym): Preserve from_intmod and intmod_sym_id + attributes in the resolved symbol. + * resolve.c (gfc_iso_c_sub_interface): Remove dead code. + +2007-10-15 Jerry DeLisle + + PR fortran/33055 + * trans-io.c (create_dummy_iostat): New function to create a unique + dummy variable expression to use with IOSTAT. + (gfc_trans_inquire): Use the new function to pass unit number error info + to run-time library if a regular IOSTAT variable was not given. + +2007-10-14 Tobias Burnus + + PR fortran/33745 + * trans-array.c (gfc_conv_ss_startstride): Fix dimension check. + (gfc_trans_array_bound_check, gfc_conv_array_ref, + gfc_conv_ss_startstride): Simplify error message. + * resolve.c (check_dimension): Fix dimension-type switch; + improve error message. + +2007-10-13 Tobias Schlüter + Paul Thomas + + PR fortran/33254 + PR fortran/33727 + * trans-array.c (get_array_ctor_var_strlen): Check upper bound for + constness instead of lower bound. + (get_array_ctor_strlen): Add bounds-checking code. + +2007-10-12 Paul Thomas + + PR fortran/33542 + * resolve.c (resolve_actual_arglist): If the actual argument is + ambiguous, then there is an error. + +2007-10-12 Paul Thomas + + PR fortran/33664 + * expr.c (gfc_specification_expr): If a function is not + external, intrinsic or pure is an error. Set the symbol pure + to prevent repeat errors. + +2007-10-10 Francois-Xavier Coudert + + PR fortran/33636 + * expr.c (find_array_section): Check for constructor constantness. + +2007-10-08 Tobias Schlüter + + PR fortran/33689 + * resolve.c (gfc_resolve_expr): Fix indentation. + (resolve_fl_variable_derived): Rename argument. + (resolve_fl_variable): Fix case in message. Clarify logic. + Correctly simplify array bounds. + +2007-10-07 Thomas Koenig + + PR libfortran/33683 + * mathbuiltins.def (GAMMA): Change function name to + "tgamma" instad of "gamma". + +2007-10-07 Tobias Schlüter + + PR fortran/20851 + * expr.c (check_inquiry): Typo fix in error message. + (check_init_expr): Same * 3. + (check_restricted): Verify that no dummy arguments appear in + restricted expressions in ELEMENTAL procedures. + * resolve.c (resolve_fl_variable): Exchange order of checks to + avoid side-effect. + +2007-10-06 Jerry DeLisle + + PR fortran/33609 + * simplify.c (range_check): Return gfc_bad_expr if incoming expression + is NULL. + +2007-10-06 Tobias Schlüter + + * simplify.c (gfc_simplify_size): Fix typo. + +2007-10-06 Tobias Schlüter + + PR fortran/25076 + * resolve.c (gfc_find_forall_index): Move towards top, + renaming to ... + (find_forall_index): ... this. Add check for NULL expr. + (resolve_forall_iterators): Verify additional constraint. + (resolve_forall): Remove checks obsoleted by new code in + resolve_forall_iterators. + +2007-10-05 Francois-Xavier Coudert + + * gfortran.h (gfc_get_data_variable, gfc_get_data_value, + gfc_get_data): Move to decl.c. + (global_used): Rename into gfc_global_used. + (gfc_formalize_init_value, gfc_get_section_index, + gfc_assign_data_value, gfc_assign_data_value_range, + gfc_advance_section): Move to data.h. + (gfc_set_in_match_data): Remove. + * decl.c (gfc_get_data_variable, gfc_get_data_value, + gfc_get_data): Move here. + (gfc_set_in_match_data): Rename into set_in_match_data. + (gfc_match_data): Likewise. + (add_global_entry): Rename global_used into gfc_global_used. + * data.c: Include data.h. + * trans.h (gfc_todo_error): Remove. + * trans-array.c (gfc_trans_array_constructor, + gfc_conv_ss_startstride, gfc_conv_loop_setup): Change + gfc_todo_error into assertions. + * resolve.c (resolve_global_procedure): Rename global_used into + gfc_global_used. + * parse.c (gfc_global_used, parse_module, add_global_procedure, + add_global_program): Likewise. + * trans-intrinsic.c (gfc_walk_intrinsic_function): Rename + global_used into gfc_global_used. + * Make-lang.in: Add dependencies on fortran/data.h. + * data.h: New file. + +2007-10-04 Francois-Xavier Coudert + + PR fortran/33529 + * decl.c (match_char_kind): New function. + (match_char_spec): Use match_char_kind. + +2007-10-04 Francois-Xavier Coudert + + PR fortran/33502 + * scanner.c (gfc_advance_line): Call debug_hooks->end_source_file + and debug_hooks->start_source_file when appropriate, and set + dbg_emitted. + (gfc_define_undef_line): New function. + (load_file): Don't error out on #define and #undef lines. + * parse.c (next_statement): Call gfc_define_undef_line. + (gfc_parse_file): Call debug_hooks->start_source_file and + debug_hooks->end_source_file for the main source file if + required. + * gfortran.h (gfc_linebuf): Add dbg_emitted field. + (gfc_define_undef_line): New prototype. + +2007-10-04 Tobias Schlüter + + PR fortran/33626 + * resolve.c (resolve_operator): Always copy the type for + expressions in parentheses. + +2007-10-04 Paul Thomas + + PR fortran/33646 + PR fortran/33542 + * interface.c (check_interface1): Revert patch of 10-02. + +2007-10-03 Francois-Xavier Coudert + + PR fortran/26682 + * trans-decl.c (build_function_decl): Set "externally_visible" + attribute on the MAIN program decl. + +2007-10-03 Tobias Schlüter + + PR fortran/33198 + * resolve.c (has_default_initializer): Move to top. Make bool. + (resolve_common_blocks): Simplify logic. Add case for derived + type initialization. + (resolve_fl_variable_derived): Split out from ... + (resolve_fl_variable): ... here, while adapting to new h_d_i + interface. + +2007-10-03 Francois-Xavier Coudert + + PR fortran/26682 + * options.c (gfc_post_options): Issue an error when + -fwhole-program is used. + +2007-10-02 Paul Thomas + + PR fortran/33542 + * interface.c (check_interface1): Specific procedures are + always ambiguous if they have the same name. + +2007-10-02 Paul Thomas + + PR fortran/33566 + * primary.c (gfc_match_rvalue): Make all expressions with array + references to structure parameters into variable expressions. + +2007-10-02 Paul Thomas + + PR fortran/33554 + * trans-decl.c (init_intent_out_dt): New function. + (gfc_trans_deferred_vars): Remove the code for default + initialization of INTENT(OUT) derived types and put it + in the new function. Call it earlier than before, so + that array offsets and lower bounds are available. + +2007-10-02 Paul Thomas + + PR fortran/33550 + * decl.c (get_proc_name): Return rc if rc is non-zero; ie. if + the name is a reference to an ambiguous symbol. + +2007-10-02 Paul Thomas + + PR fortran/31154 + PR fortran/31229 + PR fortran/33334 + * decl.c : Declare gfc_function_kind_locs and + gfc_function_type_locus. + (gfc_match_kind_spec): Add second argument kind_expr_only. + Store locus before trying to match the expression. If the + current state corresponds to a function declaration and there + is no match to the expression, read to the parenthesis, return + kind = -1, dump the expression and return. + (gfc_match_type_spec): Renamed from match_type_spec and all + references changed. If an interface or an external function, + store the locus, set kind = -1 and return. Otherwise, if kind + is already = -1, use gfc_find_symbol to try to find a use + associated or imported type. + match.h : Prototype for gfc_match_type_spec. + * parse.c (match_deferred_characteristics): New function. + (parse_spec): If in a function, statement is USE or IMPORT + or DERIVED_DECL and the function kind=-1, call + match_deferred_characteristics. If kind=-1 at the end of the + specification expressions, this is an error. + * parse.h : Declare external gfc_function_kind_locs and + gfc_function_type_locus. + +2007-09-27 Kaveh R. Ghazi + + * module.c (mio_expr): Avoid -Wcast-qual warning. + +2007-09-27 Tobias Schlüter + + * arith.c (reduce_binary_aa): Fix capitalization. + * check.c (gfc_check_dot_product): Likewise. + (gfc_check_matmul): Likewise. + * expr.c (gfc_check_conformance): Likewise. + (gfc_check_assign): Likewise. + (gfc_default_initializer): Simplify logic. + * trans.c (gfc_msg_bounds): Make const. + (gfc_msg_fault): Likewise. + (gfc_msg_wrong_return): Likewise. + * trans.h: Add const to corresponding extern declarations. + +2007-09-27 Paul Thomas + + PR fortran/33568 + * trans-intrinsic.c (gfc_conv_intrinsic_aint): Allow for the + possibility of the optional KIND argument by making arg + an array, counting the number of arguments and using arg[0]. + +2007-09-26 Francois-Xavier Coudert + + PR fortran/30780 + * invoke.texi: Add note to -ffpe-trap option. Fix typos. + +2007-09-23 Tobias Schlüter + + PR fortran/33269 + * io.c (check_format_string): Move NULL and constant checks into + this function. + (check_io_constraints): Call gfc_simplify_expr() before calling + check_format_string(). Remove NULL and constant checks. + +2007-09-24 Francois-Xavier Coudert + + PR fortran/33538 + * scanner.c, parse.c, gfortran.h: Revert revision 128671. + +2007-09-23 Francois-Xavier Coudert + + PR fortran/33528 + * scanner.c (preprocessor_line): Call linemap_add when exiting + a file. + (gfc_new_file): Adjust debug code for USE_MAPPED_LOCATION. + +2007-09-22 Francois-Xavier Coudert + + PR fortran/33522 + * trans-types.c (gfc_get_desc_dim_type): Mark artificial + variables with TREE_NO_WARNING. + (gfc_get_array_descriptor_base): Likewise. + +2007-09-22 Paul Thomas + + PR fortran/33337 + PR fortran/33376 + * trans-decl.c (gfc_create_module_variable): Output + derived type parameters. + * arith.c (gfc_parentheses): Return the argument if + it is a constant expression. + * primary.c (gfc_match_rvalue): Remove the clearing of + the module name and the use_assoc attribute for derived + type parameter expressions. + +2007-09-22 Francois-Xavier Coudert + + PR fortran/33502 + * scanner.c (gfc_advance_line): Call debug_hooks->start_source_file + and debug_hooks->end_source_file when entering and exiting + included files. + (gfc_define_undef_line): New function. + (load_file): Ignore #define and #undef preprocessor lines + while reading source files. + * parse.c (next_statement): Handle #define and #undef + preprocessor lines. + (gfc_parse_file): Call debug_hooks->start_source_file and + debug_hooks->end_source_file for the main source file if + requested by the debug format. + * gfortran.h (gfc_define_undef_line): Add prototype. + +2007-09-22 Tobias Burnus + + PR fortran/33445 + * scanner.c (skip_free_comments): Warn if !$OMP& is used + if no OpenMP directive is to be continued. + +2007-09-21 Paul Thomas + + *trans-expr.c (gfc_trans_pointer_assignment): Convert array + descriptor for subref pointer assignements, rather than using + the loop info version. + +2007-09-21 Tobias Burnus + + PR fortran/33037 + * simplify.c (gfc_simplify_transfer): Warn if source size + is smaller than result size. + +2007-09-20 Asher Langton + + PR fortran/20441 + * gfortran.h : Add init_local_* enums and init_flag_* flags to + gfc_option_t. + * lang.opt: Add -finit-local-zero, -finit-real, -finit-integer, + -finit-character, and -finit-logical flags. + * invoke.texi: Document new options. + * resolve.c (build_init_assign): New function. + (apply_init_assign): Move part of function into build_init_assign. + (build_default_init_expr): Build local initializer (-finit-*). + (apply_default_init_local): Apply local initializer (-finit-*). + (resolve_fl_variable): Try to add local initializer (-finit-*). + * options.c (gfc_init_options, gfc_handle_option, + gfc_post_options): Handle -finit-local-zero, -finit-real, + -finit-integer, -finit-character, and -finit-logical flags. + +2007-09-20 Francois-Xavier Coudert + + PR fortran/33221 + * gfortran.h (symbol_attribute): Add zero_comp field. + * symbol.c (gfc_use_derived): Handle case of emtpy derived types. + * decl.c (gfc_match_data_decl): Likewise. + (gfc_match_derived_decl): Likewise. + * module.c (ab_attribute, attr_bits): Add AB_ZERO_COMP member. + (mio_symbol_attribute): Write and read AB_ZERO_COMP. + * resolve.c (resolve_symbol): Handle case of emtpy derived types. + * parse.c (parse_derived): Likewise. + +2007-09-20 Francois-Xavier Coudert + + PR fortran/33288 + * arith.c (reduce_unary, reduce_binary_ac, reduce_binary_ca, + reduce_binary_aa): Call ourselves recursively if an element of + the constructor is itself a constant array. + +2007-09-20 Tobias Schlüter + + * io.c (resolve_tag_format): New function using code split out + and simplified from ... + (resolve_tag): ... this function. Simplify logic. Unify + IOSTAT, IOLENGTH and SIZE handling. + +2007-09-20 Christopher D. Rickett + + PR fortran/33497 + * resolve.c (gfc_iso_c_func_interface): Use information from + subcomponent if applicable. + +2007-09-20 Tobias Burnus + + PR fortran/33325 + * intrinsic.text: Add documentation of the intrinsic modules. + * gfortran.texi: Link to intrinsic-modules section and to + the GOMP manual. + +2007-09-18 Francois-Xavier Coudert + + PR fortran/31119 + * trans-array.c (gfc_conv_ss_startstride): Only perform bounds + checking for optional args when they are present. + +2007-09-18 Tobias Burnus + + PR fortran/33231 + * resolve.c (resolve_elemental_actual): Check for conformance + of intent out/inout dummies. + +2007-09-17 Tobias Burnus + + PR fortran/33106 + * resolve.c (resolve_symbol): Reject public variable of + private derived-types for Fortran 95. + +2007-09-17 Tobias Burnus + + * resolve.c (resolve_fl_procedure): Allow private dummies + for Fortran 2003. + +2007-09-17 Francois-Xavier Coudert + + * trans-types.c (gfc_get_desc_dim_type): Do not to try + emit debug info. + (gfc_get_array_descriptor_base): Likewise. + (gfc_get_mixed_entry_union): Likewise + (gfc_get_derived_type): Set decl location for fields and + derived type itself. + +2007-09-16 Paul Thomas + + PR fortran/29396 + PR fortran/29606 + PR fortran/30625 + PR fortran/30871 + * trans.h : Add extra argument to gfc_build_array_ref. Rename + gfc_conv_aliased_arg to gfc_conv_subref_array_arg. Move + prototype of is_aliased_array to gfortran.h and rename it + gfc_is_subref_array. Add field span to lang_decl, add a new + decl lang specific flag accessed by GFC_DECL_SUBREF_ARRAY_P + and a new type flag GFC_DECL_SUBREF_ARRAY_P. + * trans.c (gfc_build_array_ref): Add the new argument, decl. + If this is a subreference array pointer, use the lang_decl + field 'span' to calculate the offset in bytes and use pointer + arithmetic to address the element. + * trans-array.c (gfc_conv_scalarized_array_ref, + gfc_conv_array_ref): Add the backend declaration as the third + field, if it is likely to be a subreference array pointer. + (gfc_conv_descriptor_dimension, gfc_trans_array_ctor_element, + gfc_trans_array_constructor_element, structure_alloc_comps, + gfc_conv_array_index_offset): For all other references to + gfc_build_array_ref, set the third argument to NULL. + (gfc_get_dataptr_offset): New function. + (gfc_conv_expr_descriptor): If the rhs of a pointer assignment + is a subreference array, then calculate the offset to the + subreference of the first element and set the descriptor data + pointer to this, using gfc_get_dataptr_offset. + trans-expr.c (gfc_get_expr_charlen): Use the expression for the + character length for a character subreference. + (gfc_conv_substring, gfc_conv_subref_array_arg): Add NULL for + third argument in call to gfc_build_array_ref. + (gfc_conv_aliased_arg): Rename to gfc_conv_subref_array_arg. + (is_aliased_array): Remove. + (gfc_conv_function_call): Change reference to is_aliased_array + to gfc_is_subref_array and reference to gfc_conv_aliased_arg to + gfc_conv_subref_array_arg. + (gfc_trans_pointer_assignment): Add the array element length to + the lang_decl 'span' field. + * gfortran.h : Add subref_array_pointer to symbol_attribute and + add the prototype for gfc_is_subref_array. + * trans-stmt.c : Add NULL for third argument in all references + to gfc_build_array_ref. + * expr.c (gfc_is_subref_array): Renamed is_aliased_array. + If this is a subreference array pointer, return true. + (gfc_check_pointer_assign): If the rhs is a subreference array, + set the lhs subreference_array_pointer attribute. + * trans-decl.c (gfc_get_symbol_decl): Allocate the lang_decl + field if the symbol is a subreference array pointer and set an + initial value of zero for the 'span' field. + * trans-io.c (set_internal_unit): Refer to is_subref_array and + gfc_conv_subref_array_arg. + (nml_get_addr_expr): Add NULL third argument to + gfc_build_array_ref. + (gfc_trans_transfer): Use the scalarizer for a subreference + array. + +2007-09-13 Thomas Koenig + + * iresolve.c (resolve_mask_arg): If a mask is an array + expression, convert it to kind=1. + +2007-09-13 Tobias Burnus + + PR fortran/33343 + * expr.c (gfc_check_conformance): Print ranks in the error message. + * resolve.c (resolve_elemental_actual): Check also conformance of + the actual arguments for elemental functions. + +2007-09-13 Tobias Burnus + + * symbol.c (gfc_add_elemental,gfc_add_pure,gfc_add_recursive): + Allow prefixes only to be specified once. + +2007-09-13 Tobias Burnus + + PR fortran/33412 + * symbol.c (check_conflict): Add conflict of ELEMENTAL with Bind(C). + +2007-09-12 Tobias Burnus + + PR fortran/33297 + * check.c (scalar_check): Move up in the file. + (kind_check): Call scalar_check. + (dim_check): If optional, do not call nonoptional_check; use + bool for optional. + (gfc_check_all_any,gfc_check_count,gfc_check_cshift,gfc_check_eoshift, + gfc_check_lbound,gfc_check_minloc_maxloc,check_reduction, + gfc_check_spread,gfc_check_ubound): Use true/false instead of 0/1 + for dim_check; honor changed meaning of optional. + (gfc_check_int): Replace checks by kind_check. + (gfc_check_size): Replace checks by dim_check. + +2007-09-12 Tobias Burnus + + PR fortran/33284 + PR fortran/33310 + * symbol.c (check_conflict): Add conflict between INTRINSIC and ENTRY + and between BIND(C) and PARAMETER. + +2007-09-12 Tobias Burnus + + * trans-expr.c (gfc_conv_initializer): Fix expr == NULL check. + +2007-09-12 Jan Hubicka + + * f95-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill. + +2007-09-12 Christopher D. Rickett + + PR fortran/33395 + * trans-expr.c (gfc_conv_initializer): Remove unnecessary test for + intmod_sym_id and use derived symbol to set new kind of C_NULL_PTR + and C_NULL_FUNPTR expressions. + +2007-09-11 Christopher D. Rickett + + PR fortran/33040 + * trans-expr.c (gfc_trans_structure_assign): Convert component + C_NULL_PTR and C_NULL_FUNPTR component initializers to (void *). + * trans-types.c (gfc_get_derived_type): Create a backend_decl for + the c_address field of C_PTR and C_FUNPTR and ensure initializer + is of proper type/kind for (void *). + +2007-09-11 Jan Hubicka + + * f95-lang.c (gfc_expand_function): Kill. + (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill. + +2007-09-08 Tobias Burnus + + PR fortran/31547 + * gfortran.texi: Document when CPP is called. + + * intrinsic.texi (IOR): Fix typos. + +2007-09-10 Paul Thomas + + PR fortran/33370 + * trans-expr.c (copyable_array_p): Add tests that expression + is a variable, that it has no subreferences and that it is a + full array. + (gfc_trans_assignment): Change conditions to suit modifications + to copyable_array_p. + +2007-09-06 Tom Tromey + + * scanner.c (get_file): Update. + (load_file): Update. + (gfc_next_char_literal): Use gfc_linebuf_linenum. + * f95-lang.c (gfc_init): Update. + * gfortran.h (gfc_linebuf_linenum): New macro. + +2007-09-05 Sandra Loosemore + + * trans-decl.c (build_entry_thunks): Use set_cfun. + (gfc_generate_function_code): Likewise. + +2007-09-05 Paul Thomas + + PR fortran/31564 + * primary.c (gfc_match_rvalue): Make expressions that refer + to derived type parameters that have array references into + variable expressions. Remove references to use association + from the symbol. + + PR fortran/33241 + * decl.c (add_init_expr_to_sym): Provide assumed character + length parameters with the length of the initialization + expression, if a constant, or that of the first element of + an array. + +2007-09-04 Janus Weil + Paul Thomas + + * decl.c (match_procedure_decl,match_procedure_in_interface, + gfc_match_procedure): Handle PROCEDURE statements. + * gfortran.h (struct gfc_symbol): New member "gfc_symbol *interface". + (enum gfc_statement): New element "ST_PROCEDURE". + (strcut symbol_attribute): New member "unsigned procedure". + * interface.c (check_interface0): Extended error checking. + * match.h: Add gfc_match_procedure prototype. + * parse.c (decode_statement,next_statement,gfc_ascii_statement, + parse_derived,parse_interface): Implement PROCEDURE statements. + * resolve.c (resolve_symbol): Ditto. + * symbol.c (check_conflict): Ditto. + (gfc_add_proc): New function for setting the procedure attribute. + (copy_formal_args): New function for copying formal argument lists. + +2007-09-03 Daniel Jacobowitz + + * Make-lang.in (gfortranspec.o): Remove SHLIB_MULTILIB. + +2007-09-03 Kaveh R. Ghazi + + * gfortranspec.c (lang_specific_driver): Use CONST_CAST2. + * options.c (gfc_post_options): Supply a TYPE for CONST_CAST. + * parse.c (parse_omp_structured_block): Likewise, + * st.c (gfc_free_statement): Likewise, + +2007-09-03 Francois-Xavier Coudert + + PR fortran/31675 + * libgfortran.h: New file. + * iso-fortran-env.def: Use macros in the new header instead of + hardcoded integer constants. + * Make-lang.in (F95_PARSER_OBJS, GFORTRAN_TRANS_DEPS): Add + fortran/libgfortran.h. + * gfortran.h (GFC_STD_*, GFC_FPE_*, options_convert, + ioerror_codes): Remove. + * trans.c (ERROR_ALLOCATION): Remove. + (gfc_call_malloc, gfc_allocate_with_status, + gfc_allocate_array_with_status): Use LIBERROR_ALLOCATION. + * trans-types.h (GFC_DTYPE_*): Remove. + * trans-decl.c (gfc_generate_function_code): Use + GFC_CONVERT_NATIVE instead of CONVERT_NATIVE. + * trans-io.c (set_parameter_value, set_parameter_ref): Use + LIBERROR_* macros instead of IOERROR_ macros. + * trans-intrinsic.c (gfc_conv_intrinsic_function): Use + LIBERROR_END and LIBERROR_EOR instead of hardcoded constants. + * options.c (gfc_init_options): Use GFC_CONVERT_NATIVE instead of + CONVERT_NATIVE. + (gfc_handle_option): Use GFC_CONVERT_* macros instead of CONVERT_*. + +2007-09-02 Steven G. Kargl + + * invoke.texi: Fix the -frange-checking option entry. + +2007-09-02 Roger Sayle + + * decl.c (match_string_p): New helper function to explicitly match + a string of characters. + (match_attr_spec): Remove no longer needed DECL_COLON from decl_types. + Delete decls array and peek_char. Rewrite decl attribute parser to + avoid calling gfc_match_strings. + * match.c (gfc_match_strings): Delete unused function. + * match.h (gfc_match_strings): Delete prototype. + +2007-09-02 Tobias Schlüuter + + * dump-parse-tree.c (show_char_const): New function. + (gfc_show_expr): Use it. + * expr.c (find_substring_ref): Rework to not keep characters + dangling beyond end of string. + +2007-09-02 H.J. Lu + + PR fortran/33276 + * array.c (expand_iterator): Initialize frame.prev. + +2007-08-31 Tobias Burnus + + PR fortran/33232 + * io.c (match_io): Also diagnose extra comma for READ. + +2007-08-31 Joseph Myers + + * intrinsic.texi (LGAMMA): Remove empty @cindex line. + +2007-08-31 Paul Thomas + + PR fortran/31879 + PR fortran/31197 + PR fortran/31258 + PR fortran/32703 + * gfortran.h : Add prototype for gfc_resolve_substring_charlen. + * resolve.c (gfc_resolve_substring_charlen): New function. + (resolve_ref): Call gfc_resolve_substring_charlen. + (gfc_resolve_character_operator): New function. + (gfc_resolve_expr): Call the new functions in cases where the + character length is missing. + * iresolve.c (cshift, eoshift, merge, pack, reshape, spread, + transpose, unpack): Call gfc_resolve_substring_charlen for + source expressions that are character and have a reference. + * trans.h (gfc_trans_init_string_length) Change name to + gfc_conv_string_length; modify references in trans-expr.c, + trans-array.c and trans-decl.c. + * trans-expr.c (gfc_trans_string_length): Handle case of no + backend_decl. + (gfc_conv_aliased_arg): Remove code for treating substrings + and replace with call to gfc_trans_string_length. + * trans-array.c (gfc_conv_expr_descriptor): Remove code for + treating strings and call gfc_trans_string_length instead. + +2007-08-30 Tobias Burnus + + PR fortran/33228 + * interface.c (check_interface0): Improve error for external procs. + (check_sym_interfaces): Fix checking of module procedures. + +2007-08-29 Francois-Xavier Coudert + + PR fortran/32989 + * iresolve.c (gfc_resolve_getarg): Handle non-default integer + kinds. + * check.c (gfc_check_getarg): New function + * intrinsic.h: Add prototype for gfc_check_getarg. + * intrinsic.c (add_subroutines): Add reference to gfc_check_getarg. + * intrinsic.texi (GETARG): Adjust documentation. + +2007-08-29 Francois-Xavier Coudert + Tobias Burnus + + PR fortran/33105 + * intrinsic.c (add_functions): Add IS_IOSTAT_END and + IS_IOSTAT_EOR intrinsics. + * gfortran.h (gfc_isym_id): Add GFC_ISYM_IS_IOSTAT_END and + GFC_ISYM_IS_IOSTAT_EOR. + * trans-intrinsic.c (gfc_conv_has_intvalue): New function. + (gfc_conv_intrinsic_function): Call gfc_conv_has_intvalue for + GFC_ISYM_IS_IOSTAT_END and GFC_ISYM_IS_IOSTAT_EOR. + * intrinsic.texi: Add IS_IOSTAT_END and IS_IOSTAT_EOR. + +2007-08-28 Christopher D. Rickett + + PR fortran/33215 + * decl.c (build_sym): Pass number of identifiers on line to + set_binding_label. + (set_binding_label): Verify that only one identifier given if + NAME= specified, even if the given binding label has zero length. + (gfc_match_bind_c): Remove declaration for has_name_equals because + it hides the static global one that is needed. + +2007-08-29 Francois-Xavier Coudert + + * trans-array.c (gfc_grow_array): Use gfc_call_realloc. + (gfc_array_allocate): Use gfc_allocate_with_status and + gfc_allocate_array_with_status. + (gfc_array_deallocate): Use gfc_deallocate_with_status. + (gfc_trans_dealloc_allocated): Use gfc_deallocate_with_status. + * trans-stmt.c (gfc_trans_allocate): Use gfc_allocate_with_status. + (gfc_trans_deallocate): Use gfc_deallocate_with_status. + * trans.c (gfc_allocate_with_status, gfc_allocate_array_with_status, + gfc_deallocate_with_status, gfc_call_realloc): New functions. + * trans.h (gfc_allocate_with_status, gfc_allocate_array_with_status, + gfc_deallocate_with_status, gfc_call_realloc): New prototypes. + (gfor_fndecl_internal_realloc, gfor_fndecl_allocate, + gfor_fndecl_allocate_array, gfor_fndecl_deallocate): Remove. + * f95-lang.c (gfc_init_builtin_functions): Create decl for + BUILT_IN_REALLOC. + * trans-decl.c (gfor_fndecl_internal_realloc, + gfor_fndecl_allocate, gfor_fndecl_allocate_array, + gfor_fndecl_deallocate): Remove function decls. + (gfc_build_builtin_function_decls): Likewise. + +2007-08-28 Jerry DeLisle + + PR fortran/33055 + Revert previous patch. + +2007-08-28 Jakub Jelinek + + PR fortran/22244 + * Make-lang.in (fortran/trans-types.o): Depend on $(FLAGS_H). + * trans-types.c: Include flags.h. + (gfc_get_nodesc_array_type): Add TYPE_DECL TYPE_NAME with + correct bounds and dimensions for packed arrays. + +2007-08-27 Tobias Burnus + + * simplify.c (gfc_simplify_lgamma): Fix mpfr_lgamma call. + +2007-08-26 Jerry DeLisle + + PR fortran/33055 + * trans-io.c (create_dummy_iostat): New function to create a unique + dummy variable expression to use with IOSTAT. + (gfc_trans_inquire): Use the new function to pass unit number error info + to run-time library if a regular IOSTAT variable was not given. + +2007-08-26 H.J. Lu + + * gfortran.h (gfc_isym_id): Add GFC_ISYM_GAMMA and + GFC_ISYM_LGAMMA. + +2007-08-26 Asher Langton + Tobias Burnus + + * gfortran.h (gfc_option_t): Add flag_recursive. + * lang.opt: Add -frecursive option and update -fopenmp. + * invoke.texi (-frecursive): Document new option. + (-fopenmp,-fno-automatic,-fmax-stack-var-size): Update. + * options.c (gfc_init_options, gfc_post_options, + gfc_handle_option): Add -frecursive and modify -fopenmp. + (gfc_post_options): Add warning for conflicting flags. + +2007-08-26 Tobias Burnus + + PR fortran/31298 + * module.c (mio_symbol_ref,mio_interface_rest): Return pointer_info. + (load_operator_interfaces): Support multible loading of an operator. + +2007-08-26 Tobias Burnus + + PR fortran/32985 + * match.c (gfc_match_common): Remove SEQUENCE diagnostics. + * resolve.c (resolve_common_blocks): Add SEQUENCE diagnostics; + fix walking through the tree. + +2007-08-26 Tobias Burnus + + PR fortran/32980 + * intrinsic.h (gfc_simplify_gamma,gfc_simplify_lgamma, + gfc_resolve_gamma,gfc_resolve_lgamma): New function declations. + * mathbuiltins.def: Define GAMMA and LGAMMA. + * intrinsic.c (add_functions): Add GAMMA, DGAMMA, LGAMMA, ALGAMA + and DLGAMA. + * simplify.c (gfc_simplify_gamma,gfc_simplify_lgamma): New functions. + * iresolve.c (gfc_resolve_gamma,gfc_resolve_lgamma): New functions. + * intrinsic.texi: Add documentation for GAMMA and LGAMMA. + +2007-08-26 Tobias Burnus + + PR fortran/33188 + * parse.c (parse_derived): Support empty derived type + definitions for Fortran 2003. + +2007-08-25 Kaveh R. Ghazi + + * trans-openmp.c (gfc_omp_privatize_by_reference): Constify. + * trans.h (gfc_omp_privatize_by_reference): Likewise. + +2007-08-24 Tobias Burnus + + PR fortran/33178 + * intrinsic.c (gfc_intrinsic_func_interface): Fix initialization + expression check. + +2007-08-24 Thomas Koenig + + PR fortran/32972 + * iresolve.c: Don't convert array masks. + +2007-08-24 Tobias Burnus + + PR fortran/33139 + * trans-array.c (gfc_conv_expr_descriptor): Copy bounds for + whole-array pointer assignments. + +2007-08-23 Jakub Jelinek + + * decl.c (variable_decl): Don't share charlen structs if + length == NULL. + * trans-decl.c (create_function_arglist): Assert + f->sym->ts.cl->backend_decl is NULL instead of unsharing + charlen struct here. + +2007-08-23 Francois-Xavier Coudert + + PR fortran/33095 + * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Remove + runtime error checking. + +2007-08-22 Roger Sayle + Tobias Schlüter + + * match.c (intrinsic_operators): Delete. + (gfc_match_intrinsic_op): Rewrite matcher to avoid calling + gfc_match_strings. + +2007-08-22 Christopher D. Rickett + + PR fortran/33020 + * resolve.c (gfc_iso_c_sub_interface): Remove setting of type and + kind for optional SHAPE parameter of C_F_POINTER. + +2007-08-22 Janus Weil + + * decl.c (match_attr_spec): Pass on errors from gfc_match_bind_c. + (gfc_match_bind_c): Bugfix in check for NAME= with abstract interfaces. + (gfc_match_mopdproc): Bugfix to reject module procedures in + abstract interfaces. + +2007-08-22 Kai Tietz + + * f95-lang.c: (gfc_init_decl_processing): Choose sizetype by using + Pmode. + +2007-08-21 Paul Brook + Nathan Sidwell + Mark Mitchell + Joseph Myers + + * gfortranspec.c (lang_specific_driver): Use pkgversion_string. + * Make-lang.in (gfortran.pod): Define BUGURL. + * invoke.texi: Use BUGURL for bug-reporting instructions. + +2007-08-19 Roger Sayle + + * match.c (intrinsic_operators): Make static. + (gfc_op2string): New function for converting a gfc_intrinsic_op to + to a "const char*", replacing the macro of the same name. + * gfortran.h (intrinsic_operators): Delete prototype. + (gfc_op2string): Replace macro with function prototype. + +2007-08-18 Tobias Burnus + + * gfortran.h (gfc_is_intrinsic_typename): Add declaration. + * symbol.c (gfc_is_intrinsic_typename): New function. + * parse.c (decode_statement): Check for space in ABSTRACT INTERFACE. + (parse_interface): Use gfc_is_intrinsic_typename. + * decl.c (gfc_match_derived_decl): Ditto. + * module.c (gfc_match_use): Use gcc_unreachable() for + INTERFACE_ABSTRACT in switch(). + +2007-08-18 Roger Sayle + + * primary.c (match_logical_constant_string): New function to match + a ".true." or a ".false.". + (match_logical_constant): Use it instead of gfc_match_strings. + +2007-08-18 Paul Thomas + Janus Weil + + * interface.c (gfc_match_interface,gfc_match_abstract_interface, + gfc_match_end_interface,gfc_add_interface): Add abstract interface. + * dump-parse-tree.c (gfc_show_attr): Ditto. + * gfortran.h (interface_type,symbol_attribute): Ditto. + * module.c (gfc_match_use,ab_attribute,attr_bits, + mio_symbol_attribute): Ditto. + * resolve.c (resolve_function): Ditto. + * match.h: Ditto. + * parse.c (decode_statement): Ditto. + (parse_interface): Ditto, check for C1203 (name of abstract interface + cannot be the same as an intrinsic type). + * decl.c (gfc_match_bind_c): Check for NAME= with abstract interfaces. + (access_attr_decl): Handle Abstract interfaces. + +2007-08-18 Paul Thomas + + PR fortran/32881 + * expr.c (gfc_check_pointer_assign): If the rhs is the + initialization expression for the rhs, there is no error. + +2007-08-18 Paul Thomas + + PR fortran/32875 + * trans-array.c (get_array_ctor_strlen): Set the character + length of a zero length array to zero. + +2007-08-16 Tobias Burnus + + PR fortran/33072 + * module.c (gfc_match_use): Mark user operators as such. + (find_use_name_n): Distinguish between operators and other symbols. + (find_use_name,number_use_names,mio_namelist, + load_operator_interfaces,load_generic_interfaces,read_module, + write_generic): Update find_use_name_n calls. + +2007-08-15 Francois-Xavier Coudert + + PR fortran/29459 + * trans.c (gfc_create_var_np): Do not emit warnings for + anonymous variables. + +2007-08-15 Francois-Xavier Coudert + + PR fortran/33066 + * decl.c (gfc_get_type_attr_spec): Fix whitespace. + (gfc_match_derived_decl): Fix logic. + +2007-08-14 Francois-Xavier Coudert + + PR fortran/33073 + * trans-intrinsic.c (build_fixbound_expr): Convert to result type + in all cases. + +2007-08-14 Francois-Xavier Coudert + + PR fortran/32594 + * trans-expr.c (gfc_conv_substring_expr): Only call + gfc_conv_substring if expr->ref is not NULL. + * expr.c (gfc_is_constant_expr): If e->ref is NULL, the substring + expression might be a constant. + (gfc_simplify_expr): Handle missing start and end, as well as + missing ref. + +2007-08-13 Paul Thomas + + PR fortran/32926 + * match.c (gfc_match_call): Do not create a new symtree in the + case where the existing symbol is external and not referenced. + +2007-08-13 Paul Thomas + + PR fortran/32827 + * decl.c (variable_decl): Check for an imported symbol + by looking for its symtree and testing for the imported + attribute. + (gfc_match_import): Remove change of symbol's namespace + and set the attribute imported instead. + * symbol.c (gfc_get_sym_tree): It is not an error if a + symbol is imported. + * gfortran.h : Add the 'imported' to symbol_attribute. + +2007-08-13 Paul Thomas + + PR fortran/32962 + * trans-array.c (gfc_conv_array_transpose): Set the offset + of the destination to zero if the loop is zero based. + +2007-08-12 Francois-Xavier Coudert + + PR fortran/29600 + * intrinsic.c (add_functions): Add optional KIND argument to ACHAR. + * iresolve.c (gfc_resolve_achar): Handle the KIND argument. + * check.c (gfc_check_achar): Check for the optional KIND argument. + * simplify.c (gfc_simplify_achar): Use KIND argument. + * intrinsic.h (gfc_check_achar, gfc_simplify_achar, + gfc_resolve_achar): Adjust prototypes. + +2007-08-12 Francois-Xavier Coudert + + PR fortran/30964 + PR fortran/33054 + * trans-expr.c (gfc_conv_function_call): When no formal argument + list is available, we still substitute missing optional arguments. + * check.c (gfc_check_random_seed): Correct the check on the + number of arguments to RANDOM_SEED. + * intrinsic.c (add_subroutines): Add a resolution function to + RANDOM_SEED. + * iresolve.c (gfc_resolve_random_seed): New function. + * intrinsic.h (gfc_resolve_random_seed): New prototype. + +2007-08-12 Francois-Xavier Coudert + + PR fortran/32860 + * error.c (error_uinteger): New function. + (error_integer): Call error_uinteger. + (error_print): Handle %u, %lu, %li and %ld format specifiers. + * interface.c (compare_actual_formal): Use the new %lu specifier. + +2007-08-12 Francois-Xavier Coudert + + PR fortran/31629 + * lang.opt (-fmodule-private): New option. + * gfortran.h (gfc_option_t): Add flag_module_private member. + * invoke.texi (-fmodule-private): Document the new option. + * module.c (gfc_check_access): Allow the -fmodule-private option + to modify the default behaviour. + * options.c (gfc_init_options): Initialize flag_module_private. + (gfc_handle_option): Handle -fmodule-private. + +2007-08-12 Francois-Xavier Coudert + + PR fortran/29600 + * intrinsic.c (add_functions): Add KIND arguments to COUNT, + IACHAR, ICHAR, INDEX, LBOUND, LEN, LEN_TRIM, SCAN, SIZE, UBOUND + and VERIFY. + * iresolve.c (gfc_resolve_count): Add kind argument. + (gfc_resolve_iachar): New function. + (gfc_resolve_ichar): Add kind argument. + (gfc_resolve_index_func): Likewise. + (gfc_resolve_lbound): Likewise. + (gfc_resolve_len): Likewise. + (gfc_resolve_len_trim): Likewise. + (gfc_resolve_scan): Likewise. + (gfc_resolve_size): New function. + (gfc_resolve_ubound): Add kind argument. + (gfc_resolve_verify): Likewise. + * trans-decl.c (gfc_get_extern_function_decl): Allow specific + intrinsics to have 4 arguments. + * check.c (gfc_check_count): Add kind argument. + (gfc_check_ichar_iachar): Likewise. + (gfc_check_index): Likewise. + (gfc_check_lbound): Likewise. + (gfc_check_len_lentrim): New function. + (gfc_check_scan): Add kind argument. + (gfc_check_size): Likewise. + (gfc_check_ubound): Likewise. + (gfc_check_verify): Likewise. + * intrinsic.texi: Update documentation for COUNT, IACHAR, ICHAR, + INDEX, LBOUND, LEN, LEN_TRIM, SCAN, SIZE, UBOUND and VERIFY. + * simplify.c (get_kind): Whitespace fix. + (int_expr_with_kind): New function. + (gfc_simplify_iachar): Add kind argument. + (gfc_simplify_iachar): Likewise. + (gfc_simplify_ichar): Likewise. + (gfc_simplify_index): Likewise. + (simplify_bound_dim): Likewise. + (simplify_bound): Likewise. + (gfc_simplify_lbound): Likewise. + (gfc_simplify_len): Likewise. + (gfc_simplify_len_trim): Likewise. + (gfc_simplify_scan): Likewise. + (gfc_simplify_shape): Pass NULL as kind argument to gfc_simplify_size. + (gfc_simplify_size): Add kind argument. + (gfc_simplify_ubound): Likewise. + (gfc_simplify_verify): Likewise. + * intrinsic.h: Update prototypes and add new ones. + * trans-intrinsic.c (gfc_conv_intrinsic_index): Rename into + gfc_conv_intrinsic_index_scan_verify. + (gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify): Remove. + (gfc_conv_intrinsic_function): Call + gfc_conv_intrinsic_index_scan_verify to translate the INDEX, + SCAN and VERIFY intrinsics. + +2007-08-11 Francois-Xavier Coudert + + PR fortran/31189 + * invoke.texi (-fbacktrace): Document the new behaviour. + +2007-08-11 Francois-Xavier Coudert + + PR fortran/32937 + * trans-array.c (gfc_conv_expr_descriptor): Use + gfc_conv_const_charlen to generate backend_decl of right type. + * trans-expr.c (gfc_conv_expr_op): Use correct return type. + (gfc_build_compare_string): Use int type instead of default + integer kind for single character comparison. + (gfc_conv_aliased_arg): Give backend_decl the right type. + * trans-decl.c (gfc_build_intrinsic_function_decls): Make + compare_string return an int. + +2007-08-11 Ian Lance Taylor + + * f95-lang.c (gfc_get_alias_set): Change return type to + alias_set_type. + +2007-08-10 Francois-Xavier Coudert + + PR fortran/31270 + * trans.c (gfc_trans_runtime_check): Reorder arguments and + add extra variable arguments. Hand them to the library function. + * trans.h (gfc_trans_runtime_check): Update prototype. + * trans-array.c (gfc_trans_array_bound_check): Issue more + detailled error messages. + (gfc_conv_array_ref): Likewise. + (gfc_conv_ss_startstride): Likewise. + (gfc_trans_dummy_array_bias): Reorder arguments to + gfc_trans_runtime_check. + * trans-expr.c (gfc_conv_substring): Issue more detailled + error messages. + (gfc_conv_function_call): Reorder arguments to gfc_trans_runtime_check. + * trans-stmt.c (gfc_trans_goto): Likewise. + * trans-io.c (set_string): Reorder arguments to + gfc_trans_runtime_check and issue a more detailled error message. + * trans-decl.c (gfc_build_builtin_function_decls): Make + runtime_error and runtime_error_at handle a variable number of + arguments. + * trans-intrinsic.c (gfc_conv_intrinsic_bound): Reorder arguments + to gfc_trans_runtime_check. + (gfc_conv_intrinsic_minmax): Likewise. + (gfc_conv_intrinsic_repeat): Issue more detailled error messages. + +2007-08-10 Kaveh R. Ghazi + + * gfortranspec.c (lang_specific_driver): Use CONST_CAST. + * options.c (gfc_post_options): Likewise. + * parse.c (parse_omp_structured_block): Likewise. + * st.c (gfc_free_statement): Likewise. + +2007-08-10 Francois-Xavier Coudert + + PR fortran/32933 + * trans-decl.c (gfc_build_builtin_function_decls): Change + prototype for associated. + * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Convert the + result of __builtin_isnan into a boolean. + (gfc_conv_intrinsic_strcmp): Cleanup. + (gfc_conv_associated): Convert the result of the associated + function into a boolean. + +2007-08-09 Tobias Burnus + + PR fortran/32987 + * io.c (format_token): Add FMT_ERROR. + (next_char_not_space): Print error/warning when + '\t' are used in format specifications. + (format_lex): Propagate error. + (check_format): Ditto. + +2007-08-09 Tobias Burnus + + PR fortran/33001 + * arith.c (arith_error): Point in the error message + to -fno-range-check. + +2007-08-09 Francois-Xavier Coudert + + PR fortran/32902 + * intrinsic.texi (SIZEOF): Add mention to C_SIZE_T. + +2007-08-06 Christopher D. Rickett + + PR fortran/32732 + * trans-expr.c (gfc_conv_scalar_char_value): Convert the tree and + actual arg expressions for scalar characters passed by-value to + bind(c) routines. + (gfc_conv_function_call): Call gfc_conv_scalar_char_value. + * trans.h: Add prototype for gfc_conv_scalar_char_value. + * trans-decl.c (generate_local_decl): Convert by-value character + dummy args of bind(c) procedures using + gfc_conv_scalar_char_value. + +2007-08-06 Francois-Xavier Coudert + + PR fortran/30947 + * iresolve.c (gfc_resolve_alarm_sub): Suffix the subroutine name + with the kind of the STATUS argument. + +2007-08-06 Francois-Xavier Coudert + + PR fortran/30948 + * intrinsic.c (add_functions): Fix name of argument to CHDIR. + +2007-08-06 Francois-Xavier Coudert + + PR fortran/30933 + * iresolve.c (gfc_resolve_exit): Convert argument to default + integer kind. + +2007-08-06 Daniel Franke + + * resolve.c (derived_pointer): Removed, replaced callers by access + to appropiate attribute bit. + (derived_inaccessable): Shortcut recursion depth. + (resolve_fl_namelist): Fixed checks for private components in namelists. + +2007-08-06 Francois-Xavier Coudert + + PR fortran/29828 + * trans.h (gfor_fndecl_string_minmax): New prototype. + * trans-decl.c (gfor_fndecl_string_minmax): New variable. + (gfc_build_intrinsic_function_decls): Create gfor_fndecl_string_minmax. + * check.c (gfc_check_min_max): Allow for character arguments. + * trans-intrinsic.c (gfc_conv_intrinsic_minmax_char): New function. + (gfc_conv_intrinsic_function): Add special case for MIN and MAX + intrinsics with character arguments. + * simplify.c (simplify_min_max): Add simplification for character + arguments. + +2007-08-06 Francois-Xavier Coudert + + PR fortran/31612 + * invoke.texi: Adjust documentation for option -fsyntax-only. + +2007-08-05 Francois-Xavier Coudert + Tobias Burnus + + PR fortran/32979 + * intrinsic.h (gfc_check_isnan): Add prototype. + * gfortran.h (gfc_isym_id): Add GFC_ISYM_ISNAN. + * intrinsic.c (add_functions): Add ISNAN intrinsic. + * check.c (gfc_check_isnan): New function. + * trans-intrinsic.c (gfc_conv_intrinsic_isnan): New function. + (gfc_conv_intrinsic_function): Call gfc_conv_intrinsic_isnan + to translate ISNAN. + * intrinsic.texi: Document ISNAN. + +2007-08-04 Paul Thomas + + PR fortran/31214 + * symbol.c (get_unique_symtree): Moved from module.c. + * module.c (get_unique_symtree): Moved to symbol.c. + * decl.c (get_proc_name): Transfer the typespec from the local + symbol to the module symbol, in the case that an entry is also + a module procedure. Ensure the local symbol is cleaned up by + pointing to it with a unique symtree. + + * dump_parse_tree (gfc_show_code_node): Add EXEC_ASSIGN_CALL. + +2008-08-04 Steven G. Kargl + + PR fortran/32969 + * iresolve.c (gfc_resolve_rrspacing): Convert argument(s) to + expected KIND. + (gfc_resolve_scale): Ditto. + (gfc_resolve_set_exponent): Ditto. + (gfc_resolve_spacing): Ditto. + + PR fortran/32968 + * trans-intrinsic.c (gfc_conv_intrinsic_si_kind, + gfc_conv_intrinsic_sr_kind): Convert the argument(s) to the + expected KIND, and fold the result to the expected KIND. + +2007-08-03 Francois-Xavier Coudert + + PR fortran/31202 + * f95-lang.c (gfc_init_builtin_functions): Defin builtins for + lround{f,,l} and llround{f,,l}. + * trans-intrinsic.c (build_fix_expr): Generate calls to the + {l,}round{f,,l} functions. + +2007-08-01 Thomas Koenig + + PR libfortran/32954 + * intrinsic.c (resolve_mask_arg): New function. + (gfc_resolve_maxloc): Use resolve_mask_arg for mask resolution. + (gfc_resolve_maxval): Likewise. + (gfc_resolve_minloc): Likewise. + (gfc_resolve_minval): Likewise. + (gfc_resolve_pack): Likewise. + (gfc_resolve_product): Likewise. + (gfc_resolve_sum): Likewise. + (gfc_resolve_unpack): Likewise. + +2007-08-01 Tobias Burnus + + PR fortran/32936 + * match.c (gfc_match_allocate): Better check that STAT is + a variable. + + * check.c (gfc_check_allocated): Reorder checks to improve + error message. + +2007-08-01 Nick Clifton + + * arith.c: Change copyright header to refer to version 3 of the + GNU General Public License and to point readers at the COPYING3 + file and the FSF's license web page. + * openmp.c, interface.c, intrinsic.c, trans-array.c, trans-expr.c, + symbol.c, iso-fortran-env.def, intrinsic.h, decl.c, trans-array.h, + matchexp.c, dump-parse-tree.c, trans-common.c, array.c, + Make-lang.in, trans-openmp.c, gfortran.h, error.c, + iso-c-binding.def, lang.opt, data.c, trans-const.c, trans-stmt.c, + expr.c, trans-const.h, trans-stmt.h, module.c, trans.c, scanner.c, + trans-types.c, trans.h, gfortranspec.c, trans-types.h, + lang-specs.h, io.c, bbt.c, resolve.c, f95-lang.c, st.c, + iresolve.c, match.c, trans-decl.c, trans-io.c, target-memory.c, + match.h, target-memory.h, parse.c, arith.h, check.c, dependency.c, + parse.h, types.def, convert.c, dependency.h, primary.c, + trans-intrinsic.c, options.c, misc.c, simplify.c: Likewise. + +2007-08-01 Daniel Franke + + * trans-decl.c (generate_local_decl): Emit warning on unused parameter + on "-Wall -Wextra" or "-Wunused-parameter" but not on "-Wall", changed + messages that start with lower case to upper case. + * invoke.texi (-Wparameter-unused): Document differences between gcc + and gfortran regarding this option. + +2007-08-01 Daniel Franke + + PR fortran/32945 + * expr.c (check_specification_function): Skip check if no symtree + is available. + +2007-08-01 Paul Thomas + + PR fortran/31609 + * resolve.c (resolve_entries): Entries declared to be module + procedures must point to the function namespace. + +2007-07-31 Francois-Xavier Coudert + + PR fortran/32938 + * trans-stmt.c (gfc_trans_return): Convert to correct type. + +2007-07-31 Steven G. Kargl + + PR fortran/32942 + * trans-intrinsic.c (gfc_conv_intrinsic_exponent): Convert to correct + type. + +2007-07-29 Jerry DeLisle + + * invoke.texi: Document -fsign-zero flag. + +2007-07-29 Paul Thomas + + PR fortran/31211 + * trans-expr.c (gfc_conv_expr_reference): Add block for case of + scalar pointer functions so that NULL result is correctly + handled. + + PR fortran/32682 + * trans-array.c (gfc_trans_array_constructor): On detecting a + multi-dimensional parameter array, set the loop limits. + +2007-07-29 Daniel Franke + + PR fortran/32906 + * resolve.c (resolve_fl_parameter): Check for constant shape arrays, + adjusted error message. + +2007-07-29 Daniel Franke + + * invoke.texi: Removed -w from option summary. + +2007-07-29 Daniel Franke + + PR fortran/32879 + * intrinsic.texi (IRAND, RAND, RANDOM_NUMBER): Document algorithm + used for random number generator. + +2007-07-28 Kazu Hirata + + * gfortran.h, interface.c, resolve.c, symbol.c: Fix comment + typos. + * intrinsic.texi, invoke.texi: Fix typos. + +2007-07-28 Jerry DeLisle + + PR fortran/31609 + * resolve.c (generic_sym): Check for a same symbol and if so, return to + avoid infinite recursion. + +2007-07-28 Daniel Franke + + PR fortran/31818 + PR fortran/32876 + PR fortran/32905 + * gfortran.h (symbol_attribute): Added bits for pointer_comp, + private_comp. + * parse.c (parse_derived): Set pointer_comp/private_comp bits if + the derived type ultimately contains pointer components or private + components. + * module.c (ab_attribute): New values AB_POINTER_COMP, AB_PRIVATE_COMP. + (attr_bits): Added names for new ab_attributes. + (mio_symbol_attribute): Save/restore new attribute bits in modules. + * match.c (gfc_match_namelist): Removed check for namelist objects + of assumed shape. + * resolve.c (resolve_fl_namelist): Added check for pointer or + private components in nested types. Added check for namelist objects + of assumed shape. + +2007-07-28 Paul Thomas + + PR fortran/32880 + * trans-expr.c (gfc_trans_scalar_assign): Revert to fixed order + for lse and rse pre expressions, for derived types with + allocatable components. Instead, assign the lhs to a temporary + and deallocate after the assignment. + +2007-07-28 Janne Blomqvist + + PR fortran/32909 + * trans-stmt.c (gfc_trans_character_select): Replace occurrences + of gfc_c_int_type_node with integer_type_node. + * trans-decl.c (gfc_build_intrinsic_function_decls): Likewise. + (gfc_build_builtin_function_decls): Likewise. + (gfc_generate_function_code): Likewise. + * trans-io.c (gfc_build_io_library_fndecls): Likewise. + +2007-07-27 Janne Blomqvist + + * trans-decl.c (gfc_build_builtin_function_decls): Use existing + gfc_array_index_type rather than creating another typenode for + gfc_index_integer_kind. + +2007-07-27 Janne Blomqvist + + * trans-io.c (gfc_build_io_library_fndecls): Change to use + gfc_array_index_type for array descriptor triplets instead of + gfc_int4_type_node. + +2007-07-26 Steven G. Kargl + + PR fortran/32899 + * resolve.c (resolve_operator): Add INTRINSIC_EQ_OS comparison. + +2007-07-27 Jerry DeLisle + Daniel Franke + + PR fortran/32760 + * primary.c (match_variable): Do not call gfc_add_flavor if symbol has + attribute of ACCESS_PUBLIC or ACCESS_PRIVATE already marked. + +2007-07-27 Francois-Xavier Coudert + + PR fortran/32035 + * trans-stmt.c (gfc_trans_character_select): Replace the + mechanism with labels by a SWITCH_EXPR. + * trans-decl.c (gfc_build_builtin_function_decls): Change + return type for select_string. + +2007-07-27 Paul Thomas + + PR fortran/32903 + * trans-decl.c (gfc_trans_deferred_vars): Set intent(out) + derived types as referenced, if they have the the default + initializer set. + +2007-07-25 Kaveh R. Ghazi + + * gfortran.h (generate_isocbinding_symbol): Constify. + * symbol.c (gen_special_c_interop_ptr, gen_cptr_param, + generate_isocbinding_symbol): Likewise. + +2007-07-24 Paul Thomas + + PR fortran/31205 + PR fortran/32842 + * trans-expr.c (gfc_conv_function_call): Remove the default + initialization of intent(out) derived types. + * symbol.c (gfc_lval_expr_from_sym): New function. + * matchexp.c (gfc_get_parentheses): Return argument, if it is + character and posseses a ref. + * gfortran.h : Add prototype for gfc_lval_expr_from_sym. + * resolve.c (has_default_initializer): Move higher up in file. + (resolve_code): On detecting an interface assignment, check + if the rhs and the lhs are the same symbol. If this is so, + enclose the rhs in parenetheses to generate a temporary and + prevent any possible aliasing. + (apply_default_init): Remove code making the lval and call + gfc_lval_expr_from_sym instead. + (resolve_operator): Give a parentheses expression a type- + spec if it has no type. + * trans-decl.c (gfc_trans_deferred_vars): Apply the a default + initializer, if any, to an intent(out) derived type, using + gfc_lval_expr_from_sym and gfc_trans_assignment. Check if + the dummy is present. + +2007-07-24 Daniel Franke + + PR fortran/32867 + * expr.c (check_init_expr): Simplify matched functions. + +2007-07-24 Daniel Franke + + PR fortran/32778 + * intrinsic.c (add_sym): Do not exclude any symbols, even if not part + of the selected standard. + (make generic): Likewise. + (make alias): Likewise, set standard the alias belongs to. + (add_subroutines): Call make_noreturn unconditionally. + (check_intrinsic_standard): Change return value to try. + (gfc_intrinsic_func_interface): Check return value of above function. + (gfc_intrinsic_sub_interface): Likewise. + +2007-07-24 Thomas Koenig + + PR fortran/30814 + * trans-decl.c (generate_function_code): Add argument + for flag_bounds_check to the array for set_options. + * invoke.texi (-fbounds-check): Document new libarary run-time + behaviour. + +2007-07-23 Daniel Franke + + PR fortran/25104 + PR fortran/31639 + * expr.c (check_transformational): Reject valid transformational + intrinsics to avoid ICE. + (check_inquiry): Report error for assumed character lengths for + all supported standards. + (check_init_expr): Whitespace fix. + +2007-07-23 Christopher D. Rickett + + PR fortran/32797 + PR fortran/32800 + * decl.c (verify_bind_c_sym): Use the result symbol for functions + with a result clause. Warn if implicitly typed. Verify the type + and rank of the SHAPE argument, if given. + * resolve.c (gfc_iso_c_sub_interface): Use gfc_procedure_use to + check the actual args against the formal, sorting them if + necessary. + * symbol.c (gen_shape_param): Initialize type of SHAPE param to + BT_VOID. + +2007-07-23 Christopher D. Rickett + + PR fortran/32732 + * trans-decl.c (generate_local_decl): Convert the TREE_TYPE for by + value character dummy args of BIND(C) procedures. + * trans-expr.c (gfc_conv_variable): Do not build address + expression for BT_CHARACTER dummy args. + +2007-07-23 Christopher D. Rickett + Tobias Burnus + + PR fortran/32600 + * trans-expr.c (gfc_conv_function_call): Handle c_funloc. + * trans-types.c: Add pfunc_type_node. + (gfc_init_types,gfc_typenode_for_spec): Use it. + * resolve.c (gfc_iso_c_func_interface): Fix whitespace and + improve error message. + +2007-07-22 Daniel Franke + + PR fortran/32710 + * parse.c (gfc_fixup_sibling_symbols): No replacement of symbols if + the current is a namelist. + +2007-07-22 Daniel Franke + + PR fortran/29962 + PR fortran/31253 + PR fortran/31265 + PR fortran/31639 + * gfortran.h (gfc_intrinsic_sym): Changed members elemental, pure, + generic, specific, actual_ok, noreturn into bits of a bitfield, + added bits for inquiry, transformational, conversion. + * check.c (non_init_transformational): Removed, removed all callers. + * intrinsic.c (enum class): New. + (add_sym*): Replaced argument elemetal by enum class. Changed all + callers. + (add_functions): Assign appropriate classes to intrinsic functions. + (add_subroutines): Assign appropriate classes to intrinsic subroutines. + (add_conv): Set conversion attribute. + (gfc_init_expr_extensions): Removed, removed all callers. + (gfc_intrinsic_func_interface): Reimplemented check for non-standard + initializatione expressions. + * expr.c (check_specification_function): New. + (gfc_is_constant_expr): Added check for specification functions. + (check_init_expr_arguments): New. + (check_inquiry): Changed return value to MATCH, added checks for + inquiry functions defined by F2003. + (check_transformational): New. + (check_null): New. + (check_elemental): New. + (check_conversion): New. + (check_init_expr): Call new check functions, add more specific error + messages. + +2007-07-21 Christopher D. Rickett + + PR fortran/32627 + * resolve.c (set_name_and_label): Set kind number for character + version of c_f_pointer. + (gfc_iso_c_sub_interface): Set the kind of the SHAPE formal arg to + that of the actual SHAPE arg. + * symbol.c (gen_shape_param): Initialize kind for SHAPE arg. + +2007-07-21 Christopher D. Rickett + + PR fortran/32801 + * symbol.c (generate_isocbinding_symbol): Remove unnecessary + conditional. + + PR fortran/32804 + * resolve.c (gfc_iso_c_func_interface): Reject assumed-shape and + deferred-shape arrays as args to C_LOC. Fix bug in testing + character args to C_LOC. + +2007-07-21 Lee Millward + + PR fortran/32823 + * trans-intrinsic.c (gfc_conv_intrinsic_int): Evaluate all + arguments passed, not just the first one. Adjust code to + refer to "args[0]" instead of "arg" as a result. + +2007-07-19 Christopher D. Rickett + + PR fortran/32600 + * trans-expr.c (gfc_conv_function_call): Inline C_LOC. + +2007-07-18 Christopher D. Rickett + + PR fortran/32801 + * symbol.c (generate_isocbinding_symbol): Fix bug where + ISOCBINDING_FUNPTR was generated for C_LOC instead of the needed + ISOCBINDING_PTR. + +2007-07-17 Janus Weil + + PR fortran/32535 + * resolve.c (resolve_fl_namelist): Check for namelist private + components in contained subprograms. + +2007-07-17 Paul Thomas + + PR fortran/31320 + PR fortran/32665 + * trans-expr.c (gfc_trans_subcomponent_assign): Ensure that + renormalization unity base is done independently of existing + lbound value. + (gfc_trans_scalar_assign): If rhs is not a variable, put + lse->pre after rse->pre to ensure that de-allocation of lhs + occurs after evaluation of rhs. + +2007-07-16 Lee Millward + + PR fortran/32222 + PR fortran/32238 + PR fortran/32242 + * trans-intrinsic.c (gfc_conv_intrinsic_function_args): Adjust + to operate on a stack allocated array for the intrinsic arguments + instead of creating a TREE_LIST. Add two new parameters for the + array and the number of elements. Update all callers to allocate + an array of the correct length to pass in. Update comment. + (gfc_intrinsic_argument_list_length): New function. + (gfc_conv_intrinsic_conversion): Call it. + (gfc_conv_intrinsic_mnimax): Likewise. + (gfc_conv_intrinsic_merge): Likewise. + (gfc_conv_intrinsic_lib_function): Call it. Use new CALL_EXPR + constructors. + (gfc_conv_intrinsic_cmplx): Likewise. + (gfc_conv_intrinsic_ctime): Likewise. + (gfc_covn_intrinsic_fdate): Likewise. + (gfc_conv_intrinsic_ttynam): Likewise. + (gfc_conv_intrinsic_ishftc): Likewise. + (gfc_conv_intrinsic_index): Likewise. + (gfc_conv_intrinsic_scan): Likewise. + (gfc_conv_intrinsic_verify): Likewise. + (gfc_conv_intrinsic_trim): Likewise. + (gfc_conv_intrinsic_aint): Use new CALL_EXPR constructors. + (gfc_conv_intrinsic_exponent): Likewise. + (gfc_conv_intrinsic_bound): Likewise. + (gfc_conv_intrinsic_abs): Likewise. + (gfc_conv_intrinsic_mod): Likewise. + (gfc_conv_intrinsic_sign): Likewise. + (gfc_conv_intrinsic_len): Likewise. + (gfc_conv_intrinsic_adjust): Likewise. + (gfc_conv_intrinsic_si_kind): Likewise. + +2007-07-16 Janne Blomqvist + + PR fortran/32748 + * trans-decl.c (gfc_build_builtin_function_decls): Remove + DECL_IS_MALLOC attribute from internal_realloc, thus reverting + part of my 2007-07-03 patch. + +2007-07-15 Jerry DeLisle + Francois-Xavier Coudert + + PR fortran/32611 + * gfortran.h (gfc_option_t): Add flag_sign_zero field. + * lang.opt (-fsign-zero): New option. + * trans.h: Rename gfor_fndecl_set_std into gfor_fndecl_set_options. + * trans-decl.c (gfc_build_builtin_function_decls): Build the function + declaration to pass an array containing the options to be used by the + runtime library. (gfc_generate_function_code): Build an array that + contains option values to be passed to the runtime library and the call + to the function. + * options.c (gfc_init_options): Initialize the flag_sign_zero field. + (gfc_handle_option): Handle the -fsign-zero option. + +2007-07-15 Francois-Xavier Coudert + + PR fortran/32036 + * trans-array.c (gfc_conv_array_ref): Only evaluate index once. + +2007-07-15 Francois-Xavier Coudert + + PR fortran/32357 + * iresolve.c (gfc_resolve_mvbits): Convert FROMPOS, LEN and TOPOS + to C int. + +2007-07-14 Thomas Koenig + + PR libfortran/32731 + * iresolve.c(gfc_resolve_pack): A scalar mask has + to be kind=4, an array mask with kind<4 is converted + to gfc_default_logical_kind automatically. + (gfc_resolve_unpack): Convert mask to gfc_default_lotical_kind + if it has a kind<4. + +2007-07-14 Paul Thomas + + PR fortran/32724 + * parse.c (parse_spec): Emit error on unexpected statement + function. + +2007-07-13 Daniel Franke + + * invoke.texi: Unified upper- and lower-case in menus. + (-w, -W): Removed, documented by gcc. + * intrinsic.texi: Unified Class-section entries, added + subroutine/function warning where appropiate. + +2007-07-12 Daniel Franke + + PR fortran/31639 + * decl.c (gfc_match_suffix): Removed surplus general error that hides + a more specific message. + * resolve.c (resolve_fl_variable): Reject illegal initializiers only + if not already done. + (resolve_fl_procedure): Added check for initializers of functions. + +2007-07-12 Daniel Franke + + PR fortran/32704 + * invoke.texi (-static-libgfortran): Document new option. + +2007-07-12 Paul Thomas + + PR fortran/32634 + PR fortran/32727 + * module.c (write_generic): Restore patch of 2007-07-10 and use + symbol name if there are no use names. + +2007-07-12 Christopher D. Rickett + + PR fortran/32599 + * decl.c (verify_c_interop_param): Require character string dummy + args to BIND(C) procedures to have length 1. + * resolve.c (resolve_fl_procedure): Modify parameter checking for + BIND(C) procedures. + + PR fortran/32601 + * resolve.c (gfc_iso_c_func_interface): Verify that a valid + expression is given as an argument to C_LOC and C_ASSOCIATED. + * trans-io.c (transfer_expr): Add argument for code block. Add + standards check to determine if an error message should be + reported for printing C_PTR or C_FUNPTR. + (transfer_array_component): Update arguments to transfer_expr. + (gfc_trans_transfer): Ditto. + + * symbol.c (gen_cptr_param): Fix whitespace. + +2007-07-12 Jakub Jelinek + + PR fortran/32550 + * trans.h (GFC_POINTER_TYPE_P): Define. + * trans-types.c (gfc_sym_type): Set it for types on attr->sym.pointer. + * trans-openmp.c (gfc_omp_privatize_by_reference): Return false + if GFC_POINTER_TYPE_P is set on the type. + +2007-07-12 Richard Guenther + + * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Convert + arguments to gfc_charlen_type_node. + * trans-io.c (gfc_convert_array_to_string): Convert type + size to gfc_array_index_type. + +2007-07-12 Daniel Franke + + PR fortran/32634 + PR fortran/32727 + * module.c: Reverted Paul's patch from 2007-07-10. + +2007-07-11 Richard Guenther + + * trans-array.c (gfc_conv_array_parameter): Use correct + types for comparison. + * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Use + correct types for POINTER_PLUS_EXPR. + * trans-stmt.c (gfc_trans_forall_loop): Use correct type + for integer one constant. + +2007-07-10 Paul Thomas + + PR fortran/32157 + * resolve.c (is_external_proc): New function. Adds test that + the symbol is not an intrinsic procedure. + * (resolve_function, resolve_call): Replace logical statements + with call to is_external_proc. + + PR fortran/32689 + * simplify.c (gfc_simplify_transfer): If mold has rank, the + result is an array. + + PR fortran/32634 + * module.c (write_generic): Write the local name of the + interface. + +2007-07-09 Francois-Xavier Coudert + + PR fortran/29459 + * trans-array.c (gfc_trans_array_constructor): Mark offset field + with TREE_NO_WARNING. + * trans-decl.c (gfc_build_qualified_array): Mark lbound, ubound, + stride and size variables with TREE_NO_WARNING. + +2007-07-09 Steven G. Kargl + + * trans-decl.c (set_tree_decl_type_code): Remove function. + (generate_local_decl): Remove reference to set_tree_decl_type_code. + +2007-07-09 Daniel Franke + + PR fortran/31129 + * trans-decl.c (generate_local_decl) Emit a warning if an unused + parameter is found. + +2007-07-08 Daniel Franke + + PR fortran/29876 + * module.c (gfc_match_use): Do not set an non-existant + intrinsic operator if a user-defined operator is found. + +2007-07-08 Daniel Franke + + PR fortran/24784 + PR fortran/28004 + * trans-decl.c (generate_local_decl): Adjusted warning on unused + dummy arguments, tell middle-end not to emit additional warnings. + +2007-07-08 Daniel Franke + Tobias Schlüter + + PR fortran/17711 + * gfortran.h (gfc_intrinsic_op): Added INTRINSIC_EQ_OS, + INTRINSIC_NE_OS, INTRINSIC_GT_OS, INTRINSIC_GE_OS, + INTRINSIC_LT_OS and INTRINSIC_LE_OS. + * arith.c (eval_intrinsic, eval_type_intrinsic0): Likewise. + * arith.h (gfc_eq, gfc_ne, gfc_gt, gfc_ge, gfc_lt, gfc_le): + Added gfc_intrinsic_op as third argument type. + * dump-parse-tree.c (gfc_show_expr): Account for new enum values. + * expr.c (simplify_intrinsic_op, check_intrinsic_op): Likewise. + * interface.c (check_operator_interface): Likewise. + (gfc_check_interfaces): Added cross-checks for FORTRAN 77 and + Fortran 90 style operators using new enum values. + (gfc_extend_expr): Likewise. + (gfc_add_interface): Likewise. + * match.c (intrinsic_operators): Distinguish FORTRAN 77 style + operators from Fortran 90 style operators using new enum values. + * matchexp.c (match_level_4): Account for new enum values. + * module.c (mio_expr): Likewise. + * resolve.c (resolve_operator): Deal with new enum values, fix + inconsistent error messages. + * trans-expr.c (gfc_conv_expr_op): Account for new enum values. + +2007-07-08 Tobias Burnus + + PR fortran/32669 + * interface.c (get_expr_storage_size): Properly obtain lower bound. + (compare_actual_formal): Add space before parenthesis. + +2007-07-08 Daniel Franke + + PR fortran/25094 + * resolve.c (resolve_fl_procedure): Added check for PRIVATE types + in PUBLIC interfaces. + +2007-07-07 Jerry DeLisle + + PR fortran/32644 + * decl.c (match_attr_spec): Don't return MATCH_ERROR if comma found and + gfc_match_bind_c does not return MATCH_YES. + +2007-07-07 Kazu Hirata + + * decl.c, gfortran.h, interface.c, module.c, resolve.c, + trans-array.c, trans-decl.c: Fix comment typos. Follow + spelling conventions. + * intrinsic.texi: Fix typos. Follow spelling conventions. + +2007-05-06 Daniel Franke + + PR fortran/32633 + * symbol.c (save_status): New. + * gfortran.h (save_status): Added external declaration. + (check_conflict): Check for conflicting explicite SAVE statements + only. + (gen_special_c_interop_ptr): Use SAVE_EXPLICIT constant. + * module.c (ab_attribute, attr_bits): Removed enumerator value + AB_SAVE for save attribute. + (mio_symbol_attribute): Import/export the full SAVE status, + removed usage of AB_SAVE. + * dump-parse-tree.c (gfc_show_attr): Dump full SAVE status. + * decl.c (add_init_expr_to_sym): Set SAVE_IMPLICIT only if not + already explicit. + +2007-07-05 Daniel Franke + Tobias Burnus + + PR fortran/32359 + * gfortran.h (symbol_attribute): Change save attribute into an enum. + * decl.c (add_init_expr_to_sym): Set it to SAVE_IMPLICIT. + * symbol.c (gfc_add_save): Check for SAVE_EXPLICIT. + * resolve.c (resolve_fl_variable): Check for SAVE_EXPLICIT. + (resolve_symbol): Allow OMP threadprivate with + initialization SAVEd and save_all variable. + * trans-decl.c (gfc_finish_var_decl): Remove obsolete sym->value check. + +2007-07-05 Paul Thomas + + PR fortran/32526 + * match.c (gfc_match_call): Check, in all cases, that a symbol + is neither generic nor a subroutine before trying to add it as + a subroutine. + + PR fortran/32613 + * match.c (gfc_match_do): Reset the implied_index attribute. + +2007-07-04 Francois-Xavier Coudert + + PR fortran/31198 + * trans-intrinsic.c (trans-intrinsic.c): Handle optional + arguments correctly for MIN and MAX intrinsics. + +2007-07-03 Jerry DeLisle + + PR fortran/32545 + * io.c (check_format): Always call gfc_error for errors. + (check_format_string): Change type of this function to try and + return the result of check_format. + (check_io_constraints): Return MATCH_ERROR if check_format_string + returns FAILURE. + +2007-07-03 Jerry DeLisle + + PR fortran/32612 + * decl.c (get_proc_name): Include attr->mod_proc in check for error. + +2007-07-03 Jerry DeLisle + + PR fortran/32432 + * gfortran.h: Change type of gfc_assign_data_value from void to try. + * data.c (gfc_assign_data_value): Return FAILURE if error found. + * resolve.c (check_data_variable): If gfc_assign_data_value returns + failure, break out of loop and return failure. + +2007-07-03 Christopher D. Rickett + + PR fortran/32579 + * symbol.c (gen_cptr_param): Generate C_PTR and C_FUNPTR if necessary. + (build_formal_args): Pass intrinsic module symbol id to + gen_cptr_param. + +2007-07-03 Tobias Burnus + + PR fortran/25062 + * resolve.c (resolve_common_blocks): New check function. + (resolve_types): Use it. + +2007-07-03 Tobias Burnus + + PR fortran/30940 + * interface.c (get_sym_storage_size): New function. + (get_sym_storage_size): New function. + (compare_actual_formal): Enhance sequence association + support and improve checking. + +2007-07-03 Janne Blomqvist + + * trans-decl.c (gfc_build_builtin_function_decls): Mark + internal_realloc as a malloc function. + +2007-07-03 Tobias Burnus + + PR fortran/20888 + * resolve.c (resolve_operator): Check for NULL as operand. + +2007-07-02 Tobias Burnus + + * gfortran.texi (Fortran 2003): Add ISO Bind C. + * intrinsic.texi (C_ASSOCIATED,C_F_POINTER,C_F_PROCPOINTER, + C_FUNLOC,C_LOC): Document new ISO Bind C intrinsics. + +2007-07-01 Christopher D. Rickett + + * interface.c (gfc_compare_derived_types): Special case for comparing + derived types across namespaces. + (gfc_compare_types): Deal with BT_VOID. + (compare_parameter): Use BT_VOID to accept ISO C Binding pointers. + * trans-expr.c (gfc_conv_function_call): Remove setting parm_kind + to SCALAR + (gfc_conv_initializer): Deal with ISO C Binding NULL_PTR and + NULL_FUNPTR. + (gfc_conv_expr): Convert expressions for ISO C Binding derived types. + * symbol.c (gfc_set_default_type): BIND(C) variables should not be + Implicitly declared. + (check_conflict): Add BIND(C) and check for conflicts. + (gfc_add_explicit_interface): Whitespace. + (gfc_add_is_bind_c): New function. + (gfc_copy_attr): Use it. + (gfc_new_symbol): Initialize ISO C Binding objects. + (get_iso_c_binding_dt): New function. + (verify_bind_c_derived_type): Ditto. + (gen_special_c_interop_ptr): Ditto. + (add_formal_arg): Ditto. + (gen_cptr_param): Ditto. + (gen_fptr_param): Ditto. + (gen_shape_param): Ditto. + (add_proc_interface): Ditto. + (build_formal_args): Ditto. + (generate_isocbinding_symbol): Ditto. + (get_iso_c_sym): Ditto. + * decl.c (num_idents_on_line, has_name_equals): New variables. + (verify_c_interop_param): New function. + (build_sym): Finish binding labels and deal with COMMON blocks. + (add_init_expr_to_sym): Check if the initialized expression is + an iso_c_binding named constants + (variable_decl): Set ISO C Binding type_spec components. + (gfc_match_kind_spec): Check match for C interoperable kind. + (match_char_spec): Fix comment. Chnage gfc_match_small_int + to gfc_match_small_int_expr. Check for C interoperable kind. + (match_type_spec): Clear the current binding label. + (match_attr_spec): Add DECL_IS_BIND_C. If BIND(C) is found, use it + to set attributes. + (set_binding_label): New function. + (set_com_block_bind_c): Ditto. + (verify_c_interop): Ditto. + (verify_com_block_vars_c_interop): Ditto. + (verify_bind_c_sym): Ditto. + (set_verify_bind_c_sym): Ditto. + (set_verify_bind_c_com_block): Ditto. + (get_bind_c_idents): Ditto. + (gfc_match_bind_c_stmt): Ditto. + (gfc_match_data_decl): Use num_idents_on_line. + (match_result): Deal with right paren in BIND(C). + (gfc_match_suffix): New function. + (gfc_match_function_decl): Use it. Code is re-arranged to deal with + ISO C Binding result clauses. + (gfc_match_subroutine): Deal with BIND(C). + (gfc_match_bind_c): New function. + (gfc_get_type_attr_spec): New function. Code is re-arranged in and + taken from gfc_match_derived_decl. + (gfc_match_derived_decl): Add check for BIND(C). + * trans-common.c: Forward declare gfc_get_common. + (gfc_sym_mangled_common_id): Change arg from 'const char *name' to + 'gfc_common_head *com'. Check for ISO C Binding of the common block. + (build_common_decl): 'com->name' to 'com in SET_DECL_ASSEMBLER_NAME. + * gfortran.h: Add GFC_MAX_BINDING_LABEL_LEN + (bt): Add BT_VOID + (sym_flavor): Add FL_VOID. + (iso_fortran_env_symbol, iso_c_binding_symbol, intmod_id): New enum + (CInteropKind_t): New struct. + (c_interop_kinds_table): Use it. Declare an array of structs. + (symbol_attribute): Add is_bind_c, is_c_interop, and is_iso_c + bitfields. + (gfc_typespec): Add is_c_interop; is_iso_c, and f90_type members. + (gfc_symbol): Add from_intmod, intmod_sym_id, binding_label, and + common_block members. + (gfc_common_head): Add binding_label and is_bind_c members. + (gfc_gsymbol): Add sym_name, mod_name, and binding_label members. + Add prototypes for get_c_kind, gfc_validate_c_kind, + gfc_check_any_c_kind, gfc_add_is_bind_c, gfc_add_value, + verify_c_interop, verify_c_interop_param, verify_bind_c_sym, + verify_bind_c_derived_type, verify_com_block_vars_c_interop, + generate_isocbinding_symbol, get_iso_c_sym, gfc_iso_c_sub_interface + * iso-c-binding.def: New file. This file contains the definitions + of the types provided by the Fortran 2003 ISO_C_BINDING intrinsic + module. + * trans-const.c (gfc_conv_constant_to_tree): Deal with C_NULL_PTR + or C_NULL_FUNPTR expressions. + * expr.c (gfc_copy_expr): Add BT_VOID case. For BT_CHARACTER, the + ISO C Binding requires a minimum string length of 1 for '\0'. + * module.c (intmod_sym): New struct. + (pointer_info): Add binding_label member. + (write_atom): Set len to 0 for NULL pointers. Check for NULL p and *p. + (ab_attribute): Add AB_IS_BIND_C, AB_IS_C_INTEROP and AB_IS_ISO_C. + (attr_bits): Add "IS_BIND_C", "IS_C_INTEROP", and "IS_ISO_C". + (mio_symbol_attribute): Deal with ISO C Binding attributes. + (bt_types): Add "VOID". + (mio_typespec): Deal with ISO C Binding components. + (mio_namespace_ref): Add intmod variable. + (mio_symbol): Check for symbols from an intrinsic module. + (load_commons): Check for BIND(C) common block. + (read_module): Read binding_label and use it. + (write_common): Add label. Write BIND(C) info. + (write_blank_common): Blank commons are not BIND(C). Explicitly + set is_bind_c=0. + (write_symbol): Deal with binding_label. + (sort_iso_c_rename_list): New function. + (import_iso_c_binding_module): Ditto. + (create_int_parameter): Add to args. + (use_iso_fortran_env_module): Adjust to deal with iso_c_binding + intrinsic module. + * trans-types.c (c_interop_kinds_table): new array of structs. + (gfc_validate_c_kind): New function. + (gfc_check_any_c_kind): Ditto. + (get_real_kind_from_node): Ditto. + (get_int_kind_from_node): Ditto. + (get_int_kind_from_width): Ditto. + (get_int_kind_from_minimal_width): Ditto. + (init_c_interop_kinds): Ditto. + (gfc_init_kinds): call init_c_interop_kinds. + (gfc_typenode_for_spec): Adjust for BT_VOID and ISO C Binding pointers. + Adjust handling of BT_DERIVED. + (gfc_sym_type): Whitespace. + (gfc_get_derived_type): Account for iso_c_binding derived types + * resolve.c (is_scalar_expr_ptr): New function. + (gfc_iso_c_func_interface): Ditto. + (resolve_function): Use gfc_iso_c_func_interface. + (set_name_and_label): New function. + (gfc_iso_c_sub_interface): Ditto. + (resolve_specific_s0): Use gfc_iso_c_sub_interface. + (resolve_bind_c_comms): New function. + (resolve_bind_c_derived_types): Ditto. + (gfc_verify_binding_labels): Ditto. + (resolve_fl_procedure): Check for ISO C interoperability. + (resolve_symbol): Check C interoperability. + (resolve_types): Walk the namespace. Check COMMON blocks. + * trans-decl.c (gfc_sym_mangled_identifier): Prevent the mangling + of identifiers that have an assigned binding label. + (gfc_sym_mangled_function_id): Use the binding label rather than + the mangled name. + (gfc_finish_var_decl): Put variables that are BIND(C) into a common + segment of the object file, because this is what C would do. + (gfc_create_module_variable): Conver to proper types + (set_tree_decl_type_code): New function. + (generate_local_decl): Check dummy variables and derived types for + ISO C Binding attributes. + * match.c (gfc_match_small_int_expr): New function. + (gfc_match_name_C): Ditto. + (match_common_name): Deal with ISO C Binding in COMMON blocks + * trans-io.c (transfer_expr): Deal with C_NULL_PTR or C_NULL_FUNPTR + expressions + * match.h: Add prototypes for gfc_match_small_int_expr, + gfc_match_name_C, match_common_name, set_com_block_bind_c, + set_binding_label, set_verify_bind_c_sym, + set_verify_bind_c_com_block, get_bind_c_idents, + gfc_match_bind_c_stmt, gfc_match_suffix, gfc_match_bind_c, + gfc_get_type_attr_spec + * parse.c (decode_statement): Use gfc_match_bind_c_stmt + (parse_derived): Init *derived_sym = NULL, and gfc_current_block + later for valiadation. + * primary.c (got_delim): Set ISO C Binding components of ts. + (match_logical_constant): Ditto. + (match_complex_constant): Ditto. + (match_complex_constant): Ditto. + (gfc_match_rvalue): Check for existence of at least one arg for + C_LOC, C_FUNLOC, and C_ASSOCIATED. + * misc.c (gfc_clear_ts): Clear ISO C Bindoing components in ts. + (get_c_kind): New function. + +2007-07-01 Janne Blomqvist + + PR fortran/32239 + * trans-expr.c (gfc_conv_power_op): Use builtin_powi for + real**int4 powers. + * f95-lang.c (gfc_init_builtin_functions): Add builtin_powi to the + builtins table. + +2007-07-01 Janne Blomqvist + + * trans.h: Remove decls for 64-bit allocation functions. + * trans-array.c (gfc_grow_array): Always pick the standard realloc + function decl. + (gfc_array_allocate): Likewise. + * trans-decl.c: Remove trees for 64-bit allocation functions. + (gfc_build_builtin_function_decls): Don't build fndecls for 64-bit + allocations functions, use index_int_type for normal allocation + functions. + +2007-06-30 Daniel Franke + + PR fortran/20373 + * intrinsic.c (add_functions): Additional function types. + (gfc_convert_type_warn): Remove intrinsic-flag from + conversion functions. + * resolve.c (resolve_symbol): Added type checks to + explicitly defined intrinsics. + +2007-06-30 Tobias Burnus + + PR fortran/32555 + * io.c (check_format): Allow zero to precede the + P edit descriptor. + +2007-06-30 Paul Thomas + + PR fortran/32472 + * simplify.c (gfc_simplify_repeat): Add handling of character + literal for first argument. + +2007-06-29 Daniel Franke + + * resolve.c (resolve_operator): Added check whether a user + defined operator is available. + +2007-06-29 Daniel Franke + + * openmp.c (resolve_omp_clauses): Adjust error message to + better reflect the actual requirement. + +2007-06-29 Tobias Burnus + + PR fortran/32483 + * io.c (format_lex): Fix FMT_ZERO. + (check_format,check_format_string,gfc_match_format, + check_io_constraints) Additional checking for READ. + +2007-06-28 Francois-Xavier Coudert + + PR other/31400 + * lang.opt (static-libgfortran): New option. + * gfortranspec.c (ADD_ARG_LIBGFORTRAN): New macro. + (Option): Add OPTION_static and OPTION_static_libgfortran. + (lookup_option): Handle the new -static-libgfortran option. + (lang_specific_driver): Check whether -static is passed. + Handle the new -static-libgfortran option. + * options.c (gfc_handle_option): If -static-libgfortran is + passed and isn't supported on this configuration, error out. + +2007-06-27 Daniel Franke + + PR fortran/32467 + * openmp.c (resolve_omp_clauses): Emit error on allocatable + components in COPYIN, COPYPRIVATE, FIRSTPRIVATE and LASTPRIVATE + clauses. + +2007-06-25 Paul Thomas + + PR fortran/32464 + * resolve.c (check_host_association): Return if the old symbol + is use associated. Introduce retval to reduce the number of + evaluations of the first-order return value. + + PR fortran/31494 + * match.c (gfc_match_call): If a host associated symbol is not + a subroutine, build a new symtree/symbol in the current name + space. + +2007-06-24 Tobias Burnus + + PR fortran/32460 + * interface.c (gfc_compare_derived_types): Add access check. + * symbol.c (gfc_find_component): Ditto. + (gfc_set_component_attr,gfc_get_component_attr) Copy access state. + * dump-parse-tree.c (gfc_show_components): Dump access state. + * gfortran.h (struct gfc_component): Add gfc_access. + * module.c (mio_component): Add access state. + * (gfc_match_structure_constructor): Check for private access state. + +2007-06-24 Paul Thomas + + PR fortran/32298 + PR fortran/31726 + * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Calculate + the offset between the loop counter and the position as + defined. Add the offset within the loop so that the mask acts + correctly. Do not advance the location on the basis that it + is zero. + +2007-06-22 Daniel Franke + + PR fortran/31473 + * symbol.c (gfc_copy_attr): Emit errors for duplicate + EXTERNAL/INTRINSIC statements. + +2007-06-22 Jerry DeLisle + + PR fortran/32360 + * expr.c (gfc_check_assign): If the rvalue expression type is NULL_EXPR, + check to see if the lvalue has attribute pointer and data. + +2007-06-21 Jerry DeLisle + + PR fortran/31162 + * resolve.c (gfc_resolve_iterator_expr): Add check for REAL using + gfc_notify_standard. (gfc_resolve_iterator): Remove check. + (resolve_branch): Change "Obsolete" to "Deleted feature". + * io.c (resolve_tag): Ditto. + * match.c (gfc_match_pause, gfc_match_assign, gfc_match_goto): Ditto. + +2007-06-20 Jerry DeLisle + + PR fortran/32361 + * match.c (gfc_match_common): If the symbol value expression type is + NULL_EXPR, don't error if previously initialized. + +2007-06-20 Jerry DeLisle + + PR fortran/25061 + * decl.c (get_proc_name) Check symbol for generic interface + and issue an error. + +2007-06-20 Andrew Pinski + Richard Guenther + + PR fortran/32140 + * trans.c (gfc_build_addr_expr): Use the correct types. + +2007-06-19 Paul Thomas + + PR fortran/20863 + PR fortran/20882 + * resolve.c (resolve_code): Use gfc_impure_variable as a + condition for rejecting derived types with pointers, in pure + procedures. + (gfc_impure_variable): Add test for dummy arguments of pure + procedures; any for functions and INTENT_IN for subroutines. + + PR fortran/32236 + * data.c (gfc_assign_data_value): Change the ICE on an array + reference initializer not being an array into an error and + clear init to prevent a repetition of the error. + +2007-06-17 Janne Blomqvist + + * gfortran.texi: Add documentation for GFORTRAN_UNBUFFERED_n + environment variables. Fix documentation for + GFORTRAN_UNBUFFERED_ALL environment variable. + +2007-06-15 Andrew Pinski + + * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Use + POINTER_PLUS_EXPR instead of PLUS_EXPR for pointer addition. + * trans-expr.c (gfc_trans_string_copy): Create + POINTER_PLUS_EXPR instead of a PLUS_EXPR + for pointer types. + +2007-06-14 Paul Thomas + + PR fortran/32302 + * trans-common.c (build_common_decl): If resizing of common + decl is needed, update the TREE_TYPE. + +2007-06-13 Tobias Burnus + + PR fortran/32323 + * interface.c (has_vector_section): New. + (compare_actual_formal): Check for array sections with vector subscript. + +2007-06-12 Dirk Mueller + + * trans-stmt.c (gfc_trans_call): fix gcc_assert to + a comparison, not an assignment. + +2007-06-12 Paul Thomas + + * trans-common.c (create_common): Initialize 'field_init'. + +2007-06-12 Paul Thomas + + PR fortran/29786 + PR fortran/30875 + * trans-common.c (get_init_field): New function. + (create_common): Call get_init_field for overlapping + initializers in equivalence blocks. + * resolve.c (resolve_equivalence_derived, resolve_equivalence): + Remove constraints on initializers in equivalence blocks. + * target-memory.c (expr_to_char, gfc_merge_initializers): + New functions. + (encode_derived): Add the bit offset to the byte offset to get + the total offset to the field. + * target-memory.h : Add prototype for gfc_merge_initializers. + +2007-06-11 Rafael Avila de Espindola + + * trans-types.c (gfc_signed_type): Remove. + * trans-types.h (gfc_signed_type): Remove. + * f95-lang.c (LANG_HOOKS_SIGNED_TYPE): Remove. + +2007-06-08 Francois-Xavier Coudert + + * trans-intrinsic.c: Revert Lee's 2007-06-04 patch. + +2007-06-07 Steven G. Kargl + Jerry DeLisle + + PR fortran/32223 + * match.c (gfc_match_special_char): New function. Match special char. + Add handling '\0'. + * match.h: Add prototype. + * io.c (next_char): Use it. + * primary.c (next_string_char): Ditto. + +2007-06-06 Steven G. Kargl + + * decl.c: Miscellaneous whitespace fixes. + * expr.c: Likewise. + * gfortran.h: Likewise. + * interface.c : Likewise. + * io.c: Likewise. + * match.c: Likewise. + * match.h: Likewise. + * module.c: Likewise. + * parse.c: Likewise. + * resolve.c: Likewise. + * symbol.c: Likewise. + * trans-array.c: Likewise. + * trans-common.c: Likewise. + * trans-decl.c: Likewise. + * trans-intrinsic.c: Likewise. + * trans-io.c: Likewise. + * trans-stmt.c: Likewise. + * trans-types.c: Likewise. + +2007-06-05 Jerry DeLisle + + PR fortran/18923 + * parse.c (decode_statement): Don't call gfc_undo_symbols on MATCH_ERROR + for ST_FUNCTION since it is called in reject_statement. + (parse_contained): If error, loop back after reject_statement and try + again. Free the namespace if an error occured. + +2007-06-04 Lee Millward + + * trans-intrinsic.c (gfc_conv_intrinsic_function_args): Adjust + to operate on a stack allocated array for the intrinsic arguments + instead of creating a TREE_LIST. Add two new parameters for the + array and the number of elements. Update all callers to allocate + an array of the correct length to pass in. Update comment. + (gfc_intrinsic_argument_list_length): New function. + (gfc_conv_intrinsic_mnimax): Call it. + (gfc_conv_intrinsic_merge): Likewise. + (gfc_conv_intrinsic_lib_function): Call it. Use new CALL_EXPR + constructors. + (gfc_conv_intrinsic_cmplx): Likewise. + (gfc_conv_intrinsic_ctime): Likewise. + (gfc_covn_intrinsic_fdate): Likewise. + (gfc_conv_intrinsic_ttynam): Likewise. + (gfc_conv_intrinsic_ishftc): Likewise. + (gfc_conv_intrinsic_index): Likewise. + (gfc_conv_intrinsic_scan): Likewise. + (gfc_conv_intrinsic_verify): Likewise. + (gfc_conv_intrinsic_trim): Likewise. + (gfc_conv_intrinsic_aint): Use new CALL_EXPR constructors. + (gfc_conv_intrinsic_exponent): Likewise. + (gfc_conv_intrinsic_bound): Likewise. + (gfc_conv_intrinsic_abs): Likewise. + (gfc_conv_intrinsic_mod): Likewise. + (gfc_conv_intrinsic_sign): Likewise. + (gfc_conv_intrinsic_len): Likewise. + (gfc_conv_intrinsic_adjust): Likewise. + (gfc_conv_intrinsic_si_kind): Likewise. + +2007-06-04 Steve Ellcey + + * trans-array.c (gfc_conv_array_parameter): Initialize tmp. + +2007-05-31 Richard Guenther + + * trans-expr.c (gfc_conv_expr_op): Use zero constant + that matches the lse type. + (gfc_trans_string_copy): Use sizetype zero constant. + * intrinsic.c (add_functions): The sizeof intrinsic has + index type result. + * trans-types.c (gfc_get_dtype): Convert size to index + type before shifting. + * trans-array.c (gfc_trans_array_constructor_value): Use + index type for offset computation. + * trans-intrinsic.c (gfc_conv_associated): Use correct type + for zero constant. + +2007-05-31 Paul Thomas + + PR fortran/32156 + * trans-array.c (gfc_trans_array_constructor): Treat the case + where the ss expression charlen is missing. + +22007-05-31 Paul Thomas + + PR fortran/32103 + * module.c (mio_symtree_ref): If an equivalence group member + is not used, give it a hidden symbol and set the pointer_info. + (load_equiv): Only free the equivalence if none of the members + are used. + +2007-05-29 Daniel Franke + + * gfortran.h: Renamed 'enum gfc_generic_isym_id' to 'enum gfc_isym_id', + added missing GFC_ISYM_* enumerators, ordered alphabetically. + (struct gfc_intrinsic_sym): Renamed 'generic_id' to 'id'. + (gfc_find_subroutine): New prototype. + * intrinsic.c (add_sym, add_sym_*): Added argument 'id' and changed all callers. + (find_subroutine): Renamed to 'gfc_find_subroutine', removed static. + * dependency.c: Changed usage of isym->generic_id to isym->id. + * openmp.c: Likewise. + * resolve.c: Likewise. + * trans-array.c: Likewise. + * trans-expr.c: Likewise. + * trans-intrinsic.c: Likewise. + * trans-openmp.c: Likewise. + +2007-05-28 Tobias Schlüter + + * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SIZEOF. + * intrinsic.c (add_functions): Add stuff for SIZEOF intrinsic. + * intrinsic.h (gfc_check_sizeof): Add prototype of ... + * check.c (gfc_check_sizeof): .. new function. + * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): New function. + (gfc_conv_intrinsic_strcmp): Whitespace fix. + (gfc_conv_intrinsic_array_transfer): Remove double initialization, + use fold_build. where appropriate. + (gfc_conv_intrinsic_function): Add case for SIZEOF. + * intrinsic.texi: Add documentation for SIZEOF. + +2007-05-28 Brooks Moses + + * trans-array.c (gfc_conv_expr_descriptor): Edit comment. + +2007-05-28 Brooks Moses + + PR fortran/31972 + * target-memory.c (gfc_target_expr_size): Add handling + for size of BT_HOLLERITH variables. + * check.c (gfc_check_transfer): Reject BT_HOLLERITH + variables in MOLD argument of TRANSFER. + +2007-05-28 Brooks Moses + + * gfortran.h (gfc_expr): Remove from_H, add "representation" + struct. + * primary.c (match_hollerith_constant): Store the representation + of the Hollerith in representation, not in value.character. + * arith.c: Add dependency on target-memory.h. + (eval_intrinsic): Remove check for from_H. + (hollerith2representation): New function. + (gfc_hollerith2int): Determine value of the new constant. + (gfc_hollerith2real): Likewise. + (gfc_hollerith2complex): Likewise. + (gfc_hollerith2logical): Likewise. + (gfc_hollerith2character): Point both representation.string and + value.character.string at the value string. + * data.c (create_character_initializer): For BT_HOLLERITH + rvalues, get the value from the representation rather than + value.character. + * expr.c (free_expr0): Update handling of BT_HOLLERITH values + and values with representation.string. + (gfc_copy_expr): Likewise. + * intrinsic.c (do_simplify): Remove special treatement of + variables resulting from Hollerith constants. + * dump-parse-trees.c (gfc_show_expr): Update handling of + Holleriths. + * trans-const.c (gfc_conv_constant_to_tree): Replace from_H + check with check for representation.string; get Hollerith + representation from representation.string, not value.character. + * trans-expr.c (is_zero_initializer_p): Replace from_H check + with check for representation.string. + * trans-stmt.c (gfc_trans_integer_select): Use + gfc_conv_mpz_to_tree for case values, so as to avoid picking up + the memory representation if the case is given by a transfer + expression. + * target-memory.c (gfc_target_encode_expr): Use the known memory + representation rather than the value, if it exists. + (gfc_target_interpret_expr): Store the memory representation of + the interpreted expression as well as its value. + (interpret_integer): Move to gfc_interpret_integer, make + non-static. + (interpret_float): Move to gfc_interpret_float, make non-static. + (interpret_complex): Move to gfc_interpret_complex, make + non-static. + (interpret_logical): Move to gfc_interpret_logical, make + non-static. + (interpret_character): Move to gfc_interpret_character, make + non-static. + (interpret_derived): Move to gfc_interpret_derived, make + non-static. + * target-memory.h: Add prototypes for newly-exported + gfc_interpret_* functions. + +2007-05-27 Jerry DeLisle + + PR fortran/31812 + * parse.c (next_statement): Warn for truncated lines if source is free + form. + +2007-05-27 Paul Thomas + Tobias Burnus + + PR fortran/32088 + * symbol.c (gfc_check_function_type): Copy dimensions of + result variable. + * resolve.c (resolve_contained_fntype): Improve symbol output in + the error message. + +2007-05-26 Jerry DeLisle + + PR fortran/31813 + * io.c (check_format): Add warning for H specifier in format. + +2007-05-26 Tobias Burnus + + * gfortran.texi: Document the GFORTRAN_ERROR_DUMPCORE and + GFORTRAN_ERROR_BACKTRACE environment variables. + +2007-05-26 Paul Thomas + + PR fortran/31219 + * trans.h : Add no_function_call bitfield to gfc_se structure. + Add stmtblock_t argument to prototype of get_array_ctor_strlen. + * trans-array.c (get_array_ctor_all_strlen): New function. + (get_array_ctor_strlen): Add new stmtblock_t argument and call + new function for character elements that are not constants, + arrays or variables. + (gfc_conv_array_parameter): Call get_array_ctor_strlen to get + good string length. + * trans-intrinsic (gfc_conv_intrinsic_len): Add new argument + to call of get_array_ctor_strlen. + +2007-05-25 Kazu Hirata + + * intrinsic.texi: Fix typos. + +2007-05-25 Paul Thomas + + PR fortran/32047 + * trans-expr.c (gfc_apply_interface_mapping_to_expr): Change + order in logic under EXPR_FUNCTION to handle functions with + no arguments. + +2007-05-23 Jerry DeLisle + + PR fortran/31716 + * array.c (spec_dimen_size): Test for correct BT_INTEGER type. + +2007-05-23 Francois-Xavier Coudert + + PR fortran/32046 + * trans-expr.c (gfc_trans_zero_assign): Convert the result of + TYPE_SIZE_UNIT into a signed type. + (gfc_trans_array_copy): Likewise. + (gfc_trans_array_constructor_copy): Likewise. + * trans-array.c (gfc_trans_create_temp_array): Likewise. + (gfc_grow_array): Likewise. + (gfc_array_init_size): Likewise. + (gfc_duplicate_allocatable): Likewise. + * trans-stmt.c (allocate_temp_for_forall_nest_1): Likewise. + +2007-05-22 Jerry DeLisle + + PR fortran/18923 + * resolve.c (resolve_function): Don't call resolve_global_procedure if + there is no name. Delete duplicated statement in ELSE clause. + +2007-05-22 Francois-Xavier Coudert + + PR fortran/31627 + * trans-array.c (gfc_trans_array_bound_check): Take extra argument to + indicate whether we should check the upper bound in that dimension. + (gfc_conv_array_index_offset): Check only the lower bound of the + last dimension for assumed-size arrays. + (gfc_conv_array_ref): Likewise. + (gfc_conv_ss_startstride): Likewise. + +2007-05-21 Jerry DeLisle + Daniel Franke + + PR fortran/32002 + * resolve.c (resolve_actual_arglist): Resolve actual argument after + being identified as variable. + +2007-05-21 Francois-Xavier Coudert + + PR fortran/32027 + * trans-stmt.c (gfc_trans_do): Fix the value of loop variable + when the loop ends. + +2007-05-21 H.J. Lu + + * trans-stmt.c (gfc_trans_do): Fix a typo in comment. + +2007-05-21 Paul Thomas + + PR fortran/31867 + PR fortran/31994 + * trans-array.c (gfc_conv_expr_descriptor): Obtain the stored + offset for non-descriptor, source arrays and correct for stride + not equal to one before writing to field of output descriptor. + +2007-05-20 Daniel Franke + + PR fortran/32001 + * check.c (check_rest): Improved argument conformance check and + fixed error message generation. + +2007-05-19 Francois-Xavier Coudert + + PR fortran/30820 + * Make-lang.in: Remove use of -Wno-error for expr.o, resolve.o, + simplify.o and trans-common.o. + +2007-05-19 Francois-Xavier Coudert + + PR fortran/31974 + * trans-array.c (gfc_trans_auto_array_allocation): Avoid + multiplication of mismatched types. + +2007-05-18 Daniel Franke + + PR fortran/24633 + * symbol.c (gfc_add_flavor): Add the NAME to error message if + available. + +2007-05-15 Daniel Franke + + PR fortran/31919 + PR fortran/31929 + PR fortran/31930 + * intrinsic.c (check_specific): Check elemental intrinsics for + rank and shape. + (add_functions): Fixed dummy argument names of BESJN and BESYN. + Fixed elemental status of MCLOCK and MCLOCK8. + * check.c (check_rest): Added check for array conformance. + (gfc_check_merge): Removed check for array conformance. + (gfc_check_besn): Removed check for scalarity. + * intrinsic.texi (CSHIFT, EOSHIFT): Fixed typos. + (BESJN, BESYN): Clarified documentation. + +2007-05-17 Tobias Burnus + + * gfortran.texi (GFORTRAN_CONVERT_UNIT): Improve documentation. + +2007-05-16 Brooks Moses + + PR fortran/18769 + PR fortran/30881 + PR fortran/31194 + PR fortran/31216 + PR fortran/31427 + * target-memory.c: New file. + * target-memory.h: New file. + * simplify.c: Add #include "target-memory.h". + (gfc_simplify_transfer): Implement constant- + folding for TRANSFER intrinsic. + * Make-lang.in: Add dependencies on new target-memory.* files. + +2007-05-15 Paul Brook + + * trans-types.c (gfc_type_for_size): Handle signed TImode. + +2007-05-14 Francois-Xavier Coudert + + PR fortran/30723 + * trans.h (gfor_fndecl_internal_malloc, gfor_fndecl_internal_malloc64, + gfor_fndecl_internal_free): Remove prototypes. + (gfor_fndecl_os_error, gfc_call_free, gfc_call_malloc): Add prototypes. + * trans.c (gfc_call_malloc, gfc_call_free): New functions. + * f95-lang.c (gfc_init_builtin_functions): Add __builtin_free + and __builtin_malloc builtins. + * trans-decl.c (gfor_fndecl_internal_malloc, + gfor_fndecl_internal_malloc64, gfor_fndecl_internal_free): Remove. + (gfor_fndecl_os_error): Add. + (gfc_build_builtin_function_decls): Don't create internal_malloc, + internal_malloc64 and internal_free library function declaration. + Create os_error library call function declaration. + * trans-array.c (gfc_trans_allocate_array_storage, + gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias, + gfc_conv_array_parameter, gfc_duplicate_allocatable): Use + gfc_call_malloc and gfc_call_free instead of building calls to + internal_malloc and internal_free. + * trans-expr.c (gfc_conv_string_tmp): Likewise. + * trans-stmt.c (gfc_do_allocate, gfc_trans_assign_need_temp, + gfc_trans_pointer_assign_need_temp, gfc_trans_forall_1, + gfc_trans_where_2: Likewise. + * trans-intrinsic.c (gfc_conv_intrinsic_ctime, + gfc_conv_intrinsic_fdate, gfc_conv_intrinsic_ttynam, + gfc_conv_intrinsic_array_transfer, gfc_conv_intrinsic_trim): Likewise. + +2007-05-14 Francois-Xavier Coudert + + PR fortran/31725 + * trans-expr.c (gfc_conv_substring): Evaluate substring bounds + only once. + +2007-05-14 Rafael Avila de Espindola + + * f95-lang.c (LANG_HOOKS_UNSIGNED_TYPE): Remove. + * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Use unsigned_type_for + instead of gfc_unsigned_type. + * trans-stmt.c (gfc_trans_do): Use unsigned_type_for instead of + gfc_unsigned_type. + * trans-types.c (gfc_unsigned_type): Remove. + * trans-types.h (gfc_unsigned_type): Remove. + +2007-05-12 Paul Thomas + + PR fortran/30746 + * resolve.c (check_host_association): New function that detects + incorrect host association and corrects it. + (gfc_resolve_expr): Call the new function for variables and + functions. + * match.h : Remove prototype for gfc_match_rvalue. + * gfortran.h : Add prototype for gfc_match_rvalue. + +2007-05-11 Paul Thomas + + PR fortran/30876 + * trans-expr.c (gfc_conv_function_call): Reduce indirection for + direct assignments of recursive array valued functions. + * primary.c (gfc_match_rvalue): Correct error for recursive + function calls such that directly recursive calls of scalar + function without an explicit result are disallowed. + +2007-05-11 Paul Thomas + + PR fortran/30878 + * resolve.c (resolve_fl_namelist): It is not an error if the + namelist element is the result variable of the enclosing + function. Search for the symbol in current and all parent + namespaces for a potential conflict. + * symbol.c (check_conflict): Remove the conflict between + 'in_namelist' and 'FL_PROCEDURE' because the symbol info + is not available to exclude function result variables. + * trans-io.c (nml_get_addr_expr): Use the fake result decl + if the symbol is an implicit result variable. + +2007-05-11 Paul Thomas + + PR fortran/31474 + * decl.c (get_proc_name): If an entry has already been declared + as a module procedure, pick up the symbol and the symtree and + use them for the entry. + +2007-05-08 Paul Thomas + + PR fortran/31630 + * resolve.c (resolve_symbol): Remove the flagging mechanism from the + formal namespace resolution and instead check that the formal + namespace is not the current namespace. + +2007-05-08 Paul Thomas + + PR fortran/31692 + * trans-array.c (gfc_conv_array_parameter): Convert full array + references to the result of the procedure enclusing the call. + +2007-05-08 Paul Thomas + + PR fortran/29397 + PR fortran/29400 + * decl.c (add_init_expr_to_sym): Expand a scalar initializer + for a parameter array into an array expression with the right + shape. + * array.c (spec_dimen_size): Remove static attribute. + * gfortran.h : Prototype for spec_dimen_size. + +2007-05-07 Francois-Xavier Coudert + + PR fortran/31399 + * trans-stmt.c (gfc_trans_do): Handle large loop counts. + +2007-05-07 Francois-Xavier Coudert + + PR fortran/31764 + * simplify.c (gfc_simplify_new_line): NEW_LINE can be simplified + even for non constant arguments. + +2007-05-06 Jerry DeLisle + Francois-Xavier Coudert + + PR fortran/31201 + * gfortran.h: Add runtime error codes from libgfortran.h. Define + MAX_UNIT_NUMBER. + * trans.c (gfc_trans_runtime_check): Update the format of runtime error + messages to match library runtime errors. Use call to new library + function runtime_error_at(). + * trans.h: Add prototype for new function gfc_trans_io_runtime_check. + Add declaration for library functions runtime_error_at and + generate_error. + * trans_io.c (gfc_trans_io_runtime_check): New function. + (set_parameter_value): Add error checking for UNIT numbers. + (set_parameter_ref): Initialize the users variable to zero. + (gfc_trans_open): Move setting of unit number to after setting of common + flags so that runtime error trapping can be detected. + (gfc_trans_close): Likewise. (build_filepos): Likewise. + (gfc_trans_inquire): Likewise. (build_dt): Likewise. + * trans-decl.c: Add declarations for runtime_error_at and + generate_error. (gfc_build_builtin_function_decls): Build function + declarations for runtime_error_at and generate_error. + +2007-05-06 Paul Thomas + + PR fortran/31540 + * resolve.c (resolve_fl_procedure): Resolve constant character + lengths. + +2007-05-05 Jerry DeLisle + + PR fortran/31251 + * decl.c (match_char_spec): Add check for invalid character lengths. + +2007-05-04 Brooks Moses + + * intrinsic.texi (CMPLX): Document result kind. + (COMPLEX): Add documentation. + +2007-05-04 Daniel Franke + + PR fortran/31760 + * intrinsic.c (add_functions): Replaced calls to gfc_check_g77_math1 + by gfc_check_fn_r to avoid checks for scalarity. + * check.c (gfc_check_besn): Removed check for scalarity. + (gfc_check_g77_math1): Removed. + * intrinsic.h (gfc_check_g77_math1): Removed. + +2007-05-04 Daniel Franke + + * check.c (gfc_check_fseek_sub): Fixed typo. + +2007-05-04 Daniel Franke + + PR fortran/22359 + * intrinsic.c (add_subroutines): Added FSEEK. + * intrinsic.h (gfc_resolve_fseek_sub, gfc_check_fseek_sub): New. + * iresolve.c (gfc_resolve_fseek_sub): New. + * check.c (gfc_check_fseek_sub): New. + * intrinsic.texi (FSEEK): Updated. + +2007-05-04 Tobias Burnus + + PR fortran/31803 + * expr.c (gfc_check_pointer_assign): Check for NULL pointer. + +2007-05-04 Jerry DeLisle + + PR fortran/31251 + * simplify.c (gfc_simplify_len): Only simplify integer lengths. + +2007-05-04 Francois-Xavier Coudert + + PR fortran/31781 + * simplify.c (gfc_simplify_repeat): Don't put function call with + side effect in a gcc_assert(). + +2007-05-04 Tobias Burnus + + PR fortran/25071 + * interface.c (compare_actual_formal): Check character length. + +2007-05-01 Thomas Koenig + + PR fortran/31732 + * dependency.c (gfc_full_array_ref_p): If the reference is + to a single element, check that the array has a single + element and that the correct element is referenced. + +2007-05-01 Daniel Franke + + * intrinsic.c (add_functions): Fixed ELEMENTAL specifications. + (add_subroutines): Replaced magic numbers in function calls by + ELEMENTAL and NOT_ELEMENTAL respectively. + * intrinsic.texi (MVBITS): Changed class to elemental subroutine. + (RANDOM_NUMBER): Changed class to subroutine. + (HUGE, TINY): Changed class to inquiry function. + +2007-04-30 Brooks Moses + + * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_get_double_int. + (gfc_conv_tree_to_mpz): New function. + (gfc_conv_mpfr_to_tree): Use real_from_mpfr. + (gfc_conv_tree_to_mpfr): New function. + * trans-const.h: (gfc_conv_tree_to_mpz): New prototype. + (gfc_conv_tree_to_mpfr): New prototype. + +2007-04-30 Daniel Franke + + * intrinsic.texi (IERRNO): Changed class to non-elemental function. + (LOG10): Removed COMPLEX as accepted argument type. + (NEW_LINE): Changed class from elemental to inquiry function. + (SIGN): Removed requirement of scalar arguments. + (SNGL): Changed class to elemental function. + +2007-04-29 Francois-Xavier Coudert + + PR fortran/31591 + * simplify.c (simplify_bound_dim): New function. + (simplify_bound): Use the above. Perform simplification of LBOUND + and UBOUND when DIM argument is not present. + +2007-04-29 Daniel Franke + + * gfortran.texi: Cleaned up keyword index. + * invoke.texi: Likewise. + * intrinsic.texi: Likewise. + +2007-04-29 Francois-Xavier Coudert + + PR fortran/31645 + * scanner.c (load_file): Discard the byte order mark if one is + found on the first non-preprocessor line of a file. + +2007-04-29 Paul Thomas + + PR fortran/31711 + * trans-array.c (gfc_conv_resolve_dependencies): Create a temp + whenever a dependency is found. + +2007-04-28 Tobias Schlüter + + * options.c (gfc_handle_option): Ensure requested free form line + length is not too small. + +2007-04-27 Brooks Moses + + * intrinsic.texi (Transfer): Improve documentation. + +2007-04-27 Brooks Moses + + * gfortran.texi (Option Index): Add @samp as needed. + +2007-04-27 Daniel Franke + + * gfortran.texi: Added node and menu entry for an option index. + * invoke.texi: Moved command line option related entries of the concept + index to the option index. + +2007-04-27 Daniel Franke + + * intrinsic.texi (AND, FPUT, FPUTC, MODULO, OR, SET_EXPONENT, + XOR): Fixed examples. + +2007-04-27 Daniel Franke + + * intrinsic.texi (PRODUCT, RESHAPE, SPACING, SPREAD, SUM, + SYSTEM_CLOCK, TRANSFER, UNPACK): New. + (DATE_AND_TIME, CPU_TIME, RRSPACING): Added cross references. + +2007-04-26 Daniel Franke + + * intrinsic.texi (NULL, PACK, PRESENT, REPEAT, SCAN, SHAPE, + SIZE, TRANSPOSE, TRIM, VERIFY): New. + (ADJUSTL, ADJUSTR, INDEX): Added cross references. + (INT, INT2, INT8, LONG): Enabled section header. + +2007-04-25 Janne Blomqvist + + * module.c (module_char): Replace fgetc() with + getc(). + (write_char): Replace fputc() with putc(). + * scanner.c (load_line): Replace fgetc() with getc(). + (gfc_read_orig_filename): Likewise. + +2007-04-25 Tobias Burnus + + PR fortran/31668 + * error.c (error_print): Fix %% support. + * intrinsic.c (sort_actual): Improve error message. + * resolve.c (resolve_actual_arglist): Allow %VAL for + interfaces defined in the module declaration part. + +2007-04-25 Francois-Xavier Coudert + + PR libfortran/31299 + * intrinsic.texi (GETLOG): Update documentation to reflect + library changes. + +2007-04-24 Francois-Xavier Coudert + + PR fortran/31587 + * module.c (write_char): Add character to the MD5 buffer. + (read_md5_from_module_file): New function. + (gfc_dump_module): Compute MD5 for new module file. Call + read_md5_from_module_file. Only overwrite old module file + if the new MD5 is different. + +2007-04-23 Paul Thomas + + PR fortran/31630 + * resolve.c (resolve_symbol): Allow resolution of formal + namespaces nested within formal namespaces coming from modules. + + PR fortran/31620 + * trans-expr.c (gfc_trans_assignment): Make the call to + gfc_trans_zero_assign conditional on the lhs array ref being + the only reference. + +2007-04-23 Tobias Burnus + + * primary.c (match_integer_constant): Mention -fno-range-check + in the error message. + +2007-04-21 Jerry DeLisle + + PR fortran/31495 + * scanner.c (load_line): Remove check for comment after ampersand and + adjust tracking of ampersand. + +2007-04-21 Andrew Pinski + + * f95-lang.c (lang_tree_node): Use GENERIC_NEXT + instead of checking GIMPLE_STMT_P in chain_next. + +2007-04-17 Tobias Schlüter + + * trans-types.h (gfc_packed): New enum. + (gfc_get_nodesc_array_type): Change prototype to use new enum. + * trans-types.c (gfc_get_nodesc_array): Use gfc_packed for + argument packed. Adapt all references to values accordingly. + (gfc_sym_type): Use enum values in call to gfc_get_nodesc_array. + (gfc_get_derived_type): Likewise. + * trans-array.c (gfc_build_constant_array_constructor): Likewise. + * trans-expr.c (gfc_get_interface_mapping_charlen): Changed packed + argument to type gfc_packed. + (gfc_add_interface_mapping): Use enum values in call to + gfc_get_interface_mapping. + * trans-decl.c (gfc_build_dummy_array_decl): Adapt to use enum + values when determining packing. + + * trans-decl.c (gfc_finish_decl): Remove unused second argument + 'init'. Simplify code accordingly. Remove calls to + gfc_fatal_error in favor of gcc_assert. + (create_function_arglist): Remove second argument from calls to + gfc_finish-decl. + (gfc_trans_dummy_character): Likewise. + + * arith.h: Update copyright years. + * dependency.h: Likewise. + * gfortran.h: Likewise. + * lang-specs.h: Likewise. + * parse.h: Likewise. + * symbol.c: Likewise. + * trans.h: Likewise. + * trans.c: Likewise. + * trans-array.c: Likewise. + * trans-common.c: Likewise. + * trans-const.h: Likewise. + * trans-const.c: Likewise. + * trans-decl.c: Likewise. + * trans-expr.c: Likewise. + * trans-io.c: Likewise. + * trans-openmp.c: Likewise. + * trans-types.h: Likewise. + * types.def: Likewise. + +2007-04-17 Tobias Schlüter + + PR fortran/31144 + * decl.c (gfc_sym_mangled_identifier): Use capital letters in name + mangling. + (gfc_sym_mangled_function_id): Likewise. + +2007-04-15 Paul Thomas + + PR fortran/31204 + * primary.c (check_for_implicit_index): New function to check + that a host associated variable is not an undeclared implied + do loop index. + (gfc_match_rvalue, match_variable): Use it and reset the + implied_index attribute. + * gfortran.h : Add the implied_index field to symbol_attribute. + * match.c (gfc_match_iterator): Mark the iterator variable + with the new attribute. + * decl.c (build_sym): Reset the new attribute. + +2007-04-15 Kazu Hirata + + * gfc-internals.texi: Fix typos. + * simplify.c: Fix a comment typo. + +2007-04-14 Bernhard Fischer + + * primary.c: Commentary typo fix; Add question about redundant (?) + set. + +2007-04-14 Paul Thomas + + PR fortran/29507 + PR fortran/31404 + * expr.c (scalarize_intrinsic_call): New function to + scalarize elemental intrinsic functions in initialization + expressions. + (check_init_expr): Detect elemental intrinsic functions + in initalization expressions and call previous. + +2007-04-13 Tobias Burnus + + PR fortran/31559 + * primary.c (match_variable): External functions + are no variables. + +2007-04-13 Paul Thomas + + PR fortran/31550 + * trans-types.c (copy_dt_decls_ifequal): Do not get pointer + derived type components. + +2007-04-13 Tobias Schlüter + + PR fortran/18937 + * resolve.c: Include obstack.h and bitmap.h. New variable + labels_obstack. + (code_stack): Add tail and reachable_labels fields. + (reachable_labels): New function. + (resolve_branch): Rework to use new fields in code_stack. + (resolve_code): Call reachable_labels. + (resolve_codes): Allocate and free labels_obstack. + +2007-04-12 Tobias Schlüter + + PR fortran/31250 + * decl.c (match_char_spec): Move check for negative CHARACTER + length ... + * resolve.c (resolve_charlen): ... here. + (resolve_types): Resolve CHARACTER lengths earlier. + +2007-04-12 Daniel Franke + + PR fortran/31234 + * intrinsic.texi (RANDOM_SEED, RANDOM_NUMBER): New. + +2007-04-12 Tobias Schlüter + + PR fortran/31266 + * primary.c (gfc_variable_attr): Don't copy string length if it + doesn't make sense. + * resolve.c (resolve_code): Clarify error message. + + PR fortran/31471 + * decl.c (gfc_match_end): Also check for construct name in END + FORALL and END WERE statements. + * match.c (match_case_eos): Use uppercase for statement name in + error message. + (match_elsewhere): Construct name may appear iff construct has a + name. + + * trans-types.c: Update copyright years. Reformat long comment + explaining array descriptor format. Remove obsolete mention of + TYPE_SET. + + * arith.c (gfc_arith_uplus): Rename to ... + (gfc_arith_identity): ... this. + (gfc_parentheses): New function. + (gfc_uplus): Adapt to renamed function. + * arith.h (gfc_parentheses): Add prototype. + * expr.c (gfc_copy_expr): Deal with INTRINSIC_PARENTHESES. + (simplifiy_intrinsic_op): Treat INTRINSIC_UPLUS separately from + INTRINSIC_PARENTHESES. + +2007-04-12 Tobias Burnus + + PR fortran/31472 + * decl.c (match_attr_spec): Allow PRIVATE/PUBLIC + attribute in type definitions. + (gfc_match_private): Allow PRIVATE statement only + in specification part of modules. + (gfc_match_public): Ditto for PUBLIC. + (gfc_match_derived_decl): Allow PRIVATE/PUBLIC attribute only in + specificification part of modules. + +2007-04-07 Paul Thomas + + PR fortran/31257 + * intrinsic.c (add_functions): Add ref. to gfc_resolve_achar. + * intrinsic.h : Add prototype for gfc_resolve_achar. + * iresolve.c (gfc_resolve_achar): New function. + +2007-04-07 Paul Thomas + + PR fortran/30880 + * resolve.c (resolve_fl_variable): Set flag to 2 for automatic + arrays. Make condition for automatic array error explicit. + If a dummy, no error on an INTENT(OUT) derived type. + +2007-04-07 Paul Thomas + + PR fortran/30872 + * expr.c (find_array_element): Correct arithmetic for rank > 1. + +2007-04-07 Paul Thomas + + PR fortran/31222 + * check.c (numeric_check): If an expresson has not got a type, + see if it is a symbol for which a default type applies. + +2007-04-07 Paul Thomas + + PR fortran/31214 + * trans-decl.c (gfc_get_symbol_decl): Allow unreferenced use + associated symbols. + +2007-04-07 Paul Thomas + + PR fortran/31293 + * symbol.c (gfc_check_function_type): New function. + * gfortran.h : Add prototype for previous. + * parse.c (parse_progunit): Call it after parsing specification + statements. + +2007-04-05 Paul Thomas + + PR fortran/31483 + * trans-expr.c (gfc_conv_function_call): Give a dummy + procedure the correct type if it has alternate returns. + +2007-04-05 Paul Thomas + + PR fortran/31292 + * decl.c (gfc_match_modproc): Go up to the top of the namespace + tree to find the module namespace for gfc_get_symbol. + +2007-04-03 Francois-Xavier Coudert + + PR fortran/31304 + * fortran/gfortran.h (gfc_charlen_int_kind): New prototype. + * fortran/trans-types.c (gfc_charlen_int_kind): New variable. + (gfc_init_types): Define gfc_charlen_int_kind. + * fortran/trans.h (gfor_fndecl_string_repeat): Remove prototype. + * fortran/trans-decl.c (gfor_fndecl_string_repeat): Delete. + (gfc_build_intrinsic_function_decls): Don't set + gfor_fndecl_string_repeat. + * fortran/trans-intrinsic.c (gfc_conv_intrinsic_repeat): Rewrite + so that we don't have to call a library function. + * fortran/simplify.c (gfc_simplify_repeat): Perform the necessary + checks on the NCOPIES argument, and work with arbitrary size + arguments. + +2007-03-31 Tobias Burnus + + * intrinsic.c (add_functions): Fix name of dummy argument + for new_line and exit intrinsic. + +2007-03-31 Paul Thomas + + PR fortran/31160 + * gfortran.texi: Add a section for the %VAL, %REF and %LOC + extensions. + +2007-03-30 Rafael Avila de Espindola + + * trans-types.c (gfc_signed_or_unsigned_type): Remove. + (gfc_unsigned_type): Use get_signed_or_unsigned_type instead of + gfc_signed_or_unsigned_type. + (gfc_signed_type): Ditto. + * trans-types.h (gfc_signed_or_unsigned_type): Remove. + * f95-lang.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove. + +2007-03-30 Tobias Schlüter + + * symbol.c (gfc_find_gsymbol): Simplify, don't unconditionally + descend into all branches. + +2007-03-29 Tobias Schlüter + + * intrinsic.c (conv_name): Let gfc_get_string handle the format. + (find_conv): Compare pointers instead of calling strcmp. + (find_sym): Likewise, but ensure that the compared pointer is in + the global string table. + +2007-03-28 Tobias Schlüter + + * gfc-internals.texi: Fix output filename. Merge type index into + concept index. Start documentation of gfc_code structure. + +2007-03-26 Brooks Moses + + * gfc-internals.texi: New file, + * Make-lang.in: Add rules to convert it to dvi, pdf, and info. + +2007-03-26 Brooks Moses + + * error.c (show_locus): Remove always-false test. + +2007-03-26 Brooks Moses + + * lang.opt: Minor edits to descriptions. + +2007-03-25 Francois-Xavier Coudert + + PR fortran/30877 + * fortran/interface.c (check_operator_interface): Implement + the standard checks on user operators extending intrinsic operators. + * fortran/resolve.c (resolve_operator): If the ranks of operators + don't match, don't error out but try the user-defined ones first. + +2007-03-24 Francois-Xavier Coudert + + PR fortran/30655 + * expr.c (check_dimension): Fix logic of comparisons. + +2007-03-24 Paul Thomas + + PR fortran/31215 + * trans-expr.c (gfc_apply_interface_mapping_to_expr): Return + int result that is non-zero if the expression is the function + result. Only the characteristics of the result expression + can be used in a procedure interface, so simplify LEN in situ + using its character length. + + PR fortran/31209 + PR fortran/31200 + * trans-expr.c (gfc_conv_function_call): Do not use + gfc_conv_expr_reference for actual pointer function with formal + target because a temporary is created that does not transfer + the reference correctly. Do not indirect formal pointer + functions since it is the function reference that is needed. + +2007-03-24 Brooks Moses + + * gfortran.h: Edit comments on GFC_STD_*. + +2007-03-23 Brooks Moses + + * invoke.texi: Misc. small typo fixes. + (-Wcharacter-truncation): Add. + (-Wnonstd-intrinsics): Correct spelling. + (-std=): Edit. + (-fintrinsic-modules-path): Add. + +2007-03-23 Francois-Xavier Coudert + + PR fortran/30834 + * arith.c (complex_pow): Rewrite to handle large power. + (gfc_arith_power): Handle large power in the real and integer + cases. + +2007-03-22 Francois-Xavier Coudert + + PR fortran/31262 + * trans-const.c (gfc_conv_mpz_to_tree): Allow integer constants + larger than twice the width of a HOST_WIDE_INT. + +2006-03-22 Paul Thomas + + PR fortran/31193 + * trans-intrinsic.c (gfc_size_in_bytes): Remove function. + (gfc_conv_intrinsic_array_transfer): Remove calls to previous. + Explicitly extract TREE_TYPEs for source and mold. Use these + to calculate length of source and mold, except for characters, + where the se string_length is used. For mold, the TREE_TYPE is + recalculated using gfc_get_character_type_len so that the + result is correctly cast for character literals and substrings. + Do not use gfc_typenode_for_spec for the final cast. + +2007-03-22 Tobias Schlüter + + PR fortran/20897 + * decl.c (gfc_match_derived_decl): Reliably reject + 'doubleprecision' and 'doublecomplex' as type names. + +2007-03-19 Francois-Xavier Coudert + + PR fortran/31203 + * trans-expr.c (gfc_trans_init_string_length): Length should + never be negative. + (gfc_conv_function_call): Likewise. + +2007-03-18 Paul Thomas + + PR fortran/30531 + PR fortran/31086 + * symbo.c : Add gfc_derived_types. + (gfc_free_dt_list): Free derived type list gfc_derived_types. + (gfc_free_namespace): Remove call to gfc_free_dt_list. + (gfc_symbol_done_2): Call gfc_free_dt_list. + * gfortran.h : Declare gfc_derived_types to be external. Remove + derived types field from gfc_namespace. + * resolve.c (resolve_fl_derived): Refer to gfc_derived types + rather than namespace derived_types. + (resolve_fntype): Remove special treatment for module + derived type functions. + * trans-types.c (gfc_get_derived_type): Remove search for like + derived types. Finish by copying back end declaration to like + derived types in the derived type list gfc_derived_types. + + 2007-03-17 Francois-Xavier Coudert + + PR fortran/31120 + * trans-expr.c (gfc_conv_powi): Make n argument unsigned hwi. + (gfc_conv_cst_int_power): Handle integer exponent with care, + since it might be too large for us. + +2007-03-17 Francois-Xavier Coudert + + PR fortran/31184 + * invoke.texi: Fix typo. + +2007-03-16 Tobias Burnus + + * trans-decl.c (gfc_generate_function_code): Use all arguments of + set_std. + +2007-03-15 Francois-Xavier Coudert + + * gfortran.h (gfc_option_t): Add flag_backtrace field. + * lang.opt: Add -fbacktrace option. + * invoke.texi: Document the new option. + * trans-decl.c (gfc_build_builtin_function_decls): Add new + option to the call to set_std. + * options.c (gfc_init_options, gfc_handle_option): Handle the + new option. + +2007-03-15 Tobias Burnus + Paul Thomas + + PR fortran/30922 + * decl.c (gfc_match_import): If the parent of the current name- + space is null, try looking for an imported symbol in the parent + of the proc_name interface. + * resolve.c (resolve_fl_variable): Do not check for blocking of + host association by a same symbol, if the symbol is in an + interface body. + +2007-03-15 Paul Thomas + + PR fortran/30879 + * decl.c (match_data_constant): Before going on to try to match + a name, try to match a structure component. + + + PR fortran/30870 + * resolve.c (resolve_actual_arglist): Do not reject a generic + actual argument if it has a same name specific interface. + + PR fortran/31163 + * trans-array.c (parse_interface): Do not nullify allocatable + components if the symbol has the saved attribute. + +2007-03-14 Francois-Xavier Coudert + + * trans-array.c (gfc_trans_auto_array_allocation): Replace + fold(convert()) by fold_convert(). + (gfc_duplicate_allocatable): Likewise. + * trans-intrinsic.c (gfc_conv_intrinsic_dot_product): Use + build_int_cst instead of converting an integer_zero_node + to the final type. + +2007-03-14 Jakub Jelinek + + * module.c (mio_typespec): Don't look at ts->cl if not BT_CHARACTER. + +2007-03-13 Brooks Moses + + PR fortran/30933 + PR fortran/30948 + PR fortran/30953 + * intrinsics.texi (CHDIR): Fix argument names, note + that STATUS must be a default integer. + (CTIME): Fix argument names, note that RESULT must + be a default integer. + (EXIT): Note that STATUS must be a default integer. + +2007-03-13 Brooks Moses + + PR fortran/28068 + * intrinsic.texi: General whitespace cleanup, remove + comment about missing intrinsics. + (menu): Add lines for new entries listed below. + (ACOSH): Mention specific function DACOSH, correct + description phrasing. + (ASINH): Mention specific function DASINH, correct + description phrasing. + (ATANH): Mention specific function DATANH, correct + description phrasing. + (COS): Add index entry for CCOS. + (CPU_TIME): Correct "REAL" to "REAL(*)". + (EXP): Add index entry for CEXP. + (INT): Correct argument name to "A". + (INT2): New entry. + (INT8): New entry. + (LONG): New entry. + (MAX): Add index entries for specific variants. + (MCLOCK): New entry. + (MCLOCK8): New entry. + (SECNDS): Adjust to a more standard form. + (SECOND): New entry. + (TIME): Add cross-reference to MCLOCK. + (TIME8): Add cross-reference to MCLOCK8. + +2007-03-11 Paul Thomas + + PR fortran/30883 + * parse.c (parse_interface): Use the default types from the + formal namespace if a function or its result do not have a type + after parsing the specification statements. + +2007-03-08 Brooks Moses + + * intrinsic.texi: (ICHAR) Improve internal I/O note. + (ACHAR): Reference it. + (CHAR): Reference it. + (IACHAR): Reference it. + +2007-03-08 Brooks Moses + + * intrinsic.texi: (LINK) Document function form. + (RENAME): Likewise. + (SYMLNK): Likewise. + (SYSTEM): Likewise. + (UNLINK): Likewise. + +2007-03-08 Brooks Moses + + * intrinsic.texi: minor typo fixes, removed prologue. + (FSEEK): moved to correct place in alphabetical order. + +2007-03-08 Daniel Franke + + PR fortran/30947 + * check.c (gfc_check_alarm_sub): Added check for default integer + kind of status argument. + * iresolve.c (gfc_resolve_alarm_sub): Removed conversion of + status argument. + * intrinsic.texi (ALARM): Extended documentation. + +2007-03-08 Daniel Franke + + * intrinsic.texi (GERROR, ISATTY, TTYNAM): New. + (ABORT, FLUSH, FNUM, IRAND, MALLOC, SIGNAL, SRAND): Fixed typo. + * intrinsic.c (add_subroutines): Adjusted dummy argument names + of GERROR and TTYNAM. + +2007-07-08 Tobias Burnus + + * module.c (gfc_match_use): Support renaming of operators + in USE statements. + * gfortran.texi (Fortran 2003 Status): Document support of + renaming of operators. + +2007-07-08 Tobias Burnus + + PR fortran/30973 + * module.c (read_module): Always import module name as symbol. + (gfc_match_use): Disallow module name in the only clause of + a use statement. + +2007-03-08 Paul Thomas + + PR fortran/31011 + * expr.c (find_array_section): Correct arithmetic for section + size. + +2007-03-07 Brooks Moses + + * iresolve.c (gfc_resolve_ishftc): Correct s_kind value. + +2007-03-06 Daniel Franke + + PR documentation/30950 + * intrinsic.texi (AND, CPU_TIME): Fix dummy argument names. + (FREE): Fix call syntax. + +2007-03-06 Brooks Moses + + * intrinsic.texi: Limit column widths to a total of .85. + +2007-03-05 Brooks Moses + + * gfortran.texi (GFortran and G77): Rewrite completely. + +2007-03-05 Brooks Moses + + * match.c (gfc_match_name): Expanded comment. + +2007-03-05 Brooks Moses + + * gfortran.texi (Old-style kind specifications): Document + special handling of old-style kind specifiers for COMPLEX. + * decl.c (gfc_match_old_kind_spec): Document kind/bytesize + assumptions for COMPLEX in comment. + +2007-03-05 Brooks Moses + + PR 31050 + * gfortranspec.c (lang_specific_driver): Update program + name and copyright date. + +2007-03-03 Paul Thomas + + PR fortran/30882 + * check.c (dim_rank_check): The shape of subsections of + assumed-size arrays is known. + +2007-03-02 Paul Thomas + Tobias Burnus + + PR fortran/30873 + * decl.c (gfc_match_entry): Remove erroneous entry result check. + +2007-03-01 Brooks Moses + + * Make-lang.in: Add install-pdf target as copied from + automake v1.10 rules. + +2007-03-01 Tobias Burnus + + PR fortran/30865 + * trans-intrinsic.c (gfc_conv_intrinsic_size): Compare pointers. + +2007-02-28 Tobias Burnus + Paul Thomas + + PR fortran/30888 + PR fortran/30887 + * resolve.c (resolve_actual_arglist): Allow by-value + arguments and non-default-kind for %VAL(). + * trans-expr.c (conv_arglist_function): Allow + non-default-kind for %VAL(). + +2007-02-28 Tobias Burnus + + PR fortran/30968 + * primary.c (next_string_char): Correct reading a character + after the delimiter. + (match_string_constant): Print warning message only once. + +2007-02-27 Richard Guenther + + * trans-array.c (structure_alloc_comps): Use correct type + for null pointer constant. + +2007-02-26 Brooks Moses + + * gfortran.texi: Standardize title page, remove version number + from copyright page. + +2007-02-26 Thomas Koenig + Paul Thomas + + PR fortran/30865 + * trans-intrinsic.c (gfc_conv_intrinsic_size): + If dim is an optional argument, check for its + presence and call size0 or size1, respectively. + +2007-02-23 Paul Thomas + + PR fortran/30660 + * resolve.c (has_default_initializer): New function. + (resolve_fl_variable): Call has_default_initializer to determine if + the derived type has a default initializer to its ultimate + components. + + +2007-02-22 Jerry DeLisle + + * options.c (set_default_std_flags): New function to consolidate + setting the flags. + (gfc_init_options): Use new function. + (gfc_handle_option): Use new function. + +2007-02-22 Brooks Moses + + * gfortran.texi (Old-style kind specifications): Document + special handling of old-style kind specifiers for COMPLEX. + * decl.c (gfc_match_old_kind_spec): Documented kind/bytesize + assumptions in comment. + +2007-02-21 Bernhard Fischer + + * parse.c (next_free): Gooble spaces after OpenMP sentinel. + +2007-02-20 Thomas Koenig + + PR fortran/30869 + * match.c (gfc_match_iterator): Remove conflict between + loop variable and pointer. + +2007-02-20 Tobias Burnus + + PR fortran/30522 + * symbol.c (gfc_add_volatile): Allow to set VOLATILE + attribute for host-associated variables. + * gfortran.h (symbol_attribute): Save namespace + where VOLATILE has been set. + * trans-decl.c (gfc_finish_var_decl): Move variable + declaration to the top. + +2007-02-20 Tobias Burnus + + PR fortran/30783 + * resolve.c (resolve_symbol): Add character dummy VALUE check. + +2007-02-19 Thomas Koenig + + PR libfortran/30533 + * fortran/iresolve.c (gfc_resolve_maxloc): Remove coercion of + argument to default integer. + (gfc_resolve_minloc): Likewise. + +2007-02-18 Jerry DeLisle + + PR fortran/30681 + * options.c (gfc_init_options): Relax warning level for obsolescent. + * match.c (match_arithmetic_if): Change to obsolescent from deleted. + (gfc_match_if): Same. + +2007-02-18 Roger Sayle + + * trans-array.c (gfc_build_constant_array_constructor): When the + shape of the constructor is known, use that to construct the + gfc_array_spec. + (gfc_trans_constant_array_constructor): Initialize the "info" + information for all of the dimensions of the array constructor. + (constant_array_constructor_loop_size): New function. + (gfc_trans_array_constructor): Use it to determine whether a + loop is suitable for "constant array constructor" optimization. + + * trans-intrinsic.c (gfc_conv_intrinsic_anyall): Use fold_build2 + instead of build2, to avoid conditions like "(a != b) != 0". + +2007-02-18 Roger Sayle + Paul Thomas + + PR fortran/30400 + * match.c (match_forall_iterator): Use gfc_match_expr instead + of gfc_match_variable to match the iterator variable. Return + MATCH_NO if not a variable. Remove the reset of the symbol's + flavor in cleanup. + +2007-02-16 Tobias Burnus + + PR fortran/30793 + * trans-decl.c (gfc_generate_function_code): Do not initialize + pointers to derived components. + +2007-02-15 Sandra Loosemore + Brooks Moses + Lee Millward + + * trans-expr.c (gfc_conv_power_op): Use build_call_expr. + (gfc_conv_string_tmp): Likewise. + (gfc_conv_concat_op): Likewise. + (gfc_build_compare_string): Likewise. + (gfc_conv_function_call): Use build_call_list instead of build3. + + * trans-array.c (gfc_trans_allocate_array_storage): Use + build_call_expr. + (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. + (gfc_trans_dealloc_allocated): Likewise. + (gfc_duplicate_allocatable): Likewise. + + * trans-openmp.c (gfc_trans_omp_barrier): Use build_call_expr. + (gfc_trans_omp_flush): Likewise. + + * trans-stmt.c (gfc_conv_elementel_dependencies): Use build_call_expr. + (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_2): Likewise. + (gfc_trans_allocate): Likewise. + (gfc_trans_deallocate): Likewise. + + * trans.c (gfc_trans_runtime_check): Use build_call_expr. + + * trans-io.c (gfc_trans_open): Use build_call_expr. + (gfc_trans_close): Likewise. + (build_filepos): Likewise. + (gfc_trans_inquire): Likewise. + (NML_FIRST_ARG): Delete. + (NML_ADD_ARG): Delete. + (transfer_namelist_element): Use build_call_expr. + (build_dt): Likewise. + (gfc_trans_dt_end): Likewise. + (transfer_expr): Likewise. + (transfer_array-desc): Likewise. + + * trans-decl.c (gfc_generate_function_code): Use build_call_expr. + (gfc_generate_constructors): Likewise. + + * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Use build_call_expr. + (gfc_conv_intrinsic_fdate): Likewise. + (gfc_conv_intrinsic_ttynam): Likewise. + (gfc_conv_intrinsic_array_transfer): Likewise. + (gfc_conv_associated): Likewise. + (gfc_conv_intrinsic_si_kind): Likewise. + (gfc_conv_intrinsic_trim): Likewise. + (gfc_conv_intrinsic_repeat: Likewise. + (gfc_conv_intrinsic_iargc): Likewise. + +2007-02-14 Jerry DeLisle + + PR fortran/30779 + * scanner.c (gfc_next_char_literal): Add check for end of file after + call to advance_line. + +2007-02-14 Steven G. Kargl + + PR fortran/30799 + * primary.c (match_logical_constant): Return MATCH_ERROR on invalid + kind. + +2007-02-14 Steven G. Kargl + + * misc.c (gfc_typename): Fix potential buffer overflow. + +2007-02-13 Paul Thomas + + PR fortran/30554 + * module.c (read_module): Set pointer_info to referenced if the + symbol has no namespace. + +2007-02-12 Nick Clifton + + * lang.opt: Add Warning attribute to warning options. + +2007-02-11 Daniel Franke + + * intrinsic.texi (HOSTNM): Fix typographical error in syntax. + (SLEEP): Added section and documentation. + +2007-02-11 Tobias Schlüter + + PR fortran/30478 + * decl.c (add_init_expr_to_sym): Remove ENUM specific code. + (variable_decl): Likewise. Rewrap comment. + (match_attr_spec): Remove ENUM specific code. + (gfc_match_enum): Fix typo in error message. + (enumerator_decl): New function. + (gfc_match_enumerator_def): Use enumerator_decl instead of + variable_decl. Adapt code accordingly. + +2007-02-11 Paul Thomas + + PR fortran/30554 + * module.c (find_symtree_for_symbol): New function to return + a symtree that is not a "unique symtree" given a symbol. + (read_module): Do not automatically set pointer_info to + referenced because this inhibits the generation of a unique + symtree. Recycle the existing symtree if possible by calling + find_symtree_for_symbol. + + PR fortran/30319 + * decl.c (add_init_expr_to_sym): Make new charlen for an array + constructor initializer. + +2007-02-10 Richard Henderson , Jakub Jelinek + + * f95-lang.c (gfc_init_builtin_functions): Add __emutls_get_address + and __emutls_register_common. + * openmp.c (gfc_match_omp_threadprivate): Don't error if !have_tls. + * trans-common.c (build_common_decl): Don't check have_tls. + * trans-decl.c (gfc_finish_var_decl): Likewise. + * types.def (BT_WORD, BT_FN_PTR_PTR): New. + (BT_FN_VOID_PTR_WORD_WORD_PTR): New. + +2007-02-09 Tobias Burnus + + PR fortran/30512 + * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc, + gfc_conv_intrinsic_minmaxval): Use HUGE-1 for most negative integer. + +2007-02-09 Francois-Xavier Coudert + + PR fortran/30720 + * trans-array.c (gfc_trans_create_temp_array): Remove use of the + function argument. Always generate code for negative extent. + Simplify said code. + * trans-array.h (gfc_trans_create_temp_array): Change prototype. + * trans-expr.c (gfc_conv_function_call): Remove use of last argument + of gfc_trans_create_temp_array. + * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): Likewise. + * trans-stmt.c (gfc_conv_elemental_dependencies): Likewise. + +2007-02-08 Roger Sayle + + * trans-stmt.c (gfc_trans_forall_1): Optimize the cases where the + mask expression is a compile-time constant (".true." or ".false."). + +2007-02-04 Francois-Xavier Coudert + + PR fortran/30611 + * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Evaluate + arguments only once. Generate check that NCOPIES argument is not + negative. + +2007-02-04 Steven G. Kargl + + PR fortran/30605 + * fortran/invoke.texi: Update documentation. + * fortran/options.c (gfc_post_options): Deal with tabs with -std=f2003 + and -pedantic. + +2007-02-03 Kazu Hirata + + * trans-array.c: Fix a comment typo. + +2007-02-03 Paul Thomas + + PR fortran/30514 + * array.c (match_array_element_spec): If the length of an array is + negative, adjust the upper limit to make it zero length. + + PR fortran/30660 + * resolve.c (pure_function, resolve_function): Initialize name to + null to clear up build warnings. + (resolve_fl_variable): Look at components explicitly to check for + default initializer, rather than using gfc_default_initializer. + +2007-02-02 Steven G. Kargl + + PR fortran/30683 + * resolve.c (resolve_generic_f): Check for non-NULL sym. + +2007-02-02 Roger Sayle + + * trans.c (gfc_build_array_ref): Use STRIP_TYPE_NOPS to eliminate + NON_LVALUE_EXPR nodes and useless type conversions. + +2007-02-02 Paul Thomas + + PR fortran/30284 + PR fortran/30626 + * trans-expr.c (gfc_conv_aliased_arg): Remove static attribute + from function and make sure that substring lengths are + translated. + (is_aliased_array): Remove static attribute. + * trans.c : Add prototypes for gfc_conv_aliased_arg and + is_aliased_array. + * trans-io.c (set_internal_unit): Add the post block to the + arguments of the function. Use is_aliased_array to check if + temporary is needed; if so call gfc_conv_aliased_arg. + (build_dt): Pass the post block to set_internal_unit and + add to the block after all io activiy is done. + +2007-02-01 Roger Sayle + + * trans-array.c (gfc_conv_expr_descriptor): We don't need to use + a temporary array to pass a constant non-character array constructor. + Generalize the descriptor generation code to handle scalarizer + "info" without an array reference. + +2007-02-01 Roger Sayle + + * dependency.c (gfc_check_dependency) : Implement + dependency checking for array constructors. + +2007-02-01 Roger Sayle + + * trans-stmt.c (compute_overall_iter_number): Document function + arguments. Generalize "unconditional forall nest with constant + bounds" optimization to eliminate unconditional inner loops with + constant bounds. + +2007-01-31 Tobias Burnus + + PR fortran/30520 + * interface.c (compare_actual_formal): Check conformance between + actual and VOLATILE dummy arguments. + * symbol.c (gfc_add_volatile): Allow setting of VOLATILE + multiple times in different scopes. + * decl.c (gfc_match_volatile): Search symbol in host association. + +2007-01-31 Kazu Hirata + + * simplify.c, trans-array.c: Fix comment typos. + +2007-01-30 Ralf Wildenhues + + * invoke.texi (Code Gen Options): Fix abbreviation typo. + * intrinsic.texi (ACCESS, LSHIFT, RSHIFT): Fix typos. + +2007-01-30 Steve Ellcey + + PR fortran/30432 + * trans-types.c (gfc_get_function_type): Do not add void_type_node + to empty arg list. + * trans-decl.c (create_function_arglist): Change assert. + +2007-01-29 Paul Thomas + + PR fortran/30554 + * module.c (read_module): If a symbol is excluded by an ONLY + clause, check to see if there is a symtree already loaded. If + so, attach the symtree to the pointer_info. + +2007-01-28 Thomas Koenig + + PR libfortran/30389 + * gfortran.h: Remove gfc_simplify_init_1. + * arith.h: Remove third argument from gfc_compare_string. + * arith.c (gfc_compare_expression): Remove third argument + from call to gfc_compare_string. + (gfc_compare_string): Remove third argument xcoll_table. + Remove use of xcoll_table. + * misc.c (gfc_init_1): Remove call to gfc_simplify_init_1. + * simplify.c (ascii_table): Remove. + (xascii_table): Likewise. + (gfc_simplify_achar): ICE if extract_int fails. Remove use of + ascii_table. Warn if -Wsurprising and value < 0 or > 127. + (gfc_simplify_char): ICE if extract_int fails. Error if + value < 0 or value > 255. + (gfc_simplify_iachar): Remove use of xascii_table. + Char values outside of 0..255 are an ICE. + (gfc_simplify_lge): Remove use of xascii_table. + (gfc_simplify_lgt): Likewise. + (gfc_simplify_lle): Likewise. + (gfc_simplify_llt): Likewise. + (invert_table): Remove. + (gfc_simplify_init_1): Remove. + +2007-01-27 Roger Sayle + + * trans-stmt.c (forall_info): Replace the next_nest and outer + fields that previously implemented a doubly-linked list with a + single prev_nest field (singly-linked list). + (gfc_trans_nested_forall_loop): The nested_forall_info argument + now denotes the innermost FORALL in the loop nest. + (compute_overall_iter_number): Use prev_nest instead of next_nest. + (gfc_trans_forall_1): Link/cons the new "info" to the head of the + nested_forall_info linked list. Free the current "info" when done. + +2007-01-27 Paul Thomas + + PR fortran/30407 + * trans-expr.c (gfc_conv_operator_assign): New function. + * trans.h : Add prototype for gfc_conv_operator_assign. + * trans-stmt.c (gfc_trans_where_assign): Add a gfc_symbol for + a potential operator assignment subroutine. If it is non-NULL + call gfc_conv_operator_assign instead of the first assignment. + ( gfc_trans_where_2): In the case of an operator assignment, + extract the argument expressions from the code for the + subroutine call and pass the symbol to gfc_trans_where_assign. + resolve.c (resolve_where, gfc_resolve_where_code_in_forall, + gfc_resolve_forall_body): Resolve the subroutine call for + operator assignments. + +2007-01-26 Steven Bosscher + Steven G. Kargl + + PR fortran/30278 + * fortran/io.c (next_char): Deal with backslash escaped characters. + Issue warnings in non -std=gnu cases. + * fortran/primary.c (next_string_char): Issue warnings in non + +2007-01-26 Tobias Burnus + + * lang-specs.h: Add support for .f03 and .F03 extensions. + * gfortran.texi: Document .f03 extension. + * options.c (form_from_filename): Recognize .f03. + +2007-01-25 Manuel Lopez-Ibanez + + PR fortran/30437 + * lang.opt (Wall): Remove RejectNegative. + * options.c (gfc_handle_option): Wall can be disabled. + (set_Wall): Add a parameter for disabling Wall. + +2007-01-23 Jerry DeLisle + + PR fortran/30532 + * scanner.c (load_line): Remove check fot ctrl-z and don't gobble. + +2007-01-23 Paul Thomas + + PR fortran/30481 + * match.c (gfc_match_namelist): Add check for assumed size character + in namelist and provide error if found. + +2007-01-21 Brooks Moses + + * intrinsic.texi (ACHAR): Added cross-references. + (CHAR): Put cross-references in alphabetical order. + (IACHAR): Added cross-references. + (ICHAR): Added cross-references. + +2007-01-20 Brooks Moses + + * intrinsic.texi: Edited all "Syntax" examples to a consistent form. + (MAXVAL): Corrected description of result characteristics. + (MINVAL): Same. + (UMASK): Added documentation. + +2007-01-20 Steven G. Kargl + + * openmp.c, matchexp.c, module.c, scanner.c, resolve.c, st.c, + parse.c, primary.c, options.c, misc.c, simplify.c: Next installment + in the massive whitespace patch. + +2007-01-20 Roger Sayle + + * module.c (mio_array_ref): The dimen_type fields of an array ref + are an enumerated type and can't be read/written directly with a + call to mio_integer. Instead loop over and cast each element. + +2007-01-20 Roger Sayle + + * dependency.c (gfc_full_array_ref_p): Check that ref->next is NULL, + i.e. that the ARRAY_REF doesn't mention components. + * trans-array.c (gfc_constant_array_constructor_p): Export external + function renamed from constant_array_constructor_p. + (gfc_build_constant_array_constructor): Export. + (gfc_trans_array_constructor): Update call to the renamed function + constant_array_constructor_p. + * trans-array.h (gfc_constant_array_constructor_p): Prototype here. + (gfc_build_constant_array_constructor): Likewise. + * trans-expr.c (gfc_build_memcpy_call): New helper function split + out from gfc_trans_array_copy. + (gfc_trans_array_copy): Use gfc_build_memcpy_call. + (gfc_trans_array_constructor_copy): New function to optimize + assigning an entire array from a constant array constructor. + (gfc_trans_assignment): Call gfc_trans_array_constructor_copy + when appropriate. + +2007-01-20 Roger Sayle + + * trans-intrinsic.c (gfc_conv_intrinsic_sign): New branchless + implementation for the SIGN intrinsic with integral operands. + (gfc_conv_intrinsic_minmax): Fix whitespace. + +2007-01-20 Francois-Xavier Coudert + + * gfortran.h (gfc_options_t): Add flag_allow_leading_underscore. + * lang.opt: Add -fallow-leading-underscore. + * match.c (gfc_match_name): Allow leading underscore in symbol + name if -fallow-leading-underscore is used. + * symbol.c (gfc_get_default_type): Add special case for symbol + names beginning with an underscore. + * trans-decl.c (gfc_get_extern_function_decl, + gfc_build_intrinsic_function_decls): Add _gfortran prefix to + library symbols selected_int_kind, selected_real_kind and + all specifics. + * options.c (gfc_init_options, gfc_handle_option): Handle the + new -fallow-leading-underscore option. + +2007-01-20 Francois-Xavier Coudert + + PR fortran/30446 + * options.c (gfc_handle_module_path_options): Path used in -J + option is now added to the module search path. + +2007-01-20 Richard Guenther + + PR fortran/30223 + * f95-lang.c (gfc_init_builtin_functions): Provide cbrt and + cexpi builtins if we have TARGET_C99_FUNCTIONS. Provide + sincos builtins if the target has sincos. + +2007-01-19 Brooks Moses + + * intrinsic.texi (MATMUL): Corrected a typo. + (MAX): Separated @var arguments. + (MIN): Separated @var arguments. + +2007-01-19 Brooks Moses + + * intrinsic.texi: general whitespace cleanup. + (menu): Added TIME8, removed UNMASK. + (AINT): Clarified argument requirement. + (ANINT): Clarified argument requirement. + (CEILING): Clarified argument requirement. + (CHAR): Clarified argument requirement. + (CMPLX): Clarified argument requirement. + (DCMPLX): Clarified argument requirement. + (FGET): Line rewrapping. + (FLOOR): Clarified argument requirement. + (GMTIME): Added documentation. + (IAND): Added cross-reference. + (IBCLR): Added cross-reference. + (IBSET): Added cross-reference. + (IEOR): Added cross-reference. + (INT): Collapsed examples, clarified argument requirement. + (IOR): Added cross-references. + (LEN_TRIM): Corrected result kind. + (LINK): Added cross-reference. + (LLT): Removed "documentation pending". + (LOGICAL): Added documentation. + (LSHIFT): Added documentation. + (LTIME): Added documentation. + (MATMUL): Added documentation. + (MAX): Added documentation. + (MAXLOC): Added documentation. + (MAXVAL): Added documentation. + (MERGE): Added documentation. + (MIN): Added documentation. + (MINLOC): Added documentation. + (MINVAL): Added documentation. + (MVBITS): Moved to correct place, added documentation. + (NOT): Added documentation. + (PERROR): Added documentation. + (RAN): Moved to correct place, added documentation. + (REAL): Clarified argument requirement. + (RENAME): Added documentation. + (RSHIFT): Clarified argument requirement. + (SIGN): Corrected table specification. + (SYMLNK): Added documentation. + (SYSTEM): Added documentation. + (TIME): Added documentation. + (TIME8): Added section and documentation. + (UNMASK): Removed erroneous section. + +2007-01-18 H.J. Lu + + * trans-stmt.c (compute_overall_iter_number): Fix a typo. + +2007-01-18 Roger Sayle + + * trans-expr.c (copyable_array_p): Consider user derived types without + allocatable components to be copyable. + +2007-01-18 Roger Sayle + + * trans-stmt.c (compute_overall_iter_number): Enhance to precompute + the number of interations in unconditional FORALL nests with constant + bounds. + +2007-01-18 Francois-Xavier Coudert + Tobias Burnus + + PR libfortran/29649 + * gfortran.h (gfc_option_t): Add flag_dump_core. + * lang.opt: Add -fdump-core option. + * invoke.texi: Document the new options. + * trans-decl.c (gfc_build_builtin_function_decls): Add new + options to the call to set_std. + * options.c (gfc_init_options, gfc_handle_option): Set the + new options. + +2007-01-17 Paul Thomas + + PR fortran/30476 + * module.c (load_generic_interfaces): Make the marking of the + symbol as ambiguous conditional on the module names being + different. + (write_generic): Ensure that the generic interface has a + non-NULL module field. + +2007-01-16 Roger Sayle + + PR fortran/30404 + * trans-stmt.c (forall_info): Remove pmask field. + (gfc_trans_forall_loop): Remove NVAR argument, instead assume that + NVAR covers all the interation variables in the current forall_info. + Add an extra OUTER parameter, which specified the loop header in + which to place mask index initializations. + (gfc_trans_nested_forall_loop): Remove NEST_FLAG argument. + Change the semantics of MASK_FLAG to only control the mask in the + innermost loop. + (compute_overall_iter_number): Optimize the trivial case of a + top-level loop having a constant number of iterations. Update + call to gfc_trans_nested_forall_loop. Calculate the number of + times the inner loop will be executed, not to size of the + iteration space. + (allocate_temp_for_forall_nest_1): Reuse SIZE as BYTESIZE when + sizeof(type) == 1. Tidy up. + (gfc_trans_assign_need_temp): Remove NEST_FLAG argument from calls + to gfc_trans_nested_forall_loop. + (gfc_trans_pointer_assign_need_temp): Likewise. + (gfc_trans_forall_1): Remove unused BYTESIZE, TMPVAR, SIZEVAR and + LENVAR local variables. Split mask allocation into a separate + hunk/pass from mask population. Use allocate_temp_for_forall_nest + to allocate the FORALL mask with the correct size. Update calls + to gfc_trans_nested_forall_loop. + (gfc_evaluate_where_mask): Update call to + gfc_trans_nested_forall_loop. + (gfc_trans_where_2): Likewise. + +2007-01-15 Paul Thomas + + PR fortran/28172 + * trans-stmt.c (gfc_trans_call): If it does not have one, get + a backend_decl for an alternate return. + + PR fortran/29389 + * resolve.c (pure_function): Statement functions are pure. Note + that this will have to recurse to comply fully with F95. + + PR fortran/29712 + * resolve.c (resolve_function): Only a reference to the final + dimension of an assumed size array is an error in an inquiry + function. + + PR fortran/30283 + * resolve.c (resolve_function): Make sure that the function + expression has a type. + +2007-01-14 Paul Thomas + + PR fortran/30410 + * trans-decl.c (gfc_sym_mangled_function_id): Module, external + symbols must not have the module name prepended. + +2007-01-11 Thomas Koenig + + PR libfortran/30415 + * iresolve.c (gfc_resolve_maxloc): If the rank + of the return array is nonzero and we process an + integer array smaller than default kind, coerce + the array to default integer. + * iresolve.c (gfc_resolve_minloc): Likewise. + +2007-01-11 Brooks Moses + + * simplify.c: Update copyright to 2007. + * scanner.c: Same. + +2007-01-11 Francois-Xavier Coudert + + PR fortran/30430 + * scanner.c (gfc_release_include_path): Free gfc_option.module_dir + only once! + +2007-01-09 Brooks Moses + + * simplify.c (gfc_simplify_ibclr): Fix POS comparison. + (gfc_simplify_ibset): Same. + +2007-01-09 Brooks Moses + + PR 30381 + PR 30420 + * simplify.c (convert_mpz_to_unsigned): New function. + (convert_mpz_to_signed): New function, largely based on + twos_complement(). + (twos_complement): Removed. + (gfc_simplify_ibclr): Add conversions to and from an + unsigned representation before bit-twiddling. + (gfc_simplify_ibset): Same. + (gfc_simplify_ishftc): Add checks for overly large + constant arguments, only check the third argument if + it's present, carry over high bits into the result as + appropriate, and perform the final conversion back to + a signed representation using the correct sign bit. + (gfc_simplify_not): Removed unnecessary masking. + +2007-01-09 Paul Thomas + + PR fortran/30408 + * resolve.c (resolve_code): Use the code->expr character length + directly to set length of llen. + +2007-01-09 Jerry DeLisle + + PR fortran/30408 + * lang.opt: Add Wcharacter_truncation option. + * options.c (gfc_init_options): Initialize + gfc_option.warn_character_truncation to zero. + (gfc_handle_option): Add case for OPT_Wcharacter_truncation. + +2007-01-08 Steven G. Kargl + + * interface.c, intrinsic.c, gfortranspec.c, io.c, f95-lang.c, + iresolve.c, match.c: Update Copyright years. Whitespace. + +2007-01-08 Richard Guenther + + * trans-io.c (transfer_array_desc): Use build_int_cst instead + of build_int_cstu. + +2007-01-08 Roger Sayle + + * trans-array.c (constant_array_constructor_p): New function to + determine whether an array constructor consists only of constant + elements, and if so return it's size. + (gfc_build_constant_array_constructor): Construct a statically + initialized gfortran array for a given EXPR_ARRAY. + (gfc_trans_constant_array_constructor): Efficiently scalarize + a constant array constructor. + (gfc_trans_array_constructor): Tidy up use of CONST_STRING. + Special case scalarization of constant array constructors, all of + whose elements are specified, using constant_array_constructor_p + and gfc_trans_constant_array_constructor. + (gfc_conv_scalarized_array_ref): Check whetger info->offset is zero + before adding it to index, to avoid creating a NON_LVALUE_EXPR. + +2007-01-08 Kazu Hirata + + gfortran.texi: Fix typos. + +2007-01-07 Steven G. Kargl + + * decl.c, dump-parse-tree.c, error.c, data.c, expr.c, dependency.c, + convert.c: Update Copyright dates. Fix whitespace. + +2007-01-07 Bernhard Fischer + + * data.c (gfc_assign_data_value): Fix whitespace. + +2007-01-07 Bernhard Fischer + + * trans-array.c (gfc_trans_create_temp_array, gfc_array_init_size): + Commentary typo fix. + +2007-01-07 Bernhard Fischer + + PR fortran/27698 + * match.c (gfc_match_name): Print diagnostics for invalid + character in names. + +2007-01-06 Steven G. Kargl + + * array.c: Fix whitespace in comment table. + +2007-01-06 Steven G. Kargl + + * array.c, bbt.c, check.c: Update copyright years. Whitespace. + +2007-01-06 Steven G. Kargl + + * arith.c: Update copyright years. Whitespace. + +2007-01-05 Roger Sayle + + * trans-expr.c (gfc_trans_assignment_1): New subroutine to scalarize + array assignments split out from gfc_trans_assignment. + (gfc_trans_array_copy): New function to implement array to array + copies via calls to __builtin_memcpy. + (copyable_array_p): New helper function to identify an array of + simple/POD types, that may be copied/assigned using memcpy. + (gfc_trans_assignment): Use gfc_trans_array_copy to handle simple + whole array assignments considered suitable by copyable_array_p. + Invoke gfc_trans_assignment_1 to perform the fallback scalarization. + +2007-01-05 Roger Sayle + + * trans-array.c (gfc_trans_array_constructor_value): Make the + static const "data" array as TREE_READONLY. + * trans-stmt.c (gfc_trans_character_select): Likewise. + +2007-01-05 Roger Sayle + + * trans-array.c (gfc_conv_loop_setup): Test whether the loop + stride is one, to avoid fold_build2 introducing a useless + NON_LVALUE_EXPR node. + +2007-01-05 Tobias Burnus + + * symbol.c (check_conflict): Fix error message. + +2007-01-05 Paul Thomas + + PR fortran/23232 + * decl.c (gfc_in_match_data, gfc_set_in_match_data): New + functions to signal that a DATA statement is being matched. + (gfc_match_data): Call gfc_set_in_match_data on entry and on + exit. + * gfortran.h : Add prototypes for above. + * expr.c (check_init_expr): Avoid check on parameter or + variable if gfc_in_match_data is true. + (gfc_match_init_expr): Do not call error on non-reduction of + expression if gfc_in_match_data is true. + + PR fortran/27996 + PR fortran/27998 + * decl.c (gfc_set_constant_character_len): Add boolean arg to + flag array constructor resolution. Warn if string is being + truncated. Standard dependent error if string is padded. Set + new arg to false for all three calls to + gfc_set_constant_character_len. + * match.h : Add boolean arg to prototype for + gfc_set_constant_character_len. + * gfortran.h : Add warn_character_truncation to gfc_options. + * options.c (set_Wall): Set warn_character_truncation if -Wall + is set. + * resolve.c (resolve_code): Warn if rhs string in character + assignment has to be truncated. + * array.c (gfc_resolve_character_array_constructor): Set new + argument to true for call to gfc_set_constant_character_len. + +2007-01-05 Tobias Burnus + + PR fortran/29624 + * interface.c (compare_parameter_intent): New function. + (check_intents): Support pointer intents. + * symbol.c (check_conflict): Support pointer intents, + better conflict_std message. + * expr.c (gfc_check_assign,gfc_check_pointer_assign): + Support pointer intents. + * resolve.c (resolve_deallocate_expr,resolve_allocate_expr): + Support pointer intents. + +2007-01-03 Brooks Moses + + PR 30371 + * check.c (gfc_check_kill_sub): Add checks for non-scalar + arguments. + +2007-01-04 Brooks Moses + + * intrinsic.texi: Minor cleanup, reflowing overlong + paragraphs, and correcting whitespace. + +2007-01-04 Brooks Moses + + * intrinsic.texi (LBOUND): Add documentation. + (LGE): Add documentation. + (LGT): Add documentation. + (LINK): Add documentation. + (LLE): Add documentation. + (LLT): Add documentation. + (LNBLNK): Add documentation. + (UBOUND): Add documentation. + (UNLINK): Add documentation. + +2007-01-04 Brooks Moses + + * intrinsic.texi (IAND): Clarify argument specifications. + (IBCLR): Add documentation. + (IBITS): Add documentation. + (IBSET): Add documentation. + (IEOR): Add documentation. + (IERRNO): Add documentation. + (INDEX): Add documentation. + (IOR): Add documentation. + (ISHFT): Add documentation. + (ISHFTC): Add documentation. + (KILL): Add documentation. + (LEN_TRIM): Add documentation. + +2007-01-04 Brooks Moses + + PR 30235 + * interface.c (compare_actual_formal): check for + alternate returns when iterating over non-present + arguments. + +2007-01-04 Brooks Moses + + * invoke.texi: Update manpage copyright to include 2007. + +2007-01-04 Brooks Moses + + * gfortran.texi: Update copyright to include 2007. + * intrinsic.texi: Update copyright to include 2007. + * invoke.texi: Update copyright to include 2007. + +2007-01-02 Tobias Burnus + Jakub Jelinek + + PR fortran/30276 + * scanner.c (open_included_file): Revert patch. + (gfc_open_included_file): Support absolute pathnames. + (gfc_open_intrinsic_module): Support absolute pathnames. + +2007-01-03 Brooks Moses + + * gfortran.texi (GNU Fortran and GCC): Rewrite + +2007-01-03 Brooks Moses + + * gfortran.texi (Introduction): Lower "Part I: + Introduction" to a chapter, renumber Parts II and III to + Parts I and II. + * intrinsic.texi (Introduction): Rename to "Introduction + to Intrinsics" to avoid conflict with the new chapter. + +2007-01-03 Brooks Moses + + * intrinsic.texi (Introduction): Rewrite first paragraph. + +2007-01-03 Brooks Moses + + * invoke.texi (OpenMP): Added index entry. + * gfortran.texi (title page): Removed erroneous '*'. + +2007-01-03 Brooks Moses + + * gfortran.texi (GFORTRAN_DEFAULT_RECL): Added units + to description. + (Extensions): Miscellaneous minor rewriting and copyediting. + (BOZ-literal constants): Renamed from Hexadecimal constants. + (Hollerith constants support): Added explanation and + suggestions for standard-conforming modern equivalents. + +2007-01-03 Brooks Moses + + * intrinsic.texi: Improvements to index entries; change + @findex entries to @cindex entries. + * invoke.texi: Standardize and improve index entries. + * gfortran.texi: Fix @code in one index entry. + +2007-01-03 Brooks Moses + + * invoke.texi: Change @code-type macros to appropriate + variants (@command, @option, etc.) + * gfortran.texi: Same. + +2007-01-03 Brooks Moses + + * intrinsic.texi: Various minor cleanups. + +2007-01-02 Steven G. Kargl + + * trans-intrinsic.c (gfc_conv_intrinsic_ibits): Fix call to + build_int_cst. + +2007-01-02 Tobias Burnus + + PR fortran/30276 + * scanner.c (open_included_file): Support full-path filenames. + +2007-01-02 Paul Thomas + + PR fortran/20896 + * interface.c (check_sym_interfaces): Remove call to + resolve_global_procedure. + gfortran.h : Remove prototype for resolve_global_procedure. + resolve.c (resolve_global_procedure): Add static attribute + to function declaration. + +2007-01-01 Steven G. Kargl + + * ChangeLog: Copy to ... + * ChangeLog-2006: here. diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index 2b86110..e69de29 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,2480 +0,0 @@ -2007-12-27 Thomas Koenig - - PR libfortran/22423 - * intrinsics/pack_generic.c (pack): Change type of mask argument - to gfc_array_l1 * in prototype and function. - (pack_char): Likewise. - * intrinsics/unpack_generic.c (unpack1): Likewise. - (unpack1_char): Likewise. - (unpack0): Likewise. - (unpack0_char): Likewise. - -2007-12-27 Thomas Koenig - - PR libfortran/34594 - * runtime/error.c: If there was a previous error, don't - mask it with another error mesage, EOF or EOR condition. - -2007-12-25 Jerry DeLisle - - PR libfortran/34560 - * io/transfer.c (read_sf): Check if readlen was less than the requested - number of bytes to read and if so, generate error. - -2007-12-25 Daniel Franke - - PR fortran/34533 - * intrinsics/cpu_time.c: Moved code commonly usable for CPU_TIME, - DTIME and ETIME to ... - * intrinsics/time_1.h: ... here. - * intrinsics/dtime.c: New file. - * intrinsics/etime.c: Newly implemented using the common - time-aquisition function from time_1.h. - * gfortran.map (_gfortran_dtime, _gfortran_dtime_sub): New. - * Makefile.am: Added new file. - * Makefile.in: Regenerated. - * configure: Regenerated. - -2007-12-25 Thomas Koenig - - PR libfortran/34566 - * m4/matmull.m4: Multiply xstride and ystride by correct kind. - * generated/matmul_l4.c: Regenerated. - * generated/matmul_l8.c: Regenerated. - * generated/matmul_l16.c: Regenerated. - -2007-12-19 Tobias Burnus - - PR fortran/34530 - * io/list_read.c (eat_line): Move up in the file. - (eat_separator): In namelist mode, skip over comment lines. - -2007-12-16 Jerry DeLisle - - PR fortran/34427 - * io/list_read.c (read_real): Handle intervening line ends and spaces. - (get_name): Don't push separators to saved_string. - (eat_separator): If in namelist mode eat spaces and line ends as well. - -2007-12-13 Thomas Koenig - - PR libfortran/34370 - PR libfortran/34323 - PR libfortran/34405 - * io/io.h: Add previous_nonadvancing_write to gfc_unit. - Add prototype for finish_last_advance_record. - * io/file_pos.c (st_backspace): Generate error if backspace is - attempted for direct access or unformatted stream. - If there are bytes left from a previous ADVANCE="no", write - them out before performing the backspace. - (st_endfile): Generate error if endfile is attempted for - direct access. - If there are bytes left from a previous ADVANCE="no", write - them out before performing the endfile. - (st_rewind): Generate error if rewind is attempted for - direct access. - * unit.c (close_unit_1): Move functionality to write - previously written bytes to... - (finish_last_advance_record): ... here. - * transfer.c (data_transfer_init): If reading, reset - previous_nonadvancing_write. - (finalize_transfer): Set the previous_noadvancing_write - flag if we are writing and ADVANCE="no" was specified. - Only call next_record() if advance="no" wasn't specified. - -2007-12-13 Tobias Burnus - - PR fortran/34427 - * io/list_read.c (read_real): Fix unwinding for namelists. - -2007-12-10 Jerry DeLisle - - PR libfortran/34411 - * io/read.c (convert_real, read_l, read_decimal, read_radix, read_f): - Call next_record after bad read or overflow error. - -2007-12-09 Tobias Burnus - - PR fortran/34404 - * io/list_read.c (parse_real): Remove superfluous "goto bad;". - -2007-12-08 Tobias Burnus - - PR fortran/34319 - * io/list_read.c (parse_real, read_real): Support NaN/Infinity. - -2007-12-02 Jerry DeLisle - Thomas Koenig - - PR libfortran/33985 - * io/transfer.c (read_block, read_block_direct, write_block, write_buf): - Don't seek if file position is already there for STREAM I/O. - (finalize_transfer): For STREAM I/O don't flush unless the file position - has moved past the start position before the transfer. - -2007-12-01 Francois-Xavier Coudert - - * intrinsic/stat.c (stat_i4_sub_0, stat_i8_sub_0): Mark parameter - with unused attribute. - * intrinsics/system_clock.c (system_clock_4, system_clock_8): - Remove unused variable. - * intrinsics/umask.c: Include unistd.h. - -2007-11-30 Jerry DeLisle - - PR libfortran/34291 - * io/list_read.c (read_character): When reading an unquoted string, - return if special characters that could signify the end of the namelist - read are encountered. - -2007-11-29 Steven G. Kargl - - PR libfortran/33583 - * libgfortran/gfortran.map: Add tgammaf, tgamma, lgamma, and lgammaf. - * gfortran.dg/gamma_5.f90: Remove xfail. - -2007-11-16 Francois-Xavier Coudert - - PR libfortran/33583 - PR libfortran/33698 - * intrinsics/c99_functions.c (tgamma, tgammaf, lgamma, lgammaf): - New fallback functions. - * c99_protos.h (tgamma, tgammaf, lgamma, lgammaf): New prototypes. - * configure.ac: Add checks for tgamma, tgammaf, tgammal, lgamma, - lgammaf and lgammal. - * config.h.in: Regenerate. - * configure: Regenerate. - -2007-11-08 Francois-Xavier Coudert - - * mk-kinds-h.sh: Change sed syntax. - -2007-11-06 Jerry DeLisle - - PR libfortran/33985 - * io/transfer.c (finalize_transfer): Revert previous patch. - -2007-11-03 Jerry DeLisle - - PR libfortran/33985 - * io/transfer.c (finalize_transfer): Do not flush for - unformatted STREAM I/O. - -2007-10-27 Tobias Burnus - - * mk-kinds-h.sh: Change LANG=C to LC_ALL=C. - -2007-10-26 Tobias Burnus - - * mk-kinds-h.sh: Add "LANG=C". - -2007-10-26 Francois-Xavier Coudert - - * libgfortran.h (GFC_REAL_*_HUGE, GFC_REAL_*_DIGITS, - GFC_REAL_*_RADIX): Remove. - * mk-kinds-h.sh: Define GFC_REAL_*_HUGE, GFC_REAL_*_DIGITS and - GFC_REAL_*_RADIX. Don't define GFC_REAL_LARGEST_FORMAT and - GFC_REAL_LARGEST. - -2007-10-19 Ben Elliston - - * intrinsics/signal.c (alarm_sub_i4): Mark conditionally unused - parameters with __attribute__ ((unused)). - (alarm_sub_i8): Likewise. - (alarm_sub_int_i4): Likewise. - (alarm_sub_int_i8): Likewise. - -2007-10-18 Francois-Xavier Coudert - Jerry DeLisle - - PR libfortran/33795 - * libgfortran.h: Add unbuffered_preconnected. - * io/unix.c (output_stream): Set stream unbuffered flag if - options.unbuffered_preconnected has been set. - (error_stream): Ditto. - * runtime/environ.c (variable_table): Add to environment variable table - the entry: GFORTRAN_UNBUFFERED_PRECONNECTED. - -2007-10-18 Francois-Xavier Coudert - - PR libfortran/32021 - * runtime/backtrace.c (local_strcasestr): Protect by appropriate - macros. - * runtime/main.c (cleanup): Cast argument to free. - * intrinsics/spread_generic.c (spread_internal): Match runtime_error - arguments and format. - * intrinsics/signal.c (alarm_sub_int_i4, alarm_sub_int_i8): Cast - pointers to avoid warnings. - -2007-10-18 Ben Elliston - - * runtime/environ.c (init_choice): Remove unused function. - (show_choice): Likewise. - (choice): Remove. - (FP_ROUND_NEAREST, FP_ROUND_UP, FP_ROUND_DOWN, FP_ROUND_ZERO): - Remove. - (precision, signal_choices): Remove. - -2007-10-15 Christopher D. Rickett - - PR fortran/32600 - * libgfortran/intrinsics/iso_c_binding.c: Remove c_associated_1 - and c_associated_2. - * libgfortran/intrinsics/iso_c_binding.h: Ditto. - * libgfortran/gfortran.map: Ditto. - -2007-10-15 Jerry DeLisle - - PR libfortran/33055 - * io/inquire.c (inquire_via_unit): If inquiring by unit, check for - an error condition from the IOSTAT variable and set EXIST to false if - there was a bad unit number. - -2007-10-14 Jerry DeLisle - - PR libfortran/33672 - * io/list_read.c (nml_parse_qualifier): Add character specific error - messages. Check for proper form of sub-string qualifiers. Return the - parsed_rank flag indicating a non-zero rank qualifier. - (nml_get_obj_data): Count the instances of non-zero rank qualifiers. - Issue an error if more that one non-zero rank qualifier is found. - -2007-10-04 Jerry DeLisle - - PR libfortran/33253 - * io/list_read.c (read_character): Use line_buffer to scan ahead for - object name or string when no delimiter is found. - -2007-10-04 Francois-Xavier Coudert - - PR libfortran/32021 - * runtime/environ.c (init_mem, show_mem, init_round, show_round, - init_precision, show_precision, init_signal, show_signal): Remove. - (variable_table): Remove GFORTRAN_MEM_INIT, GFORTRAN_MEM_CHECK, - GFORTRAN_SIGHUP, GFORTRAN_SIGINT, GFORTRAN_FPU_ROUND and - GFORTRAN_FPU_PRECISION. - * libgfortran.h (options_t): Remove mem_check, fpu_round, - fpu_precision, sighup, sigint, allocate_init_flag and - allocate_init_value. - -2007-10-02 Jerry DeLisle - - PR libfortran/33253 - * io/list_read.c (read_character): Use DELIM_APOSTROPHE and DELIM_QUOTE - and quote value in check of first character in string. - -2007-10-02 Francois-Xavier Coudert - - PR fortran/33469 - * io/write.c (write_real): Widen the default formats. - -2007-09-28 Jerry DeLisle - - PR libfortran/33400 - * io/list_read.c (next_char): Interpret encountering the end of file the - first time as an end of line. Subsequent reads give EOF error. - -2007-09-27 Jerry DeLisle - - PR libfortran/33421 - * io/list_read.c (read_character): Revert r128057. - -2007-09-21 Bernhard Fischer - - PR fortran/31546 - * (configure.ac): Add --enable-intermodule for onestep build. - * (Makefile.am): Handle onestep build. - * (configure, Makefile.in): Regenerate. - -2007-09-21 Francois-Xavier Coudert - - PR libfortran/26253 - * intrinsics/c99_functions.c (scalbn): Use ldexp if appopriate. - -2007-09-21 Francois-Xavier Coudert - - PR libfortran/23272 - * io/unix.c (id_from_handle, id_from_path, id_from_fd): New - functions. - (compare_file_filename, find_file, find_file0): Use the new - functions above. - -2007-09-21 Francois-Xavier Coudert - - * acinclude.m4 (LIBGFOR_TARGET_ILP32): Remove test. - * configure.ac: Don't call LIBGFOR_TARGET_ILP32. - * configure: Regenerate. - * config.h.in: Regenerate. - -2007-09-15 Francois-Xavier Coudert - - PR libfortran/21185 - * runtime/compile_options.c (set_options): Fix typo. - * runtime/main.c (store_exe_path): If getcwd is not available, - don't use it. - * intrinsics/getcwd.c: Same thing here. - * io/unix.c (fallback_access): New fallback function for access. - (fix_fd): Don't use dup if it's not available. - * configure.ac: Check for dup and getcwd. - * configure: Regenerate. - * config.h.in: Regenerate. - -2007-09-12 Francois-Xavier Coudert - - * io/io.h: Include libgfortran.h first. - -2007-09-11 Francois-Xavier Coudert - - PR libfortran/33386 - * runtime/select.c (select_string): Initialize default_jump. - -2007-09-07 Jerry DeLisle - - PR libfortran/33307 - * io/filepos.c (st_backspace): Don't truncate when already at the end - of the file. - -2007-09-07 Uros Bizjak - - * config/fpu-387.h: Include cpuid.h. - (set_fpu): Use __get_cpuid to check for SSE. - -2007-09-06 Thomas Koenig - - PR fortran/33298 - * intrinsics/spread_generic.c(spread_internal): Enable - bounds checking by comparing extents if the bounds_check - option has been set. If any extent is <=0, return early. - -2007-09-06 David Edelsohn - - * libgfortran.h: Include config.h first. - * io/io.h (struct stream): Rename truncate to trunc. - * io/unix.c (fd_open): Same. - (open_internal): Same. - -2007-09-05 Jerry DeLisle - - PR libfortran/33253 - * io/write.c (nml_write_obj): Set the delimiter correctly before - calling write_character. (namelist_write): Clean up the code a little - and add comments to clarify what its doing. - -2007-09-04 Jerry DeLisle - - PR libfortran/33225 - * io/write.c (stdbool.h): Add include. (sign_t): Move typedef to - new file write_float.def. Include write_float.def. - (extract_real): Delete. (calculate_sign): Delete. - (calculate_exp): Delete. (calculate_G_format): Delete. - (output_float): Delete. (write_float): Delete. - * io/write_float.def (calculate_sign): Added. - (output_float): Refactored to be independent of kind and added to this - file for inclusion. (write_infnan): New function to write "Infinite" - or "NaN" depending on flags passed, independent of kind. - (CALCULATE_EXP): New macro to build kind specific functions. Use it. - (OUTPUT_FLOAT_FMT_G): New macro, likewise. Use it. - (DTOA, DTOAL): Macros to implement "decimal to ascii". - (WRITE_FLOAT): New macro for kind specific write_float functions. - (write_float): Revised function to determine kind and use WRITE_FLOAT - to implement kind specific output. - -2007-09-03 Jerry DeLisle - - PR libfortran/33253 - * io/list_read.c (read_character): Use DELIM_APOSTROPHE and - DELIM_QUOTE in check of first character in string. - -2007-09-03 Francois-Xavier Coudert - - PR fortran/31675 - * libgfortran.h: Include gcc/fortran/libgfortran.h. - Remove M_PI, GFC_MAX_DIMENSIONS, GFC_DTYPE_*, GFC_NUM_RANK_BITS, - error_codes, GFC_STD_*, GFC_FPE_* and unit_convert. - * runtime/environ.c (variable_table): Use GFC_*_UNIT_NUMBER instead - of hardcoded constants. - (do_parse, init_unformatted): Use GFC_CONVERT_* macros instead of - CONVERT_*. - * runtime/string.c (find_option): Use LIBERROR_BAD_OPTION instead - of ERROR_BAD_OPTION. - * runtime/error.c (translate_error, generate_error): Use - LIBERROR_* macros instead of ERROR_*. - * io/file_pos.c (formatted_backspace, unformatted_backspace, - st_backspace, st_rewind, st_flush): Rename macros. - * io/open.c (convert_opt, edit_modes, new_unit, already_open, - st_open): Likewise. - * io/close.c (st_close): Likewise. - * io/list_read.c (next_char, convert_integer, parse_repeat, - read_logical, read_integer, read_character, parse_real, - check_type, list_formatted_read_scalar, namelist_read, - nml_err_ret): Likewise. - * io/read.c (convert_real, read_l, read_decimal, read_radix, - read_f): Likewise. - * io/inquire.c (inquire_via_unit): Likewise. - * io/unit.c (get_internal_unit): Likewise. - * io/transfer.c (read_sf, read_block, read_block_direct, - write_block, write_buf, unformatted_read, unformatted_write, - formatted_transfer_scalar, us_read, us_write, data_transfer_init, - skip_record, next_record_r, write_us_marker, next_record_w_unf, - next_record_w, finalize_transfer, st_read, st_write_done): - Likewise. - * io/format.c (format_error): Likewise. - -2007-08-31 Francois-Xavier Coudert - - * m4/minloc1.m4: Update copyright year and ajust headers order. - * m4/maxloc1.m4: Likewise. - * m4/in_pack.m4: Likewise. - * m4/sum.m4: Likewise. - * m4/fraction.m4: Likewise. - * m4/all.m4: Likewise. - * m4/set_exponent.m4: Likewise. - * m4/transpose.m4: Likewise. - * m4/eoshift1.m4: Likewise. - * m4/spacing.m4: Likewise. - * m4/eoshift3.m4: Likewise. - * m4/minval.m4: Likewise. - * m4/count.m4: Likewise. - * m4/maxval.m4: Likewise. - * m4/exponent.m4: Likewise. - * m4/shape.m4: Likewise. - * m4/head.m4: Likewise. - * m4/cshift1.m4: Likewise. - * m4/minloc0.m4: Likewise. - * m4/nearest.m4: Likewise. - * m4/maxloc0.m4: Likewise. - * m4/pow.m4: Likewise. - * m4/in_unpack.m4: Likewise. - * m4/matmull.m4: Likewise. - * m4/product.m4: Likewise. - * m4/reshape.m4: Likewise. - * m4/any.m4: Likewise. - * m4/rrspacing.m4: Likewise. - * m4/matmul.m4: Likewise. - * runtime/backtrace.c: Likewise. - * runtime/environ.c: Likewise. - * runtime/in_pack_generic.c: Likewise. - * runtime/compile_options.c: Likewise. - * runtime/in_unpack_generic.c: Likewise. - * runtime/main.c: Likewise. - * runtime/stop.c: Likewise. - * runtime/string.c: Likewise. - * runtime/memory.c: Likewise. - * runtime/error.c: Likewise. - * runtime/pause.c: Likewise. - * intrinsics/ierrno.c: Likewise. - * intrinsics/system_clock.c: Likewise. - * intrinsics/cshift0.c: Likewise. - * intrinsics/unlink.c: Likewise. - * intrinsics/ctime.c: Likewise. - * intrinsics/etime.c: Likewise. - * intrinsics/cpu_time.c: Likewise. - * intrinsics/malloc.c: Likewise. - * intrinsics/hostnm.c: Likewise. - * intrinsics/sleep.c: Likewise. - * intrinsics/exit.c: Likewise. - * intrinsics/perror.c: Likewise. - * intrinsics/transpose_generic.c: Likewise. - * intrinsics/pack_generic.c: Likewise. - * intrinsics/spread_generic.c: Likewise. - * intrinsics/stat.c: Likewise. - * intrinsics/string_intrinsics.c: Likewise. - * intrinsics/getcwd.c: Likewise. - * intrinsics/date_and_time.c: Likewise. - * intrinsics/unpack_generic.c: Likewise. - * intrinsics/move_alloc.c: Likewise. - * intrinsics/getlog.c: Likewise. - * intrinsics/eoshift0.c: Likewise. - * intrinsics/eoshift2.c: Likewise. - * intrinsics/reshape_generic.c: Likewise. - * intrinsics/system.c: Likewise. - * intrinsics/iso_c_binding.c: Likewise. - * intrinsics/env.c: Likewise. - * intrinsics/kill.c: Likewise. - * intrinsics/reshape_packed.c: Likewise. - * intrinsics/time.c: Likewise. - * intrinsics/gerror.c: Likewise. - * intrinsics/access.c: Likewise. - * intrinsics/fnum.c: Likewise. - * intrinsics/abort.c: Likewise. - * intrinsics/rename.c: Likewise. - * intrinsics/signal.c: Likewise. - * intrinsics/symlnk.c: Likewise. - * intrinsics/random.c: Likewise. - * intrinsics/umask.c: Likewise. - * intrinsics/getXid.c: Likewise. - * intrinsics/rand.c: Likewise. - * intrinsics/chdir.c: Likewise. - * intrinsics/chmod.c: Likewise. - * intrinsics/clock.c: Likewise. - * intrinsics/args.c: Likewise. - * intrinsics/link.c: Likewise. - * c99_protos.h: Likewise. - * config/fpu-387.h: Likewise. - * config/fpu-aix.h: Likewise. - * config/fpu-sysv.h: Likewise. - * config/fpu-generic.h: Likewise. - * config/fpu-glibc.h: Likewise. - * io/file_pos.c: Likewise. - * io/open.c: Likewise. - * io/size_from_kind.c: Likewise. - * io/close.c: Likewise. - * io/list_read.c: Likewise. - * io/read.c: Likewise. - * io/inquire.c: Likewise. - * io/unit.c: Likewise. - * io/unix.c: Likewise. - * io/transfer.c: Likewise. - * io/intrinsics.c: Likewise. - * io/format.c: Likewise. - * io/lock.c: Likewise. - * io/write.c: Likewise. - * io/write_float.def: Likewise. - * fmain.c: Likewise. - * generated/minval_r8.c: Regenerate. - * generated/minloc1_16_r16.c: Regenerate. - * generated/maxloc1_4_r8.c: Regenerate. - * generated/sum_i8.c: Regenerate. - * generated/eoshift3_4.c: Regenerate. - * generated/transpose_c8.c: Regenerate. - * generated/any_l16.c: Regenerate. - * generated/eoshift1_8.c: Regenerate. - * generated/pow_r8_i8.c: Regenerate. - * generated/reshape_r16.c: Regenerate. - * generated/pow_i4_i16.c: Regenerate. - * generated/maxval_i2.c: Regenerate. - * generated/product_r4.c: Regenerate. - * generated/maxloc1_8_i4.c: Regenerate. - * generated/exponent_r16.c: Regenerate. - * generated/maxloc0_4_r4.c: Regenerate. - * generated/fraction_r16.c: Regenerate. - * generated/in_unpack_i8.c: Regenerate. - * generated/matmul_r8.c: Regenerate. - * generated/product_i2.c: Regenerate. - * generated/fraction_r4.c: Regenerate. - * generated/minloc0_4_r16.c: Regenerate. - * generated/reshape_c4.c: Regenerate. - * generated/minloc0_4_i1.c: Regenerate. - * generated/maxloc0_4_r16.c: Regenerate. - * generated/maxloc0_4_i2.c: Regenerate. - * generated/minloc1_8_r16.c: Regenerate. - * generated/maxloc1_8_r16.c: Regenerate. - * generated/set_exponent_r8.c: Regenerate. - * generated/in_unpack_i16.c: Regenerate. - * generated/transpose_c16.c: Regenerate. - * generated/maxloc0_8_i8.c: Regenerate. - * generated/pow_c4_i8.c: Regenerate. - * generated/sum_r16.c: Regenerate. - * generated/sum_i1.c: Regenerate. - * generated/minloc1_4_r8.c: Regenerate. - * generated/transpose_r10.c: Regenerate. - * generated/pow_i8_i4.c: Regenerate. - * generated/maxloc1_16_r16.c: Regenerate. - * generated/minloc1_16_i4.c: Regenerate. - * generated/maxloc1_16_i4.c: Regenerate. - * generated/minloc0_16_i8.c: Regenerate. - * generated/maxloc0_16_i8.c: Regenerate. - * generated/nearest_r8.c: Regenerate. - * generated/spacing_r16.c: Regenerate. - * generated/transpose_i8.c: Regenerate. - * generated/count_16_l16.c: Regenerate. - * generated/maxval_r16.c: Regenerate. - * generated/count_8_l8.c: Regenerate. - * generated/product_c10.c: Regenerate. - * generated/minloc1_8_i4.c: Regenerate. - * generated/minloc0_16_i16.c: Regenerate. - * generated/matmul_r16.c: Regenerate. - * generated/eoshift1_16.c: Regenerate. - * generated/minloc0_4_r4.c: Regenerate. - * generated/pow_c16_i16.c: Regenerate. - * generated/set_exponent_r10.c: Regenerate. - * generated/pow_i16_i16.c: Regenerate. - * generated/product_c4.c: Regenerate. - * generated/sum_r4.c: Regenerate. - * generated/pow_c16_i4.c: Regenerate. - * generated/rrspacing_r10.c: Regenerate. - * generated/in_pack_c16.c: Regenerate. - * generated/minloc0_4_i2.c: Regenerate. - * generated/maxloc0_8_i1.c: Regenerate. - * generated/reshape_i4.c: Regenerate. - * generated/minloc0_8_i8.c: Regenerate. - * generated/matmul_c8.c: Regenerate. - * generated/spacing_r4.c: Regenerate. - * generated/in_pack_c4.c: Regenerate. - * generated/all_l16.c: Regenerate. - * generated/minloc1_16_r10.c: Regenerate. - * generated/sum_i2.c: Regenerate. - * generated/minloc0_16_i1.c: Regenerate. - * generated/reshape_c16.c: Regenerate. - * generated/maxloc0_16_i1.c: Regenerate. - * generated/maxloc1_8_r8.c: Regenerate. - * generated/minval_i16.c: Regenerate. - * generated/reshape_r10.c: Regenerate. - * generated/exponent_r10.c: Regenerate. - * generated/maxval_i4.c: Regenerate. - * generated/any_l4.c: Regenerate. - * generated/minval_i8.c: Regenerate. - * generated/maxloc1_4_i8.c: Regenerate. - * generated/fraction_r10.c: Regenerate. - * generated/maxloc0_16_i16.c: Regenerate. - * generated/shape_i4.c: Regenerate. - * generated/pow_r16_i8.c: Regenerate. - * generated/maxloc0_8_r4.c: Regenerate. - * generated/rrspacing_r8.c: Regenerate. - * generated/pow_c10_i4.c: Regenerate. - * generated/minloc1_4_i16.c: Regenerate. - * generated/minloc0_4_r10.c: Regenerate. - * generated/maxloc1_4_i16.c: Regenerate. - * generated/minloc0_8_i16.c: Regenerate. - * generated/maxloc0_4_r10.c: Regenerate. - * generated/maxloc0_8_i16.c: Regenerate. - * generated/minloc1_8_r10.c: Regenerate. - * generated/product_i4.c: Regenerate. - * generated/minloc0_16_r4.c: Regenerate. - * generated/sum_c16.c: Regenerate. - * generated/maxloc1_8_r10.c: Regenerate. - * generated/maxloc0_16_r4.c: Regenerate. - * generated/transpose_c10.c: Regenerate. - * generated/minloc1_16_r8.c: Regenerate. - * generated/minloc0_8_i1.c: Regenerate. - * generated/maxloc0_4_i4.c: Regenerate. - * generated/transpose_r4.c: Regenerate. - * generated/maxloc1_16_r8.c: Regenerate. - * generated/pow_i16_i8.c: Regenerate. - * generated/cshift1_4.c: Regenerate. - * generated/maxloc0_8_i2.c: Regenerate. - * generated/sum_r10.c: Regenerate. - * generated/nearest_r16.c: Regenerate. - * generated/sum_c4.c: Regenerate. - * generated/maxloc1_16_r10.c: Regenerate. - * generated/count_4_l16.c: Regenerate. - * generated/pow_c8_i8.c: Regenerate. - * generated/matmul_i8.c: Regenerate. - * generated/in_pack_i4.c: Regenerate. - * generated/pow_i4_i8.c: Regenerate. - * generated/minloc0_16_i2.c: Regenerate. - * generated/minloc1_8_r8.c: Regenerate. - * generated/maxloc0_16_i2.c: Regenerate. - * generated/exponent_r4.c: Regenerate. - * generated/spacing_r10.c: Regenerate. - * generated/matmul_c16.c: Regenerate. - * generated/pow_c4_i16.c: Regenerate. - * generated/maxval_r10.c: Regenerate. - * generated/count_4_l4.c: Regenerate. - * generated/shape_i16.c: Regenerate. - * generated/minval_i1.c: Regenerate. - * generated/maxloc1_4_i1.c: Regenerate. - * generated/matmul_r10.c: Regenerate. - * generated/minloc1_4_i8.c: Regenerate. - * generated/pow_r10_i8.c: Regenerate. - * generated/minloc0_8_r4.c: Regenerate. - * generated/in_unpack_c4.c: Regenerate. - * generated/matmul_l4.c: Regenerate. - * generated/product_i16.c: Regenerate. - * generated/minloc0_16_r16.c: Regenerate. - * generated/reshape_r8.c: Regenerate. - * generated/pow_r10_i16.c: Regenerate. - * generated/all_l4.c: Regenerate. - * generated/in_pack_c10.c: Regenerate. - * generated/minloc0_4_i4.c: Regenerate. - * generated/minloc0_8_i2.c: Regenerate. - * generated/matmul_i1.c: Regenerate. - * generated/reshape_c10.c: Regenerate. - * generated/minval_r4.c: Regenerate. - * generated/maxloc1_4_r4.c: Regenerate. - * generated/pow_r8_i16.c: Regenerate. - * generated/sum_i4.c: Regenerate. - * generated/maxval_r8.c: Regenerate. - * generated/count_16_l8.c: Regenerate. - * generated/transpose_c4.c: Regenerate. - * generated/eoshift1_4.c: Regenerate. - * generated/eoshift3_8.c: Regenerate. - * generated/minval_r16.c: Regenerate. - * generated/minloc1_4_i1.c: Regenerate. - * generated/minval_i2.c: Regenerate. - * generated/maxloc1_4_i2.c: Regenerate. - * generated/pow_i8_i16.c: Regenerate. - * generated/product_r8.c: Regenerate. - * generated/maxloc1_8_i8.c: Regenerate. - * generated/maxloc0_4_r8.c: Regenerate. - * generated/maxloc0_16_r16.c: Regenerate. - * generated/in_unpack_i4.c: Regenerate. - * generated/matmul_r4.c: Regenerate. - * generated/sum_c10.c: Regenerate. - * generated/minloc1_4_r16.c: Regenerate. - * generated/fraction_r8.c: Regenerate. - * generated/maxloc1_4_r16.c: Regenerate. - * generated/set_exponent_r4.c: Regenerate. - * generated/minloc0_8_r16.c: Regenerate. - * generated/in_unpack_c16.c: Regenerate. - * generated/reshape_c8.c: Regenerate. - * generated/maxloc0_8_r16.c: Regenerate. - * generated/nearest_r10.c: Regenerate. - * generated/maxloc0_8_i4.c: Regenerate. - * generated/pow_c4_i4.c: Regenerate. - * generated/matmul_i2.c: Regenerate. - * generated/minloc1_4_r4.c: Regenerate. - * generated/transpose_i16.c: Regenerate. - * generated/matmul_c10.c: Regenerate. - * generated/minloc0_16_i4.c: Regenerate. - * generated/maxloc0_16_i4.c: Regenerate. - * generated/pow_i8_i8.c: Regenerate. - * generated/nearest_r4.c: Regenerate. - * generated/minloc1_16_i8.c: Regenerate. - * generated/maxloc1_16_i8.c: Regenerate. - * generated/transpose_i4.c: Regenerate. - * generated/count_8_l4.c: Regenerate. - * generated/minloc1_4_i2.c: Regenerate. - * generated/matmul_l16.c: Regenerate. - * generated/maxloc1_8_i1.c: Regenerate. - * generated/minloc0_16_r10.c: Regenerate. - * generated/minloc1_8_i8.c: Regenerate. - * generated/minloc0_4_r8.c: Regenerate. - * generated/product_r16.c: Regenerate. - * generated/product_c8.c: Regenerate. - * generated/pow_r16_i16.c: Regenerate. - * generated/sum_r8.c: Regenerate. - * generated/pow_c16_i8.c: Regenerate. - * generated/in_pack_i16.c: Regenerate. - * generated/minloc0_8_i4.c: Regenerate. - * generated/matmul_c4.c: Regenerate. - * generated/minloc1_16_i16.c: Regenerate. - * generated/reshape_i8.c: Regenerate. - * generated/spacing_r8.c: Regenerate. - * generated/in_pack_c8.c: Regenerate. - * generated/maxloc1_8_r4.c: Regenerate. - * generated/minloc1_16_i1.c: Regenerate. - * generated/maxloc1_16_i1.c: Regenerate. - * generated/reshape_i16.c: Regenerate. - * generated/minval_r10.c: Regenerate. - * generated/pow_r4_i8.c: Regenerate. - * generated/minloc1_8_i1.c: Regenerate. - * generated/minval_i4.c: Regenerate. - * generated/maxloc1_4_i4.c: Regenerate. - * generated/maxloc1_8_i2.c: Regenerate. - * generated/maxval_i8.c: Regenerate. - * generated/eoshift3_16.c: Regenerate. - * generated/any_l8.c: Regenerate. - * generated/maxloc0_16_r10.c: Regenerate. - * generated/rrspacing_r4.c: Regenerate. - * generated/shape_i8.c: Regenerate. - * generated/maxloc0_8_r8.c: Regenerate. - * generated/minloc0_4_i16.c: Regenerate. - * generated/maxloc0_4_i16.c: Regenerate. - * generated/minloc1_4_r10.c: Regenerate. - * generated/minloc1_8_i16.c: Regenerate. - * generated/pow_c10_i8.c: Regenerate. - * generated/maxloc1_4_r10.c: Regenerate. - * generated/maxloc1_8_i16.c: Regenerate. - * generated/in_unpack_c10.c: Regenerate. - * generated/minloc0_8_r10.c: Regenerate. - * generated/maxloc0_8_r10.c: Regenerate. - * generated/minloc1_16_r4.c: Regenerate. - * generated/maxloc1_16_r4.c: Regenerate. - * generated/minloc0_16_r8.c: Regenerate. - * generated/pow_i16_i4.c: Regenerate. - * generated/product_i8.c: Regenerate. - * generated/maxloc0_16_r8.c: Regenerate. - * generated/sum_i16.c: Regenerate. - * generated/maxloc0_4_i8.c: Regenerate. - * generated/transpose_r8.c: Regenerate. - * generated/cshift1_8.c: Regenerate. - * generated/maxloc1_16_i16.c: Regenerate. - * generated/matmul_i4.c: Regenerate. - * generated/pow_c8_i4.c: Regenerate. - * generated/pow_i4_i4.c: Regenerate. - * generated/minloc1_8_r4.c: Regenerate. - * generated/sum_c8.c: Regenerate. - * generated/count_8_l16.c: Regenerate. - * generated/minloc1_16_i2.c: Regenerate. - * generated/maxloc1_16_i2.c: Regenerate. - * generated/in_pack_i8.c: Regenerate. - * generated/transpose_r16.c: Regenerate. - * generated/maxval_i16.c: Regenerate. - * generated/exponent_r8.c: Regenerate. - * generated/matmul_i16.c: Regenerate. - * generated/count_4_l8.c: Regenerate. - * generated/pow_c8_i16.c: Regenerate. - * generated/maxval_i1.c: Regenerate. - * generated/minloc1_4_i4.c: Regenerate. - * generated/minloc1_8_i2.c: Regenerate. - * generated/pow_c10_i16.c: Regenerate. - * generated/product_c16.c: Regenerate. - * generated/reshape_r4.c: Regenerate. - * generated/in_unpack_c8.c: Regenerate. - * generated/minloc0_8_r8.c: Regenerate. - * generated/matmul_l8.c: Regenerate. - * generated/product_r10.c: Regenerate. - * generated/set_exponent_r16.c: Regenerate. - * generated/cshift1_16.c: Regenerate. - * generated/product_i1.c: Regenerate. - * generated/all_l8.c: Regenerate. - * generated/maxloc0_4_i1.c: Regenerate. - * generated/rrspacing_r16.c: Regenerate. - * generated/minloc0_4_i8.c: Regenerate. - * generated/pow_r4_i16.c: Regenerate. - * generated/count_16_l4.c: Regenerate. - * generated/maxval_r4.c: Regenerate. - -2007-08-30 Jerry DeLisle - - PR libfortran/33225 - * io/write.c: Revert changes from patch of 2007-08-27. - * io/write_float.def: Remove file, reverting addition. - -2007-08-29 Francois-Xavier Coudert - - * runtime/memory.c (internal_realloc, allocate, allocate_array, - deallocate): Remove functions. - * gfortran.map (_gfortran_allocate, _gfortran_allocate_array, - _gfortran_deallocate, _gfortran_internal_realloc): Remove symbols. - * libgfortran.h (error_codes): Add comment. - -2007-08-28 Jerry DeLisle - - PR libfortran/33055 - Revert previous patch. - -2007-08-27 Jerry DeLisle - - * io/write.c (stdbool.h): Add include. (sign_t): Move typedef to - new file write_float.def. Include write_float.def. - (extract_real): Delete. (calculate_sign): Delete. - (calculate_exp): Delete. (calculate_G_format): Delete. - (output_float): Delete. (write_float): Delete. - * io/write_float.def (calculate_sign): Added. - (output_float): Refactored to be independent of kind and added to this - file for inclusion. (write_infnan): New function to write "Infinite" - or "NaN" depending on flags passed, independent of kind. - (CALCULATE_EXP): New macro to build kind specific functions. Use it. - (OUTPUT_FLOAT_FMT_G): New macro, likewise. Use it. - (DTOA, DTOAL): Macros to implement "decimal to ascii". - (WRITE_FLOAT): New macro for kind specific write_float functions. - (write_float): Revised function to determine kind and use WRITE_FLOAT - to implement kind specific output. - -2007-08-26 Jerry DeLisle - - PR libfortran/33055 - * io/inquire.c (inquire_via_unit): If inquiring by unit, check for - an error condition from the IOSTAT variable and set EXIST to false if - there was a bad unit number. - -2007-08-24 Thomas Koenig - - PR fortran/32972 - * libgfortran.h: Remove GFOR_POINTER_L8_TO_L4 macro. - Add GFOR_POINTER_TO_L1 macro. - * m4/iforeach.m4(`m'name`'rtype_qual`_'atype_code): - Change argument 'mask' to gfc_array_l1. Adjust prototype. - Change mask pointer to GFC_LOGICAL_1. Multiply strides - by kind of mask - * m4/ifunction.m4: Likewise. - * intrinsics/pack_generic.c(pack_internal): Likewise. - * intrinsics/unpack_generic.c(unpack_internal): Likewise. - * m4/matmull.m4: Switch to GFC_LOGICAL_1. Multiply strides by - kind of logical arguments a and b. - * generated/matmul_l16.c: Regenerated. - * generated/matmul_l4.c: Regenerated. - * generated/matmul_l8.c: Regenerated. - * generated/maxloc0_16_i1.c: Regenerated. - * generated/maxloc0_16_i16.c: Regenerated. - * generated/maxloc0_16_i2.c: Regenerated. - * generated/maxloc0_16_i4.c: Regenerated. - * generated/maxloc0_16_i8.c: Regenerated. - * generated/maxloc0_16_r10.c: Regenerated. - * generated/maxloc0_16_r16.c: Regenerated. - * generated/maxloc0_16_r4.c: Regenerated. - * generated/maxloc0_16_r8.c: Regenerated. - * generated/maxloc0_4_i1.c: Regenerated. - * generated/maxloc0_4_i16.c: Regenerated. - * generated/maxloc0_4_i2.c: Regenerated. - * generated/maxloc0_4_i4.c: Regenerated. - * generated/maxloc0_4_i8.c: Regenerated. - * generated/maxloc0_4_r10.c: Regenerated. - * generated/maxloc0_4_r16.c: Regenerated. - * generated/maxloc0_4_r4.c: Regenerated. - * generated/maxloc0_4_r8.c: Regenerated. - * generated/maxloc0_8_i1.c: Regenerated. - * generated/maxloc0_8_i16.c: Regenerated. - * generated/maxloc0_8_i2.c: Regenerated. - * generated/maxloc0_8_i4.c: Regenerated. - * generated/maxloc0_8_i8.c: Regenerated. - * generated/maxloc0_8_r10.c: Regenerated. - * generated/maxloc0_8_r16.c: Regenerated. - * generated/maxloc0_8_r4.c: Regenerated. - * generated/maxloc0_8_r8.c: Regenerated. - * generated/maxloc1_16_i1.c: Regenerated. - * generated/maxloc1_16_i16.c: Regenerated. - * generated/maxloc1_16_i2.c: Regenerated. - * generated/maxloc1_16_i4.c: Regenerated. - * generated/maxloc1_16_i8.c: Regenerated. - * generated/maxloc1_16_r10.c: Regenerated. - * generated/maxloc1_16_r16.c: Regenerated. - * generated/maxloc1_16_r4.c: Regenerated. - * generated/maxloc1_16_r8.c: Regenerated. - * generated/maxloc1_4_i1.c: Regenerated. - * generated/maxloc1_4_i16.c: Regenerated. - * generated/maxloc1_4_i2.c: Regenerated. - * generated/maxloc1_4_i4.c: Regenerated. - * generated/maxloc1_4_i8.c: Regenerated. - * generated/maxloc1_4_r10.c: Regenerated. - * generated/maxloc1_4_r16.c: Regenerated. - * generated/maxloc1_4_r4.c: Regenerated. - * generated/maxloc1_4_r8.c: Regenerated. - * generated/maxloc1_8_i1.c: Regenerated. - * generated/maxloc1_8_i16.c: Regenerated. - * generated/maxloc1_8_i2.c: Regenerated. - * generated/maxloc1_8_i4.c: Regenerated. - * generated/maxloc1_8_i8.c: Regenerated. - * generated/maxloc1_8_r10.c: Regenerated. - * generated/maxloc1_8_r16.c: Regenerated. - * generated/maxloc1_8_r4.c: Regenerated. - * generated/maxloc1_8_r8.c: Regenerated. - * generated/maxval_i1.c: Regenerated. - * generated/maxval_i16.c: Regenerated. - * generated/maxval_i2.c: Regenerated. - * generated/maxval_i4.c: Regenerated. - * generated/maxval_i8.c: Regenerated. - * generated/maxval_r10.c: Regenerated. - * generated/maxval_r16.c: Regenerated. - * generated/maxval_r4.c: Regenerated. - * generated/maxval_r8.c: Regenerated. - * generated/minloc0_16_i1.c: Regenerated. - * generated/minloc0_16_i16.c: Regenerated. - * generated/minloc0_16_i2.c: Regenerated. - * generated/minloc0_16_i4.c: Regenerated. - * generated/minloc0_16_i8.c: Regenerated. - * generated/minloc0_16_r10.c: Regenerated. - * generated/minloc0_16_r16.c: Regenerated. - * generated/minloc0_16_r4.c: Regenerated. - * generated/minloc0_16_r8.c: Regenerated. - * generated/minloc0_4_i1.c: Regenerated. - * generated/minloc0_4_i16.c: Regenerated. - * generated/minloc0_4_i2.c: Regenerated. - * generated/minloc0_4_i4.c: Regenerated. - * generated/minloc0_4_i8.c: Regenerated. - * generated/minloc0_4_r10.c: Regenerated. - * generated/minloc0_4_r16.c: Regenerated. - * generated/minloc0_4_r4.c: Regenerated. - * generated/minloc0_4_r8.c: Regenerated. - * generated/minloc0_8_i1.c: Regenerated. - * generated/minloc0_8_i16.c: Regenerated. - * generated/minloc0_8_i2.c: Regenerated. - * generated/minloc0_8_i4.c: Regenerated. - * generated/minloc0_8_i8.c: Regenerated. - * generated/minloc0_8_r10.c: Regenerated. - * generated/minloc0_8_r16.c: Regenerated. - * generated/minloc0_8_r4.c: Regenerated. - * generated/minloc0_8_r8.c: Regenerated. - * generated/minloc1_16_i1.c: Regenerated. - * generated/minloc1_16_i16.c: Regenerated. - * generated/minloc1_16_i2.c: Regenerated. - * generated/minloc1_16_i4.c: Regenerated. - * generated/minloc1_16_i8.c: Regenerated. - * generated/minloc1_16_r10.c: Regenerated. - * generated/minloc1_16_r16.c: Regenerated. - * generated/minloc1_16_r4.c: Regenerated. - * generated/minloc1_16_r8.c: Regenerated. - * generated/minloc1_4_i1.c: Regenerated. - * generated/minloc1_4_i16.c: Regenerated. - * generated/minloc1_4_i2.c: Regenerated. - * generated/minloc1_4_i4.c: Regenerated. - * generated/minloc1_4_i8.c: Regenerated. - * generated/minloc1_4_r10.c: Regenerated. - * generated/minloc1_4_r16.c: Regenerated. - * generated/minloc1_4_r4.c: Regenerated. - * generated/minloc1_4_r8.c: Regenerated. - * generated/minloc1_8_i1.c: Regenerated. - * generated/minloc1_8_i16.c: Regenerated. - * generated/minloc1_8_i2.c: Regenerated. - * generated/minloc1_8_i4.c: Regenerated. - * generated/minloc1_8_i8.c: Regenerated. - * generated/minloc1_8_r10.c: Regenerated. - * generated/minloc1_8_r16.c: Regenerated. - * generated/minloc1_8_r4.c: Regenerated. - * generated/minloc1_8_r8.c: Regenerated. - * generated/minval_i1.c: Regenerated. - * generated/minval_i16.c: Regenerated. - * generated/minval_i2.c: Regenerated. - * generated/minval_i4.c: Regenerated. - * generated/minval_i8.c: Regenerated. - * generated/minval_r10.c: Regenerated. - * generated/minval_r16.c: Regenerated. - * generated/minval_r4.c: Regenerated. - * generated/minval_r8.c: Regenerated. - * generated/product_c10.c: Regenerated. - * generated/product_c16.c: Regenerated. - * generated/product_c4.c: Regenerated. - * generated/product_c8.c: Regenerated. - * generated/product_i1.c: Regenerated. - * generated/product_i16.c: Regenerated. - * generated/product_i2.c: Regenerated. - * generated/product_i4.c: Regenerated. - * generated/product_i8.c: Regenerated. - * generated/product_r10.c: Regenerated. - * generated/product_r16.c: Regenerated. - * generated/product_r4.c: Regenerated. - * generated/product_r8.c: Regenerated. - * generated/sum_c10.c: Regenerated. - * generated/sum_c16.c: Regenerated. - * generated/sum_c4.c: Regenerated. - * generated/sum_c8.c: Regenerated. - * generated/sum_i1.c: Regenerated. - * generated/sum_i16.c: Regenerated. - * generated/sum_i2.c: Regenerated. - * generated/sum_i4.c: Regenerated. - * generated/sum_i8.c: Regenerated. - * generated/sum_r10.c: Regenerated. - * generated/sum_r16.c: Regenerated. - * generated/sum_r4.c: Regenerated. - * generated/sum_r8.c: Regenerated. - -2007-08-23 Francois-Xavier Coudert - - PR libfortran/23138 - * acinclude.m4 (LIBGFOR_CHECK_MINGW_SNPRINTF): New check. - * configure.ac: Use LIBGFOR_CHECK_MINGW_SNPRINTF. - * libgfortran.h: If HAVE_MINGW_SNPRINTF is true, use __mingw_snprintf - instead of snprintf. - * config.h.in: Regenerate. - * configure: Regenerate. - -2007-08-22 Bernhard Fischer - - * libgfortran/Makefile.am (AM_CPPFLAGS): Commentary typo fix. - -2007-08-17 Francois-Xavier Coudert - - PR fortran/33079 - * intrinsics/string_intrinsics.c (string_trim, string_minmax): Fix - the zero-length result case. - -2007-08-15 Francois-Xavier Coudert - - PR fortran/33077 - * intrinsics/random.c (random_seed_i8): Fix code logic. - -2007-08-13 Danny Smith - - * acinclude.m4 (GTHREAD_USE_WEAK) Define to 0 for mingw32. - * configure: Regenerate. - -2007-08-12 Francois-Xavier Coudert - - PR fortran/30964 - PR fortran/33054 - * intrinsics/random.c (random_seed): Rename into random_seed_i4. - (random_seed_i8): New function. - * gfortran.map (GFORTRAN_1.0): Remove _gfortran_random_seed, - add _gfortran_random_seed_i4 and _gfortran_random_seed_i8. - * libgfortran.h (iexport_proto): Replace random_seed by - random_seed_i4 and random_seed_i8. - * runtime/main.c (init): Call the new random_seed_i4. - -2007-08-11 Francois-Xavier Coudert - Tobias Burnus - - PR fortran/31189 - * runtime/backtrace.c (show_backtrace): Skip _gfortrani_handler - when displaying backtrace. - * runtime/compile_options.c: Include . - (handler): New function. - (set_options): Set signal handlers for backtrace. - * libgfortran.h (handler): Add prototype. - -2007-08-11 Francois-Xavier Coudert - - * intrinsics/string_intrinsics.c (compare_string): Return an int. - * libgfortran.h (compare_string): Likewise. - -2007-08-10 Francois-Xavier Coudert - - PR fortran/31270 - * runtime/error.c (runtime_error_at): Add a variable number of - arguments. - * libgfortran.h (runtime_error_at): Update prototype. - -2007-08-10 Francois-Xavier Coudert - - PR fortran/32933 - * intrinsics/associated.c: Change return type of associated into - a C int. - -2007-08-10 Jerry DeLisle - - PR libfortran/33039 - * io/list_read.c (find_nml_name): Check for a space after a namelist - name match. - -2007-08-09 Tobias Burnus - - PR fortran/32987 - * io/format.c (next_char): Treat '\t' as ' ' in format specification. - -2007-08-06 Francois-Xavier Coudert - - PR fortran/30947 - * intrinsics/signal.c: Create specific versions of alarm_sub and - alarm_sub_int according to the integer kind of the last argument. - * gfortran.map (GFORTRAN_1.0): Remove _gfortran_alarm_sub and - _gfortran_alarm_sub_int, add _gfortran_alarm_sub_i4, - _gfortran_alarm_sub_i8, _gfortran_alarm_sub_int_i4 and - _gfortran_alarm_sub_int_i8. - -2007-08-06 Francois-Xavier Coudert - - PR fortran/29828 - * intrinsics/string_intrinsics.c (string_minmax): New function - and prototype. - * gfortran.map (GFORTRAN_1.0): Add _gfortran_string_minmax - -2007-08-05 Francois-Xavier Coudert - - PR fortran/31202 - * intrinsics/c99_functions.c (roundl): Provide fallback - implementation for systems without ceill. - * c99_protos.h (roundl): Define prototype in all cases. - -2007-08-03 Thomas Koenig - - PR libfortran/32977 - * io/unix.c: If there is no vsnprintf, use vsprintf and issue - a fatal error when a buffer overrun occurs. - -2007-08-03 Francois-Xavier Coudert - - PR fortran/31202 - * intrinsics/c99_functions.c (roundl,lroundf,lround,lroundl, - llroundf,llround,llroundl): New functions. - * c99_protos.h (roundl,lroundf,lround,lroundl,llroundf,llround, - llroundl): New prototypes. - * configure.ac: Check for lroundf, lround, lroundl, llroundf, - llround and llroundl. - * configure: Regenerate. - * Makefile.in: Regenerate. - * config.h.in: Regenerate. - -2007-07-30 Francois-Xavier Coudert - - * libgfortran.h: Include . - -2007-07-29 Thomas Koenig - - PR libfortran/32858 - PR libfortran/30814 - * configure.ac: Added checks for presence of stdio.h and - stdarg.h. Test presence of vsnprintf(). - * configure: Regenerated. - * config.h.in: Regenerated. - * libgfortran.h: Include . Add printf attribute to - prototype of runtime_error. Remove prototype for st_sprintf. - Add prototype for st_vprintf. - * runtime/main.c (store_exec_path): Replace st_sprintf by sprintf. - * runtime/error.c (st_sprintf): Remove. - (runtime_error): Rewrite as a variadic function. Call - st_vprintf(). - * intrinsics/pack_generic.c: Output extents of LHS and RHS for - bounds error. - * io/open.c (new_unit): Replace st_sprintf by sprintf. - * io/list_read.c (convert_integer): Likewise. - (parse_repeat): Likewise. - (read_logical): Likewise. - (read_character): Likewise. - (parse_real): Likewise. - (read_real): Likewise. - (check_type): Likewise. - (nml_parse_qualifyer): Likewise. - (nml_read_obj): Likewise. - (nml_get_ojb_data): Likewise. - * io/unix.c (init_error_stream): Remove. - (tempfile): Replace st_sprintf by sprintf. - (st_vprintf): New function. - (st_printf): Rewrite to call st_vprintf. - * io/transfer.c (require_type): Replace st_sprintf by sprintf. - * io/format.c (format_error): Likewise. - * io/write.c (nml_write_obj): Likewise. - -2007-07-27 Janne Blomqvist - - * io/transfer.c (st_set_nml_var_dim): Use index_type instead of - GFC_INTEGER_4 for array descriptor triplets. - -2007-07-27 Francois-Xavier Coudert - - * io/unix.c (stream_ttyname): Mark argument as potentialy unused. - -2007-07-27 Francois-Xavier Coudert - - PR fortran/32035 - * runtime/select.c (select_string): Adjust prototype and function - so that the return value is an integer, not a pointer. - -2007-07-24 Tobias Burnus - - * libgfortran.h: Add bounds_check to compile_options_t. - -2007-07-24 Thomas Koenig - - PR fortran/30814 - * libgfortran.h: Add bounds_check to compile_options_t. - * runtime/compile_options.c (set_options): Add handling - of compile_options.bounds_check. - * intrinsics/pack_generic.c (pack_internal): Also determine - the number of elements if compile_options.bounds_check is - true. Raise runtime error if a different array shape is - detected. - -2007-07-23 Christopher D. Rickett - - PR fortran/32600 - * intrinsics/iso_c_binding.c (c_funloc): Remove. - * intrinsics/iso_c_binding.h: Remove c_funloc. - * gfortran.map: Ditto. - -2007-07-22 Jerry DeLisle - - * io/read.c (convert_real): Generate error only on EINVAL. - -2007-07-21 Christopher D. Rickett - - PR fortran/32627 - * libgfortran/intrinsics/iso_c_generated_procs.c: Add c_f_pointer - for character/string arguments. - * libgfortran/intrinsic/iso_c_binding.c (c_f_pointer_u0): Allow - the optional SHAPE arg to be any valid integer kind. - * libgfortran/gfortran.map: Add c_f_pointer_s0. - * libgfortran/mk-kinds-h.sh: Save smallest integer kind as default - character kind. - * libgfortran/intrinsics/iso_c_generated_procs.c: Add versions of - c_f_pointer for complex and logical types. - * libgfortran/gfortran.map: Add c_f_pointer versions for logical - and complex types. - -2007-07-19 Christopher D. Rickett - - PR fortran/32600 - * libgfortran/intrinsics/iso_c_binding.c: Remove C_LOC. - * libgfortran/intrinsics/iso_c_binding.h: Ditto. - * libgfortran/gfortran.map: Ditto. - -2007-07-15 Jerry DeLisle - Francois-Xavier Coudert - - PR fortran/32611 - * runtime/compile_options.c (set_std): Remove. - (set_options): New function. - (init_compile_options): Add initialization for -fsign-zero option. - * gfortran.map (GFORTRAN_1.0): Rename _gfortran_set_std into - _gfortran_set_options. - * libgfortran.h (compile_options_t): Add sign_zero field. - * io/write.c (output_float): Use the sign bit of the value to determine - if a negative sign should be emitted for zero values. Do not emit the - negative sign for zero if -fno-sign-zero was set during compile. - -2007-07-14 Jerry DeLisle - - PR libgfortran/32752 - * io/unix.c (unix_stream): Move buffer pointer adjacent to - small_buffer. - * io/transfer.c (formatted_transfer_scalar): If stream I/O, set - bytes_used to zero. Fix off by one error in calculation of pos and - skips. Eliminate duplicate pending_spaces check. - -2007-07-15 Francois-Xavier Coudert - - PR fortran/32357 - * intrinsics/mvbits.c: Change prototype so that FROMPOS, LEN and - TOPOS arguments are C int. - -2007-07-09 Jerry DeLisle - - PR libgfortran/32702 - * io/unix.c (unix_stream): Restore buffer pointer and small_buffer. - (fd_alloc): If the number of bytes needed is greater than the default - BUFFER_SIZE, allocate a new buffer large enough. Free the old buffer - if necessary. (fd_sfree): Restore use of buffer pointer. - (fd_close): Likewise. (fd_open): Likewise. - (init_error_stream): Likewise. - -2007-07-09 Thomas Koenig - - PR libfortran/32336 - * m4/matmul.m4: When the dimension of b is incorrect, - raise a runtime error instead of a failed assertion. - * generated/matmul_i1.c: Regenerated. - * generated/matmul_i2.c: Regenerated. - * generated/matmul_i4.c: Regenerated. - * generated/matmul_i8.c: Regenerated. - * generated/matmul_i16.c: Regenerated. - * generated/matmul_r4.c: Regenerated. - * generated/matmul_r8.c: Regenerated. - * generated/matmul_r10.c: Regenerated. - * generated/matmul_r16.c: Regenerated. - -2007-07-08 Jerry DeLisle - - PR libgfortran/32678 - * io/transfer.c (formatted_transfer_scalar): Don't allow - pending_spaces to go negative. - -2007-07-08 Thomas Koenig - - PR libfortran/32217 - * intrinsics/unpack_generic.c: If the destination array is - empty, return early. - -2007-07-05 H.J. Lu - - * aclocal.m4: Regenerated. - -2007-07-04 David Edelsohn - - * configure.ac: SUBST CFLAGS. - * configure: Regenerate. - -2007-07-03 Janne Blomqvist - - * libgfortran.h: Mark internal_malloc_size as a malloc function. - * runtime/memory.c (internal_realloc_size): Remove. - (internal_realloc): Call realloc directly instead of - internal_realloc_size. - (allocate_size): Remove. - (allocate): Call malloc directly instead of allocate_size, mark as - malloc function. - -2007-07-02 Steven G. Kargl - - Restore collateral damage from ISO C Binding merge. - -2007-06-29 Jerry DeLisle - - PR libgfortran/32456 - * io/unit.c (filename_from_unit): Don't use find_unit, instead search - for unit directly. - -2007-07-02 Steven G. Kargl - - * Makefile.in: Regenerated with automake 1.9.6. - -2007-07-02 Steven G. Kargl - - * Makefile.in: Remove extraneous kill.lo rule. - -2007-07-02 Janne Blomqvist - - PR fortran/32239 - * generated/pow_r*_i4.c: Removed. - -2007-07-01 Christopher D. Rickett - - * Makefile.in: Add support for iso_c_generated_procs.c and - iso_c_binding.c. - * Makefile.am: Ditto. - * intrinsics/iso_c_generated_procs.c: New file containing helper - functions. - * intrinsics/iso_c_binding.c: Ditto. - * intrinsics/iso_c_binding.h: New file - * gfortran.map: Include the __iso_c_binding_c_* functions. - * libgfortran.h: define GFC_NUM_RANK_BITS. - -2007-07-01 Janne Blomqvist - - PR fortran/32239 - * Makefile.am: Don't generate real**int4 pow functions. - * gfortran.map: Remove real**int4 pow symbols. - * Makefile.in: Regenerated. - -2007-07-01 Jerry DeLisle - - PR libgfortran/32554 - * io/write.c (output_float): Set edigits to a fixed size, avoiding - variation in field width calculation and eliminate buffer overrun. - -2007-07-01 Janne Blomqvist - - * runtime/memory.c (internal_realloc): Use index_type for size - argument instead of GFC_INTEGER_4. - (allocate_array): Likewise. - (allocate): Likewise, add ifdef around unnecessary check. - (internal_reallo64): Remove. - (allocate_array64): Remove. - (allocate64): Remove. - * gfortran.map: Remove symbols for 64-bit allocation functions. - -2007-06-29 Jerry DeLisle - - PR libgfortran/32456 - * io/unit.c (filename_from_unit): Don't use find_unit, instead search - for unit directly. - -2007-06-24 Adam Nemet - - PR libfortran/32495 - * runtime/backtrace.c (local_strcasestr): Rename from strcasestr. - (show_backtrace): Rename strcasestr to local_strcasestr. - -2007-06-24 Jerry DeLisle - - PR libgfortran/32456 - * runtime/error.c (show_locus): Update to emit the unit number - and file name involved with the error. Use new function - filename_from_unit. - * libgfortran.h (filename_from_unit): Declare new function. - * io/unit.c (init_units): Set the unit file name for stdin, stdout, - and stderr for use later in error reporting. - (filename_from_unit): Add this new function. - -2007-06-24 Jerry DeLisle - - PR libgfortran/32446 - * io/write.c (output_float): Calculate ndigits correctly for large - numbered formats that must pad zeros before the decimal point. - -2007-06-15 Rainer Orth - - PR libfortran/32345 - * runtime/backtrace.c (show_backtrace): Only use snprintf if - available. - -2007-06-10 Jerry DeLisle - - PR libgfortran/32235 - * io/transfer.c (st_read): Remove test for end of file condition. - (next_record_r): Add test for end of file condition. - -2007-06-02 Paolo Bonzini - - * configure: Regenerate. - -2007-05-28 Tobias Burnus - - PR fortran/32124 - * runtime/memory.c (allocate_size): Use ERROR_ALLOCATION. - (allocate,allocate64): Use stat variable if present. - -2007-05-27 Janne Blomqvist - - * runtime/string.c (compare0): Use gfc_charlen_type instead of - int. - (fstrlen): Likewise. - (find_option): Likewise. - (fstrcpy): Use gfc_charlen_type instead of int, return length. - (cf_strcpy): Likewise. - * libgfortran.h: Change string prototypes to use gfc_charlen_type. - * io/open.c (new_unit): Use snprintf if available. - * io/list_read.c (nml_touch_nodes): Use memcpy instead of - strcpy/strcat. - (nml_read_obj): Likewise. - * io/transfer.c (st_set_nml_var): Likewise. - * io/write.c (output_float): Use snprintf if available. - (nml_write_obj) Use memcpy instead of strcpy/strcat. - -2007-05-26 Janne Blomqvist - - * io/unix.c (unix_stream): Rearrange struct members, remove - small_buffer. - (int_stream): New struct. - (fd_alloc): Always use existing buffer, never reallocate. - (fd_sfree): Remove check for buffer != small_buffer. - (fd_close): Likewise. - (mem_alloc_r_at): Change to use int_stream. - (mem_alloc_w_at): Likewise. - (mem_read): Likewise. - (mem_write): Likewise. - (mem_set): Likewise. - (mem_truncate): Likewise. - (mem_close): Likewise. - (mem_sfree): Likewise. - (empty_internal_buffer): Likewise. - (open_internal): Likewise. - -2007-05-25 Jerry DeLisle - - * io/transfer.c (unformatted_read): Use size from front end - eliminating use of size_from_real_kind. - (unformatted_write): Ditto. - -2007-05-23 Steve Ellcey - - * Makefile.in: Regenerate. - * configure: Regenerate. - * aclocal.m4: Regenerate. - -2007-05-22 Tobias Burnus - - * libgfortran.h: Mark stop_numeric as noreturn. - -2007-05-22 Tobias Burnus - - PR libgfortran/31295 - * intrinsics/eoshift0.c (eoshift0): Silence uninitialized warning. - * intrinsics/eoshift2.c (eoshift2): Ditto. - -2007-05-18 Jerry DeLisle - - PR libfortran/31964 - * intrinsics/ishftc.c (ishftc4, ishftc8, ishftc16): Fix mask to handle - shift of bit-size number of bits. - -2007-05-17 Tobias Burnus - - PR fortran/31917 - * runtime/environ.c (mark_range): Fix setting default convert unit. - -2007-05-15 Jerry DeLisle - - PR libfortran/31922 - * intrinsics/string_intrinsics.c (string_trim): Set result to null if - string length is zero. - -2007-05-15 Tobias Burnus - - PR libfortran/31915 - * io/transfer.c (unformatted_read): Use proper size for real(10). - (unformatted_write): Ditto. - -2007-05-14 Francois-Xavier Coudert - - PR fortran/30723 - * runtime/memory.c (internal_malloc, internal_malloc64, - internal_free): Remove. - * runtime/error.c (os_error): Export function. - * intrinsics/move_alloc.c: Include stdlib.h. - (move_alloc): Call free instead of internal_free. - (move_alloc_c): Wrap long lines. - * libgfortran.h (os_error): Export prototype. - (internal_free): Remove prototype. - * gfortran.map (GFORTRAN_1.0): Remove _gfortran_internal_free, - _gfortran_internal_malloc and _gfortran_internal_malloc64. - Add _gfortran_os_error. - -2007-05-09 Jerry DeLisle - - PR libfortran/31880 - * io/unix.c (fd_alloc_r_at): Fix calculation of physical offset. - -2007-05-07 Francois-Xavier Coudert - - PR libfortran/31607 - * intrinsics/system.c (system_sub): Call flush_all_units. - * io/io.h (flush_all_units): Move prototype to libgfortran.h. - * libgfortran.h (flush_all_units): Add prototype. - -2007-05-06 Jerry DeLisle - - PR libfortran/31201 - * runtime/error.c (runtime_error_at): New function. - (generate_error): Export this function. - * gfortran.map: Add _gfortran_generate_error and - _gfortran_runtime_error_at. - * libgfortran.h: Add comment to reference error codes in front end. - (library_start): Locate prototype with library_end macro and add - a new comment. Add prototype for runtime_error_at. Export prototype - for generate_error. - * io/lock.c (library_start): Fix check for error condition. - * io/transfer.c (data_transfer_init): Add library check. - -2007-05-04 Daniel Franke - - PR fortran/22359 - * io/intrinsics.c (fseek_sub): New. - * io/unix.c (fd_fseek): Change logical and physical offsets only - if seek succeeds. - * gfortran.map (fseek_sub): New. - -2007-05-04 Francois-Xavier Coudert - - PR libfortran/31210 - * io/transfer.c (transfer_character): Avoid passing a NULL - pointer as source to the transfer routines, if the string length - is zero. - -2007-04-28 Jerry DeLisle - - PR libfortran/31501 - * io/list_read.c (next_char): Fix whitespace. - * io/io.h: Remove prototypes and define macros for is_array_io, - is_stream_io, and is_internal_unit. - * io/unit.c (is_array_io), (is_internal_unit), (is_stream_io): Delete - these functions. - * io/transfer.c (read_sf): Change handling of internal_unit to make a - single call to salloc_r and use memcpy to transfer the data. - -2007-04-27 Jerry DeLisle - - PR libfortran/31532 - * io/file_pos.c (st_backspace): Set flags.position for end of file - condition and use new function update_position. - (st_endfile): Use new function update_position. - * io/io.h: Add prototype for new function. - * io/inquire.c (inquire_via_unit): If not direct access, set NEXTREC - to zero. - * io/unit.c (update_position): New function to update position info - used by inquire. - * io/transfer.c (next_record): Fix typo and use new function. - -2007-04-25 Francois-Xavier Coudert - - PR libfortran/31299 - * intrinsics/getlog.c: Use getpwuid and geteuid instead of - getlogin if they are available. - * configure.ac: Add checks for getpwuid and geteuid. - * configure: Regenerate. - * config.h.in: Regenerate. - -2007-04-25 Janne Blomqvist - - * configure: Regenerate using autoconf 2.59. - * Makefile.in: Likewise. - * config.h.in: Likewise. - -2007-04-24 Janne Blomqvist - - PR libfortran/27740 - * configure.ac: New test to determine if symbol versioning is - supported. - * Makefile.am: Use result of above test to add appropriate linker - flags. - * gfortran.map: New file. - * configure: Regenerated. - * Makefile.in: Regenerated. - * config.h.in: Regenerated. - -2007-04-23 Thomas Koenig - - PR fortran/31618 - * io/transfer.c (read_block_direct): Instead of calling us_read, - set dtp->u.p.current_unit->current_record = 0 so that pre_position - will read the record marker. - (data_transfer_init): For different error conditions, call - generate_error, then return. - -2007-04-19 Francois-Xavier Coudert - - * runtime/main.c (please_free_exe_path_when_done): New variable. - (store_exe_path): Initialize character buffer, and mark whether - exe_path should be free'd by the library destructor function. - (cleanup): Only free exe_path if needed. - -2007-04-18 Francois-Xavier Coudert - Tobias Burnus - - PR libfortran/31286 - PR libfortran/31296 - * intrinsics/cshift0.c (cshift0): Initialize sstride[0] and rstride[0]. - * intrinsics/unpack_generic.c (unpack0, unpack0_char): Zero the - array structures we pass to unpack_internal. - -2007-04-14 Jerry DeLisle - - * io/open.c (test_endfile): Revert changes for 31052, restoring this - function. - -2007-04-14 Steve Ellcey - - * Makefile.am: Add -I .. to ACLOCAL_AMFLAGS. Add libgfortran_la_LINK. - * Makefile.in: Regenerate. - -2007-04-11 Kai Tietz - - * configure: Regenerate. - -2007-04-06 Francois-Xavier Coudert - - * intrinsics/cpu_time.c: Don't include headers already included - by libgfortran.h. Protect inclusion of sys/times.h. - * configure.ac: Remove unneeded checks for finit, stdio.h, - stddef.h, math.h and sys/params.h. - * config/fpu-aix.h: Don't include headers already included by - libgfortran.h. - * config/fpu-sysv.h: Likewise. - * io/write.c: Likewise. - * m4/minloc1.m4: Likewise. - * m4/maxloc1.m4: Likewise. - * m4/fraction.m4: Likewise. - * m4/set_exponent.m4: Likewise. - * m4/spacing.m4: Likewise. - * m4/minval.m4: Likewise. - * m4/maxval.m4: Likewise. - * m4/exponent.m4: Likewise. - * m4/nearest.m4: Likewise. - * m4/minloc0.m4: Likewise. - * m4/maxloc0.m4: Likewise. - * m4/rrspacing.m4: Likewise. - * runtime/main.c: Likewise. - * runtime/error.c: Likewise. - * intrinsics/system_clock.c: Likewise. - * intrinsics/etime.c: Likewise. - * intrinsics/stat.c: Likewise. - * intrinsics/date_and_time.c: Likewise. - * intrinsics/env.c: Likewise. - * intrinsics/kill.c: Likewise. - * intrinsics/getXid.c: Likewise. - * intrinsics/chmod.c: Likewise. - * intrinsics/args.c: Likewise. - * intrinsics/c99_functions.c: Likewise. - * generated/minval_r8.c: Regenerate. - * generated/maxloc1_4_r8.c: Regenerate. - * generated/minloc1_16_r16.c: Regenerate. - * generated/maxval_i2.c: Regenerate. - * generated/maxloc1_8_i4.c: Regenerate. - * generated/exponent_r16.c: Regenerate. - * generated/maxloc0_4_r4.c: Regenerate. - * generated/fraction_r16.c: Regenerate. - * generated/fraction_r4.c: Regenerate. - * generated/minloc0_4_r16.c: Regenerate. - * generated/minloc0_4_i1.c: Regenerate. - * generated/maxloc0_4_r16.c: Regenerate. - * generated/maxloc0_4_i2.c: Regenerate. - * generated/minloc1_8_r16.c: Regenerate. - * generated/maxloc1_8_r16.c: Regenerate. - * generated/set_exponent_r8.c: Regenerate. - * generated/maxloc0_8_i8.c: Regenerate. - * generated/minloc1_4_r8.c: Regenerate. - * generated/maxloc1_16_r16.c: Regenerate. - * generated/minloc1_16_i4.c: Regenerate. - * generated/maxloc1_16_i4.c: Regenerate. - * generated/minloc0_16_i8.c: Regenerate. - * generated/maxloc0_16_i8.c: Regenerate. - * generated/nearest_r8.c: Regenerate. - * generated/spacing_r16.c: Regenerate. - * generated/maxval_r16.c: Regenerate. - * generated/minloc1_8_i4.c: Regenerate. - * generated/minloc0_16_i16.c: Regenerate. - * generated/minloc0_4_r4.c: Regenerate. - * generated/set_exponent_r10.c: Regenerate. - * generated/rrspacing_r10.c: Regenerate. - * generated/minloc0_4_i2.c: Regenerate. - * generated/maxloc0_8_i1.c: Regenerate. - * generated/minloc0_8_i8.c: Regenerate. - * generated/spacing_r4.c: Regenerate. - * generated/minloc1_16_r10.c: Regenerate. - * generated/minloc0_16_i1.c: Regenerate. - * generated/maxloc0_16_i1.c: Regenerate. - * generated/maxloc1_8_r8.c: Regenerate. - * generated/minval_i16.c: Regenerate. - * generated/exponent_r10.c: Regenerate. - * generated/maxval_i4.c: Regenerate. - * generated/minval_i8.c: Regenerate. - * generated/maxloc1_4_i8.c: Regenerate. - * generated/fraction_r10.c: Regenerate. - * generated/maxloc0_16_i16.c: Regenerate. - * generated/maxloc0_8_r4.c: Regenerate. - * generated/rrspacing_r8.c: Regenerate. - * generated/minloc1_4_i16.c: Regenerate. - * generated/minloc0_4_r10.c: Regenerate. - * generated/maxloc1_4_i16.c: Regenerate. - * generated/minloc0_8_i16.c: Regenerate. - * generated/maxloc0_4_r10.c: Regenerate. - * generated/maxloc0_8_i16.c: Regenerate. - * generated/minloc1_8_r10.c: Regenerate. - * generated/minloc0_16_r4.c: Regenerate. - * generated/maxloc1_8_r10.c: Regenerate. - * generated/maxloc0_16_r4.c: Regenerate. - * generated/minloc1_16_r8.c: Regenerate. - * generated/minloc0_8_i1.c: Regenerate. - * generated/maxloc0_4_i4.c: Regenerate. - * generated/maxloc1_16_r8.c: Regenerate. - * generated/maxloc0_8_i2.c: Regenerate. - * generated/nearest_r16.c: Regenerate. - * generated/maxloc1_16_r10.c: Regenerate. - * generated/minloc0_16_i2.c: Regenerate. - * generated/minloc1_8_r8.c: Regenerate. - * generated/maxloc0_16_i2.c: Regenerate. - * generated/exponent_r4.c: Regenerate. - * generated/spacing_r10.c: Regenerate. - * generated/maxval_r10.c: Regenerate. - * generated/minval_i1.c: Regenerate. - * generated/maxloc1_4_i1.c: Regenerate. - * generated/minloc1_4_i8.c: Regenerate. - * generated/minloc0_8_r4.c: Regenerate. - * generated/minloc0_16_r16.c: Regenerate. - * generated/minloc0_4_i4.c: Regenerate. - * generated/minloc0_8_i2.c: Regenerate. - * generated/minval_r4.c: Regenerate. - * generated/maxloc1_4_r4.c: Regenerate. - * generated/maxval_r8.c: Regenerate. - * generated/minval_r16.c: Regenerate. - * generated/minloc1_4_i1.c: Regenerate. - * generated/minval_i2.c: Regenerate. - * generated/maxloc1_4_i2.c: Regenerate. - * generated/maxloc1_8_i8.c: Regenerate. - * generated/maxloc0_4_r8.c: Regenerate. - * generated/maxloc0_16_r16.c: Regenerate. - * generated/minloc1_4_r16.c: Regenerate. - * generated/fraction_r8.c: Regenerate. - * generated/maxloc1_4_r16.c: Regenerate. - * generated/set_exponent_r4.c: Regenerate. - * generated/minloc0_8_r16.c: Regenerate. - * generated/maxloc0_8_r16.c: Regenerate. - * generated/nearest_r10.c: Regenerate. - * generated/maxloc0_8_i4.c: Regenerate. - * generated/minloc1_4_r4.c: Regenerate. - * generated/minloc0_16_i4.c: Regenerate. - * generated/maxloc0_16_i4.c: Regenerate. - * generated/nearest_r4.c: Regenerate. - * generated/minloc1_16_i8.c: Regenerate. - * generated/maxloc1_16_i8.c: Regenerate. - * generated/minloc1_4_i2.c: Regenerate. - * generated/maxloc1_8_i1.c: Regenerate. - * generated/minloc0_16_r10.c: Regenerate. - * generated/minloc1_8_i8.c: Regenerate. - * generated/minloc0_4_r8.c: Regenerate. - * generated/minloc0_8_i4.c: Regenerate. - * generated/minloc1_16_i16.c: Regenerate. - * generated/spacing_r8.c: Regenerate. - * generated/maxloc1_8_r4.c: Regenerate. - * generated/minloc1_16_i1.c: Regenerate. - * generated/maxloc1_16_i1.c: Regenerate. - * generated/minval_r10.c: Regenerate. - * generated/minval_i4.c: Regenerate. - * generated/minloc1_8_i1.c: Regenerate. - * generated/maxloc1_4_i4.c: Regenerate. - * generated/maxloc1_8_i2.c: Regenerate. - * generated/maxval_i8.c: Regenerate. - * generated/maxloc0_16_r10.c: Regenerate. - * generated/rrspacing_r4.c: Regenerate. - * generated/minloc0_4_i16.c: Regenerate. - * generated/maxloc0_8_r8.c: Regenerate. - * generated/maxloc0_4_i16.c: Regenerate. - * generated/minloc1_4_r10.c: Regenerate. - * generated/minloc1_8_i16.c: Regenerate. - * generated/maxloc1_4_r10.c: Regenerate. - * generated/minloc0_8_r10.c: Regenerate. - * generated/maxloc1_8_i16.c: Regenerate. - * generated/maxloc0_8_r10.c: Regenerate. - * generated/minloc1_16_r4.c: Regenerate. - * generated/maxloc1_16_r4.c: Regenerate. - * generated/minloc0_16_r8.c: Regenerate. - * generated/maxloc0_16_r8.c: Regenerate. - * generated/maxloc0_4_i8.c: Regenerate. - * generated/maxloc1_16_i16.c: Regenerate. - * generated/minloc1_8_r4.c: Regenerate. - * generated/minloc1_16_i2.c: Regenerate. - * generated/maxloc1_16_i2.c: Regenerate. - * generated/maxval_i16.c: Regenerate. - * generated/exponent_r8.c: Regenerate. - * generated/minloc1_4_i4.c: Regenerate. - * generated/maxval_i1.c: Regenerate. - * generated/minloc1_8_i2.c: Regenerate. - * generated/minloc0_8_r8.c: Regenerate. - * generated/set_exponent_r16.c: Regenerate. - * generated/maxloc0_4_i1.c: Regenerate. - * generated/rrspacing_r16.c: Regenerate. - * generated/minloc0_4_i8.c: Regenerate. - * generated/maxval_r4.c: Regenerate. - * configure: Regenerate. - * config.h.in: Regenerate. - -2007-04-06 Jerry DeLisle - - PR libfortran/31395 - * io/format.c (parse_format_list): Fix parsing. - -2007-04-03 Francois-Xavier Coudert - - PR fortran/31304 - intrinsics/string_intrinsics.c (string_repeat): Remove. - -2007-04-01 Jerry DeLisle - - PR libfortran/31052 - * io/open.c (test_endfile): Delete this function. - (edit_modes): Delete call to test_endfile. - (new_unit): Likewise. - * io/io.h: Delete prototype for test_endfile. - * io/transfer.c (next_record_r): Remove use of test_endfile. - (st_read): Add test for end file condition and adjust status. - -2007-04-01 Jerry DeLisle - - PR libfortran/31366 - * io/transfer.c (read_block_direct): Do not generate error when reading - past EOF on a short record that is less than the RECL= specified. - -2007-04-01 Jerry DeLisle - - PR libfortran/31207 - * io/unit.c (close_unit_1): If there are bytes previously written from - ADVANCE="no", move to the end before closing. - -2007-03-31 Francois-Xavier Coudert - - PR libfortran/31335 - * intrinsics/stat.c: Only provide STAT and FSTAT library routines - if stat() and fstat() library functions are available. When lstat() - is not available, use stat() instead. - * configure.ac: Add checks for stat, fstat and lstat. - * configure: Regenerate. - * config.h.in: Regenerate. - -2007-03-27 Jerry DeLisle - - PR libfortran/31052 - * io/transfer.c (next_record_r): Do not call test_endfile if in - namelist mode. - -2007-03-25 Jerry DeLisle - - PR libfortran/31199 - * io/io.h: Add saved_pos to gfc_unit structure. - * io/open.c (new_unit): Initialize saved_pos. - * io/transfer.c (data_transfer_init): Set max_pos to value in - saved_pos. - (next_record_w): Fix whitespace. - (finalze_transfer): Calculate max_pos for ADVANCE="no" and save it for - later use. If not ADVANCE="no" set saved_pos to zero. - -2007-03-25 Thomas Koenig - - PR libfortran/31196 - * intrinsics/reshape_generic.c (reshape_internal): Increment - correct variable. - -2007-03-22 Jerry DeLisle - - PR libfortran/31052 - * file_pos.c: Update Copyright year. - * io/open.c (test_endfile): Restore test_endfile to fix SPEC - regression. Update Copyright year. - * io/io.h: Same. - * io/unix.c (is_special): Add missing type for this function. - Update Copyright year. - * io/transfer.c (next_record_r): Restore test_endfile. - (st_read): Fix whitespace. Update Copyright year - -2007-03-20 Francois-Xavier Coudert - - * configure.ac: Add missing check for gettimeofday. - * config.h.in: Renegerate. - * configure: Regenerate. - -2007-03-18 Jerry DeLisle - - PR libfortran/31052 - * io/file_position (st_rewind): Fix comments. Remove use of - test_endfile. Don't seek if already at 0 position. Use new is_special - function to set endfile state. - * io/open.c (test_endfile): Delete this function. - * io/io.h: Delete prototype for test_endfile. Add prototype - for is_special. - * io/unix.c (is_special): New function. Fix whitespace. - * io/transfer.c (next_record_r): Remove use of test_endfile. - -2007-03-16 David Edelsohn - - * runtime/main.c: Include "config.h" first. - -2007-03-15 Jerry DeLisle - - PR libfortran/31099 - * io/file_pos.c (st_rewind): Don't set bytes_left to zero. - -2007-03-15 Francois-Xavier Coudert - - * runtime/backtrace.c: New file. - * runtime/environ.c (variable_table): New GFORTRAN_ERROR_BACKTRACE - environment variable. - * runtime/compile_options.c (set_std): Add new argument. - * runtime/main.c (store_exe_path, full_exe_path): New functions. - * runtime/error.c (sys_exit): Add call to show_backtrace. - * libgfortran.h (options_t): New backtrace field. - (store_exe_path, full_exe_path, show_backtrace): New prototypes. - * configure.ac: Add checks for execinfo.h, execvp, pipe, dup2, - close, fdopen, strcasestr, getrlimit, backtrace, backtrace_symbols - and getppid. - * Makefile.am: Add runtime/backtrace.c. - * fmain.c (main): Add call to store_exe_path. - * Makefile.in: Renegerate. - * config.h.in: Renegerate. - * configure: Regenerate. - -2007-03-14 Jerry DeLisle - - PR libfortran/31051 - * io/transfer.c (formatted_transfer_scalar): Adjust position for - pending spaces when in writing mode. Clean up some formatting. - -2007-03-14 Thomas Koenig - - PR libfortran/30690 - * all.m4: Quote everything, except for m4 macros. - * any.m4: Likewise. - * count.m4: Likewise. - * cshift1.m4: Likewise. - * eoshift1.m4: Likewise. - * eoshift3.m4: Likewise. - * exponent.m4: Likewise. - * fraction.m4: Likewise. - * in_pack.m4: Likewise. - * in_unpack.m4: Likewise. - * matmul.m4: Likewise. - * matmull.m4: Likewise. - * nearest.m4: Likewise. - * pow.m4: Likewise. - * product.m4: Likewise. - * reshape.m4: Likewise. - * rrspacing.m4: Likewise. - * set_exponent.m4: Likewise. - * shape.m4: Likewise. - * spacing.m4: Likewise. - * transpose.m4: Likewise. - -2007-03-14 Jakub Jelinek - - * io/unix.c (regular_file): For ACTION_UNSPECIFIED retry with - O_RDONLY even if errno is EROFS. - -2007-03-09 Jerry DeLisle - - PR libfortran/31099 - * io/open.c (new_unit): Initialize bytes_left and recl_subrecord. - * io/transfer.c (next_record_w): Set bytes left to record length for - sequential unformatted I/O. - (next_record_r): Ditto. - (read_block_direct): Fix test for exceeding bytes_left. - -2007-03-08 Daniel Franke - - PR fortran/30947 - * intrinsics/signal.c (alarm_sub_int): Avoid SEGFAULT with - integer arguments. - -2007-03-04 Thomas Koenig - - PR libfortran/30981 - * m4/pow_m4: Use appropriate unsigned int type for u. - * generated/pow_c10_i16.c: Regenerated. - * generated/pow_c10_i4.c: Regenerated. - * generated/pow_c10_i8.c: Regenerated. - * generated/pow_c16_i16.c: Regenerated. - * generated/pow_c16_i4.c: Regenerated. - * generated/pow_c16_i8.c: Regenerated. - * generated/pow_c4_i16.c: Regenerated. - * generated/pow_c4_i4.c: Regenerated. - * generated/pow_c4_i8.c: Regenerated. - * generated/pow_c8_i16.c: Regenerated. - * generated/pow_c8_i4.c: Regenerated. - * generated/pow_c8_i8.c: Regenerated. - * generated/pow_i16_i16.c: Regenerated. - * generated/pow_i16_i4.c: Regenerated. - * generated/pow_i16_i8.c: Regenerated. - * generated/pow_i4_i16.c: Regenerated. - * generated/pow_i4_i4.c: Regenerated. - * generated/pow_i4_i8.c: Regenerated. - * generated/pow_i8_i16.c: Regenerated. - * generated/pow_i8_i4.c: Regenerated. - * generated/pow_i8_i8.c: Regenerated. - * generated/pow_r10_i16.c: Regenerated. - * generated/pow_r10_i4.c: Regenerated. - * generated/pow_r10_i8.c: Regenerated. - * generated/pow_r16_i16.c: Regenerated. - * generated/pow_r16_i4.c: Regenerated. - * generated/pow_r16_i8.c: Regenerated. - * generated/pow_r4_i16.c: Regenerated. - * generated/pow_r4_i4.c: Regenerated. - * generated/pow_r4_i8.c: Regenerated. - * generated/pow_r8_i16.c: Regenerated. - * generated/pow_r8_i4.c: Regenerated. - * generated/pow_r8_i8.c: Regenerated. - -2007-03-03 Francois-Xavier Coudert - - PR libfortran/31001 - * intrinsics/pack_generic.c (pack_internal): Add special checks - for zero-sized arrays. - -2007-03-01 Brooks Moses - - * Makefile.am: Add dummy install-pdf target. - * Makefile.in: Regenerate - -2007-02-24 Jerry DeLisle - - PR libfortran/30918 - * io/listread.c (namelist_read): Eat comment line. - -2007-02-22 Jerry DeLisle - - PR libfortran/30910 - * io/write.c (output_float): Add condition of format F only for - special case rounding with zero precision. - -2007-02-19 Thomas Koenig - - PR libfortran/30533 - PR libfortran/30765 - * Makefile.am: Add $(srcdir) too all files in generated/. - (i_maxloc0_c): Add maxloc0_4_i1.c, maxloc0_8_i1.c, - maxloc0_16_i1.c, maxloc0_4_i2.c, maxloc0_8_i2.c and - maxloc0_16_i2.c. - (i_maxloc1_c): Add maxloc1_4_i1.c, maxloc1_8_i1.c, - maxloc1_16_i1.c, maxloc1_4_i2.c, maxloc1_8_i2.c and - maxloc1_16_i2.c. - (i_maxval_c): Add maxval_i1.c and maxval_i2.c. - (i_minloc0_c): Add minloc0_4_i1.c, minloc0_8_i1.c, - minloc0_16_i1.c, minloc0_4_i2.c, minloc0_8_i2.c and - minloc0_16_i2.c. - (i_minloc_1.c): Add minloc1_4_i1.c, minloc1_8_i1.c, - minloc1_16_i1.c, minloc1_4_i2.c, minloc1_8_i2.c and - minloc1_16_i2.c. - (i_minval_c): Add minval_i1.c and minval_i2.c. - (i_sum_c): Add sum_i1.c and sum_i2.c. - (i_product_c): Add product_i1.c and product_i2.c. - (i_matmul_c): Add matmul_i1.c and matmul_i2.c. - (gfor_built_specific_src): Remove $(srcdir) from target. - (gfor_bulit_specific2_src): Likewise. - Makefile.in: Regenerated. - libgfortran.h: Add GFC_INTEGER_1_HUGE and GFC_INTEGER_2_HUGE. - Add gfc_array_i1 and gfc_array_i2. - * generated/matmul_i1.c: New file. - * generated/matmul_i2.c: New file. - * generated/maxloc0_16_i1.c: New file. - * generated/maxloc0_16_i2.c: New file. - * generated/maxloc0_4_i1.c: New file. - * generated/maxloc0_4_i2.c: New file. - * generated/maxloc0_8_i1.c: New file. - * generated/maxloc0_8_i2.c: New file. - * generated/maxloc1_16_i1.c: New file. - * generated/maxloc1_16_i2.c: New file. - * generated/maxloc1_4_i1.c: New file. - * generated/maxloc1_4_i2.c: New file. - * generated/maxloc1_8_i1.c: New file. - * generated/maxloc1_8_i2.c: New file. - * generated/maxval_i1.c: New file. - * generated/maxval_i2.c: New file. - * generated/minloc0_16_i1.c: New file. - * generated/minloc0_16_i2.c: New file. - * generated/minloc0_4_i1.c: New file. - * generated/minloc0_4_i2.c: New file. - * generated/minloc0_8_i1.c: New file. - * generated/minloc0_8_i2.c: New file. - * generated/minloc1_16_i1.c: New file. - * generated/minloc1_16_i2.c: New file. - * generated/minloc1_4_i1.c: New file. - * generated/minloc1_4_i2.c: New file. - * generated/minloc1_8_i1.c: New file. - * generated/minloc1_8_i2.c: New file. - * generated/minval_i1.c: New file. - * generated/minval_i2.c: New file. - * generated/product_i1.c: New file. - * generated/product_i2.c: New file. - * generated/sum_i1.c: New file. - * generated/sum_i2.c: New file. - -2007-02-16 Francois-Xavier Coudert - - * runtime/memory.c (deallocate): Correct comment. - -2007-02-10 Thomas Koenig - - * Makefile.am: Use $(M4) instead of m4. - * Makefile.in: Regenerate. - -2007-02-10 Thomas Koenig - - * Makefile.am: Remove $(srcdir) from assorted targets - in maintainer mode. - * Makefile.in: Regenerate. - -2007-02-09 Thomas Koenig - Tobias Burnus - - PR fortran/30512 - * m4/iparm.m4: Use HUGE-1 for most negative integer. - * generated/maxloc1_8_i4.c: Regenerate. - * generated/maxloc0_8_i8.c: Regenerate. - * generated/maxloc1_16_i4.c: Regenerate. - * generated/maxloc0_16_i8.c: Regenerate. - * generated/maxval_i4.c: Regenerate. - * generated/maxloc1_4_i8.c: Regenerate. - * generated/maxloc0_16_i16.c: Regenerate. - * generated/maxloc1_4_i16.c: Regenerate. - * generated/maxloc0_8_i16.c: Regenerate. - * generated/maxloc0_4_i4.c: Regenerate. - * generated/maxloc1_8_i8.c: Regenerate. - * generated/maxloc0_8_i4.c: Regenerate. - * generated/maxloc0_16_i4.c: Regenerate. - * generated/maxloc1_16_i8.c: Regenerate. - * generated/maxloc1_4_i4.c: Regenerate. - * generated/maxval_i8.c: Regenerate. - * generated/maxloc0_4_i16.c: Regenerate. - * generated/maxloc1_8_i16.c: Regenerate. - * generated/maxloc0_4_i8.c: Regenerate. - * generated/maxloc1_16_i16.c: Regenerate. - * generated/maxval_i16.c: Regenerate. - -2007-02-04 Francois-Xavier Coudert - - PR fortran/30611 - * intrinsics/string_intrinsics.c (string_repeat): Don't check - if ncopies is negative. - -2007-02-04 Francois-Xavier Coudert - - PR libfortran/30007 - * libgfortran.h: Do not prefix symbol name with - __USER_LABEL_PREFIX__ when used in __attribute__((__alias__(...))). - -2007-02-02 Paul Thomas - - PR fortran/30284 - PR fortran/30626 - * io/transfer.c (init_loop_spec, next_array_record): Change to - lbound rather than unity base. - -2007-01-21 Francois-Xavier Coudert - - * runtime/error.c: Include sys/time.h before sys/resource.h. - -2007-01-21 Thomas Koenig - - PR libfortran/30525 - * intrinsics/string_intrinsics.c(compare_string): Make - sure that comparisons are done unsigned. - -2007-01-21 Tobias Burnus - - PR libfortran/30015 - * intrinsics/date_and_time.c (date_and_time): Fix case where time - can go backwards. - * configure.ac: Remove AC_TRY_RUN test for timezone in - gettimeofday. - * acinclude.m4: Ditto. - * configure: Regenerate. - * config.h.in: Regenerate. - -2007-01-20 Francois-Xavier Coudert - - * m4/misc_specifics.m4: Add _gfortran prefix to specific names. - * m4/specific2.m4: Likewise. - * m4/specific.m4: Likewise. - * intrinsics/f2c_specifics.F90: Likewise. - * intrinsics/selected_int_kind.f90: Add _gfortran prefix. - * intrinsics/selected_real_kind.f90: Likewise. - * intrinsics/dprod_r8.f90: Likewise. - * Makefile.am: Add -fallow-leading-underscore to the - gfor_specific_src files, as well as selected_real_kind.F90 - and selected_int_kind.F90 - * Makefile.in: Regenerate. - * generated/_sqrt_c8.F90: Regenerate. - * generated/_sign_r16.F90: Regenerate. - * generated/_log_c16.F90: Regenerate. - * generated/_sin_c10.F90: Regenerate. - * generated/_tanh_r4.F90: Regenerate. - * generated/_tanh_r8.F90: Regenerate. - * generated/_log10_r10.F90: Regenerate. - * generated/_aimag_c4.F90: Regenerate. - * generated/_sign_r4.F90: Regenerate. - * generated/_aimag_c8.F90: Regenerate. - * generated/_sign_r8.F90: Regenerate. - * generated/_mod_i4.F90: Regenerate. - * generated/_cos_r16.F90: Regenerate. - * generated/_aint_r10.F90: Regenerate. - * generated/_mod_i8.F90: Regenerate. - * generated/_abs_i16.F90: Regenerate. - * generated/_sqrt_c10.F90: Regenerate. - * generated/_atan2_r4.F90: Regenerate. - * generated/_cos_c4.F90: Regenerate. - * generated/_atan_r16.F90: Regenerate. - * generated/_tanh_r10.F90: Regenerate. - * generated/_atan2_r8.F90: Regenerate. - * generated/_cos_c8.F90: Regenerate. - * generated/_exp_r4.F90: Regenerate. - * generated/_log_r10.F90: Regenerate. - * generated/_exp_r8.F90: Regenerate. - * generated/_abs_r4.F90: Regenerate. - * generated/_abs_r8.F90: Regenerate. - * generated/_sin_r16.F90: Regenerate. - * generated/_tan_r4.F90: Regenerate. - * generated/_tan_r8.F90: Regenerate. - * generated/_sign_i4.F90: Regenerate. - * generated/_sign_i8.F90: Regenerate. - * generated/_exp_c16.F90: Regenerate. - * generated/_sqrt_r16.F90: Regenerate. - * generated/_conjg_c4.F90: Regenerate. - * generated/_conjg_c8.F90: Regenerate. - * generated/_dim_r16.F90: Regenerate. - * generated/_mod_r10.F90: Regenerate. - * generated/_abs_c10.F90: Regenerate. - * generated/_conjg_c16.F90: Regenerate. - * generated/_tan_r16.F90: Regenerate. - * generated/_asinh_r10.F90: Regenerate. - * generated/_abs_i4.F90: Regenerate. - * generated/_abs_i8.F90: Regenerate. - * generated/_acos_r10.F90: Regenerate. - * generated/_exp_r10.F90: Regenerate. - * generated/_acosh_r16.F90: Regenerate. - * generated/_atan2_r16.F90: Regenerate. - * generated/_cos_c16.F90: Regenerate. - * generated/_mod_i16.F90: Regenerate. - * generated/_asin_r4.F90: Regenerate. - * generated/_anint_r16.F90: Regenerate. - * generated/_asin_r8.F90: Regenerate. - * generated/_aimag_c10.F90: Regenerate. - * generated/_exp_c4.F90: Regenerate. - * generated/_sinh_r10.F90: Regenerate. - * generated/_exp_c8.F90: Regenerate. - * generated/_log10_r4.F90: Regenerate. - * generated/_log10_r8.F90: Regenerate. - * generated/_abs_c4.F90: Regenerate. - * generated/_abs_r16.F90: Regenerate. - * generated/_abs_c8.F90: Regenerate. - * generated/_asin_r10.F90: Regenerate. - * generated/_sign_r10.F90: Regenerate. - * generated/_atanh_r16.F90: Regenerate. - * generated/_log_c10.F90: Regenerate. - * generated/_cosh_r16.F90: Regenerate. - * generated/_sin_c16.F90: Regenerate. - * generated/_cos_r10.F90: Regenerate. - * generated/_log10_r16.F90: Regenerate. - * generated/_aint_r16.F90: Regenerate. - * generated/_acos_r4.F90: Regenerate. - * generated/_acos_r8.F90: Regenerate. - * generated/_sqrt_c16.F90: Regenerate. - * generated/_acosh_r4.F90: Regenerate. - * generated/_atan_r10.F90: Regenerate. - * generated/_acosh_r8.F90: Regenerate. - * generated/_sign_i16.F90: Regenerate. - * generated/_tanh_r16.F90: Regenerate. - * generated/_log_r4.F90: Regenerate. - * generated/_log_r8.F90: Regenerate. - * generated/_sin_r4.F90: Regenerate. - * generated/_sin_r8.F90: Regenerate. - * generated/_log_r16.F90: Regenerate. - * generated/_sin_r10.F90: Regenerate. - * generated/_sqrt_r4.F90: Regenerate. - * generated/_exp_c10.F90: Regenerate. - * generated/_sqrt_r8.F90: Regenerate. - * generated/_asinh_r4.F90: Regenerate. - * generated/_sqrt_r10.F90: Regenerate. - * generated/_asinh_r8.F90: Regenerate. - * generated/_dim_r4.F90: Regenerate. - * generated/_dim_r8.F90: Regenerate. - * generated/_dim_r10.F90: Regenerate. - * generated/_cosh_r4.F90: Regenerate. - * generated/_conjg_c10.F90: Regenerate. - * generated/_tan_r10.F90: Regenerate. - * generated/_cosh_r8.F90: Regenerate. - * generated/_mod_r16.F90: Regenerate. - * generated/_abs_c16.F90: Regenerate. - * generated/_cos_r4.F90: Regenerate. - * generated/_asinh_r16.F90: Regenerate. - * generated/_cos_r8.F90: Regenerate. - * generated/_atanh_r4.F90: Regenerate. - * generated/_atanh_r8.F90: Regenerate. - * generated/_acos_r16.F90: Regenerate. - * generated/_anint_r4.F90: Regenerate. - * generated/_acosh_r10.F90: Regenerate. - * generated/_anint_r8.F90: Regenerate. - * generated/_exp_r16.F90: Regenerate. - * generated/_mod_r4.F90: Regenerate. - * generated/_cos_c10.F90: Regenerate. - * generated/_atan2_r10.F90: Regenerate. - * generated/_dim_i16.F90: Regenerate. - * generated/_mod_r8.F90: Regenerate. - * generated/_anint_r10.F90: Regenerate. - * generated/_aint_r4.F90: Regenerate. - * generated/_aint_r8.F90: Regenerate. - * generated/_dim_i4.F90: Regenerate. - * generated/_sinh_r4.F90: Regenerate. - * generated/_log_c4.F90: Regenerate. - * generated/_dim_i8.F90: Regenerate. - * generated/_sinh_r8.F90: Regenerate. - * generated/_log_c8.F90: Regenerate. - * generated/_sin_c4.F90: Regenerate. - * generated/_sin_c8.F90: Regenerate. - * generated/misc_specifics.F90: Regenerate. - * generated/_abs_r10.F90: Regenerate. - * generated/_aimag_c16.F90: Regenerate. - * generated/_atan_r4.F90: Regenerate. - * generated/_sinh_r16.F90: Regenerate. - * generated/_atan_r8.F90: Regenerate. - * generated/_atanh_r10.F90: Regenerate. - * generated/_cosh_r10.F90: Regenerate. - * generated/_sqrt_c4.F90: Regenerate. - * generated/_asin_r16.F90: Regenerate. - -2007-01-19 Francois-Xavier Coudert - - PR libfortran/26893 - * acinclude.m4 (LIBGFOR_WORKING_GFORTRAN): New check. - * configure.ac: Add call to LIBGFOR_WORKING_GFORTRAN. - * configure: Regenerate. - * config.h.in: Regenerate because it was forgottent in the last - commit. - -2007-01-18 Francois-Xavier Coudert - Tobias Burnus - - PR libfortran/29649 - * runtime/environ.c (variable_table): New GFORTRAN_ERROR_DUMPCORE - environment variable. - * runtime/compile_options.c (set_std): Add new argument. - * runtime/error.c (sys_exit): Move from io/unix.c. Add coredump - functionality. - * libgfortran.h (options_t): New dump_core and backtrace members. - (sys_exit): Move prototype. - * io/unix.c (sys_exit): Move to runtime/error.c. - * configure.ac: Add check for getrlimit. - * configure: Regenerate. - -2007-01-17 Tom Tromey - - PR libfortran/27107: - * aclocal.m4, configure, Makefile.in: Rebuilt. - * configure.ac: Enable automake dependency tracking. Update - minimum automake version. - -2007-01-17 Francois-Xavier Coudert - - PR libfortran/27107 - * runtime/environ.c: Don't include io/io.h. - * runtime/string.c: Don't include io/io.h. - (compare0): Add cast to avoid warning. - * runtime/error.c: Don't include io/io.h. - (st_printf): Move to io/unix.c. - * intrinsics/flush.c: Delete, contents moved to io/intrinsics.c. - * intrinsics/fget.c: Likewise. - * intrinsics/ftell.c: Likewise. - * intrinsics/tty.c: Likewise. - * libgfortran.h (DEFAULT_RECL, notification_std, - get_unformatted_convert, IOPARM_*, st_parameter_common, unit_convert, - DEFAULT_TEMPDIR): New declarations. - * io/io.h (DEFAULT_RECL, notification_std, get_unformatted_convert, - IOPARM_*, st_parameter_common, unit_convert, DEFAULT_TEMPDIR): - Move to libgfortran.h. - * io/unix.c: Add io/unix.h content. - (st_printf): New function. - * io/intrinsics.c: New file. - * io/unix.h: Remove, contents moved into unix.c. - * libtool-version: Update library version to 3.0.0. - * configure.ac: Update library version to 0.3. - * Makefile.am (intrinsics/fget.c, intrinsics/flush.c, - intrinsics/ftell.c, intrinsics/tty.c, libgfortran.h): Remove targets. - * Makefile.in: Regenerate. - * configure: Regenerate. - -2007-01-12 Jerry DeLisle - - PR libfortran/30435 - * io/list_read.c (finish_separator): Don't call next_record. - (list_formatted_read_scalar): Clean up some comments and whitespace. - (nml_read_obj): Whitespace fix. - -2007-01-05 Jerry DeLisle - - PR libfortran/30162 - * io/unix.c (fd_flush): Don't seek if file is not seekable, defined as - s->file_length == -1. - (fd_alloc_w_at): Do not adjust file_length if file is not seekable. - (fd_seek): If not seekable, just return success. - (fd_truncate): If not seekable, no need to truncate. Return failure - if seek fails and the stream is not a pipe. - (fd_to_stream): Make test for non-seekable file more robust. - -2007-01-01 Steven G. Kargl - - * ChangeLog: Copied to ... - * ChangeLog-2006: here. diff --git a/libgfortran/ChangeLog-2007 b/libgfortran/ChangeLog-2007 new file mode 100644 index 0000000..2b86110 --- /dev/null +++ b/libgfortran/ChangeLog-2007 @@ -0,0 +1,2480 @@ +2007-12-27 Thomas Koenig + + PR libfortran/22423 + * intrinsics/pack_generic.c (pack): Change type of mask argument + to gfc_array_l1 * in prototype and function. + (pack_char): Likewise. + * intrinsics/unpack_generic.c (unpack1): Likewise. + (unpack1_char): Likewise. + (unpack0): Likewise. + (unpack0_char): Likewise. + +2007-12-27 Thomas Koenig + + PR libfortran/34594 + * runtime/error.c: If there was a previous error, don't + mask it with another error mesage, EOF or EOR condition. + +2007-12-25 Jerry DeLisle + + PR libfortran/34560 + * io/transfer.c (read_sf): Check if readlen was less than the requested + number of bytes to read and if so, generate error. + +2007-12-25 Daniel Franke + + PR fortran/34533 + * intrinsics/cpu_time.c: Moved code commonly usable for CPU_TIME, + DTIME and ETIME to ... + * intrinsics/time_1.h: ... here. + * intrinsics/dtime.c: New file. + * intrinsics/etime.c: Newly implemented using the common + time-aquisition function from time_1.h. + * gfortran.map (_gfortran_dtime, _gfortran_dtime_sub): New. + * Makefile.am: Added new file. + * Makefile.in: Regenerated. + * configure: Regenerated. + +2007-12-25 Thomas Koenig + + PR libfortran/34566 + * m4/matmull.m4: Multiply xstride and ystride by correct kind. + * generated/matmul_l4.c: Regenerated. + * generated/matmul_l8.c: Regenerated. + * generated/matmul_l16.c: Regenerated. + +2007-12-19 Tobias Burnus + + PR fortran/34530 + * io/list_read.c (eat_line): Move up in the file. + (eat_separator): In namelist mode, skip over comment lines. + +2007-12-16 Jerry DeLisle + + PR fortran/34427 + * io/list_read.c (read_real): Handle intervening line ends and spaces. + (get_name): Don't push separators to saved_string. + (eat_separator): If in namelist mode eat spaces and line ends as well. + +2007-12-13 Thomas Koenig + + PR libfortran/34370 + PR libfortran/34323 + PR libfortran/34405 + * io/io.h: Add previous_nonadvancing_write to gfc_unit. + Add prototype for finish_last_advance_record. + * io/file_pos.c (st_backspace): Generate error if backspace is + attempted for direct access or unformatted stream. + If there are bytes left from a previous ADVANCE="no", write + them out before performing the backspace. + (st_endfile): Generate error if endfile is attempted for + direct access. + If there are bytes left from a previous ADVANCE="no", write + them out before performing the endfile. + (st_rewind): Generate error if rewind is attempted for + direct access. + * unit.c (close_unit_1): Move functionality to write + previously written bytes to... + (finish_last_advance_record): ... here. + * transfer.c (data_transfer_init): If reading, reset + previous_nonadvancing_write. + (finalize_transfer): Set the previous_noadvancing_write + flag if we are writing and ADVANCE="no" was specified. + Only call next_record() if advance="no" wasn't specified. + +2007-12-13 Tobias Burnus + + PR fortran/34427 + * io/list_read.c (read_real): Fix unwinding for namelists. + +2007-12-10 Jerry DeLisle + + PR libfortran/34411 + * io/read.c (convert_real, read_l, read_decimal, read_radix, read_f): + Call next_record after bad read or overflow error. + +2007-12-09 Tobias Burnus + + PR fortran/34404 + * io/list_read.c (parse_real): Remove superfluous "goto bad;". + +2007-12-08 Tobias Burnus + + PR fortran/34319 + * io/list_read.c (parse_real, read_real): Support NaN/Infinity. + +2007-12-02 Jerry DeLisle + Thomas Koenig + + PR libfortran/33985 + * io/transfer.c (read_block, read_block_direct, write_block, write_buf): + Don't seek if file position is already there for STREAM I/O. + (finalize_transfer): For STREAM I/O don't flush unless the file position + has moved past the start position before the transfer. + +2007-12-01 Francois-Xavier Coudert + + * intrinsic/stat.c (stat_i4_sub_0, stat_i8_sub_0): Mark parameter + with unused attribute. + * intrinsics/system_clock.c (system_clock_4, system_clock_8): + Remove unused variable. + * intrinsics/umask.c: Include unistd.h. + +2007-11-30 Jerry DeLisle + + PR libfortran/34291 + * io/list_read.c (read_character): When reading an unquoted string, + return if special characters that could signify the end of the namelist + read are encountered. + +2007-11-29 Steven G. Kargl + + PR libfortran/33583 + * libgfortran/gfortran.map: Add tgammaf, tgamma, lgamma, and lgammaf. + * gfortran.dg/gamma_5.f90: Remove xfail. + +2007-11-16 Francois-Xavier Coudert + + PR libfortran/33583 + PR libfortran/33698 + * intrinsics/c99_functions.c (tgamma, tgammaf, lgamma, lgammaf): + New fallback functions. + * c99_protos.h (tgamma, tgammaf, lgamma, lgammaf): New prototypes. + * configure.ac: Add checks for tgamma, tgammaf, tgammal, lgamma, + lgammaf and lgammal. + * config.h.in: Regenerate. + * configure: Regenerate. + +2007-11-08 Francois-Xavier Coudert + + * mk-kinds-h.sh: Change sed syntax. + +2007-11-06 Jerry DeLisle + + PR libfortran/33985 + * io/transfer.c (finalize_transfer): Revert previous patch. + +2007-11-03 Jerry DeLisle + + PR libfortran/33985 + * io/transfer.c (finalize_transfer): Do not flush for + unformatted STREAM I/O. + +2007-10-27 Tobias Burnus + + * mk-kinds-h.sh: Change LANG=C to LC_ALL=C. + +2007-10-26 Tobias Burnus + + * mk-kinds-h.sh: Add "LANG=C". + +2007-10-26 Francois-Xavier Coudert + + * libgfortran.h (GFC_REAL_*_HUGE, GFC_REAL_*_DIGITS, + GFC_REAL_*_RADIX): Remove. + * mk-kinds-h.sh: Define GFC_REAL_*_HUGE, GFC_REAL_*_DIGITS and + GFC_REAL_*_RADIX. Don't define GFC_REAL_LARGEST_FORMAT and + GFC_REAL_LARGEST. + +2007-10-19 Ben Elliston + + * intrinsics/signal.c (alarm_sub_i4): Mark conditionally unused + parameters with __attribute__ ((unused)). + (alarm_sub_i8): Likewise. + (alarm_sub_int_i4): Likewise. + (alarm_sub_int_i8): Likewise. + +2007-10-18 Francois-Xavier Coudert + Jerry DeLisle + + PR libfortran/33795 + * libgfortran.h: Add unbuffered_preconnected. + * io/unix.c (output_stream): Set stream unbuffered flag if + options.unbuffered_preconnected has been set. + (error_stream): Ditto. + * runtime/environ.c (variable_table): Add to environment variable table + the entry: GFORTRAN_UNBUFFERED_PRECONNECTED. + +2007-10-18 Francois-Xavier Coudert + + PR libfortran/32021 + * runtime/backtrace.c (local_strcasestr): Protect by appropriate + macros. + * runtime/main.c (cleanup): Cast argument to free. + * intrinsics/spread_generic.c (spread_internal): Match runtime_error + arguments and format. + * intrinsics/signal.c (alarm_sub_int_i4, alarm_sub_int_i8): Cast + pointers to avoid warnings. + +2007-10-18 Ben Elliston + + * runtime/environ.c (init_choice): Remove unused function. + (show_choice): Likewise. + (choice): Remove. + (FP_ROUND_NEAREST, FP_ROUND_UP, FP_ROUND_DOWN, FP_ROUND_ZERO): + Remove. + (precision, signal_choices): Remove. + +2007-10-15 Christopher D. Rickett + + PR fortran/32600 + * libgfortran/intrinsics/iso_c_binding.c: Remove c_associated_1 + and c_associated_2. + * libgfortran/intrinsics/iso_c_binding.h: Ditto. + * libgfortran/gfortran.map: Ditto. + +2007-10-15 Jerry DeLisle + + PR libfortran/33055 + * io/inquire.c (inquire_via_unit): If inquiring by unit, check for + an error condition from the IOSTAT variable and set EXIST to false if + there was a bad unit number. + +2007-10-14 Jerry DeLisle + + PR libfortran/33672 + * io/list_read.c (nml_parse_qualifier): Add character specific error + messages. Check for proper form of sub-string qualifiers. Return the + parsed_rank flag indicating a non-zero rank qualifier. + (nml_get_obj_data): Count the instances of non-zero rank qualifiers. + Issue an error if more that one non-zero rank qualifier is found. + +2007-10-04 Jerry DeLisle + + PR libfortran/33253 + * io/list_read.c (read_character): Use line_buffer to scan ahead for + object name or string when no delimiter is found. + +2007-10-04 Francois-Xavier Coudert + + PR libfortran/32021 + * runtime/environ.c (init_mem, show_mem, init_round, show_round, + init_precision, show_precision, init_signal, show_signal): Remove. + (variable_table): Remove GFORTRAN_MEM_INIT, GFORTRAN_MEM_CHECK, + GFORTRAN_SIGHUP, GFORTRAN_SIGINT, GFORTRAN_FPU_ROUND and + GFORTRAN_FPU_PRECISION. + * libgfortran.h (options_t): Remove mem_check, fpu_round, + fpu_precision, sighup, sigint, allocate_init_flag and + allocate_init_value. + +2007-10-02 Jerry DeLisle + + PR libfortran/33253 + * io/list_read.c (read_character): Use DELIM_APOSTROPHE and DELIM_QUOTE + and quote value in check of first character in string. + +2007-10-02 Francois-Xavier Coudert + + PR fortran/33469 + * io/write.c (write_real): Widen the default formats. + +2007-09-28 Jerry DeLisle + + PR libfortran/33400 + * io/list_read.c (next_char): Interpret encountering the end of file the + first time as an end of line. Subsequent reads give EOF error. + +2007-09-27 Jerry DeLisle + + PR libfortran/33421 + * io/list_read.c (read_character): Revert r128057. + +2007-09-21 Bernhard Fischer + + PR fortran/31546 + * (configure.ac): Add --enable-intermodule for onestep build. + * (Makefile.am): Handle onestep build. + * (configure, Makefile.in): Regenerate. + +2007-09-21 Francois-Xavier Coudert + + PR libfortran/26253 + * intrinsics/c99_functions.c (scalbn): Use ldexp if appopriate. + +2007-09-21 Francois-Xavier Coudert + + PR libfortran/23272 + * io/unix.c (id_from_handle, id_from_path, id_from_fd): New + functions. + (compare_file_filename, find_file, find_file0): Use the new + functions above. + +2007-09-21 Francois-Xavier Coudert + + * acinclude.m4 (LIBGFOR_TARGET_ILP32): Remove test. + * configure.ac: Don't call LIBGFOR_TARGET_ILP32. + * configure: Regenerate. + * config.h.in: Regenerate. + +2007-09-15 Francois-Xavier Coudert + + PR libfortran/21185 + * runtime/compile_options.c (set_options): Fix typo. + * runtime/main.c (store_exe_path): If getcwd is not available, + don't use it. + * intrinsics/getcwd.c: Same thing here. + * io/unix.c (fallback_access): New fallback function for access. + (fix_fd): Don't use dup if it's not available. + * configure.ac: Check for dup and getcwd. + * configure: Regenerate. + * config.h.in: Regenerate. + +2007-09-12 Francois-Xavier Coudert + + * io/io.h: Include libgfortran.h first. + +2007-09-11 Francois-Xavier Coudert + + PR libfortran/33386 + * runtime/select.c (select_string): Initialize default_jump. + +2007-09-07 Jerry DeLisle + + PR libfortran/33307 + * io/filepos.c (st_backspace): Don't truncate when already at the end + of the file. + +2007-09-07 Uros Bizjak + + * config/fpu-387.h: Include cpuid.h. + (set_fpu): Use __get_cpuid to check for SSE. + +2007-09-06 Thomas Koenig + + PR fortran/33298 + * intrinsics/spread_generic.c(spread_internal): Enable + bounds checking by comparing extents if the bounds_check + option has been set. If any extent is <=0, return early. + +2007-09-06 David Edelsohn + + * libgfortran.h: Include config.h first. + * io/io.h (struct stream): Rename truncate to trunc. + * io/unix.c (fd_open): Same. + (open_internal): Same. + +2007-09-05 Jerry DeLisle + + PR libfortran/33253 + * io/write.c (nml_write_obj): Set the delimiter correctly before + calling write_character. (namelist_write): Clean up the code a little + and add comments to clarify what its doing. + +2007-09-04 Jerry DeLisle + + PR libfortran/33225 + * io/write.c (stdbool.h): Add include. (sign_t): Move typedef to + new file write_float.def. Include write_float.def. + (extract_real): Delete. (calculate_sign): Delete. + (calculate_exp): Delete. (calculate_G_format): Delete. + (output_float): Delete. (write_float): Delete. + * io/write_float.def (calculate_sign): Added. + (output_float): Refactored to be independent of kind and added to this + file for inclusion. (write_infnan): New function to write "Infinite" + or "NaN" depending on flags passed, independent of kind. + (CALCULATE_EXP): New macro to build kind specific functions. Use it. + (OUTPUT_FLOAT_FMT_G): New macro, likewise. Use it. + (DTOA, DTOAL): Macros to implement "decimal to ascii". + (WRITE_FLOAT): New macro for kind specific write_float functions. + (write_float): Revised function to determine kind and use WRITE_FLOAT + to implement kind specific output. + +2007-09-03 Jerry DeLisle + + PR libfortran/33253 + * io/list_read.c (read_character): Use DELIM_APOSTROPHE and + DELIM_QUOTE in check of first character in string. + +2007-09-03 Francois-Xavier Coudert + + PR fortran/31675 + * libgfortran.h: Include gcc/fortran/libgfortran.h. + Remove M_PI, GFC_MAX_DIMENSIONS, GFC_DTYPE_*, GFC_NUM_RANK_BITS, + error_codes, GFC_STD_*, GFC_FPE_* and unit_convert. + * runtime/environ.c (variable_table): Use GFC_*_UNIT_NUMBER instead + of hardcoded constants. + (do_parse, init_unformatted): Use GFC_CONVERT_* macros instead of + CONVERT_*. + * runtime/string.c (find_option): Use LIBERROR_BAD_OPTION instead + of ERROR_BAD_OPTION. + * runtime/error.c (translate_error, generate_error): Use + LIBERROR_* macros instead of ERROR_*. + * io/file_pos.c (formatted_backspace, unformatted_backspace, + st_backspace, st_rewind, st_flush): Rename macros. + * io/open.c (convert_opt, edit_modes, new_unit, already_open, + st_open): Likewise. + * io/close.c (st_close): Likewise. + * io/list_read.c (next_char, convert_integer, parse_repeat, + read_logical, read_integer, read_character, parse_real, + check_type, list_formatted_read_scalar, namelist_read, + nml_err_ret): Likewise. + * io/read.c (convert_real, read_l, read_decimal, read_radix, + read_f): Likewise. + * io/inquire.c (inquire_via_unit): Likewise. + * io/unit.c (get_internal_unit): Likewise. + * io/transfer.c (read_sf, read_block, read_block_direct, + write_block, write_buf, unformatted_read, unformatted_write, + formatted_transfer_scalar, us_read, us_write, data_transfer_init, + skip_record, next_record_r, write_us_marker, next_record_w_unf, + next_record_w, finalize_transfer, st_read, st_write_done): + Likewise. + * io/format.c (format_error): Likewise. + +2007-08-31 Francois-Xavier Coudert + + * m4/minloc1.m4: Update copyright year and ajust headers order. + * m4/maxloc1.m4: Likewise. + * m4/in_pack.m4: Likewise. + * m4/sum.m4: Likewise. + * m4/fraction.m4: Likewise. + * m4/all.m4: Likewise. + * m4/set_exponent.m4: Likewise. + * m4/transpose.m4: Likewise. + * m4/eoshift1.m4: Likewise. + * m4/spacing.m4: Likewise. + * m4/eoshift3.m4: Likewise. + * m4/minval.m4: Likewise. + * m4/count.m4: Likewise. + * m4/maxval.m4: Likewise. + * m4/exponent.m4: Likewise. + * m4/shape.m4: Likewise. + * m4/head.m4: Likewise. + * m4/cshift1.m4: Likewise. + * m4/minloc0.m4: Likewise. + * m4/nearest.m4: Likewise. + * m4/maxloc0.m4: Likewise. + * m4/pow.m4: Likewise. + * m4/in_unpack.m4: Likewise. + * m4/matmull.m4: Likewise. + * m4/product.m4: Likewise. + * m4/reshape.m4: Likewise. + * m4/any.m4: Likewise. + * m4/rrspacing.m4: Likewise. + * m4/matmul.m4: Likewise. + * runtime/backtrace.c: Likewise. + * runtime/environ.c: Likewise. + * runtime/in_pack_generic.c: Likewise. + * runtime/compile_options.c: Likewise. + * runtime/in_unpack_generic.c: Likewise. + * runtime/main.c: Likewise. + * runtime/stop.c: Likewise. + * runtime/string.c: Likewise. + * runtime/memory.c: Likewise. + * runtime/error.c: Likewise. + * runtime/pause.c: Likewise. + * intrinsics/ierrno.c: Likewise. + * intrinsics/system_clock.c: Likewise. + * intrinsics/cshift0.c: Likewise. + * intrinsics/unlink.c: Likewise. + * intrinsics/ctime.c: Likewise. + * intrinsics/etime.c: Likewise. + * intrinsics/cpu_time.c: Likewise. + * intrinsics/malloc.c: Likewise. + * intrinsics/hostnm.c: Likewise. + * intrinsics/sleep.c: Likewise. + * intrinsics/exit.c: Likewise. + * intrinsics/perror.c: Likewise. + * intrinsics/transpose_generic.c: Likewise. + * intrinsics/pack_generic.c: Likewise. + * intrinsics/spread_generic.c: Likewise. + * intrinsics/stat.c: Likewise. + * intrinsics/string_intrinsics.c: Likewise. + * intrinsics/getcwd.c: Likewise. + * intrinsics/date_and_time.c: Likewise. + * intrinsics/unpack_generic.c: Likewise. + * intrinsics/move_alloc.c: Likewise. + * intrinsics/getlog.c: Likewise. + * intrinsics/eoshift0.c: Likewise. + * intrinsics/eoshift2.c: Likewise. + * intrinsics/reshape_generic.c: Likewise. + * intrinsics/system.c: Likewise. + * intrinsics/iso_c_binding.c: Likewise. + * intrinsics/env.c: Likewise. + * intrinsics/kill.c: Likewise. + * intrinsics/reshape_packed.c: Likewise. + * intrinsics/time.c: Likewise. + * intrinsics/gerror.c: Likewise. + * intrinsics/access.c: Likewise. + * intrinsics/fnum.c: Likewise. + * intrinsics/abort.c: Likewise. + * intrinsics/rename.c: Likewise. + * intrinsics/signal.c: Likewise. + * intrinsics/symlnk.c: Likewise. + * intrinsics/random.c: Likewise. + * intrinsics/umask.c: Likewise. + * intrinsics/getXid.c: Likewise. + * intrinsics/rand.c: Likewise. + * intrinsics/chdir.c: Likewise. + * intrinsics/chmod.c: Likewise. + * intrinsics/clock.c: Likewise. + * intrinsics/args.c: Likewise. + * intrinsics/link.c: Likewise. + * c99_protos.h: Likewise. + * config/fpu-387.h: Likewise. + * config/fpu-aix.h: Likewise. + * config/fpu-sysv.h: Likewise. + * config/fpu-generic.h: Likewise. + * config/fpu-glibc.h: Likewise. + * io/file_pos.c: Likewise. + * io/open.c: Likewise. + * io/size_from_kind.c: Likewise. + * io/close.c: Likewise. + * io/list_read.c: Likewise. + * io/read.c: Likewise. + * io/inquire.c: Likewise. + * io/unit.c: Likewise. + * io/unix.c: Likewise. + * io/transfer.c: Likewise. + * io/intrinsics.c: Likewise. + * io/format.c: Likewise. + * io/lock.c: Likewise. + * io/write.c: Likewise. + * io/write_float.def: Likewise. + * fmain.c: Likewise. + * generated/minval_r8.c: Regenerate. + * generated/minloc1_16_r16.c: Regenerate. + * generated/maxloc1_4_r8.c: Regenerate. + * generated/sum_i8.c: Regenerate. + * generated/eoshift3_4.c: Regenerate. + * generated/transpose_c8.c: Regenerate. + * generated/any_l16.c: Regenerate. + * generated/eoshift1_8.c: Regenerate. + * generated/pow_r8_i8.c: Regenerate. + * generated/reshape_r16.c: Regenerate. + * generated/pow_i4_i16.c: Regenerate. + * generated/maxval_i2.c: Regenerate. + * generated/product_r4.c: Regenerate. + * generated/maxloc1_8_i4.c: Regenerate. + * generated/exponent_r16.c: Regenerate. + * generated/maxloc0_4_r4.c: Regenerate. + * generated/fraction_r16.c: Regenerate. + * generated/in_unpack_i8.c: Regenerate. + * generated/matmul_r8.c: Regenerate. + * generated/product_i2.c: Regenerate. + * generated/fraction_r4.c: Regenerate. + * generated/minloc0_4_r16.c: Regenerate. + * generated/reshape_c4.c: Regenerate. + * generated/minloc0_4_i1.c: Regenerate. + * generated/maxloc0_4_r16.c: Regenerate. + * generated/maxloc0_4_i2.c: Regenerate. + * generated/minloc1_8_r16.c: Regenerate. + * generated/maxloc1_8_r16.c: Regenerate. + * generated/set_exponent_r8.c: Regenerate. + * generated/in_unpack_i16.c: Regenerate. + * generated/transpose_c16.c: Regenerate. + * generated/maxloc0_8_i8.c: Regenerate. + * generated/pow_c4_i8.c: Regenerate. + * generated/sum_r16.c: Regenerate. + * generated/sum_i1.c: Regenerate. + * generated/minloc1_4_r8.c: Regenerate. + * generated/transpose_r10.c: Regenerate. + * generated/pow_i8_i4.c: Regenerate. + * generated/maxloc1_16_r16.c: Regenerate. + * generated/minloc1_16_i4.c: Regenerate. + * generated/maxloc1_16_i4.c: Regenerate. + * generated/minloc0_16_i8.c: Regenerate. + * generated/maxloc0_16_i8.c: Regenerate. + * generated/nearest_r8.c: Regenerate. + * generated/spacing_r16.c: Regenerate. + * generated/transpose_i8.c: Regenerate. + * generated/count_16_l16.c: Regenerate. + * generated/maxval_r16.c: Regenerate. + * generated/count_8_l8.c: Regenerate. + * generated/product_c10.c: Regenerate. + * generated/minloc1_8_i4.c: Regenerate. + * generated/minloc0_16_i16.c: Regenerate. + * generated/matmul_r16.c: Regenerate. + * generated/eoshift1_16.c: Regenerate. + * generated/minloc0_4_r4.c: Regenerate. + * generated/pow_c16_i16.c: Regenerate. + * generated/set_exponent_r10.c: Regenerate. + * generated/pow_i16_i16.c: Regenerate. + * generated/product_c4.c: Regenerate. + * generated/sum_r4.c: Regenerate. + * generated/pow_c16_i4.c: Regenerate. + * generated/rrspacing_r10.c: Regenerate. + * generated/in_pack_c16.c: Regenerate. + * generated/minloc0_4_i2.c: Regenerate. + * generated/maxloc0_8_i1.c: Regenerate. + * generated/reshape_i4.c: Regenerate. + * generated/minloc0_8_i8.c: Regenerate. + * generated/matmul_c8.c: Regenerate. + * generated/spacing_r4.c: Regenerate. + * generated/in_pack_c4.c: Regenerate. + * generated/all_l16.c: Regenerate. + * generated/minloc1_16_r10.c: Regenerate. + * generated/sum_i2.c: Regenerate. + * generated/minloc0_16_i1.c: Regenerate. + * generated/reshape_c16.c: Regenerate. + * generated/maxloc0_16_i1.c: Regenerate. + * generated/maxloc1_8_r8.c: Regenerate. + * generated/minval_i16.c: Regenerate. + * generated/reshape_r10.c: Regenerate. + * generated/exponent_r10.c: Regenerate. + * generated/maxval_i4.c: Regenerate. + * generated/any_l4.c: Regenerate. + * generated/minval_i8.c: Regenerate. + * generated/maxloc1_4_i8.c: Regenerate. + * generated/fraction_r10.c: Regenerate. + * generated/maxloc0_16_i16.c: Regenerate. + * generated/shape_i4.c: Regenerate. + * generated/pow_r16_i8.c: Regenerate. + * generated/maxloc0_8_r4.c: Regenerate. + * generated/rrspacing_r8.c: Regenerate. + * generated/pow_c10_i4.c: Regenerate. + * generated/minloc1_4_i16.c: Regenerate. + * generated/minloc0_4_r10.c: Regenerate. + * generated/maxloc1_4_i16.c: Regenerate. + * generated/minloc0_8_i16.c: Regenerate. + * generated/maxloc0_4_r10.c: Regenerate. + * generated/maxloc0_8_i16.c: Regenerate. + * generated/minloc1_8_r10.c: Regenerate. + * generated/product_i4.c: Regenerate. + * generated/minloc0_16_r4.c: Regenerate. + * generated/sum_c16.c: Regenerate. + * generated/maxloc1_8_r10.c: Regenerate. + * generated/maxloc0_16_r4.c: Regenerate. + * generated/transpose_c10.c: Regenerate. + * generated/minloc1_16_r8.c: Regenerate. + * generated/minloc0_8_i1.c: Regenerate. + * generated/maxloc0_4_i4.c: Regenerate. + * generated/transpose_r4.c: Regenerate. + * generated/maxloc1_16_r8.c: Regenerate. + * generated/pow_i16_i8.c: Regenerate. + * generated/cshift1_4.c: Regenerate. + * generated/maxloc0_8_i2.c: Regenerate. + * generated/sum_r10.c: Regenerate. + * generated/nearest_r16.c: Regenerate. + * generated/sum_c4.c: Regenerate. + * generated/maxloc1_16_r10.c: Regenerate. + * generated/count_4_l16.c: Regenerate. + * generated/pow_c8_i8.c: Regenerate. + * generated/matmul_i8.c: Regenerate. + * generated/in_pack_i4.c: Regenerate. + * generated/pow_i4_i8.c: Regenerate. + * generated/minloc0_16_i2.c: Regenerate. + * generated/minloc1_8_r8.c: Regenerate. + * generated/maxloc0_16_i2.c: Regenerate. + * generated/exponent_r4.c: Regenerate. + * generated/spacing_r10.c: Regenerate. + * generated/matmul_c16.c: Regenerate. + * generated/pow_c4_i16.c: Regenerate. + * generated/maxval_r10.c: Regenerate. + * generated/count_4_l4.c: Regenerate. + * generated/shape_i16.c: Regenerate. + * generated/minval_i1.c: Regenerate. + * generated/maxloc1_4_i1.c: Regenerate. + * generated/matmul_r10.c: Regenerate. + * generated/minloc1_4_i8.c: Regenerate. + * generated/pow_r10_i8.c: Regenerate. + * generated/minloc0_8_r4.c: Regenerate. + * generated/in_unpack_c4.c: Regenerate. + * generated/matmul_l4.c: Regenerate. + * generated/product_i16.c: Regenerate. + * generated/minloc0_16_r16.c: Regenerate. + * generated/reshape_r8.c: Regenerate. + * generated/pow_r10_i16.c: Regenerate. + * generated/all_l4.c: Regenerate. + * generated/in_pack_c10.c: Regenerate. + * generated/minloc0_4_i4.c: Regenerate. + * generated/minloc0_8_i2.c: Regenerate. + * generated/matmul_i1.c: Regenerate. + * generated/reshape_c10.c: Regenerate. + * generated/minval_r4.c: Regenerate. + * generated/maxloc1_4_r4.c: Regenerate. + * generated/pow_r8_i16.c: Regenerate. + * generated/sum_i4.c: Regenerate. + * generated/maxval_r8.c: Regenerate. + * generated/count_16_l8.c: Regenerate. + * generated/transpose_c4.c: Regenerate. + * generated/eoshift1_4.c: Regenerate. + * generated/eoshift3_8.c: Regenerate. + * generated/minval_r16.c: Regenerate. + * generated/minloc1_4_i1.c: Regenerate. + * generated/minval_i2.c: Regenerate. + * generated/maxloc1_4_i2.c: Regenerate. + * generated/pow_i8_i16.c: Regenerate. + * generated/product_r8.c: Regenerate. + * generated/maxloc1_8_i8.c: Regenerate. + * generated/maxloc0_4_r8.c: Regenerate. + * generated/maxloc0_16_r16.c: Regenerate. + * generated/in_unpack_i4.c: Regenerate. + * generated/matmul_r4.c: Regenerate. + * generated/sum_c10.c: Regenerate. + * generated/minloc1_4_r16.c: Regenerate. + * generated/fraction_r8.c: Regenerate. + * generated/maxloc1_4_r16.c: Regenerate. + * generated/set_exponent_r4.c: Regenerate. + * generated/minloc0_8_r16.c: Regenerate. + * generated/in_unpack_c16.c: Regenerate. + * generated/reshape_c8.c: Regenerate. + * generated/maxloc0_8_r16.c: Regenerate. + * generated/nearest_r10.c: Regenerate. + * generated/maxloc0_8_i4.c: Regenerate. + * generated/pow_c4_i4.c: Regenerate. + * generated/matmul_i2.c: Regenerate. + * generated/minloc1_4_r4.c: Regenerate. + * generated/transpose_i16.c: Regenerate. + * generated/matmul_c10.c: Regenerate. + * generated/minloc0_16_i4.c: Regenerate. + * generated/maxloc0_16_i4.c: Regenerate. + * generated/pow_i8_i8.c: Regenerate. + * generated/nearest_r4.c: Regenerate. + * generated/minloc1_16_i8.c: Regenerate. + * generated/maxloc1_16_i8.c: Regenerate. + * generated/transpose_i4.c: Regenerate. + * generated/count_8_l4.c: Regenerate. + * generated/minloc1_4_i2.c: Regenerate. + * generated/matmul_l16.c: Regenerate. + * generated/maxloc1_8_i1.c: Regenerate. + * generated/minloc0_16_r10.c: Regenerate. + * generated/minloc1_8_i8.c: Regenerate. + * generated/minloc0_4_r8.c: Regenerate. + * generated/product_r16.c: Regenerate. + * generated/product_c8.c: Regenerate. + * generated/pow_r16_i16.c: Regenerate. + * generated/sum_r8.c: Regenerate. + * generated/pow_c16_i8.c: Regenerate. + * generated/in_pack_i16.c: Regenerate. + * generated/minloc0_8_i4.c: Regenerate. + * generated/matmul_c4.c: Regenerate. + * generated/minloc1_16_i16.c: Regenerate. + * generated/reshape_i8.c: Regenerate. + * generated/spacing_r8.c: Regenerate. + * generated/in_pack_c8.c: Regenerate. + * generated/maxloc1_8_r4.c: Regenerate. + * generated/minloc1_16_i1.c: Regenerate. + * generated/maxloc1_16_i1.c: Regenerate. + * generated/reshape_i16.c: Regenerate. + * generated/minval_r10.c: Regenerate. + * generated/pow_r4_i8.c: Regenerate. + * generated/minloc1_8_i1.c: Regenerate. + * generated/minval_i4.c: Regenerate. + * generated/maxloc1_4_i4.c: Regenerate. + * generated/maxloc1_8_i2.c: Regenerate. + * generated/maxval_i8.c: Regenerate. + * generated/eoshift3_16.c: Regenerate. + * generated/any_l8.c: Regenerate. + * generated/maxloc0_16_r10.c: Regenerate. + * generated/rrspacing_r4.c: Regenerate. + * generated/shape_i8.c: Regenerate. + * generated/maxloc0_8_r8.c: Regenerate. + * generated/minloc0_4_i16.c: Regenerate. + * generated/maxloc0_4_i16.c: Regenerate. + * generated/minloc1_4_r10.c: Regenerate. + * generated/minloc1_8_i16.c: Regenerate. + * generated/pow_c10_i8.c: Regenerate. + * generated/maxloc1_4_r10.c: Regenerate. + * generated/maxloc1_8_i16.c: Regenerate. + * generated/in_unpack_c10.c: Regenerate. + * generated/minloc0_8_r10.c: Regenerate. + * generated/maxloc0_8_r10.c: Regenerate. + * generated/minloc1_16_r4.c: Regenerate. + * generated/maxloc1_16_r4.c: Regenerate. + * generated/minloc0_16_r8.c: Regenerate. + * generated/pow_i16_i4.c: Regenerate. + * generated/product_i8.c: Regenerate. + * generated/maxloc0_16_r8.c: Regenerate. + * generated/sum_i16.c: Regenerate. + * generated/maxloc0_4_i8.c: Regenerate. + * generated/transpose_r8.c: Regenerate. + * generated/cshift1_8.c: Regenerate. + * generated/maxloc1_16_i16.c: Regenerate. + * generated/matmul_i4.c: Regenerate. + * generated/pow_c8_i4.c: Regenerate. + * generated/pow_i4_i4.c: Regenerate. + * generated/minloc1_8_r4.c: Regenerate. + * generated/sum_c8.c: Regenerate. + * generated/count_8_l16.c: Regenerate. + * generated/minloc1_16_i2.c: Regenerate. + * generated/maxloc1_16_i2.c: Regenerate. + * generated/in_pack_i8.c: Regenerate. + * generated/transpose_r16.c: Regenerate. + * generated/maxval_i16.c: Regenerate. + * generated/exponent_r8.c: Regenerate. + * generated/matmul_i16.c: Regenerate. + * generated/count_4_l8.c: Regenerate. + * generated/pow_c8_i16.c: Regenerate. + * generated/maxval_i1.c: Regenerate. + * generated/minloc1_4_i4.c: Regenerate. + * generated/minloc1_8_i2.c: Regenerate. + * generated/pow_c10_i16.c: Regenerate. + * generated/product_c16.c: Regenerate. + * generated/reshape_r4.c: Regenerate. + * generated/in_unpack_c8.c: Regenerate. + * generated/minloc0_8_r8.c: Regenerate. + * generated/matmul_l8.c: Regenerate. + * generated/product_r10.c: Regenerate. + * generated/set_exponent_r16.c: Regenerate. + * generated/cshift1_16.c: Regenerate. + * generated/product_i1.c: Regenerate. + * generated/all_l8.c: Regenerate. + * generated/maxloc0_4_i1.c: Regenerate. + * generated/rrspacing_r16.c: Regenerate. + * generated/minloc0_4_i8.c: Regenerate. + * generated/pow_r4_i16.c: Regenerate. + * generated/count_16_l4.c: Regenerate. + * generated/maxval_r4.c: Regenerate. + +2007-08-30 Jerry DeLisle + + PR libfortran/33225 + * io/write.c: Revert changes from patch of 2007-08-27. + * io/write_float.def: Remove file, reverting addition. + +2007-08-29 Francois-Xavier Coudert + + * runtime/memory.c (internal_realloc, allocate, allocate_array, + deallocate): Remove functions. + * gfortran.map (_gfortran_allocate, _gfortran_allocate_array, + _gfortran_deallocate, _gfortran_internal_realloc): Remove symbols. + * libgfortran.h (error_codes): Add comment. + +2007-08-28 Jerry DeLisle + + PR libfortran/33055 + Revert previous patch. + +2007-08-27 Jerry DeLisle + + * io/write.c (stdbool.h): Add include. (sign_t): Move typedef to + new file write_float.def. Include write_float.def. + (extract_real): Delete. (calculate_sign): Delete. + (calculate_exp): Delete. (calculate_G_format): Delete. + (output_float): Delete. (write_float): Delete. + * io/write_float.def (calculate_sign): Added. + (output_float): Refactored to be independent of kind and added to this + file for inclusion. (write_infnan): New function to write "Infinite" + or "NaN" depending on flags passed, independent of kind. + (CALCULATE_EXP): New macro to build kind specific functions. Use it. + (OUTPUT_FLOAT_FMT_G): New macro, likewise. Use it. + (DTOA, DTOAL): Macros to implement "decimal to ascii". + (WRITE_FLOAT): New macro for kind specific write_float functions. + (write_float): Revised function to determine kind and use WRITE_FLOAT + to implement kind specific output. + +2007-08-26 Jerry DeLisle + + PR libfortran/33055 + * io/inquire.c (inquire_via_unit): If inquiring by unit, check for + an error condition from the IOSTAT variable and set EXIST to false if + there was a bad unit number. + +2007-08-24 Thomas Koenig + + PR fortran/32972 + * libgfortran.h: Remove GFOR_POINTER_L8_TO_L4 macro. + Add GFOR_POINTER_TO_L1 macro. + * m4/iforeach.m4(`m'name`'rtype_qual`_'atype_code): + Change argument 'mask' to gfc_array_l1. Adjust prototype. + Change mask pointer to GFC_LOGICAL_1. Multiply strides + by kind of mask + * m4/ifunction.m4: Likewise. + * intrinsics/pack_generic.c(pack_internal): Likewise. + * intrinsics/unpack_generic.c(unpack_internal): Likewise. + * m4/matmull.m4: Switch to GFC_LOGICAL_1. Multiply strides by + kind of logical arguments a and b. + * generated/matmul_l16.c: Regenerated. + * generated/matmul_l4.c: Regenerated. + * generated/matmul_l8.c: Regenerated. + * generated/maxloc0_16_i1.c: Regenerated. + * generated/maxloc0_16_i16.c: Regenerated. + * generated/maxloc0_16_i2.c: Regenerated. + * generated/maxloc0_16_i4.c: Regenerated. + * generated/maxloc0_16_i8.c: Regenerated. + * generated/maxloc0_16_r10.c: Regenerated. + * generated/maxloc0_16_r16.c: Regenerated. + * generated/maxloc0_16_r4.c: Regenerated. + * generated/maxloc0_16_r8.c: Regenerated. + * generated/maxloc0_4_i1.c: Regenerated. + * generated/maxloc0_4_i16.c: Regenerated. + * generated/maxloc0_4_i2.c: Regenerated. + * generated/maxloc0_4_i4.c: Regenerated. + * generated/maxloc0_4_i8.c: Regenerated. + * generated/maxloc0_4_r10.c: Regenerated. + * generated/maxloc0_4_r16.c: Regenerated. + * generated/maxloc0_4_r4.c: Regenerated. + * generated/maxloc0_4_r8.c: Regenerated. + * generated/maxloc0_8_i1.c: Regenerated. + * generated/maxloc0_8_i16.c: Regenerated. + * generated/maxloc0_8_i2.c: Regenerated. + * generated/maxloc0_8_i4.c: Regenerated. + * generated/maxloc0_8_i8.c: Regenerated. + * generated/maxloc0_8_r10.c: Regenerated. + * generated/maxloc0_8_r16.c: Regenerated. + * generated/maxloc0_8_r4.c: Regenerated. + * generated/maxloc0_8_r8.c: Regenerated. + * generated/maxloc1_16_i1.c: Regenerated. + * generated/maxloc1_16_i16.c: Regenerated. + * generated/maxloc1_16_i2.c: Regenerated. + * generated/maxloc1_16_i4.c: Regenerated. + * generated/maxloc1_16_i8.c: Regenerated. + * generated/maxloc1_16_r10.c: Regenerated. + * generated/maxloc1_16_r16.c: Regenerated. + * generated/maxloc1_16_r4.c: Regenerated. + * generated/maxloc1_16_r8.c: Regenerated. + * generated/maxloc1_4_i1.c: Regenerated. + * generated/maxloc1_4_i16.c: Regenerated. + * generated/maxloc1_4_i2.c: Regenerated. + * generated/maxloc1_4_i4.c: Regenerated. + * generated/maxloc1_4_i8.c: Regenerated. + * generated/maxloc1_4_r10.c: Regenerated. + * generated/maxloc1_4_r16.c: Regenerated. + * generated/maxloc1_4_r4.c: Regenerated. + * generated/maxloc1_4_r8.c: Regenerated. + * generated/maxloc1_8_i1.c: Regenerated. + * generated/maxloc1_8_i16.c: Regenerated. + * generated/maxloc1_8_i2.c: Regenerated. + * generated/maxloc1_8_i4.c: Regenerated. + * generated/maxloc1_8_i8.c: Regenerated. + * generated/maxloc1_8_r10.c: Regenerated. + * generated/maxloc1_8_r16.c: Regenerated. + * generated/maxloc1_8_r4.c: Regenerated. + * generated/maxloc1_8_r8.c: Regenerated. + * generated/maxval_i1.c: Regenerated. + * generated/maxval_i16.c: Regenerated. + * generated/maxval_i2.c: Regenerated. + * generated/maxval_i4.c: Regenerated. + * generated/maxval_i8.c: Regenerated. + * generated/maxval_r10.c: Regenerated. + * generated/maxval_r16.c: Regenerated. + * generated/maxval_r4.c: Regenerated. + * generated/maxval_r8.c: Regenerated. + * generated/minloc0_16_i1.c: Regenerated. + * generated/minloc0_16_i16.c: Regenerated. + * generated/minloc0_16_i2.c: Regenerated. + * generated/minloc0_16_i4.c: Regenerated. + * generated/minloc0_16_i8.c: Regenerated. + * generated/minloc0_16_r10.c: Regenerated. + * generated/minloc0_16_r16.c: Regenerated. + * generated/minloc0_16_r4.c: Regenerated. + * generated/minloc0_16_r8.c: Regenerated. + * generated/minloc0_4_i1.c: Regenerated. + * generated/minloc0_4_i16.c: Regenerated. + * generated/minloc0_4_i2.c: Regenerated. + * generated/minloc0_4_i4.c: Regenerated. + * generated/minloc0_4_i8.c: Regenerated. + * generated/minloc0_4_r10.c: Regenerated. + * generated/minloc0_4_r16.c: Regenerated. + * generated/minloc0_4_r4.c: Regenerated. + * generated/minloc0_4_r8.c: Regenerated. + * generated/minloc0_8_i1.c: Regenerated. + * generated/minloc0_8_i16.c: Regenerated. + * generated/minloc0_8_i2.c: Regenerated. + * generated/minloc0_8_i4.c: Regenerated. + * generated/minloc0_8_i8.c: Regenerated. + * generated/minloc0_8_r10.c: Regenerated. + * generated/minloc0_8_r16.c: Regenerated. + * generated/minloc0_8_r4.c: Regenerated. + * generated/minloc0_8_r8.c: Regenerated. + * generated/minloc1_16_i1.c: Regenerated. + * generated/minloc1_16_i16.c: Regenerated. + * generated/minloc1_16_i2.c: Regenerated. + * generated/minloc1_16_i4.c: Regenerated. + * generated/minloc1_16_i8.c: Regenerated. + * generated/minloc1_16_r10.c: Regenerated. + * generated/minloc1_16_r16.c: Regenerated. + * generated/minloc1_16_r4.c: Regenerated. + * generated/minloc1_16_r8.c: Regenerated. + * generated/minloc1_4_i1.c: Regenerated. + * generated/minloc1_4_i16.c: Regenerated. + * generated/minloc1_4_i2.c: Regenerated. + * generated/minloc1_4_i4.c: Regenerated. + * generated/minloc1_4_i8.c: Regenerated. + * generated/minloc1_4_r10.c: Regenerated. + * generated/minloc1_4_r16.c: Regenerated. + * generated/minloc1_4_r4.c: Regenerated. + * generated/minloc1_4_r8.c: Regenerated. + * generated/minloc1_8_i1.c: Regenerated. + * generated/minloc1_8_i16.c: Regenerated. + * generated/minloc1_8_i2.c: Regenerated. + * generated/minloc1_8_i4.c: Regenerated. + * generated/minloc1_8_i8.c: Regenerated. + * generated/minloc1_8_r10.c: Regenerated. + * generated/minloc1_8_r16.c: Regenerated. + * generated/minloc1_8_r4.c: Regenerated. + * generated/minloc1_8_r8.c: Regenerated. + * generated/minval_i1.c: Regenerated. + * generated/minval_i16.c: Regenerated. + * generated/minval_i2.c: Regenerated. + * generated/minval_i4.c: Regenerated. + * generated/minval_i8.c: Regenerated. + * generated/minval_r10.c: Regenerated. + * generated/minval_r16.c: Regenerated. + * generated/minval_r4.c: Regenerated. + * generated/minval_r8.c: Regenerated. + * generated/product_c10.c: Regenerated. + * generated/product_c16.c: Regenerated. + * generated/product_c4.c: Regenerated. + * generated/product_c8.c: Regenerated. + * generated/product_i1.c: Regenerated. + * generated/product_i16.c: Regenerated. + * generated/product_i2.c: Regenerated. + * generated/product_i4.c: Regenerated. + * generated/product_i8.c: Regenerated. + * generated/product_r10.c: Regenerated. + * generated/product_r16.c: Regenerated. + * generated/product_r4.c: Regenerated. + * generated/product_r8.c: Regenerated. + * generated/sum_c10.c: Regenerated. + * generated/sum_c16.c: Regenerated. + * generated/sum_c4.c: Regenerated. + * generated/sum_c8.c: Regenerated. + * generated/sum_i1.c: Regenerated. + * generated/sum_i16.c: Regenerated. + * generated/sum_i2.c: Regenerated. + * generated/sum_i4.c: Regenerated. + * generated/sum_i8.c: Regenerated. + * generated/sum_r10.c: Regenerated. + * generated/sum_r16.c: Regenerated. + * generated/sum_r4.c: Regenerated. + * generated/sum_r8.c: Regenerated. + +2007-08-23 Francois-Xavier Coudert + + PR libfortran/23138 + * acinclude.m4 (LIBGFOR_CHECK_MINGW_SNPRINTF): New check. + * configure.ac: Use LIBGFOR_CHECK_MINGW_SNPRINTF. + * libgfortran.h: If HAVE_MINGW_SNPRINTF is true, use __mingw_snprintf + instead of snprintf. + * config.h.in: Regenerate. + * configure: Regenerate. + +2007-08-22 Bernhard Fischer + + * libgfortran/Makefile.am (AM_CPPFLAGS): Commentary typo fix. + +2007-08-17 Francois-Xavier Coudert + + PR fortran/33079 + * intrinsics/string_intrinsics.c (string_trim, string_minmax): Fix + the zero-length result case. + +2007-08-15 Francois-Xavier Coudert + + PR fortran/33077 + * intrinsics/random.c (random_seed_i8): Fix code logic. + +2007-08-13 Danny Smith + + * acinclude.m4 (GTHREAD_USE_WEAK) Define to 0 for mingw32. + * configure: Regenerate. + +2007-08-12 Francois-Xavier Coudert + + PR fortran/30964 + PR fortran/33054 + * intrinsics/random.c (random_seed): Rename into random_seed_i4. + (random_seed_i8): New function. + * gfortran.map (GFORTRAN_1.0): Remove _gfortran_random_seed, + add _gfortran_random_seed_i4 and _gfortran_random_seed_i8. + * libgfortran.h (iexport_proto): Replace random_seed by + random_seed_i4 and random_seed_i8. + * runtime/main.c (init): Call the new random_seed_i4. + +2007-08-11 Francois-Xavier Coudert + Tobias Burnus + + PR fortran/31189 + * runtime/backtrace.c (show_backtrace): Skip _gfortrani_handler + when displaying backtrace. + * runtime/compile_options.c: Include . + (handler): New function. + (set_options): Set signal handlers for backtrace. + * libgfortran.h (handler): Add prototype. + +2007-08-11 Francois-Xavier Coudert + + * intrinsics/string_intrinsics.c (compare_string): Return an int. + * libgfortran.h (compare_string): Likewise. + +2007-08-10 Francois-Xavier Coudert + + PR fortran/31270 + * runtime/error.c (runtime_error_at): Add a variable number of + arguments. + * libgfortran.h (runtime_error_at): Update prototype. + +2007-08-10 Francois-Xavier Coudert + + PR fortran/32933 + * intrinsics/associated.c: Change return type of associated into + a C int. + +2007-08-10 Jerry DeLisle + + PR libfortran/33039 + * io/list_read.c (find_nml_name): Check for a space after a namelist + name match. + +2007-08-09 Tobias Burnus + + PR fortran/32987 + * io/format.c (next_char): Treat '\t' as ' ' in format specification. + +2007-08-06 Francois-Xavier Coudert + + PR fortran/30947 + * intrinsics/signal.c: Create specific versions of alarm_sub and + alarm_sub_int according to the integer kind of the last argument. + * gfortran.map (GFORTRAN_1.0): Remove _gfortran_alarm_sub and + _gfortran_alarm_sub_int, add _gfortran_alarm_sub_i4, + _gfortran_alarm_sub_i8, _gfortran_alarm_sub_int_i4 and + _gfortran_alarm_sub_int_i8. + +2007-08-06 Francois-Xavier Coudert + + PR fortran/29828 + * intrinsics/string_intrinsics.c (string_minmax): New function + and prototype. + * gfortran.map (GFORTRAN_1.0): Add _gfortran_string_minmax + +2007-08-05 Francois-Xavier Coudert + + PR fortran/31202 + * intrinsics/c99_functions.c (roundl): Provide fallback + implementation for systems without ceill. + * c99_protos.h (roundl): Define prototype in all cases. + +2007-08-03 Thomas Koenig + + PR libfortran/32977 + * io/unix.c: If there is no vsnprintf, use vsprintf and issue + a fatal error when a buffer overrun occurs. + +2007-08-03 Francois-Xavier Coudert + + PR fortran/31202 + * intrinsics/c99_functions.c (roundl,lroundf,lround,lroundl, + llroundf,llround,llroundl): New functions. + * c99_protos.h (roundl,lroundf,lround,lroundl,llroundf,llround, + llroundl): New prototypes. + * configure.ac: Check for lroundf, lround, lroundl, llroundf, + llround and llroundl. + * configure: Regenerate. + * Makefile.in: Regenerate. + * config.h.in: Regenerate. + +2007-07-30 Francois-Xavier Coudert + + * libgfortran.h: Include . + +2007-07-29 Thomas Koenig + + PR libfortran/32858 + PR libfortran/30814 + * configure.ac: Added checks for presence of stdio.h and + stdarg.h. Test presence of vsnprintf(). + * configure: Regenerated. + * config.h.in: Regenerated. + * libgfortran.h: Include . Add printf attribute to + prototype of runtime_error. Remove prototype for st_sprintf. + Add prototype for st_vprintf. + * runtime/main.c (store_exec_path): Replace st_sprintf by sprintf. + * runtime/error.c (st_sprintf): Remove. + (runtime_error): Rewrite as a variadic function. Call + st_vprintf(). + * intrinsics/pack_generic.c: Output extents of LHS and RHS for + bounds error. + * io/open.c (new_unit): Replace st_sprintf by sprintf. + * io/list_read.c (convert_integer): Likewise. + (parse_repeat): Likewise. + (read_logical): Likewise. + (read_character): Likewise. + (parse_real): Likewise. + (read_real): Likewise. + (check_type): Likewise. + (nml_parse_qualifyer): Likewise. + (nml_read_obj): Likewise. + (nml_get_ojb_data): Likewise. + * io/unix.c (init_error_stream): Remove. + (tempfile): Replace st_sprintf by sprintf. + (st_vprintf): New function. + (st_printf): Rewrite to call st_vprintf. + * io/transfer.c (require_type): Replace st_sprintf by sprintf. + * io/format.c (format_error): Likewise. + * io/write.c (nml_write_obj): Likewise. + +2007-07-27 Janne Blomqvist + + * io/transfer.c (st_set_nml_var_dim): Use index_type instead of + GFC_INTEGER_4 for array descriptor triplets. + +2007-07-27 Francois-Xavier Coudert + + * io/unix.c (stream_ttyname): Mark argument as potentialy unused. + +2007-07-27 Francois-Xavier Coudert + + PR fortran/32035 + * runtime/select.c (select_string): Adjust prototype and function + so that the return value is an integer, not a pointer. + +2007-07-24 Tobias Burnus + + * libgfortran.h: Add bounds_check to compile_options_t. + +2007-07-24 Thomas Koenig + + PR fortran/30814 + * libgfortran.h: Add bounds_check to compile_options_t. + * runtime/compile_options.c (set_options): Add handling + of compile_options.bounds_check. + * intrinsics/pack_generic.c (pack_internal): Also determine + the number of elements if compile_options.bounds_check is + true. Raise runtime error if a different array shape is + detected. + +2007-07-23 Christopher D. Rickett + + PR fortran/32600 + * intrinsics/iso_c_binding.c (c_funloc): Remove. + * intrinsics/iso_c_binding.h: Remove c_funloc. + * gfortran.map: Ditto. + +2007-07-22 Jerry DeLisle + + * io/read.c (convert_real): Generate error only on EINVAL. + +2007-07-21 Christopher D. Rickett + + PR fortran/32627 + * libgfortran/intrinsics/iso_c_generated_procs.c: Add c_f_pointer + for character/string arguments. + * libgfortran/intrinsic/iso_c_binding.c (c_f_pointer_u0): Allow + the optional SHAPE arg to be any valid integer kind. + * libgfortran/gfortran.map: Add c_f_pointer_s0. + * libgfortran/mk-kinds-h.sh: Save smallest integer kind as default + character kind. + * libgfortran/intrinsics/iso_c_generated_procs.c: Add versions of + c_f_pointer for complex and logical types. + * libgfortran/gfortran.map: Add c_f_pointer versions for logical + and complex types. + +2007-07-19 Christopher D. Rickett + + PR fortran/32600 + * libgfortran/intrinsics/iso_c_binding.c: Remove C_LOC. + * libgfortran/intrinsics/iso_c_binding.h: Ditto. + * libgfortran/gfortran.map: Ditto. + +2007-07-15 Jerry DeLisle + Francois-Xavier Coudert + + PR fortran/32611 + * runtime/compile_options.c (set_std): Remove. + (set_options): New function. + (init_compile_options): Add initialization for -fsign-zero option. + * gfortran.map (GFORTRAN_1.0): Rename _gfortran_set_std into + _gfortran_set_options. + * libgfortran.h (compile_options_t): Add sign_zero field. + * io/write.c (output_float): Use the sign bit of the value to determine + if a negative sign should be emitted for zero values. Do not emit the + negative sign for zero if -fno-sign-zero was set during compile. + +2007-07-14 Jerry DeLisle + + PR libgfortran/32752 + * io/unix.c (unix_stream): Move buffer pointer adjacent to + small_buffer. + * io/transfer.c (formatted_transfer_scalar): If stream I/O, set + bytes_used to zero. Fix off by one error in calculation of pos and + skips. Eliminate duplicate pending_spaces check. + +2007-07-15 Francois-Xavier Coudert + + PR fortran/32357 + * intrinsics/mvbits.c: Change prototype so that FROMPOS, LEN and + TOPOS arguments are C int. + +2007-07-09 Jerry DeLisle + + PR libgfortran/32702 + * io/unix.c (unix_stream): Restore buffer pointer and small_buffer. + (fd_alloc): If the number of bytes needed is greater than the default + BUFFER_SIZE, allocate a new buffer large enough. Free the old buffer + if necessary. (fd_sfree): Restore use of buffer pointer. + (fd_close): Likewise. (fd_open): Likewise. + (init_error_stream): Likewise. + +2007-07-09 Thomas Koenig + + PR libfortran/32336 + * m4/matmul.m4: When the dimension of b is incorrect, + raise a runtime error instead of a failed assertion. + * generated/matmul_i1.c: Regenerated. + * generated/matmul_i2.c: Regenerated. + * generated/matmul_i4.c: Regenerated. + * generated/matmul_i8.c: Regenerated. + * generated/matmul_i16.c: Regenerated. + * generated/matmul_r4.c: Regenerated. + * generated/matmul_r8.c: Regenerated. + * generated/matmul_r10.c: Regenerated. + * generated/matmul_r16.c: Regenerated. + +2007-07-08 Jerry DeLisle + + PR libgfortran/32678 + * io/transfer.c (formatted_transfer_scalar): Don't allow + pending_spaces to go negative. + +2007-07-08 Thomas Koenig + + PR libfortran/32217 + * intrinsics/unpack_generic.c: If the destination array is + empty, return early. + +2007-07-05 H.J. Lu + + * aclocal.m4: Regenerated. + +2007-07-04 David Edelsohn + + * configure.ac: SUBST CFLAGS. + * configure: Regenerate. + +2007-07-03 Janne Blomqvist + + * libgfortran.h: Mark internal_malloc_size as a malloc function. + * runtime/memory.c (internal_realloc_size): Remove. + (internal_realloc): Call realloc directly instead of + internal_realloc_size. + (allocate_size): Remove. + (allocate): Call malloc directly instead of allocate_size, mark as + malloc function. + +2007-07-02 Steven G. Kargl + + Restore collateral damage from ISO C Binding merge. + +2007-06-29 Jerry DeLisle + + PR libgfortran/32456 + * io/unit.c (filename_from_unit): Don't use find_unit, instead search + for unit directly. + +2007-07-02 Steven G. Kargl + + * Makefile.in: Regenerated with automake 1.9.6. + +2007-07-02 Steven G. Kargl + + * Makefile.in: Remove extraneous kill.lo rule. + +2007-07-02 Janne Blomqvist + + PR fortran/32239 + * generated/pow_r*_i4.c: Removed. + +2007-07-01 Christopher D. Rickett + + * Makefile.in: Add support for iso_c_generated_procs.c and + iso_c_binding.c. + * Makefile.am: Ditto. + * intrinsics/iso_c_generated_procs.c: New file containing helper + functions. + * intrinsics/iso_c_binding.c: Ditto. + * intrinsics/iso_c_binding.h: New file + * gfortran.map: Include the __iso_c_binding_c_* functions. + * libgfortran.h: define GFC_NUM_RANK_BITS. + +2007-07-01 Janne Blomqvist + + PR fortran/32239 + * Makefile.am: Don't generate real**int4 pow functions. + * gfortran.map: Remove real**int4 pow symbols. + * Makefile.in: Regenerated. + +2007-07-01 Jerry DeLisle + + PR libgfortran/32554 + * io/write.c (output_float): Set edigits to a fixed size, avoiding + variation in field width calculation and eliminate buffer overrun. + +2007-07-01 Janne Blomqvist + + * runtime/memory.c (internal_realloc): Use index_type for size + argument instead of GFC_INTEGER_4. + (allocate_array): Likewise. + (allocate): Likewise, add ifdef around unnecessary check. + (internal_reallo64): Remove. + (allocate_array64): Remove. + (allocate64): Remove. + * gfortran.map: Remove symbols for 64-bit allocation functions. + +2007-06-29 Jerry DeLisle + + PR libgfortran/32456 + * io/unit.c (filename_from_unit): Don't use find_unit, instead search + for unit directly. + +2007-06-24 Adam Nemet + + PR libfortran/32495 + * runtime/backtrace.c (local_strcasestr): Rename from strcasestr. + (show_backtrace): Rename strcasestr to local_strcasestr. + +2007-06-24 Jerry DeLisle + + PR libgfortran/32456 + * runtime/error.c (show_locus): Update to emit the unit number + and file name involved with the error. Use new function + filename_from_unit. + * libgfortran.h (filename_from_unit): Declare new function. + * io/unit.c (init_units): Set the unit file name for stdin, stdout, + and stderr for use later in error reporting. + (filename_from_unit): Add this new function. + +2007-06-24 Jerry DeLisle + + PR libgfortran/32446 + * io/write.c (output_float): Calculate ndigits correctly for large + numbered formats that must pad zeros before the decimal point. + +2007-06-15 Rainer Orth + + PR libfortran/32345 + * runtime/backtrace.c (show_backtrace): Only use snprintf if + available. + +2007-06-10 Jerry DeLisle + + PR libgfortran/32235 + * io/transfer.c (st_read): Remove test for end of file condition. + (next_record_r): Add test for end of file condition. + +2007-06-02 Paolo Bonzini + + * configure: Regenerate. + +2007-05-28 Tobias Burnus + + PR fortran/32124 + * runtime/memory.c (allocate_size): Use ERROR_ALLOCATION. + (allocate,allocate64): Use stat variable if present. + +2007-05-27 Janne Blomqvist + + * runtime/string.c (compare0): Use gfc_charlen_type instead of + int. + (fstrlen): Likewise. + (find_option): Likewise. + (fstrcpy): Use gfc_charlen_type instead of int, return length. + (cf_strcpy): Likewise. + * libgfortran.h: Change string prototypes to use gfc_charlen_type. + * io/open.c (new_unit): Use snprintf if available. + * io/list_read.c (nml_touch_nodes): Use memcpy instead of + strcpy/strcat. + (nml_read_obj): Likewise. + * io/transfer.c (st_set_nml_var): Likewise. + * io/write.c (output_float): Use snprintf if available. + (nml_write_obj) Use memcpy instead of strcpy/strcat. + +2007-05-26 Janne Blomqvist + + * io/unix.c (unix_stream): Rearrange struct members, remove + small_buffer. + (int_stream): New struct. + (fd_alloc): Always use existing buffer, never reallocate. + (fd_sfree): Remove check for buffer != small_buffer. + (fd_close): Likewise. + (mem_alloc_r_at): Change to use int_stream. + (mem_alloc_w_at): Likewise. + (mem_read): Likewise. + (mem_write): Likewise. + (mem_set): Likewise. + (mem_truncate): Likewise. + (mem_close): Likewise. + (mem_sfree): Likewise. + (empty_internal_buffer): Likewise. + (open_internal): Likewise. + +2007-05-25 Jerry DeLisle + + * io/transfer.c (unformatted_read): Use size from front end + eliminating use of size_from_real_kind. + (unformatted_write): Ditto. + +2007-05-23 Steve Ellcey + + * Makefile.in: Regenerate. + * configure: Regenerate. + * aclocal.m4: Regenerate. + +2007-05-22 Tobias Burnus + + * libgfortran.h: Mark stop_numeric as noreturn. + +2007-05-22 Tobias Burnus + + PR libgfortran/31295 + * intrinsics/eoshift0.c (eoshift0): Silence uninitialized warning. + * intrinsics/eoshift2.c (eoshift2): Ditto. + +2007-05-18 Jerry DeLisle + + PR libfortran/31964 + * intrinsics/ishftc.c (ishftc4, ishftc8, ishftc16): Fix mask to handle + shift of bit-size number of bits. + +2007-05-17 Tobias Burnus + + PR fortran/31917 + * runtime/environ.c (mark_range): Fix setting default convert unit. + +2007-05-15 Jerry DeLisle + + PR libfortran/31922 + * intrinsics/string_intrinsics.c (string_trim): Set result to null if + string length is zero. + +2007-05-15 Tobias Burnus + + PR libfortran/31915 + * io/transfer.c (unformatted_read): Use proper size for real(10). + (unformatted_write): Ditto. + +2007-05-14 Francois-Xavier Coudert + + PR fortran/30723 + * runtime/memory.c (internal_malloc, internal_malloc64, + internal_free): Remove. + * runtime/error.c (os_error): Export function. + * intrinsics/move_alloc.c: Include stdlib.h. + (move_alloc): Call free instead of internal_free. + (move_alloc_c): Wrap long lines. + * libgfortran.h (os_error): Export prototype. + (internal_free): Remove prototype. + * gfortran.map (GFORTRAN_1.0): Remove _gfortran_internal_free, + _gfortran_internal_malloc and _gfortran_internal_malloc64. + Add _gfortran_os_error. + +2007-05-09 Jerry DeLisle + + PR libfortran/31880 + * io/unix.c (fd_alloc_r_at): Fix calculation of physical offset. + +2007-05-07 Francois-Xavier Coudert + + PR libfortran/31607 + * intrinsics/system.c (system_sub): Call flush_all_units. + * io/io.h (flush_all_units): Move prototype to libgfortran.h. + * libgfortran.h (flush_all_units): Add prototype. + +2007-05-06 Jerry DeLisle + + PR libfortran/31201 + * runtime/error.c (runtime_error_at): New function. + (generate_error): Export this function. + * gfortran.map: Add _gfortran_generate_error and + _gfortran_runtime_error_at. + * libgfortran.h: Add comment to reference error codes in front end. + (library_start): Locate prototype with library_end macro and add + a new comment. Add prototype for runtime_error_at. Export prototype + for generate_error. + * io/lock.c (library_start): Fix check for error condition. + * io/transfer.c (data_transfer_init): Add library check. + +2007-05-04 Daniel Franke + + PR fortran/22359 + * io/intrinsics.c (fseek_sub): New. + * io/unix.c (fd_fseek): Change logical and physical offsets only + if seek succeeds. + * gfortran.map (fseek_sub): New. + +2007-05-04 Francois-Xavier Coudert + + PR libfortran/31210 + * io/transfer.c (transfer_character): Avoid passing a NULL + pointer as source to the transfer routines, if the string length + is zero. + +2007-04-28 Jerry DeLisle + + PR libfortran/31501 + * io/list_read.c (next_char): Fix whitespace. + * io/io.h: Remove prototypes and define macros for is_array_io, + is_stream_io, and is_internal_unit. + * io/unit.c (is_array_io), (is_internal_unit), (is_stream_io): Delete + these functions. + * io/transfer.c (read_sf): Change handling of internal_unit to make a + single call to salloc_r and use memcpy to transfer the data. + +2007-04-27 Jerry DeLisle + + PR libfortran/31532 + * io/file_pos.c (st_backspace): Set flags.position for end of file + condition and use new function update_position. + (st_endfile): Use new function update_position. + * io/io.h: Add prototype for new function. + * io/inquire.c (inquire_via_unit): If not direct access, set NEXTREC + to zero. + * io/unit.c (update_position): New function to update position info + used by inquire. + * io/transfer.c (next_record): Fix typo and use new function. + +2007-04-25 Francois-Xavier Coudert + + PR libfortran/31299 + * intrinsics/getlog.c: Use getpwuid and geteuid instead of + getlogin if they are available. + * configure.ac: Add checks for getpwuid and geteuid. + * configure: Regenerate. + * config.h.in: Regenerate. + +2007-04-25 Janne Blomqvist + + * configure: Regenerate using autoconf 2.59. + * Makefile.in: Likewise. + * config.h.in: Likewise. + +2007-04-24 Janne Blomqvist + + PR libfortran/27740 + * configure.ac: New test to determine if symbol versioning is + supported. + * Makefile.am: Use result of above test to add appropriate linker + flags. + * gfortran.map: New file. + * configure: Regenerated. + * Makefile.in: Regenerated. + * config.h.in: Regenerated. + +2007-04-23 Thomas Koenig + + PR fortran/31618 + * io/transfer.c (read_block_direct): Instead of calling us_read, + set dtp->u.p.current_unit->current_record = 0 so that pre_position + will read the record marker. + (data_transfer_init): For different error conditions, call + generate_error, then return. + +2007-04-19 Francois-Xavier Coudert + + * runtime/main.c (please_free_exe_path_when_done): New variable. + (store_exe_path): Initialize character buffer, and mark whether + exe_path should be free'd by the library destructor function. + (cleanup): Only free exe_path if needed. + +2007-04-18 Francois-Xavier Coudert + Tobias Burnus + + PR libfortran/31286 + PR libfortran/31296 + * intrinsics/cshift0.c (cshift0): Initialize sstride[0] and rstride[0]. + * intrinsics/unpack_generic.c (unpack0, unpack0_char): Zero the + array structures we pass to unpack_internal. + +2007-04-14 Jerry DeLisle + + * io/open.c (test_endfile): Revert changes for 31052, restoring this + function. + +2007-04-14 Steve Ellcey + + * Makefile.am: Add -I .. to ACLOCAL_AMFLAGS. Add libgfortran_la_LINK. + * Makefile.in: Regenerate. + +2007-04-11 Kai Tietz + + * configure: Regenerate. + +2007-04-06 Francois-Xavier Coudert + + * intrinsics/cpu_time.c: Don't include headers already included + by libgfortran.h. Protect inclusion of sys/times.h. + * configure.ac: Remove unneeded checks for finit, stdio.h, + stddef.h, math.h and sys/params.h. + * config/fpu-aix.h: Don't include headers already included by + libgfortran.h. + * config/fpu-sysv.h: Likewise. + * io/write.c: Likewise. + * m4/minloc1.m4: Likewise. + * m4/maxloc1.m4: Likewise. + * m4/fraction.m4: Likewise. + * m4/set_exponent.m4: Likewise. + * m4/spacing.m4: Likewise. + * m4/minval.m4: Likewise. + * m4/maxval.m4: Likewise. + * m4/exponent.m4: Likewise. + * m4/nearest.m4: Likewise. + * m4/minloc0.m4: Likewise. + * m4/maxloc0.m4: Likewise. + * m4/rrspacing.m4: Likewise. + * runtime/main.c: Likewise. + * runtime/error.c: Likewise. + * intrinsics/system_clock.c: Likewise. + * intrinsics/etime.c: Likewise. + * intrinsics/stat.c: Likewise. + * intrinsics/date_and_time.c: Likewise. + * intrinsics/env.c: Likewise. + * intrinsics/kill.c: Likewise. + * intrinsics/getXid.c: Likewise. + * intrinsics/chmod.c: Likewise. + * intrinsics/args.c: Likewise. + * intrinsics/c99_functions.c: Likewise. + * generated/minval_r8.c: Regenerate. + * generated/maxloc1_4_r8.c: Regenerate. + * generated/minloc1_16_r16.c: Regenerate. + * generated/maxval_i2.c: Regenerate. + * generated/maxloc1_8_i4.c: Regenerate. + * generated/exponent_r16.c: Regenerate. + * generated/maxloc0_4_r4.c: Regenerate. + * generated/fraction_r16.c: Regenerate. + * generated/fraction_r4.c: Regenerate. + * generated/minloc0_4_r16.c: Regenerate. + * generated/minloc0_4_i1.c: Regenerate. + * generated/maxloc0_4_r16.c: Regenerate. + * generated/maxloc0_4_i2.c: Regenerate. + * generated/minloc1_8_r16.c: Regenerate. + * generated/maxloc1_8_r16.c: Regenerate. + * generated/set_exponent_r8.c: Regenerate. + * generated/maxloc0_8_i8.c: Regenerate. + * generated/minloc1_4_r8.c: Regenerate. + * generated/maxloc1_16_r16.c: Regenerate. + * generated/minloc1_16_i4.c: Regenerate. + * generated/maxloc1_16_i4.c: Regenerate. + * generated/minloc0_16_i8.c: Regenerate. + * generated/maxloc0_16_i8.c: Regenerate. + * generated/nearest_r8.c: Regenerate. + * generated/spacing_r16.c: Regenerate. + * generated/maxval_r16.c: Regenerate. + * generated/minloc1_8_i4.c: Regenerate. + * generated/minloc0_16_i16.c: Regenerate. + * generated/minloc0_4_r4.c: Regenerate. + * generated/set_exponent_r10.c: Regenerate. + * generated/rrspacing_r10.c: Regenerate. + * generated/minloc0_4_i2.c: Regenerate. + * generated/maxloc0_8_i1.c: Regenerate. + * generated/minloc0_8_i8.c: Regenerate. + * generated/spacing_r4.c: Regenerate. + * generated/minloc1_16_r10.c: Regenerate. + * generated/minloc0_16_i1.c: Regenerate. + * generated/maxloc0_16_i1.c: Regenerate. + * generated/maxloc1_8_r8.c: Regenerate. + * generated/minval_i16.c: Regenerate. + * generated/exponent_r10.c: Regenerate. + * generated/maxval_i4.c: Regenerate. + * generated/minval_i8.c: Regenerate. + * generated/maxloc1_4_i8.c: Regenerate. + * generated/fraction_r10.c: Regenerate. + * generated/maxloc0_16_i16.c: Regenerate. + * generated/maxloc0_8_r4.c: Regenerate. + * generated/rrspacing_r8.c: Regenerate. + * generated/minloc1_4_i16.c: Regenerate. + * generated/minloc0_4_r10.c: Regenerate. + * generated/maxloc1_4_i16.c: Regenerate. + * generated/minloc0_8_i16.c: Regenerate. + * generated/maxloc0_4_r10.c: Regenerate. + * generated/maxloc0_8_i16.c: Regenerate. + * generated/minloc1_8_r10.c: Regenerate. + * generated/minloc0_16_r4.c: Regenerate. + * generated/maxloc1_8_r10.c: Regenerate. + * generated/maxloc0_16_r4.c: Regenerate. + * generated/minloc1_16_r8.c: Regenerate. + * generated/minloc0_8_i1.c: Regenerate. + * generated/maxloc0_4_i4.c: Regenerate. + * generated/maxloc1_16_r8.c: Regenerate. + * generated/maxloc0_8_i2.c: Regenerate. + * generated/nearest_r16.c: Regenerate. + * generated/maxloc1_16_r10.c: Regenerate. + * generated/minloc0_16_i2.c: Regenerate. + * generated/minloc1_8_r8.c: Regenerate. + * generated/maxloc0_16_i2.c: Regenerate. + * generated/exponent_r4.c: Regenerate. + * generated/spacing_r10.c: Regenerate. + * generated/maxval_r10.c: Regenerate. + * generated/minval_i1.c: Regenerate. + * generated/maxloc1_4_i1.c: Regenerate. + * generated/minloc1_4_i8.c: Regenerate. + * generated/minloc0_8_r4.c: Regenerate. + * generated/minloc0_16_r16.c: Regenerate. + * generated/minloc0_4_i4.c: Regenerate. + * generated/minloc0_8_i2.c: Regenerate. + * generated/minval_r4.c: Regenerate. + * generated/maxloc1_4_r4.c: Regenerate. + * generated/maxval_r8.c: Regenerate. + * generated/minval_r16.c: Regenerate. + * generated/minloc1_4_i1.c: Regenerate. + * generated/minval_i2.c: Regenerate. + * generated/maxloc1_4_i2.c: Regenerate. + * generated/maxloc1_8_i8.c: Regenerate. + * generated/maxloc0_4_r8.c: Regenerate. + * generated/maxloc0_16_r16.c: Regenerate. + * generated/minloc1_4_r16.c: Regenerate. + * generated/fraction_r8.c: Regenerate. + * generated/maxloc1_4_r16.c: Regenerate. + * generated/set_exponent_r4.c: Regenerate. + * generated/minloc0_8_r16.c: Regenerate. + * generated/maxloc0_8_r16.c: Regenerate. + * generated/nearest_r10.c: Regenerate. + * generated/maxloc0_8_i4.c: Regenerate. + * generated/minloc1_4_r4.c: Regenerate. + * generated/minloc0_16_i4.c: Regenerate. + * generated/maxloc0_16_i4.c: Regenerate. + * generated/nearest_r4.c: Regenerate. + * generated/minloc1_16_i8.c: Regenerate. + * generated/maxloc1_16_i8.c: Regenerate. + * generated/minloc1_4_i2.c: Regenerate. + * generated/maxloc1_8_i1.c: Regenerate. + * generated/minloc0_16_r10.c: Regenerate. + * generated/minloc1_8_i8.c: Regenerate. + * generated/minloc0_4_r8.c: Regenerate. + * generated/minloc0_8_i4.c: Regenerate. + * generated/minloc1_16_i16.c: Regenerate. + * generated/spacing_r8.c: Regenerate. + * generated/maxloc1_8_r4.c: Regenerate. + * generated/minloc1_16_i1.c: Regenerate. + * generated/maxloc1_16_i1.c: Regenerate. + * generated/minval_r10.c: Regenerate. + * generated/minval_i4.c: Regenerate. + * generated/minloc1_8_i1.c: Regenerate. + * generated/maxloc1_4_i4.c: Regenerate. + * generated/maxloc1_8_i2.c: Regenerate. + * generated/maxval_i8.c: Regenerate. + * generated/maxloc0_16_r10.c: Regenerate. + * generated/rrspacing_r4.c: Regenerate. + * generated/minloc0_4_i16.c: Regenerate. + * generated/maxloc0_8_r8.c: Regenerate. + * generated/maxloc0_4_i16.c: Regenerate. + * generated/minloc1_4_r10.c: Regenerate. + * generated/minloc1_8_i16.c: Regenerate. + * generated/maxloc1_4_r10.c: Regenerate. + * generated/minloc0_8_r10.c: Regenerate. + * generated/maxloc1_8_i16.c: Regenerate. + * generated/maxloc0_8_r10.c: Regenerate. + * generated/minloc1_16_r4.c: Regenerate. + * generated/maxloc1_16_r4.c: Regenerate. + * generated/minloc0_16_r8.c: Regenerate. + * generated/maxloc0_16_r8.c: Regenerate. + * generated/maxloc0_4_i8.c: Regenerate. + * generated/maxloc1_16_i16.c: Regenerate. + * generated/minloc1_8_r4.c: Regenerate. + * generated/minloc1_16_i2.c: Regenerate. + * generated/maxloc1_16_i2.c: Regenerate. + * generated/maxval_i16.c: Regenerate. + * generated/exponent_r8.c: Regenerate. + * generated/minloc1_4_i4.c: Regenerate. + * generated/maxval_i1.c: Regenerate. + * generated/minloc1_8_i2.c: Regenerate. + * generated/minloc0_8_r8.c: Regenerate. + * generated/set_exponent_r16.c: Regenerate. + * generated/maxloc0_4_i1.c: Regenerate. + * generated/rrspacing_r16.c: Regenerate. + * generated/minloc0_4_i8.c: Regenerate. + * generated/maxval_r4.c: Regenerate. + * configure: Regenerate. + * config.h.in: Regenerate. + +2007-04-06 Jerry DeLisle + + PR libfortran/31395 + * io/format.c (parse_format_list): Fix parsing. + +2007-04-03 Francois-Xavier Coudert + + PR fortran/31304 + intrinsics/string_intrinsics.c (string_repeat): Remove. + +2007-04-01 Jerry DeLisle + + PR libfortran/31052 + * io/open.c (test_endfile): Delete this function. + (edit_modes): Delete call to test_endfile. + (new_unit): Likewise. + * io/io.h: Delete prototype for test_endfile. + * io/transfer.c (next_record_r): Remove use of test_endfile. + (st_read): Add test for end file condition and adjust status. + +2007-04-01 Jerry DeLisle + + PR libfortran/31366 + * io/transfer.c (read_block_direct): Do not generate error when reading + past EOF on a short record that is less than the RECL= specified. + +2007-04-01 Jerry DeLisle + + PR libfortran/31207 + * io/unit.c (close_unit_1): If there are bytes previously written from + ADVANCE="no", move to the end before closing. + +2007-03-31 Francois-Xavier Coudert + + PR libfortran/31335 + * intrinsics/stat.c: Only provide STAT and FSTAT library routines + if stat() and fstat() library functions are available. When lstat() + is not available, use stat() instead. + * configure.ac: Add checks for stat, fstat and lstat. + * configure: Regenerate. + * config.h.in: Regenerate. + +2007-03-27 Jerry DeLisle + + PR libfortran/31052 + * io/transfer.c (next_record_r): Do not call test_endfile if in + namelist mode. + +2007-03-25 Jerry DeLisle + + PR libfortran/31199 + * io/io.h: Add saved_pos to gfc_unit structure. + * io/open.c (new_unit): Initialize saved_pos. + * io/transfer.c (data_transfer_init): Set max_pos to value in + saved_pos. + (next_record_w): Fix whitespace. + (finalze_transfer): Calculate max_pos for ADVANCE="no" and save it for + later use. If not ADVANCE="no" set saved_pos to zero. + +2007-03-25 Thomas Koenig + + PR libfortran/31196 + * intrinsics/reshape_generic.c (reshape_internal): Increment + correct variable. + +2007-03-22 Jerry DeLisle + + PR libfortran/31052 + * file_pos.c: Update Copyright year. + * io/open.c (test_endfile): Restore test_endfile to fix SPEC + regression. Update Copyright year. + * io/io.h: Same. + * io/unix.c (is_special): Add missing type for this function. + Update Copyright year. + * io/transfer.c (next_record_r): Restore test_endfile. + (st_read): Fix whitespace. Update Copyright year + +2007-03-20 Francois-Xavier Coudert + + * configure.ac: Add missing check for gettimeofday. + * config.h.in: Renegerate. + * configure: Regenerate. + +2007-03-18 Jerry DeLisle + + PR libfortran/31052 + * io/file_position (st_rewind): Fix comments. Remove use of + test_endfile. Don't seek if already at 0 position. Use new is_special + function to set endfile state. + * io/open.c (test_endfile): Delete this function. + * io/io.h: Delete prototype for test_endfile. Add prototype + for is_special. + * io/unix.c (is_special): New function. Fix whitespace. + * io/transfer.c (next_record_r): Remove use of test_endfile. + +2007-03-16 David Edelsohn + + * runtime/main.c: Include "config.h" first. + +2007-03-15 Jerry DeLisle + + PR libfortran/31099 + * io/file_pos.c (st_rewind): Don't set bytes_left to zero. + +2007-03-15 Francois-Xavier Coudert + + * runtime/backtrace.c: New file. + * runtime/environ.c (variable_table): New GFORTRAN_ERROR_BACKTRACE + environment variable. + * runtime/compile_options.c (set_std): Add new argument. + * runtime/main.c (store_exe_path, full_exe_path): New functions. + * runtime/error.c (sys_exit): Add call to show_backtrace. + * libgfortran.h (options_t): New backtrace field. + (store_exe_path, full_exe_path, show_backtrace): New prototypes. + * configure.ac: Add checks for execinfo.h, execvp, pipe, dup2, + close, fdopen, strcasestr, getrlimit, backtrace, backtrace_symbols + and getppid. + * Makefile.am: Add runtime/backtrace.c. + * fmain.c (main): Add call to store_exe_path. + * Makefile.in: Renegerate. + * config.h.in: Renegerate. + * configure: Regenerate. + +2007-03-14 Jerry DeLisle + + PR libfortran/31051 + * io/transfer.c (formatted_transfer_scalar): Adjust position for + pending spaces when in writing mode. Clean up some formatting. + +2007-03-14 Thomas Koenig + + PR libfortran/30690 + * all.m4: Quote everything, except for m4 macros. + * any.m4: Likewise. + * count.m4: Likewise. + * cshift1.m4: Likewise. + * eoshift1.m4: Likewise. + * eoshift3.m4: Likewise. + * exponent.m4: Likewise. + * fraction.m4: Likewise. + * in_pack.m4: Likewise. + * in_unpack.m4: Likewise. + * matmul.m4: Likewise. + * matmull.m4: Likewise. + * nearest.m4: Likewise. + * pow.m4: Likewise. + * product.m4: Likewise. + * reshape.m4: Likewise. + * rrspacing.m4: Likewise. + * set_exponent.m4: Likewise. + * shape.m4: Likewise. + * spacing.m4: Likewise. + * transpose.m4: Likewise. + +2007-03-14 Jakub Jelinek + + * io/unix.c (regular_file): For ACTION_UNSPECIFIED retry with + O_RDONLY even if errno is EROFS. + +2007-03-09 Jerry DeLisle + + PR libfortran/31099 + * io/open.c (new_unit): Initialize bytes_left and recl_subrecord. + * io/transfer.c (next_record_w): Set bytes left to record length for + sequential unformatted I/O. + (next_record_r): Ditto. + (read_block_direct): Fix test for exceeding bytes_left. + +2007-03-08 Daniel Franke + + PR fortran/30947 + * intrinsics/signal.c (alarm_sub_int): Avoid SEGFAULT with + integer arguments. + +2007-03-04 Thomas Koenig + + PR libfortran/30981 + * m4/pow_m4: Use appropriate unsigned int type for u. + * generated/pow_c10_i16.c: Regenerated. + * generated/pow_c10_i4.c: Regenerated. + * generated/pow_c10_i8.c: Regenerated. + * generated/pow_c16_i16.c: Regenerated. + * generated/pow_c16_i4.c: Regenerated. + * generated/pow_c16_i8.c: Regenerated. + * generated/pow_c4_i16.c: Regenerated. + * generated/pow_c4_i4.c: Regenerated. + * generated/pow_c4_i8.c: Regenerated. + * generated/pow_c8_i16.c: Regenerated. + * generated/pow_c8_i4.c: Regenerated. + * generated/pow_c8_i8.c: Regenerated. + * generated/pow_i16_i16.c: Regenerated. + * generated/pow_i16_i4.c: Regenerated. + * generated/pow_i16_i8.c: Regenerated. + * generated/pow_i4_i16.c: Regenerated. + * generated/pow_i4_i4.c: Regenerated. + * generated/pow_i4_i8.c: Regenerated. + * generated/pow_i8_i16.c: Regenerated. + * generated/pow_i8_i4.c: Regenerated. + * generated/pow_i8_i8.c: Regenerated. + * generated/pow_r10_i16.c: Regenerated. + * generated/pow_r10_i4.c: Regenerated. + * generated/pow_r10_i8.c: Regenerated. + * generated/pow_r16_i16.c: Regenerated. + * generated/pow_r16_i4.c: Regenerated. + * generated/pow_r16_i8.c: Regenerated. + * generated/pow_r4_i16.c: Regenerated. + * generated/pow_r4_i4.c: Regenerated. + * generated/pow_r4_i8.c: Regenerated. + * generated/pow_r8_i16.c: Regenerated. + * generated/pow_r8_i4.c: Regenerated. + * generated/pow_r8_i8.c: Regenerated. + +2007-03-03 Francois-Xavier Coudert + + PR libfortran/31001 + * intrinsics/pack_generic.c (pack_internal): Add special checks + for zero-sized arrays. + +2007-03-01 Brooks Moses + + * Makefile.am: Add dummy install-pdf target. + * Makefile.in: Regenerate + +2007-02-24 Jerry DeLisle + + PR libfortran/30918 + * io/listread.c (namelist_read): Eat comment line. + +2007-02-22 Jerry DeLisle + + PR libfortran/30910 + * io/write.c (output_float): Add condition of format F only for + special case rounding with zero precision. + +2007-02-19 Thomas Koenig + + PR libfortran/30533 + PR libfortran/30765 + * Makefile.am: Add $(srcdir) too all files in generated/. + (i_maxloc0_c): Add maxloc0_4_i1.c, maxloc0_8_i1.c, + maxloc0_16_i1.c, maxloc0_4_i2.c, maxloc0_8_i2.c and + maxloc0_16_i2.c. + (i_maxloc1_c): Add maxloc1_4_i1.c, maxloc1_8_i1.c, + maxloc1_16_i1.c, maxloc1_4_i2.c, maxloc1_8_i2.c and + maxloc1_16_i2.c. + (i_maxval_c): Add maxval_i1.c and maxval_i2.c. + (i_minloc0_c): Add minloc0_4_i1.c, minloc0_8_i1.c, + minloc0_16_i1.c, minloc0_4_i2.c, minloc0_8_i2.c and + minloc0_16_i2.c. + (i_minloc_1.c): Add minloc1_4_i1.c, minloc1_8_i1.c, + minloc1_16_i1.c, minloc1_4_i2.c, minloc1_8_i2.c and + minloc1_16_i2.c. + (i_minval_c): Add minval_i1.c and minval_i2.c. + (i_sum_c): Add sum_i1.c and sum_i2.c. + (i_product_c): Add product_i1.c and product_i2.c. + (i_matmul_c): Add matmul_i1.c and matmul_i2.c. + (gfor_built_specific_src): Remove $(srcdir) from target. + (gfor_bulit_specific2_src): Likewise. + Makefile.in: Regenerated. + libgfortran.h: Add GFC_INTEGER_1_HUGE and GFC_INTEGER_2_HUGE. + Add gfc_array_i1 and gfc_array_i2. + * generated/matmul_i1.c: New file. + * generated/matmul_i2.c: New file. + * generated/maxloc0_16_i1.c: New file. + * generated/maxloc0_16_i2.c: New file. + * generated/maxloc0_4_i1.c: New file. + * generated/maxloc0_4_i2.c: New file. + * generated/maxloc0_8_i1.c: New file. + * generated/maxloc0_8_i2.c: New file. + * generated/maxloc1_16_i1.c: New file. + * generated/maxloc1_16_i2.c: New file. + * generated/maxloc1_4_i1.c: New file. + * generated/maxloc1_4_i2.c: New file. + * generated/maxloc1_8_i1.c: New file. + * generated/maxloc1_8_i2.c: New file. + * generated/maxval_i1.c: New file. + * generated/maxval_i2.c: New file. + * generated/minloc0_16_i1.c: New file. + * generated/minloc0_16_i2.c: New file. + * generated/minloc0_4_i1.c: New file. + * generated/minloc0_4_i2.c: New file. + * generated/minloc0_8_i1.c: New file. + * generated/minloc0_8_i2.c: New file. + * generated/minloc1_16_i1.c: New file. + * generated/minloc1_16_i2.c: New file. + * generated/minloc1_4_i1.c: New file. + * generated/minloc1_4_i2.c: New file. + * generated/minloc1_8_i1.c: New file. + * generated/minloc1_8_i2.c: New file. + * generated/minval_i1.c: New file. + * generated/minval_i2.c: New file. + * generated/product_i1.c: New file. + * generated/product_i2.c: New file. + * generated/sum_i1.c: New file. + * generated/sum_i2.c: New file. + +2007-02-16 Francois-Xavier Coudert + + * runtime/memory.c (deallocate): Correct comment. + +2007-02-10 Thomas Koenig + + * Makefile.am: Use $(M4) instead of m4. + * Makefile.in: Regenerate. + +2007-02-10 Thomas Koenig + + * Makefile.am: Remove $(srcdir) from assorted targets + in maintainer mode. + * Makefile.in: Regenerate. + +2007-02-09 Thomas Koenig + Tobias Burnus + + PR fortran/30512 + * m4/iparm.m4: Use HUGE-1 for most negative integer. + * generated/maxloc1_8_i4.c: Regenerate. + * generated/maxloc0_8_i8.c: Regenerate. + * generated/maxloc1_16_i4.c: Regenerate. + * generated/maxloc0_16_i8.c: Regenerate. + * generated/maxval_i4.c: Regenerate. + * generated/maxloc1_4_i8.c: Regenerate. + * generated/maxloc0_16_i16.c: Regenerate. + * generated/maxloc1_4_i16.c: Regenerate. + * generated/maxloc0_8_i16.c: Regenerate. + * generated/maxloc0_4_i4.c: Regenerate. + * generated/maxloc1_8_i8.c: Regenerate. + * generated/maxloc0_8_i4.c: Regenerate. + * generated/maxloc0_16_i4.c: Regenerate. + * generated/maxloc1_16_i8.c: Regenerate. + * generated/maxloc1_4_i4.c: Regenerate. + * generated/maxval_i8.c: Regenerate. + * generated/maxloc0_4_i16.c: Regenerate. + * generated/maxloc1_8_i16.c: Regenerate. + * generated/maxloc0_4_i8.c: Regenerate. + * generated/maxloc1_16_i16.c: Regenerate. + * generated/maxval_i16.c: Regenerate. + +2007-02-04 Francois-Xavier Coudert + + PR fortran/30611 + * intrinsics/string_intrinsics.c (string_repeat): Don't check + if ncopies is negative. + +2007-02-04 Francois-Xavier Coudert + + PR libfortran/30007 + * libgfortran.h: Do not prefix symbol name with + __USER_LABEL_PREFIX__ when used in __attribute__((__alias__(...))). + +2007-02-02 Paul Thomas + + PR fortran/30284 + PR fortran/30626 + * io/transfer.c (init_loop_spec, next_array_record): Change to + lbound rather than unity base. + +2007-01-21 Francois-Xavier Coudert + + * runtime/error.c: Include sys/time.h before sys/resource.h. + +2007-01-21 Thomas Koenig + + PR libfortran/30525 + * intrinsics/string_intrinsics.c(compare_string): Make + sure that comparisons are done unsigned. + +2007-01-21 Tobias Burnus + + PR libfortran/30015 + * intrinsics/date_and_time.c (date_and_time): Fix case where time + can go backwards. + * configure.ac: Remove AC_TRY_RUN test for timezone in + gettimeofday. + * acinclude.m4: Ditto. + * configure: Regenerate. + * config.h.in: Regenerate. + +2007-01-20 Francois-Xavier Coudert + + * m4/misc_specifics.m4: Add _gfortran prefix to specific names. + * m4/specific2.m4: Likewise. + * m4/specific.m4: Likewise. + * intrinsics/f2c_specifics.F90: Likewise. + * intrinsics/selected_int_kind.f90: Add _gfortran prefix. + * intrinsics/selected_real_kind.f90: Likewise. + * intrinsics/dprod_r8.f90: Likewise. + * Makefile.am: Add -fallow-leading-underscore to the + gfor_specific_src files, as well as selected_real_kind.F90 + and selected_int_kind.F90 + * Makefile.in: Regenerate. + * generated/_sqrt_c8.F90: Regenerate. + * generated/_sign_r16.F90: Regenerate. + * generated/_log_c16.F90: Regenerate. + * generated/_sin_c10.F90: Regenerate. + * generated/_tanh_r4.F90: Regenerate. + * generated/_tanh_r8.F90: Regenerate. + * generated/_log10_r10.F90: Regenerate. + * generated/_aimag_c4.F90: Regenerate. + * generated/_sign_r4.F90: Regenerate. + * generated/_aimag_c8.F90: Regenerate. + * generated/_sign_r8.F90: Regenerate. + * generated/_mod_i4.F90: Regenerate. + * generated/_cos_r16.F90: Regenerate. + * generated/_aint_r10.F90: Regenerate. + * generated/_mod_i8.F90: Regenerate. + * generated/_abs_i16.F90: Regenerate. + * generated/_sqrt_c10.F90: Regenerate. + * generated/_atan2_r4.F90: Regenerate. + * generated/_cos_c4.F90: Regenerate. + * generated/_atan_r16.F90: Regenerate. + * generated/_tanh_r10.F90: Regenerate. + * generated/_atan2_r8.F90: Regenerate. + * generated/_cos_c8.F90: Regenerate. + * generated/_exp_r4.F90: Regenerate. + * generated/_log_r10.F90: Regenerate. + * generated/_exp_r8.F90: Regenerate. + * generated/_abs_r4.F90: Regenerate. + * generated/_abs_r8.F90: Regenerate. + * generated/_sin_r16.F90: Regenerate. + * generated/_tan_r4.F90: Regenerate. + * generated/_tan_r8.F90: Regenerate. + * generated/_sign_i4.F90: Regenerate. + * generated/_sign_i8.F90: Regenerate. + * generated/_exp_c16.F90: Regenerate. + * generated/_sqrt_r16.F90: Regenerate. + * generated/_conjg_c4.F90: Regenerate. + * generated/_conjg_c8.F90: Regenerate. + * generated/_dim_r16.F90: Regenerate. + * generated/_mod_r10.F90: Regenerate. + * generated/_abs_c10.F90: Regenerate. + * generated/_conjg_c16.F90: Regenerate. + * generated/_tan_r16.F90: Regenerate. + * generated/_asinh_r10.F90: Regenerate. + * generated/_abs_i4.F90: Regenerate. + * generated/_abs_i8.F90: Regenerate. + * generated/_acos_r10.F90: Regenerate. + * generated/_exp_r10.F90: Regenerate. + * generated/_acosh_r16.F90: Regenerate. + * generated/_atan2_r16.F90: Regenerate. + * generated/_cos_c16.F90: Regenerate. + * generated/_mod_i16.F90: Regenerate. + * generated/_asin_r4.F90: Regenerate. + * generated/_anint_r16.F90: Regenerate. + * generated/_asin_r8.F90: Regenerate. + * generated/_aimag_c10.F90: Regenerate. + * generated/_exp_c4.F90: Regenerate. + * generated/_sinh_r10.F90: Regenerate. + * generated/_exp_c8.F90: Regenerate. + * generated/_log10_r4.F90: Regenerate. + * generated/_log10_r8.F90: Regenerate. + * generated/_abs_c4.F90: Regenerate. + * generated/_abs_r16.F90: Regenerate. + * generated/_abs_c8.F90: Regenerate. + * generated/_asin_r10.F90: Regenerate. + * generated/_sign_r10.F90: Regenerate. + * generated/_atanh_r16.F90: Regenerate. + * generated/_log_c10.F90: Regenerate. + * generated/_cosh_r16.F90: Regenerate. + * generated/_sin_c16.F90: Regenerate. + * generated/_cos_r10.F90: Regenerate. + * generated/_log10_r16.F90: Regenerate. + * generated/_aint_r16.F90: Regenerate. + * generated/_acos_r4.F90: Regenerate. + * generated/_acos_r8.F90: Regenerate. + * generated/_sqrt_c16.F90: Regenerate. + * generated/_acosh_r4.F90: Regenerate. + * generated/_atan_r10.F90: Regenerate. + * generated/_acosh_r8.F90: Regenerate. + * generated/_sign_i16.F90: Regenerate. + * generated/_tanh_r16.F90: Regenerate. + * generated/_log_r4.F90: Regenerate. + * generated/_log_r8.F90: Regenerate. + * generated/_sin_r4.F90: Regenerate. + * generated/_sin_r8.F90: Regenerate. + * generated/_log_r16.F90: Regenerate. + * generated/_sin_r10.F90: Regenerate. + * generated/_sqrt_r4.F90: Regenerate. + * generated/_exp_c10.F90: Regenerate. + * generated/_sqrt_r8.F90: Regenerate. + * generated/_asinh_r4.F90: Regenerate. + * generated/_sqrt_r10.F90: Regenerate. + * generated/_asinh_r8.F90: Regenerate. + * generated/_dim_r4.F90: Regenerate. + * generated/_dim_r8.F90: Regenerate. + * generated/_dim_r10.F90: Regenerate. + * generated/_cosh_r4.F90: Regenerate. + * generated/_conjg_c10.F90: Regenerate. + * generated/_tan_r10.F90: Regenerate. + * generated/_cosh_r8.F90: Regenerate. + * generated/_mod_r16.F90: Regenerate. + * generated/_abs_c16.F90: Regenerate. + * generated/_cos_r4.F90: Regenerate. + * generated/_asinh_r16.F90: Regenerate. + * generated/_cos_r8.F90: Regenerate. + * generated/_atanh_r4.F90: Regenerate. + * generated/_atanh_r8.F90: Regenerate. + * generated/_acos_r16.F90: Regenerate. + * generated/_anint_r4.F90: Regenerate. + * generated/_acosh_r10.F90: Regenerate. + * generated/_anint_r8.F90: Regenerate. + * generated/_exp_r16.F90: Regenerate. + * generated/_mod_r4.F90: Regenerate. + * generated/_cos_c10.F90: Regenerate. + * generated/_atan2_r10.F90: Regenerate. + * generated/_dim_i16.F90: Regenerate. + * generated/_mod_r8.F90: Regenerate. + * generated/_anint_r10.F90: Regenerate. + * generated/_aint_r4.F90: Regenerate. + * generated/_aint_r8.F90: Regenerate. + * generated/_dim_i4.F90: Regenerate. + * generated/_sinh_r4.F90: Regenerate. + * generated/_log_c4.F90: Regenerate. + * generated/_dim_i8.F90: Regenerate. + * generated/_sinh_r8.F90: Regenerate. + * generated/_log_c8.F90: Regenerate. + * generated/_sin_c4.F90: Regenerate. + * generated/_sin_c8.F90: Regenerate. + * generated/misc_specifics.F90: Regenerate. + * generated/_abs_r10.F90: Regenerate. + * generated/_aimag_c16.F90: Regenerate. + * generated/_atan_r4.F90: Regenerate. + * generated/_sinh_r16.F90: Regenerate. + * generated/_atan_r8.F90: Regenerate. + * generated/_atanh_r10.F90: Regenerate. + * generated/_cosh_r10.F90: Regenerate. + * generated/_sqrt_c4.F90: Regenerate. + * generated/_asin_r16.F90: Regenerate. + +2007-01-19 Francois-Xavier Coudert + + PR libfortran/26893 + * acinclude.m4 (LIBGFOR_WORKING_GFORTRAN): New check. + * configure.ac: Add call to LIBGFOR_WORKING_GFORTRAN. + * configure: Regenerate. + * config.h.in: Regenerate because it was forgottent in the last + commit. + +2007-01-18 Francois-Xavier Coudert + Tobias Burnus + + PR libfortran/29649 + * runtime/environ.c (variable_table): New GFORTRAN_ERROR_DUMPCORE + environment variable. + * runtime/compile_options.c (set_std): Add new argument. + * runtime/error.c (sys_exit): Move from io/unix.c. Add coredump + functionality. + * libgfortran.h (options_t): New dump_core and backtrace members. + (sys_exit): Move prototype. + * io/unix.c (sys_exit): Move to runtime/error.c. + * configure.ac: Add check for getrlimit. + * configure: Regenerate. + +2007-01-17 Tom Tromey + + PR libfortran/27107: + * aclocal.m4, configure, Makefile.in: Rebuilt. + * configure.ac: Enable automake dependency tracking. Update + minimum automake version. + +2007-01-17 Francois-Xavier Coudert + + PR libfortran/27107 + * runtime/environ.c: Don't include io/io.h. + * runtime/string.c: Don't include io/io.h. + (compare0): Add cast to avoid warning. + * runtime/error.c: Don't include io/io.h. + (st_printf): Move to io/unix.c. + * intrinsics/flush.c: Delete, contents moved to io/intrinsics.c. + * intrinsics/fget.c: Likewise. + * intrinsics/ftell.c: Likewise. + * intrinsics/tty.c: Likewise. + * libgfortran.h (DEFAULT_RECL, notification_std, + get_unformatted_convert, IOPARM_*, st_parameter_common, unit_convert, + DEFAULT_TEMPDIR): New declarations. + * io/io.h (DEFAULT_RECL, notification_std, get_unformatted_convert, + IOPARM_*, st_parameter_common, unit_convert, DEFAULT_TEMPDIR): + Move to libgfortran.h. + * io/unix.c: Add io/unix.h content. + (st_printf): New function. + * io/intrinsics.c: New file. + * io/unix.h: Remove, contents moved into unix.c. + * libtool-version: Update library version to 3.0.0. + * configure.ac: Update library version to 0.3. + * Makefile.am (intrinsics/fget.c, intrinsics/flush.c, + intrinsics/ftell.c, intrinsics/tty.c, libgfortran.h): Remove targets. + * Makefile.in: Regenerate. + * configure: Regenerate. + +2007-01-12 Jerry DeLisle + + PR libfortran/30435 + * io/list_read.c (finish_separator): Don't call next_record. + (list_formatted_read_scalar): Clean up some comments and whitespace. + (nml_read_obj): Whitespace fix. + +2007-01-05 Jerry DeLisle + + PR libfortran/30162 + * io/unix.c (fd_flush): Don't seek if file is not seekable, defined as + s->file_length == -1. + (fd_alloc_w_at): Do not adjust file_length if file is not seekable. + (fd_seek): If not seekable, just return success. + (fd_truncate): If not seekable, no need to truncate. Return failure + if seek fails and the stream is not a pipe. + (fd_to_stream): Make test for non-seekable file more robust. + +2007-01-01 Steven G. Kargl + + * ChangeLog: Copied to ... + * ChangeLog-2006: here. -- cgit v1.1