diff options
-rw-r--r-- | gcc/fortran/ChangeLog | 4540 | ||||
-rw-r--r-- | gcc/fortran/ChangeLog-2006 | 4538 |
2 files changed, 4541 insertions, 4537 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index de32f26..866038f 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,4538 +1,4 @@ -2006-12-31 Paul Thomas <pault@gcc.gnu.org> +2007-01-01 Steven G. Kargl <kargls@comcast.net> - PR fortran/27900 - * resolve.c (resolve_actual_arglist): If all else fails and a - procedure actual argument has no type, see if a specific - intrinsic matches. - - PR fortran/24325 - * resolve.c (resolve_function): If the function reference is - FL_VARIABLE this is an error. - -2006-12-31 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/23060 - * intrinsic.c (compare_actual_formal ): Distinguish argument - list functions from keywords. - * intrinsic.c (sort_actual): If formal is NULL, the presence of - an argument list function actual is an error. - * trans-expr.c (conv_arglist_function) : New function to - implement argument list functions %VAL, %REF and %LOC. - (gfc_conv_function_call): Call it. - * resolve.c (resolve_actual_arglist): Add arg ptype and check - argument list functions. - (resolve_function, resolve_call): Set value of ptype before - calls to resolve_actual_arglist. - * primary.c (match_arg_list_function): New function. - (gfc_match_actual_arglist): Call it before trying for a - keyword argument. - -2006-12-28 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/30034 - * resolve.c (resolve_formal_arglist): Exclude the test for - pointers and procedures for subroutine arguments as well as - functions. - - PR fortran/30237 - * intrinsic.c (remove_nullargs): Do not pass up arguments with - a label. If the actual has a label and the formal has a type - then emit an error. - -2006-12-27 Jerry DeLisle <jvdelisle@gcc.gnu.org> - - PR fortran/30014 - *io.c (resolve_tag): Don't issue error for tag_size type not being - default integer size for -std=F2003. Add similar check for - tag_iolength. - *ioparm.def: Change size and iolength parameters to ioint pointer, which - corresponds to GFC_IO_INT on the library side. - -2006-12-27 Gerald Pfeifer <gerald@pfeifer.com> - - * interface.c (compare_actual_formal): Remove unused variable - gsym. - -2006-12-27 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/20896 - * interface.c (check_sym_interfaces): Try to resolve interface - reference as a global symbol, if it is not a nodule procedure. - (compare_actual_formal): Remove call to gfc_find_symbol; if - the expression is already a variable it is locally declared - and this has precedence. - gfortran.h : Add prototype for resolve_global_procedure. - resolve.c (resolve_global_procedure): Remove static attribute - from function declaration. - (resolve_fl_procedure): Remove symtree declaration and the - redundant check for an ambiguous procedure. - - PR fortran/25135 - * module.c (load_generic_interfaces): If the symbol is present - and is not generic it is ambiguous. - -2006-12-22 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/25818 - * trans-array.c (gfc_trans_g77_array): If the variable is - optional or not always present, make the statement conditional - on presence of the argument. - * gfortran.h : Add symbol_attribute not_always_present. - * resolve.c (check_argument_lists): New function to check if - arguments are not present in all entries. - - PR fortran/30084 - * module.c (mio_component_ref): Move treatment of unique name - variables, during output, to fix_mio_expr. - (fix_mio_expr): New function that fixes defective expressions - before they are written to the module file. - (mio_expr): Call the new function. - (resolve_entries): Call check_argument_lists. - -2006-12-21 Roger Sayle <roger@eyesopen.com> - - * trans-array.c (gfc_trans_create_temp_array): When the size is known - at compile-time, avoid an unnecessary conditional assignment. - (gfc_array_init_size): Likewise. - -2006-12-22 Kazu Hirata <kazu@codesourcery.com> - - * interface.c: Fix a comment typo. - -2006-12-21 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/30273 - * dependency.c (gfc_check_dependency): There is no dependency - with EXPR_NULL so always return 0. - -2006-12-21 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/30202 - * trans-array.c (gfc_conv_function_call): Use parmse.expr for - the nullifying of intent(out) arguments rather than the backend - declaration. - -2006-12-20 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> - - PR fortran/25392 - * trans-stmt.c (gfc_trans_return): Fix comment formatting. - * trans-types.c (gfc_sym_type): Don't return early for functions. - Remove special handling for -ff2c. - (gfc_get_function_type): Add special handling for -ff2c. - * trans-decl.c (gfc_create_function_decl): Fix comment formatting. - (gfc_get_fake_result_decl): Make sure we get the right type for - functions. - (gfc_generate_function_code): Convert type of result variable to - type of function. - -2006-12-20 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/30190 - * trans-array.c (gfc_conv_array_ref): Remove gfc_evaluate_now - from the -fbounds-check branch. - -2006-12-20 Roger Sayle <roger@eyesopen.com> - - * trans-expr.c (is_zero_initializer_p): Determine whether a given - constant expression is a zero initializer. - (gfc_trans_zero_assign): New function to attempt to optimize - "a(:) = 0.0" as a call to __builtin_memset (a, 0, sizeof(a)); - (gfc_trans_assignment): Special case array assignments to a - zero initializer constant, using gfc_trans_zero_assign. - -2006-12-20 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/29992 - * interface.c (check_sym_interfaces): Module procedures in a - generic must be use associated or contained in the module. - * decl.c (gfc_match_modproc): Set attribute mod_proc. - * gfortran.h (symbol_attribute): Add mod_proc atribute. - - PR fortran/30081 - * resolve.c (resolve_generic_f, resolve_generic_s): Use - gfc_intrinsic_name to find out if the function is intrinsic - because it does not have to be a generic intrinsic to be - overloaded. - -2006-12-19 Tobias Burnus <burnus@net-b.de> - - PR fortran/39238 - * trans-intrinsic.c: Check for associated(NULL,NULL). - -2006-12-19 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/30236 - * interface.c (compare_interfaces): Handle NULL symbols. - (count_types_test): Count NULL symbols, which correspond to - alternate returns. - - (check_interface1): Change final argument from int to bool - in the function and all references. - -2006-12-18 Roger Sayle <roger@eyesopen.com> - - * trans-array.c (gfc_conv_array_index_offset): Avoid multiplying - index by one, or adding zero to it. - -2006-12-17 Roger Sayle <roger@eyesopen.com> - - PR fortran/30207 - * dependency.c (gfc_full_array_ref_p): New function to test whether - the given array ref specifies the entire array. - (gfc_dep_resolver): Use gfc_full_array_ref_p to analyze AR_FULL - array refs against AR_SECTION array refs, and vice versa. - * dependency.h (gfc_full_array_ref_p): Prototype here. - * trans-array.c (gfc_conv_expr_descriptor): Use gfc_full_array_ref_p. - -2006-12-16 Brooks Moses <brooks.moses@codesourcery.com> - - * gfortran.texi: Added TeX support for document parts; - rearranged existing text into "About GNU Fortran", - "Invoking GNU Fortran", and "Language Reference" parts. - -2006-12-15 Jerry DeLisle <jvdelisle@gcc.gnu.org> - - PR fortran/30200 - * trans-io.c (build_dt): Move post block for format_expr to end. - -2006-12-14 Richard Guenther <rguenther@suse.de> - Diego Novillo <dnovillo@redhat.com> - - * Make-lang.in (fortran/options.o): Add $(PARAMS_H) dependency. - * options.c (params.h): Include. - (gfc_post_options): Set MAX_ALIASED_VOPS to 50. - -2006-12-13 Richard Guenther <rguenther@suse.de> - - PR fortran/30115 - * trans-array.c (gfc_array_allocate): Adjust for changed - library interface. - (gfc_array_deallocate): Likewise. - (gfc_trans_dealloc_allocated): Likewise. - * trans-stmt.c (gfc_trans_allocate): Likewise. - (gfc_trans_deallocate): Likewise. - * trans-decl.c (gfc_build_builtin_function_decls): Adjust - function declarations to match the library changes. Mark - allocation functions with DECL_IS_MALLOC. - -2006-12-12 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> - - * trans-expr.c (gfc_conv_substring): Check for empty substring. - -2006-12-11 Jan Hubicka <jh@suse.cz> - - * f95-lang.c (gfc_expand_function): Update for renamed varpool - functions. - -2006-12-10 Tobias Burnus <burnus@net-b.de> - - * gfortran.texi: Update Fortran 2003 section. - -2006-12-10 Tobias Burnus <burnus@net-b.de> - - PR fortran/23994 - * interface.c (compare_actual_formal): PROTECTED is incompatible - with intent(out). - * symbol.c (check_conflict): Check for PROTECTED conflicts. - (gfc_add_protected): New function. - (gfc_copy_attr): Copy PROTECTED attribute. - * decl.c (match_attr_spec): Add PROTECTED support. - (gfc_match_protected): New function. - * dump-parse-tree.c (gfc_show_attr): Add PROTECTED support. - * gfortran.h (gfc_symbol): Add protected flag. - Add gfc_add_protected prototype. - * expr.c (gfc_check_pointer_assign): Add PROTECTED support. - * module.c (ab_attribute, attr_bits, mio_symbol_attribute, - mio_symbol_attribute): Add PROTECTED support. - * resolve.c (resolve_equivalence): Add PROTECTED support. - * match.c (gfc_match_assignment,gfc_match_pointer_assignment): - Check PROTECTED attribute. - * match.h: Add gfc_match_protected prototype. - * parse.c (decode_statement): Match PROTECTED statement. - * primary.c (match_variable): Add PROTECTED support. - -2006-12-09 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/29975 - PR fortran/30068 - PR fortran/30096 - * interface.c (compare_type_rank_if): Reject invalid generic - interfaces. - (check_interface1): Give a warning for nonreferred to ambiguous - interfaces. - (check_sym_interfaces): Check whether an ambiguous interface is - referred to. Do not check host associated interfaces since these - cannot be ambiguous with the local versions. - (check_uop_interface, gfc_check_interfaces): Update call to - check_interface1. - * symbol.c (gfc_get_sym_tree, gfc_get_sym_tree): Allow adding - unambiguous procedures to generic interfaces. - * gfortran.h (symbol_attribute): Added use_only and - ambiguous_interfaces. - * module.c (load_need): Set the use_only flag, if needed. - * resolve.c (resolve_fl_procedure): Warn for nonreferred - interfaces. - * expr.c (find_array_section): Fix initializer array contructor. - -2006-12-09 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/29464 - * module.c (load_generic_interfaces): Add symbols for all the - local names of an interface. Share the interface amongst the - symbols. - * gfortran.h : Add generic_copy to symbol_attribute. - * symbol.c (free_symbol): Only free interface if generic_copy - is not set. - -2006-12-09 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/29941 - * resolve.c (resolve_function): Add LEN to the functions not - checked for assumed size actual args. - -2006-12-08 Tobias Burnus <burnus@net-b.de> - - PR fortran/27546 - * trans-decl.c (gfc_create_module_variable): Allow imported - symbols in interface bodies in modules. - -2006-12-06 Tobias Burnus <burnus@net-b.de> - - PR fortran/29711 - * error.c (error_print): Fix handling of printf-style position - specifiers of the form "%3$d". - -2006-12-05 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/30003 - * trans-array.c (gfc_trans_create_temp_array): Set the section - ends to zero. - (gfc_conv_array_transpose): Likewise. - (gfc_conv_section_startstride): Declare an expression for end, - set it from a the array reference and evaluate it for the info - structure. Zero the ends in the ss structure and set end, used - in the bounds check, from the info structure. - trans.h: Add and end array to the gfc_ss_info structure. - -2006-12-05 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/29912 - * trans-expr.c (gfc_trans_arrayfunc_assign): Return NULL if the - lhs and rhs character lengths are not constant and equal for - character array valued functions. - -2006-12-04 Tobias Burnus <burnus@net-b.de> - - PR fortran/29962 - * expr.c (check_intrinsic_op): Allow noninteger exponents for F2003. - -2006-12-04 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/29821 - * resolve.c (resolve_operator): Only return result of - gfc_simplify_expr if expression is constant. - -2006-12-04 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/29916 - * resolve.c (resolve_symbol): Allow host-associated variables - the specification expression of an array-valued function. - * expr.c (check_restricted): Accept host-associated dummy - array indices. - -2006-12-03 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/29642 - * trans-expr.c (gfc_conv_variable): A character expression with - the VALUE attribute needs an address expression; otherwise all - other expressions with this attribute must not be dereferenced. - (gfc_conv_function_call): Pass expressions with the VALUE - attribute by value, using gfc_conv_expr. - * symbol.c (check_conflict): Add strings for INTENT OUT, INOUT - and VALUE. Apply all the constraints associated with the VALUE - attribute. - (gfc_add_value): New function. - (gfc_copy_attr): Call it for VALUE attribute. - * decl.c (match_attr_spec): Include the VALUE attribute. - (gfc_match_value): New function. - * dump-parse-tree.c (gfc_show_attr): Include VALUE. - * gfortran.h : Add value to the symbol_attribute structure and - add a prototype for gfc_add_value - * module.c (mio_internal_string): Include AB_VALUE in enum. - (attr_bits): Provide the VALUE string for it. - (mio_symbol_attribute): Read or apply the VLUE attribute. - * trans-types.c (gfc_sym_type): Variables with the VLAUE - attribute are not passed by reference! - * resolve.c (was_declared): Add value to those that return 1. - (resolve_symbol): Value attribute requires dummy attribute. - * match.h : Add prototype for gfc_match_public. - * parse.c (decode_statement): Try to match a VALUE statement. - -2006-12-01 Thomas Koenig <Thomas.Koenig@online.de> - - PR libfortran/29568 - * gfortran.h (gfc_option_t): Add max_subrecord_length. - (top level): Define MAX_SUBRECORD_LENGTH. - * lang.opt: Add option -fmax-subrecord-length=. - * trans-decl.c: Add new function set_max_subrecord_length. - (gfc_generate_function_code): If we are within the main - program and max_subrecord_length has been set, call - set_max_subrecord_length. - * options.c (gfc_init_options): Add defaults for - max_subrecord_lenght, convert and record_marker. - (gfc_handle_option): Add handling for - -fmax_subrecord_length. - * invoke.texi: Document the new default for - -frecord-marker=<n>. - -2006-11-28 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/29976 - * trans-expr.c (gfc_conv_missing_dummy): Remove build_int_const - and replace with cast to type of se->expr of integer_zero_node. - -2006-11-28 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/20880 - * resolve.c (resolve_fl_procedure): Error if procedure is - ambiguous modified to require attr.referenced. - -2006-11-26 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - PR fortran/29892 - * trans-intrinsic.c (gfc_conv_intrinsic_bound): Use a locus in - the call to gfc_trans_runtime_check. - * trans-array.c (gfc_trans_array_bound_check): Try harder to find - the variable or function name for the runtime error message. - (gfc_trans_dummy_array_bias): Use a locus in the call to - gfc_trans_runtime_check - -2006-11-26 Andrew Pinski <pinskia@gmail.com> - - * trans-decl.c (gfc_build_intrinsic_function_decls): Mark the - pow functions as constant functions. - -2006-11-25 Andrew Pinski <pinskia@gmail.com> - - PR fortran/29982 - * trans-expr.c (gfc_conv_expr_reference): Strip off NOP_EXPRs. - -2006-11-25 Andrew Pinski <pinskia@gmail.com> - - PR fortran/29951 - * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Change to - call memcpy instead of creating a VIEW_CONVERT_EXRP. - -2006-11-25 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - PR fortran/29711 - * error.c (error_print): Handle printf-style position specifiers, - of the form "%3$d". - -2006-11-24 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/20880 - * parse.c (parse_interface): Error if procedure name is that of - encompassing scope. - * resolve.c (resolve_fl_procedure): Error if procedure is - ambiguous. - - PR fortran/29387 - * interface.c (compare_actual_formal): Add missing condition - that 'where' be present for error that asserts that actual - arguments be definable. - -2006-11-24 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - * resolve.c (resolve_actual_arglist): Remove the special case for - CHAR. - * intrinsic.c (add_functions): Remove the special case for CHAR. - -2006-11-22 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de> - - PR fortran/29441 - * intrinsic.c (gfc_intrinsic_func_interface): Always check if - intrinsic is allowed in initialization expression. - -2006-11-22 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/25087 - * resolve.c (resolve_fl_procedure): Add an error if an external - automatic character length function does not have an explicit - interface. - -2006-11-22 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/29652 - * interface.c (check_interface1): Use a local value, instead of - the dummy, as the inner iterator over interface symbols. - -2006-11-21 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/29820 - * trans-array.c (gfc_get_derived_type): Once done, spread the - backend_decl to all identical derived types in all sibling - namespaces. - -2006-11-20 Tobias Burnus <burnus@net-b.de> - - PR fortran/27546 - * primary.c (gfc_match_rvalue): Added IMPORT support. - -2006-11-20 Tobias Burnus <burnus@net-b.de> - - * symbol.c (check_conflict): Add conflict between VOLATILE - attribute and program name. - -2006-11-20 Bernhard Fischer <aldot@gcc.gnu.org> - - PR fortran/24783 - * resolve.c (resolve_variable): Get the implicit type from the - symbols namespace rather than the default namespace. Fix whitespace. - (resolve_formal_arglist, resolve_equivalence): Fix typo. - -2006-11-19 Erik Edelmann <eedelman@gcc.gnu.org> - - * resolve.c (resolve_ref): Check for ALLOCATABLEs to the right of - nonzero rank part references too. - -2006-11-19 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - * module.c (gfc_use_module): Uncomment the ISO_FORTRAN_ENV code. - Check that intrinsic and non-intrinsic modules don't conflict. - (use_iso_fortran_env_module): New function. - (create_int_parameter): New function. - * trans-types.c (gfc_init_kinds): Choose values for - gfc_numeric_storage_size and gfc_character_storage_size. - (gfc_numeric_storage_size, gfc_character_storage_size): New variables. - * resolve.c (resolve_symbol): Do no check intrinsic modules - against the list of intrinsic symbols. - * iso-fortran-env.def: New file. - * gfortran.h (gfc_numeric_storage_size, - gfc_character_storage_size): Add prototypes. - -2006-11-18 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - PR fortran/24285 - * io.c (check_format): Allow dollars everywhere in format, and - issue a warning. - -2006-11-17 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - * gfortran.h (gfc_add_intrinsic_modules_path, - gfc_open_intrinsic_module): New prototypes. - (gfc_add_include_path, gfc_open_included_file): Update prototypes. - * lang.opt: Add -fintrinsic-modules-path option. - * module.c (gfc_match_use): Match the Fortran 2003 form of - USE statement. - (gfc_use_module): Also handle intrinsic modules. - * scanner.c (gfc_directorylist): Add use_for_modules for field. - (intrinsic_modules_dirs): New static variable. - (add_path_to_list, gfc_add_intrinsic_modules_path): New functions. - (gfc_add_include_path): Use the new add_path_to_list helper - function. - (gfc_release_include_path): Free memory for intrinsic_modules_dirs. - (open_included_file, gfc_open_intrinsic_module): New functions. - (gfc_open_included_file): Use the new open_included_file - helper function. - * lang-specs.h: Use the new -fintrinsic-modules-path option. - * parse.c (decode_statement): Do not match the required space - after USE here. - * options.c (gfc_handle_option): Handle the new option. Use new - prototype for gfc_add_include_path. - (gfc_post_options): Use new prototype for gfc_add_include_path. - -2006-11-16 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - PR fortran/29391 - PR fortran/29489 - * simplify.c (simplify_bound): Fix the simplification of - LBOUND/UBOUND intrinsics. - * trans-intrinsic.c (simplify_bound): Fix the logic, and - remove an erroneous assert. - -2006-11-16 Francois-Xavier Coudert <fxcoudert@gcc.gnu,org> - - * trans-decl.c (gfc_get_symbol_decl): Fix formatting. - -2006-11-15 Brooks Moses <brooks.moses@codesourcery.com> - - * data.c: Remove trailing periods from error messages. - * decl.c: Likewise. - * expr.c: Likewise. - * io.c: Likewise. - * match.c: Likewise. - * module.c: Likewise. - * options.c: Likewise. - * resolve.c: Likewise. - * symbol.c: Likewise. - * trans-io.c: Likewise. - -2006-11-15 Brooks Moses <brooks.moses@codesourcery.com> - - * lang.opt: Rearrange entries back into ASCII order. - -2006-11-15 Tobias Burnus <burnus@net-b.de> - - * parse.c (parse_contained): Fix indention - of one line. - -2006-11-15 Tobias Burnus <burnus@net-b.de> - - PR fortran/27546 - * decl.c (gfc_match_import,variable_decl): - Add IMPORT support. - (gfc_match_kind_spec): Fix typo in gfc_error. - * gfortran.h (gfc_namespace, gfc_statement): - Add IMPORT support. - * parse.c (decode_statement,gfc_ascii_statement, - verify_st_order): Add IMPORT support. - * match.h: Add gfc_match_import. - * gfortran.texi: Add IMPORT to the supported - Fortran 2003 features. - -2006-11-15 Tobias Burnus <burnus@net-b.de> - Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> - - PR fortran/27588 - * trans-expr.c (gfc_conv_substring): Add bounds checking. - (gfc_conv_variable, gfc_conv_substring_expr): Pass more - arguments to gfc_conv_substring. - -2006-11-15 Tobias Burnus <burnus@net-b.de> - - PR fortran/29806 - * parse.c (parse_contained): Check for empty contains statement. - -2006-11-15 Bud Davis <bdavis9659@sbcglobal.net> - - PR fortran/28974 - * gfortran.h (gfc_expr): Add element which holds a splay-tree - for the exclusive purpose of quick access to a constructor by - offset. - * data.c (find_con_by_offset): Use the splay tree for the search. - (gfc_assign_data_value): Use the splay tree. - (gfc_assign_data_value_range): ditto. - * expr.c (gfc_get_expr): Initialize new element to null. - (gfc_free_expr): Delete splay tree when deleting gfc_expr. - -2006-11-14 Brooks Moses <brooks.moses@codesourcery.com> - - PR fortran/29702 - * error.c (show_loci): Move column-offset calculation to - show_locus. - (show_locus): Remove blank lines before "Included in" - lines, clean up code, calculate column-offsets, print - column number is error-header lines as appropriate. - (error_integer): (new function) Print integer to error - buffer. - (error_print): Use error_integer, avoid possible buffer - overflows from buggy error formats. - -2006-11-14 Brooks Moses <brooks.moses@codesourcery.com> - - * gfortran.h (GFC_MAX_LINE): Remove constant definition. - (gfc_option_t): Clarify comments. - * options.c: Set default line length limits to actual default - values, rather than flag values. - * scanner.c: Eliminate checking and handling of the - fixed/free_line_length flag values. - -2006-11-14 Brooks Moses <brooks.moses@codesourcery.com> - - * lang.opt: Remove -fno-backend option. - * gfortran.h (gfc_option_t): Remove flag_no_backend. - * options.c (gfc_init_options): Remove flag_no_backend. - (gfc_handle_option): Remove -fno-backend option handler. - * parse.c (gfc_parse_file): Remove references to - gfc_option.flag_no_backend. - -2006-11-14 Tobias Burnus <burnus@net-b.de> - - * match.c (gfc_match_namelist): Add missing space to - error message. - -2006-11-14 Tobias Burnus <burnus@net-b.de> - - PR fortran/29657 - * symbol.c (check_conflict): Add further conflicts. - -2006-11-13 Jakub Jelinek <jakub@redhat.com> - - PR fortran/29759 - * fortran/scanner.c (skip_free_comments): Clear openmp_flag - before returning true. - -2006-11-12 Andrew Pinski <andrew_pinski@playstation.sony.com> - - PR fortran/26994 - * trans-expr.c (gfc_conv_expr_reference): Set TREE_STATIC on the - new CONST_DECL. - -2006-11-11 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> - - * array.c: Add 2006 to copyright years. - * data.c: Same. - * interface.c: Same. - * misc.c: Same. - * trans-io.c: Same. - -2006-11-11 Richard Guenther <rguenther@suse.de> - - * trans-intrinsic.c (enum rounding_mode): New enum. - (build_fix_expr, gfc_conv_intrinsic_aint, gfc_conv_intrinsic_mod, - gfc_conv_intrinsic_function): Use it instead of FIX_CEIL_EXPR, - FIX_FLOOR_EXPR, FIX_ROUND_EXPR and FIX_TRUNC_EXPR. - -2006-11-10 Brooks Moses <brooks.moses@codesourcery.com> - - * lang.opt (-fmodule-private): Remove option. - * gfortran.h (gfc_option_t): Remove module_access_private flag. - * options.c (gfc_init_options): Remove initialization for it. - (gfc_handle_option): Remove handling for -fmodule-private. - * module.c (gfc_check_access): Add comments, remove check for - gfc_option.flag_module_access_private. - -2006-11-10 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/29758 - * check.c (gfc_check_reshape): Check that there are enough - elements in the source array as to be able to fill an array - defined by shape, when pad is absent. - -2006-11-10 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/29315 - * trans-expr.c (is_aliased_array): Treat correctly the case where the - component is itself and array or array reference. - -2006-11-09 Brooks Moses <brooks.moses@codesourcery.com> - - * check.c (same_type_check): Typo fix in comment. - -2006-11-09 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/29431 - * trans-array.c (get_array_ctor_strlen): If we fall through to - default, use a constant character length if it is available. - -2006-11-09 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/29744 - * trans-types.c (gfc_get_derived_type): Ensure that the - proc_name namespace is not the same as the owner namespace and - that identical derived types in the same namespace share the - same backend_decl. - -2006-11-09 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/29699 - * trans-array.c (structure_alloc_comps): Detect pointers to - arrays and use indirect reference to declaration. - * resolve.c (resolve_fl_variable): Tidy up condition. - (resolve_symbol): The same and only add initialization code if - the symbol is referenced. - * trans-decl.c (gfc_trans_deferred_vars): Call gfc_trans_ - deferred_array before gfc_trans_auto_array_allocation. - - PR fortran/21370 - * symbol.c (check_done): Remove. - (gfc_add_attribute): Remove reference to check_done and remove - the argument attr_intent. - (gfc_add_allocatable, gfc_add_dimension, gfc_add_external, - gfc_add_intrinsic, gfc_add_optional, gfc_add_pointer, - gfc_add_cray_pointer, gfc_add_cray_pointee, gfc_add_result, - gfc_add_target, gfc_add_in_common, gfc_add_elemental, - gfc_add_pure, gfc_add_recursive, gfc_add_procedure, - gfc_add_type): Remove references to check_done. - * decl.c (attr_decl1): Eliminate third argument in call to - gfc_add_attribute. - * gfortran.h : Change prototype for gfc_add_attribute. - -2006-11-08 Brooks Moses <brooks.moses@codesourcery.com> - - * invoke.texi: Added documentation for -fmax-errors option. - -2006-11-08 Brooks Moses <brooks.moses@codesourcery.com> - - * lang.opt: Add -fmax-errors= option. - * gfortran.h (gfc_option_t): Add max_errors element. - * options.c (gfc_init_options): Set max_errors default value - to 25. - (gfc_handle_options): Assign -fmax_errors value to - gfc_option.max_errors. - * error.c (gfc_increment_error_count): New function, which - also checks whether the error count exceeds max_errors. - (gfc_warning): Use it. - (gfc_warning_now): Use it. - (gfc_notify_std): Use it. - (gfc_error): Use it. - (gfc_error_now): Use it. - (gfc_error_check): Use it. - -2006-11-08 Brooks Moses <brooks.moses@codesourcery.com> - - * lang.opt: Remove non-working -qkind= option. - * gfortran.h (gfc_option_t): Remove q_kind member. - * options.c (gfc_init_options): Remove q_kind initialization. - (gfc_handle_option): Remove -qkind= option handling. - * primary.c: (match_real_constant): Remove 'Q' exponent. - -2006-11-08 Tobias Burnus <burnus@net-b.de> - - * gfortran.texi: Add volatile and internal-file - namelist to Fortran 2003 status. - * intrinsic.texi: Correct CHMOD entry. - -2006-11-07 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/29539 - PR fortran/29634 - * decl.c (variable_decl): Add test for presence of proc_name. - * error.c (gfc_error_flag_test): New function. - * gfortran.h : Prototype for gfc_error_flag_test. - -2006-11-07 Tobias Burnus <burnus@net-b.de> - - PR fortran/29601 - * symbol.c (check_conflict, gfc_add_volatile): Add volatile support. - * decl.c (match_attr_spec, gfc_match_volatile): Add volatile support. - * gfortran.h (symbol_attribute): Add volatile_ to struct. - * resolve.c (was_declared): Add volatile support. - * trans-decl.c (gfc_finish_var_decl): Add volatile support. - * match.h: Declare gfc_match_volatile. - * parse.c (decode_statement): Recognize volatile. - * modules.c (ab_attribute, attr_bits, mio_symbol_attribute): - Add volatile support. - * dump-parse-tree.c (gfc_show_attr): Add volatile support. - -2006-11-06 Tobias Burnus <burnus@net-b.de> - - * decl.c (match_attr_spec, gfc_match_enum): Unify gfc_notify_std - message for GFC_STD_F2003. - * array.c (gfc_match_array_constructor): Unify gfc_notify_std - message for GFC_STD_F2003. - * io.c (check_io_constraints): Unify gfc_notify_std message for - GFC_STD_F2003. - * resolve.c (resolve_actual_arglist): Unify gfc_notify_std message - for GFC_STD_F2003. - -2006-11-06 Brooks Moses <brooks.moses@codesourcery.com> - - * intrinsic.texi: Added documentation for FTELL, GETLOG, and - HOSTNM intrinsics. - -2006-11-06 Erik Edelmann <eedelman@gcc.gnu.org> - - PR fortran/29630 - PR fortran/29679 - * expr.c (find_array_section): Support vector subscripts. Don't - add sizes for dimen_type == DIMEN_ELEMENT to the shape array. - -2006-11-05 Bernhard Fischer <aldot@gcc.gnu.org> - - PR fortran/21061 - * error.c (gfc_warning): If warnings_are_errors then treat - warnings as errors with respect to the exit code. - (gfc_notify_std): Ditto. - (gfc_warning_now): Ditto. - -2006-11-05 Francois-Xavier Coudert <fxcoudert@gcc.gnu,org> - Paul Thomas <pault@gcc.gnu.org> - - PR fortran/24518 - * trans-intrinsic.c (gfc_conv_intrinsic_mod): Use built_in fmod - for both MOD and MODULO, if it is available. - - PR fortran/29565 - * trans-expr.c (gfc_conv_aliased_arg): For an INTENT(OUT), save - the declarations from the unused loops by merging the block - scope for each; this ensures that the temporary is declared. - -2006-11-04 Brooks Moses <brooks.moses@codesourcery.com> - - * error.c (show_locus): Add trailing colon in error messages. - (error_print): Avoid leading space in error lines. - -2006-11-04 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - PR fortran/29713 - * expr.c (gfc_simplify_expr): Correct memory allocation. - -2006-11-02 Brooks Moses <brooks.moses@codesourcery.com> - - * error.c (show_locus): Remove "In file" from error messages. - -2006-10-31 Geoffrey Keating <geoffk@apple.com> - - * trans-decl.c (gfc_generate_constructors): Update for removal - of get_file_function_name. - -2006-11-01 Bernhard Fischer <aldot@gcc.gnu.org> - - PR fortran/29537 - * trans-common.c (gfc_trans_common): If the blank common is - in a procedure or program without a name then proc_name is null, so - use the locus of the common. - (gfc_sym_mangled_common_id): Fix whitespace. - * match.c (gfc_match_common): Emit warning about blank common in - block data. - -2006-10-31 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - PR fortran/29067 - * decl.c (gfc_set_constant_character_len): NULL-terminate the - character constant string. - * data.c (create_character_intializer): Likewise. - * expr.c (gfc_simplify_expr): NULL-terminate the substring - character constant. - * primary.c (match_hollerith_constant): NULL-terminate the - character constant string. - -2006-10-31 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/29387 - * trans-intrinsic.c (gfc_conv_intrinsic_len): Rearrange to have - a specific case for EXPR_VARIABLE and, in default, build an ss - to call gfc_conv_expr_descriptor for array expressions.. - - PR fortran/29490 - * trans-expr.c (gfc_set_interface_mapping_bounds): In the case - that GFC_TYPE_ARRAY_LBOUND is not available, use descriptor - values for it and GFC_TYPE_ARRAY_UBOUND. - - PR fortran/29641 - * trans-types.c (gfc_get_derived_type): If the derived type - namespace has neither a parent nor a proc_name, set NULL for - the search namespace. - -2006-10-30 Tobias Burnus <burnus@net-b.de> - - PR fortran/29452 - * io.c (check_io_constraints): Fix keyword string comparison. - -2006-10-30 Andrew Pinski <pinskia@gmail.com> - - PR fortran/29410 - * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): - Change over to create VIEW_CONVERT_EXPR instead of using an - ADDR_EXPR, a cast and then an indirect reference - -2006-10-29 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - * trans-intrinsic.c (gfc_conv_intrinsic_loc): Make LOC return a - signed integer node. - -2006-10-29 Jerry DeLisle <jvdelisle@gcc.gnu.org> - - PR fortran/17741 - * decl.c (get_proc_name): Bump current namespace refs count. - -2006-10-29 Jakub Jelinek <jakub@redhat.com> - - PR fortran/29629 - * trans-openmp.c (gfc_trans_omp_array_reduction): Set attr.flavor - of init_val_sym and outer_sym to FL_VARIABLE. - -2006-10-29 Kazu Hirata <kazu@codesourcery.com> - - * intrinsic.texi: Fix a typo. - -2006-10-27 Steven G. Kargl <kargl@gcc.gnu.org> - - * gfortran.h: Remove GFC_MPFR_TOO_OLD. - * arith.c (arctangent2): Remove function - (gfc_check_real_range): Remove subnormal kludge. - * arith.h: Remove arctangent2 prototype. - * simplify.c: (gfc_simplify_atan2): Remove use of arctangent2. - (gfc_simplify_exponent, gfc_simplify_log, gfc_simplify_nearest, - gfc_simplify_rrspacing, gfc_simplify_spacing): Remove mpfr kludges. - -2006-10-28 Tobias Burnus <burnus@net-b.de> - - PR fortran/28224 - * io.c (check_io_constraints): Allow namelists - for internal files for Fortran 2003. - -2006-10-27 Jerry DeLisle <jvdelisle@gcc.gnu.org> - - PR fortran/27954 - * decl.c (gfc_free_data_all): New function to free all data structures - after errors in DATA statements and declarations. - (top_var_list): Use new function.(top_val_list): Use new function. - (gfc_match_data_decl): Use new function. - * misc.c (gfc_typename): Fixed incorrect function name in error text. - -2006-10-24 Erik Edelmann <eedelman@gcc.gnu.org> - - PR fortran/29393 - * expr.c (simplify_parameter_variable): Keep rank of original - expression. - -2006-10-23 Rafael Avila de Espindola <rafael.espindola@gmail.com> - - * Make-lang.in (f951$(exeext)): Depend on and link with attribs.o. - * trans.h (builtin_function): Rename to gfc_builtin_function. - Change the signature. - * 95-lang.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as - gfc_builtin_function. - (builtin_function): Rename to gfc_builtin_function. Move common - code to builtin_function. - (gfc_define_builtin): Replace calls to builtin_function with - gfc_define_builtin. - -2006-10-22 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - PR fortran/26025 - * lang.opt: Add -fexternal-blas and -fblas-matmul-limit options. - * options.c (gfc_init_options): Initialize new flags. - (gfc_handle_option): Handle new flags. - * gfortran.h (gfc_option): Add flag_external_blas and - blas_matmul_limit flags. - * trans-expr.c (gfc_conv_function_call): Use new argument - append_args, appending it at the end of the argument list - built for a function call. - * trans-stmt.c (gfc_trans_call): Use NULL_TREE for the new - append_args argument to gfc_trans_call. - * trans.h (gfc_conv_function_call): Update prototype. - * trans-decl.c (gfc_build_intrinsic_function_decls): Add - prototypes for BLAS ?gemm routines. - * trans-intrinsic.c (gfc_conv_intrinsic_funcall): Generate the - extra arguments given to the library matmul function, and give - them to gfc_conv_function_call. - * invoke.texi: Add documentation for -fexternal-blas and - -fblas-matmul-limit. - -2006-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * Make-lang.in (F95_LIBS): Delete. - * f951$(exeext): Use $(LIBS) instead of $(F95_LIBS). - * config-lang.in (need_gmp): Delete. - -2006-10-19 Brooks Moses <bmoses@stanford.edu> - - * invoke.texi: Fixed "denormal" typo. - -2006-10-19 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/29216 - PR fortran/29314 - * gfortran.h : Add EXEC_INIT_ASSIGN. - * dump-parse-tree.c (gfc_show_code_node): The same. - * trans-openmp.c (gfc_trans_omp_array_reduction): Set new - argument for gfc_trans_assignment to false. - * trans-stmt.c (gfc_trans_forall_1): The same. - * trans-expr.c (gfc_conv_function_call, gfc_trans_assign, - gfc_trans_arrayfunc_assign, gfc_trans_assignment): The - same. In the latter function, use the new flag to stop - the checking of the lhs for deallocation. - (gfc_trans_init_assign): New function. - * trans-stmt.h : Add prototype for gfc_trans_init_assign. - * trans.c (gfc_trans_code): Implement EXEC_INIT_ASSIGN. - * trans.h : Add new boolean argument to the prototype of - gfc_trans_assignment. - * resolve.c (resolve_allocate_exp): Replace EXEC_ASSIGN by - EXEC_INIT_ASSIGN. - (resolve_code): EXEC_INIT_ASSIGN does not need resolution. - (apply_default_init): New function. - (resolve_symbol): Call it for derived types that become - defined but which do not already have an initialization - expression.. - * st.c (gfc_free_statement): Include EXEC_INIT_ASSIGN. - -2006-10-16 Tobias Burnus <burnus@net-b.de> - - * primary.c: Revert 'significand'-to-'significant' comment change. - * invoke.texi (Warning Options): Minor cleanup for - -Wimplicit-interface. - -2006-10-17 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/29451 - * trans-array.c (gfc_trans_array_bounds): Test for and set - negative stride of a non-constant bound array to zero. - - PR fortran/29392 - * data.c (create_character_intializer): Copy and simplify - the expressions for the start and end of a sub-string - reference. - -2006-10-16 Kaz Kojima <kkojima@rr.iij4u.or.jp> - - * io.c (gfc_match_close): Ensure that status is terminated by - a NULL element. - -2006-10-16 Tobias Burnus <burnus@net-b.de> - - * trans-stmt.c: Fix a typo - * invoke.texi: Fix typos - * resolve.c: Fix a comment typo - * trans-decl.c: Fix a comment typo - * primary.c: Fix a comment typo - -2006-10-15 Steven G. Kargl <kargl@gcc.gnu.org> - - PR fortran/29403 - * io.c (match_io): Check for a default-char-expr for PRINT format. - -2006-10-15 Bernhard Fischer <aldot@gcc.gnu.org> - - PR fortran/24767 - * lang.opt (Wunused-labels): Remove. - * options.c: Remove references to gfc_option.warn_unused_labels. - * gfortran.h: Remove variable warn_unused_labels. - * resolve.c (warn_unused_fortran_label) : Use warn_unused_label - instead of gfc_option.warn_unused_labels. - * invoke.texi: Remove documentation of -Wunused-labels. - -2006-10-14 Tobias Burnus <burnus@net-b.de> - - * gfortran.texi: Add link to GFortran apps - * intrinsic.texi: Updated documentation of ACCESS and CHMOD - -2006-10-14 Jerry DeLisle <jvdelisle@gcc.gnu.org> - - PR fortran/19261 - * scanner.c (load_line): Add checks for illegal use of '&' and issue - warnings. Issue errors with -pedantic. - -2006-10-14 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/29371 - * trans-expr.c (gfc_trans_pointer_assignment): Add the expression - for the assignment of null to the data field to se->pre, rather - than block. - -2006-10-14 Kazu Hirata <kazu@codesourcery.com> - - * intrinsic.texi: Fix typos. - * trans-array.c: Fix a comment typo. - -2006-10-13 Brooks Moses <bmoses@stanford.edu> - - * intrinsic.texi (STAT): Reverted a format in example code to - octal; noted this in accompanying string. - -2006-10-13 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/29373 - * decl.c (get_proc_name, gfc_match_function_decl): Add - attr.implicit_type to conditions that throw error for - existing explicit interface and that allow new type- - spec to be applied. - - PR fortran/29407 - * resolve.c (resolve_fl_namelist): Do not check for - namelist/procedure conflict, if the symbol corresponds - to a good local variable declaration. - - PR fortran/27701 - * decl.c (get_proc_name): Replace the detection of a declared - procedure by the presence of a formal argument list by the - attributes of the symbol and the presence of an explicit - interface. - - PR fortran/29232 - * resolve.c (resolve_fl_variable): See if the host association - of a derived type is blocked by the presence of another type I - object in the current namespace. - - PR fortran/29364 - * resolve.c (resolve_fl_derived): Check for the presence of - the derived type for a derived type component. - - PR fortran/24398 - * module.c (gfc_use_module): Check that the first words in a - module file are 'GFORTRAN module'. - - PR fortran/29422 - * resolve.c (resolve_transfer): Test functions for suitability - for IO, as well as variables. - - PR fortran/29428 - * trans-expr.c (gfc_trans_scalar_assign): Remove nullify of - rhs expression. - -2006-10-13 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - PR fortran/29391 - * trans-intrinsic.c (gfc_conv_intrinsic_bound): Generate correct - code for LBOUND and UBOUND intrinsics. - -2006-10-13 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - PR fortran/21435 - * io.c (compare_to_allowed_values): New function. - (gfc_match_open): Add checks for constant values of specifiers. - (gfc_match_close): Add checks for constant values of the STATUS - specifier. - -2006-10-12 Brooks Moses <bmoses@stanford.edu> - - * intrinsic.texi (STAT): Fixed a format typo in sample code. - -2006-10-12 Brooks Moses <bmoses@stanford.edu> - - * intrinsic.texi (STAT): Shortened lines in sample code. - -2006-10-11 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de> - - * gfortran.h (gfc_show_actual_arglist, gfc_show_array_ref, - gfc_show_array_spec, gfc_show_attr, gfc_show_code, - gfc_show_components, gfc_show_constructor, gfc_show_equiv, - gfc_show_expr, gfc_show_namelist, gfc_show_ref, gfc_show_symbol, - gfc_show_typespec): Add prototypes. - * dump-parse-tree.c (gfc_show_actual_arglist, gfc_show_array_ref, - gfc_show_array_spec, gfc_show_attr, gfc_show_code, - gfc_show_components, gfc_show_constructor, gfc_show_equiv, - gfc_show_expr, gfc_show_namelist, gfc_show_ref, gfc_show_symbol, - gfc_show_typespec): Remove 'static' from declaration. - -2006-10-10 Brooks Moses <bmoses@stanford.edu> - - * invoke.texi, gfortran.texi: Corrected erronous dashes. - -2006-10-10 Brooks Moses <bmoses@stanford.edu> - - * Make-lang.in: Added "fortran.pdf", "gfortran.pdf" target - support. - -2006-10-10 Daniel Franke <franke.daniel@gmail.com> - - * intrinsic.texi: added documentation for FSTAT, GETARG,GET_COMMAND, - GET_COMMAND_ARGUMENT, GETENV, GET_ENVIRONMENT_VARIABLE, IAND, IARGC, - LSTAT and STAT, removed the reference to PR19292 from ACCESS, CHMOD, - GMTIME, LSHIFT, LTIME, RSHIFT. - -2006-10-10 Brooks Moses <bmoses@stanford.edu> - - * gfortran.texi (Standards): Update to current status. - -2006-10-09 Brooks Moses <bmoses@stanford.edu> - - * Make-lang.in: Added intrinsic.texi to GFORTRAN_TEXI - dependences. - -2006-10-09 Brooks Moses <bmoses@stanford.edu> - - * intrinsic.texi (MOVE_ALLOC): changed "Options" to "Standards". - -2006-10-09 Steven G. Kargl <kargl@gcc.gnu.org> - - * gfortran.h: Define GFC_MPFR_TOO_OLD via mpfr version info. - * arith.c (arctangent, gfc_check_real_range): Use it. - * simplify.c (gfc_simplify_atan2, gfc_simplify_exponent, - gfc_simplify_log, gfc_simplify_nearest): Use it. - - PR fortran/15441 - PR fortran/29312 - * iresolve.c (gfc_resolve_rrspacing): Give rrspacing library - routine hidden precision argument. - (gfc_resolve_spacing): Give spacing library routine hidden - precision, emin - 1, and tiny(x) arguments. - * simplify.c (gfc_simplify_nearest): Remove explicit subnormalization. - (gfc_simplify_rrspacing): Implement formula from Fortran 95 standard. - (gfc_simplify_spacing): Implement formula from Fortran 2003 standard. - * trans-intrinsic.c (gfc_intrinsic_map_t) Declare rrspacing and - spacing via LIBF_FUNCTION - (prepare_arg_info, call_builtin_clz, gfc_conv_intrinsic_spacing, - gfc_conv_intrinsic_rrspacing): Remove functions. - (gfc_conv_intrinsic_function): Remove calls to - gfc_conv_intrinsic_spacing and gfc_conv_intrinsic_rrspacing. - * f95-lang.c (gfc_init_builtin_functions): Remove __builtin_clz, - __builtin_clzl and __builtin_clzll - -2006-10-09 Richard Henderson <rth@redhat.com> - - Revert emutls patch. - -2006-10-09 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - * intrinsic.c (add_sym_0s, add_sym_1s, add_sym_2s, add_sym_3s, - add_sym_4s, add_sym_5s, add_functions): Use macro ACTUAL_NO, - ACTUAL_YES, NOT_ELEMENTAL and ELEMENTAL instead of constants - 0 and 1 as second and third arguments to add_sym* functions. - -2006-10-08 Erik Edelmann <edelmann@gcc.gnu.org> - Paul Thomas <pault@gcc.gnu.org> - - PR fortran/20541 - * interface.c (gfc_compare_derived_types): Add comparison of - the allocatable field. - * intrinsic.c (add_subroutines): Add MOVE_ALLOC. - * trans-expr.c (gfc_conv_aliased_arg, gfc_trans_subarray_assign, - gfc_trans_subcomponent_assign, gfc_conv_string_parameter, - gfc_trans_scalar_assign): Add extra arguments l_is_temp - and r_is_var to references to latter function. - (gfc_conv_function_call): Add enum for types of argument and - an associated variable parm_kind. Deallocate components of - INTENT(OUT) and non-variable arrays. - (gfc_trans_subcomponent_assign): Add block to assign arrays - to allocatable components. - (gfc_trans_scalar_assign): Add block to handle assignments of - derived types with allocatable components, using the above new - arguments to control allocation/deallocation of memory and the - copying of allocated arrays. - * trans-array.c (gfc_array_allocate): Remove old identification - of pointer and replace with that of an allocatable array. Add - nullify of structures with allocatable components. - (gfc_conv_array_initializer): Treat EXPR_NULL. - (gfc_conv_array_parameter): Deallocate allocatable components - of non-variable structures. - (gfc_trans_dealloc_allocated): Use second argument of library - deallocate to inhibit, without error, freeing NULL pointers. - (get_full_array_size): New function to return the size of a - full array. - (gfc_duplicate_allocatable): New function to allocate and copy - allocated data. - (structure_alloc_comps): New recursive function to deallocate, - nullify or copy allocatable components. - (gfc_nullify_alloc_comp, gfc_deallocate_alloc_comp, - gfc_copy_alloc_comp): New interface functions to call previous. - (gfc_trans_deferred_array): Add the code to nullify allocatable - components, when entering scope, and to deallocate them on - leaving. Do not call gfc_trans_static_array_pointer and return - for structures with allocatable components and default - initializers. - * symbol.c (gfc_set_component_attr): Set allocatable field. - (gfc_get_component_attr): Set the allocatable attribute. - * intrinsic.h : Prototype for gfc_check_move_alloc. - * decl.c (build_struct): Apply TR15581 constraints for - allocatable components. - (variable_decl): Default initializer is always NULL for - allocatable components. - (match_attr_spec): Allow, or not, allocatable components, - according to the standard in force. - * trans-array.h : Prototypes for gfc_nullify_alloc_comp, - gfc_deallocate_alloc_comp, gfc_copy_alloc_comp and - gfc_duplicate_allocatable. - * gfortran.texi : Add mention of TR15581 extensions. - * gfortran.h : Add attribute alloc_comp, add - gfc_components field allocatable and add the prototype - for gfc_expr_to_initialize. - * trans-stmt.c (generate_loop_for_temp_to_lhs, - generate_loop_for_rhs_to_temp, gfc_trans_where_assign, - gfc_trans_where_3): Add extra arguments to calls to - gfc_trans_scalar_assign and set appropriately. - (gfc_trans_allocate): Nullify allocatable components. - (gfc_trans_deallocate): Deallocate to ultimate allocatable - components but stop at ultimate pointer components. - * module.c (mio_symbol_attribute, mio_symbol_attribute, - mio_component): Add module support for allocatable - components. - * trans-types.c (gfc_get_derived_type): Treat allocatable - components. - * trans.h : Add two boolean arguments to - gfc_trans_scalar_assign. - * resolve.c (resolve_structure_cons): Check conformance of - constructor element and the component. - (resolve_allocate_expr): Add expression to nullify the - constructor expression for allocatable components. - (resolve_transfer): Inhibit I/O of derived types with - allocatable components. - (resolve_fl_derived): Skip check of bounds of allocatable - components. - * trans-decl.c (gfc_get_symbol_decl): Add derived types - with allocatable components to deferred variable. - (gfc_trans_deferred_vars): Make calls for derived types - with allocatable components to gfc_trans_deferred_array. - (gfc_generate_function_code): Nullify allocatable - component function result on entry. - * parse.c (parse_derived): Set symbol attr.allocatable if - allocatable components are present. - * check.c (gfc_check_allocated): Enforce attr.allocatable - for intrinsic arguments. - (gfc_check_move_alloc): Check arguments of move_alloc. - * primary.c (gfc_variable_attr): Set allocatable attribute. - * intrinsic.texi : Add index entry and section for - for move_alloc. - -2006-10-08 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/29115 - * resolve.c (resolve_structure_cons): It is an error if the - pointer component elements of a derived type constructor are - not pointer or target. - - - PR fortran/29211 - * trans-stmt.c (generate_loop_for_temp_to_lhs, - generate_loop_for_rhs_to_temp): Provide a string length for - the temporary by copying that of the other side of the scalar - assignment. - -2006-10-08 Tobias Burnus <burnus@net-b.de> - - PR fortran/28585 - * intrinsic.c (add_functions): Add new_line Fortran 2003 intrinsic. - * intrinsic.h: Add gfc_simplify_new_line and gfc_check_new_line - prototypes. - * check.c (gfc_check_new_line): New function. - * simplify.c (gfc_simplify_new_line): New function. - * intrinsic.texi: Document new_line intrinsic. - -2006-10-07 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - PR fortran/16580 - PR fortran/29288 - * gcc/fortran/intrinsic.c (add_sym): Define the actual_ok when a - gfc_intrinsic_sym structure is filled. - (gfc_intrinsic_actual_ok): New function. - (add_sym_0s, add_sym_1s, add_sym_2s, add_sym_3s, add_sym_4s, - add_sym_5s): Intrinsic subroutines are not allowed as actual - arguments, so we remove argument actual_ok. - (add_functions): Correct the values for actual_ok of all intrinsics. - Add comments for gfc_check_access_func and gfc_resolve_index_func. - (add_subroutines): Remove the actual_ok argument, which was never used. - * gcc/fortran/intrinsic.h (gfc_intrinsic_actual_ok): New prototype. - * gcc/fortran/gfortran.h (gfc_resolve_index_func): New prototype. - * gcc/fortran/resolve.c (resolve_actual_arglist): Check whether - an intrinsic used as an argument list is allowed there. - * gcc/fortran/iresolve.c (gfc_resolve_index_func): New function. - (gfc_resolve_len): Change intrinsic function name to agree with - libgfortran. - * gcc/fortran/trans-decl.c (gfc_get_extern_function_decl): Add - new case, because some specific intrinsics take 3 arguments. - * gcc/fortran/intrinsic.texi: DIMAG is a GNU extension. - -2006-10-06 Jakub Jelinek <jakub@redhat.com> - - PR fortran/28415 - * trans-decl.c (gfc_finish_var_decl): With -fno-automatic, don't - make artificial variables or pointer to variable automatic array - TREE_STATIC. - - * scanner.c (skip_free_comments): Return bool instead of void. - (gfc_next_char_literal): Don't return ' ' if & is missing after - !$omp or !$. Use skip_{free,fixed}_comments directly instead - of gfc_skip_comments. - -2006-10-04 Brooks Moses <bmoses@stanford.edu> - - * gfortran.texi: (Current Status): update and rewrite to reflect - actual status more accurately. - -2006-10-04 Brooks Moses <bmoses@stanford.edu> - - * gfortran.texi: Consistently refer to the compiler as "GNU - Fortran". - * intrinsic.texi: Ditto. - * invoke.texi: Ditto. - -2006-10-04 Richard Henderson <rth@redhat.com> - Jakub Jelinek <jakub@redhat.com> - - * 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. - -2006-10-04 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/29343 - * resolve.c (resolve_allocate_expr): Exclude derived types from - search for dependences between allocated variables and the - specification expressions for other allocations in the same - statement. - -2006-10-04 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/29098 - * resolve.c (resolve_structure_cons): Do not return FAILURE if - component expression is NULL. - -2006-10-03 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/20779 - PR fortran/20891 - * resolve.c (find_sym_in_expr): New function that returns true - if a symbol is found in an expression. - (resolve_allocate_expr): Check whether the STAT variable is - itself allocated in the same statement. Use the call above to - check whether any of the allocated arrays are used in array - specifications in the same statement. - -2006-10-03 Steven G. Kargl <kargl@gcc.gnu.org> - - * arith.c (gfc_check_real_range): Use correct exponent range for - subnormal numbers. - -2006-10-03 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/29284 - PR fortran/29321 - PR fortran/29322 - * trans-expr.c (gfc_conv_function_call): Check the expression - and the formal symbol are present when testing the actual - argument. - - PR fortran/25091 - PR fortran/25092 - * resolve.c (resolve_entries): It is an error if the entries - of an array-valued function do not have the same shape. - -2006-10-03 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - PR middle-end/27478 - * trans-decl.c (gfc_get_fake_result_decl): Mark var as - TREE_ADDRESSABLE. - -2006-10-02 Jerry DeLisle <jvdelisle@gcc.gnu.org> - - PR fortran/19262 - * gfortran.h (gfc_option_t): Add max_continue_fixed and - max_continue_free. - * options.c (gfc_init_options): Initialize fixed form and free form - consecutive continuation line limits. - * scanner.c (gfc_scanner_init_1): Initialize continue_line - and continue_count. (gfc_next_char_literal): Count the number of - continuation lines in the current statement and warn if limit - is exceeded. - -2006-10-02 Jerry DeLisle <jvdelisle@gcc.gnu.org> - - PR fortran/19260 - * scanner.c (gfc_next_char_literal): Add check for missing '&' - and warn if in_string, otherwise return ' '. - -2006-10-02 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - PR fortran/29210 - * primary.c (match_sym_complex_part): Named constants as real or - imaginary part of complex a named constant are only allowed in - Fortran 2003. - -2006-10-01 Brooks Moses <bmoses@stanford.edu> - - * gfortran.texi: Corrected references to MALLOC intrinsic. - * invoke.texi: Minor cleanup and clarification to the Dialect - Options section. - -2006-09-30 Brooks Moses <bmoses@stanford.edu> - - * invoke.texi: Add mention of BOZ constants and integer - overflow to -fno-range-check. - * gfortran.texi: Add mention of -fno-range-check to - section on BOZ contants. - -2006-09-30 Bernhard Fischer <aldot@gcc.gnu.org> - - * resolve.c: Fix commentary typo. Fix whitespace. - -2006-09-28 Steven G. Kargl <kargl@gcc.gnu.org> - - fortran/29147 - * arith.c (gfc_check_integer_range): Disable range checking via - -fno-range-check. - -2006-09-28 Steven G. Kargl <kargl@gcc.gnu.org> - - * arith.c: Change conditional test for inclusion of arctangent(). - (gfc_check_real_range): Change conditional test for use of - mpfr_subnormalize. - * simplify.c (gfc_simplify_atan2): Fix conditional for use of - mpfr_atan2() instead of arctangent(). - (gfc_simplify_exponent): Fix conditional for use of mpfr_get_exp(). - (gfc_simplify_log): Fix conditional for use of mpfr_atan2() instead - of arctangent(). - (gfc_simplify_nearest): Fix conditional for use of mpfr_nextafter(). - -2006-09-27 Steven G. Kargl <kargl@gcc.gnu.org> - - * arith.c: Conditionally include arctangent2(). - (gfc_check_real_range): Use mpfr_subnormalize in preference to local - hack. - * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl): Append - l for long double functions. - * simplify.c: Wrap Copyright to new line. - (gfc_simplify_atan2): Use mpfr_atan2 in preference to arctangent2(). - (gfc_simplify_log): Ditto. - - - PR fortran/28276 - * simplify.c (gfc_simplify_exponent): Use mpfr_get_exp in - preference to broken local hack. - - PR fortran/27021 - * simplify.c (gfc_simplify_nearest): Use mpfr_nexttoward and - mpfr_subnormalize to handle numbers near zero in preference to broken - local hack. - -2006-09-26 Jakub Jelinek <jakub@redhat.com> - - PR fortran/29097 - * scanner.c (include_line): Handle conditional include. - -2006-09-25 Tobias Schluter <tobias.schlueter@physik.uni-muenchen.de> - - PR fortran/21203 - * error.c (show_loci): No need to risk an ICE to output a - slightly nicer error message. - -2006-09-19 Paul Thomas <pault@gcc.gnu.org> - Steven Bosscher <steven@gcc.gnu.org> - - PR fortran/29101 - * trans-stmt.c (gfc_trans_character_select): Store the label - from select_string and then clean up any temporaries from the - conversion of the select expression, before branching to the - selected case. - -2006-09-18 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/28526 - * primary.c (match_variable): If the compiler is in a module - specification block, an interface block or a contains section, - reset host_flag to force the changed symbols mechanism. - - PR fortran/29101 - * trans-stmt.c (gfc_trans_character_select): Add the post block - for the expression to the main block, after the call to - select_string and the last label. - -2006-09-18 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/29060 - * iresolve.c (resolve_spread): Build shape for result if the - source shape is available and dim and ncopies are constants. - -2006-09-18 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> - - PR fortran/28817 - PR fortran/21918 - * trans-decl.c (generate_local_decl): Change from 'warning' to - 'gfc_warning' to have line numbers correctly reported. - -2006-09-15 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/29051 - * decl.c (match_old_style_init): Set the 'where' field of the - gfc_data structure 'newdata'. - - * match.c (match_case_eos): Add a comprehensible error message. - -2006-09-13 Wolfgang Gellerich <gellerich@de.ibm.com> - - * trans-expr.c (gfc_add_interface_mapping): For characters, dereference - pointer if necessary and then perform the cast. - -2006-09-11 Steven G. Kargl <kargl@gcc.gnu.org> - - * intrinsic.c: Update Copyright date. - * intrinsic.h: Ditto. - -2006-09-11 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/28890 - * trans-expr.c (gfc_conv_function_call): Obtain the string length - of a dummy character(*) function from the symbol if it is not - already translated. For a call to a character(*) function, use - the passed, hidden string length argument, which is available - from the backend_decl of the formal argument. - * resolve.c (resolve_function): It is an error if a function call - to a character(*) function is other than a dummy procedure or - an intrinsic. - -2006-09-10 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/28959 - * trans-types.c (gfc_get_derived_type): Use the parent namespace of - the procedure if the type's own namespace does not have a parent. - -2006-09-10 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/28923 - * expr.c (find_array_section): Only use the array lower and upper - bounds for the start and end of the sections, where the expr is - NULL. - -2006-09-10 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/28914 - * trans-array.c (gfc_trans_array_constructor_value): Create a temporary - loop variable to hold the current loop variable in case it is modified - by the array constructor. - -2006-09-07 Steven G. Kargl <kargls@comcast.net> - - * gfortran.h (gfc_integer_info): Eliminate max_int. - * arith.c (gfc_arith_init_1): Remove initialization of max_int. - (gfc_arith_done_1): Remove clearing of max_int. - (gfc_check_integer_range): Fix range chekcing of overflow. - * simplify.c (gfc_simplify_not): Construct mask that was max_int. - -2006-09-05 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/28908 - * gfortran.h : Restore the gfc_dt_list structure and reference - to it in gfc_namespace. - * resolve.c (resolve_fl_derived): Restore the building of the - list of derived types for the current namespace. Modify the - restored code so that a check is made to see if the symbol is - already in the list. - (resolve_fntype): Make sure that the specification block - version of the derived type is used for a module function that - returns that type. - * symbol.c (gfc_free_dt_list): Restore. - (gfc_free_namespace): Restore call to previous. - * trans-types.c (copy_dt_decls_ifequal): Restore. - (gfc_get_derived_type): Restore all the paraphenalia for - association of derived types, including calls to previous. - Modify the restored code such that all derived types are built - if their symbols are found in the parent namespace; not just - non-module types. Add backend_decls to like derived types in - sibling namespaces, as well as that of the derived type. - -2006-08-30 Kazu Hirata <kazu@codesourcery.com> - - * match.c: Fix a comment typo. - -2006-08-30 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/28885 - * trans-expr.c (gfc_conv_aliased_arg): Ensure that the temp - declaration is retained for INTENT(OUT) arguments. - - PR fortran/28873 - PR fortran/20067 - * resolve.c (resolve_generic_f): Make error message more - comprehensible. - (resolve_generic_s): Restructure search for specific procedures - to be similar to resolve_generic_f and change to similar error - message. Ensure that symbol reference is refreshed, in case - the search produces a NULL. - (resolve_specific_s): Restructure search, as above and as - resolve_specific_f. Ensure that symbol reference is refreshed, - in case the search produces a NULL. - - PR fortran/25077 - PR fortran/25102 - * interface.c (check_operator_interface): Throw error if the - interface assignment tries to change intrinsic type assigments - or has less than two arguments. Also, it is an error if an - interface operator contains an alternate return. - - PR fortran/24866 - * parse.c (gfc_fixup_sibling_symbols): Do not modify the symbol - if it is a dummy in the contained namespace. - -2006-08-29 Steven G. Kargl <kargls@comcast.net> - - PR fortran/28866 - * match.c: Wrap copyright. - (gfc_match_assignment): Return MATCH_NO for failed lvalue. Remove - gotos. Move error handling of FL_PARAMETER to ... - * gfc_match_if: Deal with MATCH_NO from above. - * primary.c: Wrap copyright. - (match_variable): ... here. Improve error messages. - -2006-08-29 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/28788 - * symbol.c (gfc_use_derived): Never eliminate the symbol, - following reassociation of use associated derived types. - -2006-08-26 Steven G. Kargl <kargls@comcast.net> - - * arith.h: Update Copyright dates. Fix whitespace. - * arith.c: Update Copyright dates. Fix whitespace. Fix comments. - (gfc_arith_done_1): Clean up pedantic_min_int and subnormal. - -2006-08-26 Tobias Burnus <burnus@net-b.de> - - * gfortran.texi: Note variable initialization causes SAVE attribute. - * intrinsic.texi: Clarify support for KIND=16 and KIND=10. - Mention -std=f2003. Cross reference INQUIRE from ACCESS intrinsic. - Add missing ) in ACOS. - -2006-08-26 Daniel Franke <franke.daniel@gmail.com> - - * intrinsic.texi: Update Copyright date. Added documentation - for ACOSH, AND, ASINH, ATANH, CHDIR, FGET, FGETC, FPUT, FPUTC, - GETCWD, OR and XOR intrinsics, removed inadvertently introduced - doc-stubs for EQV and NEQV, corrected some typographical errors. - -2006-08-24 Daniel Franke <franke.daniel@gmail.com>, - Brooks Moses <bmoses@stanford.edu> - - * intrinsic.texi: Added doc-stubs for undocumented intrinsics, - added a "See Also" section, renamed the "Options" section to - "Standard", improved the index, and made numerous minor - typo corrections and grammatical fixes. - -2006-08-24 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/28788 - * symbol.c (shift_types): Shift the derived type references in - formal namespaces. - (gfc_use_derived): Return if the derived type symbol is already - in another namspace. Add searches for the derived type in - sibling namespaces. - - PR fortran/28771 - * decl.c (add_init_expr_to_sym): Restore the original but - restricted to parameter arrays to fix a regression. - -2006-08-23 Steven G. Kargl <kargls@comcast.net> - - * gfortran.texi: Fix last commit where a "no" was deleted and - a grammatical error was introduced. - -2006-08-23 Steven G. Kargl <kargls@comcast.net> - - * gfortran.texi: Spell check. Add a few contributors to - Chapter 9. Expand the description of BOZ constant handling. - -2006-08-20 Janne Blomqvist <jb@gcc.gnu.org> - - PR fortran/25828 - * gfortran.texi: Mention STREAM I/O among supported F2003 - features. - -2006-08-20 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/28601 - PR fortran/28630 - * gfortran.h : Eliminate gfc_dt_list structure and reference - to it in gfc_namespace. - * resolve.c (resolve_fl_derived): Remove the building of the - list of derived types for the current namespace. - * symbol.c (find_renamed_type): New function to find renamed - derived types by symbol name rather than symtree name. - (gfc_use_derived): Search parent namespace for identical - derived type and use it, even if local version is complete, - except in interface bodies. Ensure that renamed derived types - are found by call to find_renamed_type. Recurse for derived - type components. - (gfc_free_dt_list): Remove. - (gfc_free_namespace): Remove call to previous. - * trans-types.c (copy_dt_decls_ifequal): Remove. - (gfc_get_derived_type): Remove all the paraphenalia for - association of derived types, including calls to previous. - * match.c (gfc_match_allocate): Call gfc_use_derived to - associate any derived types that are being allocated. - - PR fortran/20886 - * resolve.c (resolve_actual_arglist): The passing of - a generic procedure name as an actual argument is an - error. - - PR fortran/28735 - * resolve.c (resolve_variable): Check for a symtree before - resolving references. - - PR fortran/28762 - * primary.c (match_variable): Return MATCH_NO if the symbol - is that of the program. - - PR fortran/28425 - * trans-expr.c (gfc_trans_subcomponent_assign): Translate - derived type component expressions other than another derived - type constructor. - - PR fortran/28496 - * expr.c (find_array_section): Correct errors in - the handling of a missing start value for the - index triplet in an array reference. - - PR fortran/18111 - * trans-decl.c (gfc_build_dummy_array_decl): Before resetting - reference to backend_decl, set it DECL_ARTIFICIAL. - (gfc_get_symbol_decl): Likewise for original dummy decl, when - a copy is made of an array. - (create_function_arglist): Likewise for the _entry paramter - in entry_masters. - (build_entry_thunks): Likewise for dummies in entry thunks. - - PR fortran/28600 - * trans-decl.c (gfc_get_symbol_decl): Ensure that the - DECL_CONTEXT of the length of a character dummy is the - same as that of the symbol declaration. - - PR fortran/28771 - * decl.c (add_init_expr_to_sym): Remove setting of charlen for - an initializer of an assumed charlen variable. - - PR fortran/28660 - * trans-decl.c (generate_expr_decls): New function. - (generate_dependency_declarations): New function. - (generate_local_decl): Call previous if not either a dummy or - a declaration in an entry master. - -2006-08-19 Erik Edelmann <eedelman@gcc.gnu.org> - - PR fortran/25217 - * resolve.c (resolve_fl_variable): Set a default initializer for - derived types with INTENT(OUT) even if 'flag' is true. - * trans-expr.c (gfc_conv_function_call): Insert code to - reinitialize INTENT(OUT) arguments of derived type with default - initializers. - -2006-08-15 Jerry DeLisle <jvdelisle@gcc.gnu.org> - - PR fortran/25828 - * gfortran.h: Add new pointer for stream position to st_inquire. - Rename gfc_large_io_int_kind to gfc_intio_kind. - * trans-types.c (gfc_init_kinds): use gfc_intio_kind. - * io.c: Add new IO tag for file position going in and another for out. - (match_dt_element): Match new tag_spos. - (gfc_resolve_dt): Resolve new tag_spos. - (gfc_free_inquire): Free inquire->strm_pos. - (match_inquire_element): Match new tag_strm_out. - (gfc_resolve_inquire): Resolve new tag_strm_out. - * trans-io.c: Rename IOPARM_type_large_io_int to IOPARM_type_intio. - (gfc_build_st_parameter): Same. - (gfc_build_io_library_fndecls) Same. and add build pointer type pintio. - (gfc_trans_inquire): Translate strm_pos for inquire. - * ioparm.def: Reorder flags to accomodate addition of new inquire - flag for strm_pos_out and add it in. - -2006-08-06 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/28590 - * parse.c (parse_derived): Remove the test for sequence type - components of a sequence type. - * resolve.c (resolve_fl_derived): Put the test here so that - pointer components are tested. - -2006-08-05 Steven G. Kargl <kargls@comcast.nt> - - PR fortran/28548 - * resolve.c(resolve_elemental_actual): Add flags.h to use -pedantic - and exclude conversion functions in conditional. Change gfc_error - to gfc_warning. - (warn_unused_label) Rename to ... - (warn_unused_fortran_label) avoid warn_unused_label in flags.h. - -2006-07-30 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - * intrinsic.c (add_functions): Add ACCESS, CHMOD, RSHIFT, LSHIFT. - (add_subroutines): Add LTIME, GMTIME and CHMOD. - * intrinsic.h (gfc_check_access_func, gfc_check_chmod, - gfc_check_chmod_sub, gfc_check_ltime_gmtime, gfc_simplify_rshift, - gfc_simplify_lshift, gfc_resolve_access, gfc_resolve_chmod, - gfc_resolve_rshift, gfc_resolve_lshift, gfc_resolve_chmod_sub, - gfc_resolve_gmtime, gfc_resolve_ltime): Add prototypes. - * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_ACCESS, - GFC_ISYM_CHMOD, GFC_ISYM_LSHIFT, GFC_ISYM_RSHIFT. - * iresolve.c (gfc_resolve_access, gfc_resolve_chmod, - gfc_resolve_rshift, gfc_resolve_lshift, gfc_resolve_chmod_sub, - gfc_resolve_gmtime, gfc_resolve_ltime): New functions. - * check.c (gfc_check_access_func, gfc_check_chmod, - gfc_check_chmod_sub, gfc_check_ltime_gmtime): New functions. - * trans-intrinsic.c (gfc_conv_intrinsic_rlshift): New function. - (gfc_conv_intrinsic_function): Add cases for the new GFC_ISYM_*. - -2006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de> - - * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies. - -2006-07-26 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - * intrinsic.c (add_functions): Add INT2, SHORT, INT8, LONG, - LSTAT, MCLOCK and MCLOCK8 intrinsic functions. - (add_subroutines): Add LSTAT intrinsic subroutine. - * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_INT2, - GFC_ISYM_INT8, GFC_ISYM_LONG, GFC_ISYM_LSTAT, GFC_ISYM_MCLOCK - and GFC_ISYM_MCLOCK8. - * iresolve.c (gfc_resolve_int2, gfc_resolve_int8, - gfc_resolve_long, gfc_resolve_lstat, gfc_resolve_mclock, - gfc_resolve_mclock8, gfc_resolve_lstat_sub): New functions. - * check.c (gfc_check_intconv): New function. - * trans-intrinsic.c (gfc_conv_intrinsic_function): Add cases for - the added GFC_ISYM_*. - * simplify.c (gfc_simplify_intconv, gfc_simplify_int2, - gfc_simplify_int8, gfc_simplify_long): New functions. - * intrinsic.h (gfc_check_intconv, gfc_simplify_int2, - gfc_simplify_int8, gfc_simplify_long, gfc_resolve_int2, - gfc_resolve_int8, gfc_resolve_long, gfc_resolve_lstat, - gfc_resolve_mclock, gfc_resolve_mclock8, gfc_resolve_lstat_sub): - Add prototypes. - -2006-07-24 Erik Edelmann <eedelman@gcc.gnu.org> - - PR fortran/28416 - * trans-array.c (gfc_conv_array_parameter): Give special treatment for - ALLOCATABLEs if they are themselves dummy variables. - -2006-07-23 Jerry DeLisle <jvdelisle@gcc.gnu.org> - - PR fortran/25289 - * gfortran.h: Declare gfc_large_io_int_kind. - * trans-types.c (gfc_init_kinds): Set gfc_large_io_int_kind - to size 8 or 4. - * trans-io.c (enum iofield_type): Add large_io_int type. - (gfc_build_st_parameter): Same. - (gfc_build_io_library_fndecls): Same. - * ioparm_def: Use large_io_int to define rec. - -2006-07-22 Steven Bosscher <steven@gcc.gnu.org> - - PR fortran/28439 - * trans-stmt.c (gfc_trans_arithmetic_if): Evaluate the condition once. - -2006-07-16 Jakub Jelinek <jakub@redhat.com> - - PR fortran/28390 - * trans-openmp.c (gfc_trans_omp_do): Look for LASTPRIVATE in - code->exp.omp_clauses rather than in the 3rd function argument. - -2006-07-16 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/28384 - * trans-common.c (translate_common): If common_segment is NULL - emit error that common block does not exist. - - PR fortran/20844 - * io.c (check_io_constraints): It is an error if an ADVANCE - specifier appears without an explicit format. - - PR fortran/28201 - * resolve.c (resolve_generic_s): For a use_associated function, - do not search for an alternative symbol in the parent name - space. - - PR fortran/20893 - * resolve.c (resolve_elemental_actual): New function t combine - all the checks of elemental procedure actual arguments. In - addition, check of array valued optional args(this PR) has - been added. - (resolve_function, resolve_call): Remove parts that treated - elemental procedure actual arguments and call the above. - -2006-07-14 Steven G. Kargl <kargls@comcast.net> - - * trans-expr.c (gfc_trans_string_copy): Evaluate the string lengths - -006-07-13 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/28353 - * trans-expr.c (gfc_conv_aliased_arg): Missing formal arg means - that intent is INOUT (fixes regression). - - PR fortran/25097 - * check.c (check_present): The only permitted reference is a - full array reference. - - PR fortran/20903 - * decl.c (variable_decl): Add error if a derived type is not - from the current namespace if the namespace is an interface - body. - -2006-07-12 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - PR fortran/28163 - * trans-expr.c (gfc_trans_string_copy): Generate inline code - to perform string copying instead of calling a library function. - * trans-decl.c (gfc_build_intrinsic_function_decls): Don't build - decl for copy_string. - * trans.h (gfor_fndecl_copy_string): Remove prototype. - -2006-07-11 Feng Wang <fengwang@nudt.edu.cn> - - PR fortran/28213 - * trans-io.c (transfer_expr): Deal with Hollerith constants used in - I/O list. - -2006-07-07 Kazu Hirata <kazu@codesourcery.com> - - * intrinsic.texi: Fix typos. - -2006-07-07 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/28237 - PR fortran/23420 - * io.c (resolve_tag): Any integer that is not an assigned - variable is an error. - -2006-07-06 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - PR fortran/28129 - * trans-array.c (gfc_trans_array_bound_check): Add a locus - argument, and use it in the error messages. - (gfc_conv_array_index_offset): Donc perform bounds checking on - the last dimension of assumed-size arrays. - -2006-07-06 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - PR fortran/27874 - * trans-stmt.c (compute_inner_temp_size): Don't perform bounds - checking when calculating the bounds of scalarization. - -2006-07-05 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - PR fortran/20892 - * interface.c (gfc_match_interface): Don't allow dummy procedures - to have a generic interface. - -2006-07-04 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/28174 - * trans-array.c (gfc_conv_expr_descriptor): When building temp, - ensure that the substring reference uses a new charlen. - * trans-expr.c (gfc_conv_aliased_arg): Add the formal intent to - the argument list, lift the treatment of missing string lengths - from the above and implement the use of the intent. - (gfc_conv_function_call): Add the extra argument to the call to - the above. - - PR fortran/28167 - * trans-array.c (get_array_ctor_var_strlen): Treat a constant - substring reference. - * array.c (gfc_resolve_character_array_constructor): Remove - static attribute and add the gfc_ prefix, make use of element - charlens for the expression and pick up constant string lengths - for expressions that are not themselves constant. - * gfortran.h : resolve_character_array_constructor prototype - added. - * resolve.c (gfc_resolve_expr): Call resolve_character_array_ - constructor again after expanding the constructor, to ensure - that the character length is passed to the expression. - -2006-07-04 Francois-Xavier Coudert <coudert@clipper.ens.fr> - Daniel Franke <franke.daniel@gmail.com> - - * intrinsic.c (add_subroutines): Add ITIME and IDATE. - * intrinsic.h (gfc_check_itime_idate,gfc_resolve_idate, - fc_resolve_itime): New protos. - * iresolve.c (gfc_resolve_itime, gfc_resolve_idate): New functions. - * check.c (gfc_check_itime_idate): New function. - * intrinsic.texi: Document the new intrinsics. - -2006-07-03 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - * intrinsics/date_and_time.c (itime0,idate0,itime_i4,itime_i8, - idate_i4,idate_i8): New functions. - - -2006-07-03 Asher Langton <langton2@llnl.gov> - - * decl.c (match_old_style_init): Add data attribute to symbol. - -2006-07-03 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - * iresolve.c (gfc_resolve_cpu_time, gfc_resolve_random_number): - Remove ATTRIBUTE_UNUSED for used argument. - -2006-07-03 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - * intrinsic.texi: Document new intrinsics. - -2006-07-01 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> - - PR fortran/19259 - * parse.c (next_free): Error out on line starting with semicolon. - (next_fixed): Fix formatting. Error out on line starting with - semicolon. - -2006-06-30 Kazu Hirata <kazu@codesourcery.com> - - * check.c: Fix a comment typo. - -2006-06-25 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/25056 - * interface.c (compare_actual_formal): Signal an error if the formal - argument is a pure procedure and the actual is not pure. - - PR fortran/27554 - * resolve.c (resolve_actual_arglist): If the type of procedure - passed as an actual argument is not already declared, see if it is - an intrinsic. - - PR fortran/25073 - * resolve.c (resolve_select): Use bits 1 and 2 of a new int to - keep track of the appearance of constant logical case expressions. - Signal an error is either value appears more than once. - - PR fortran/20874 - * resolve.c (resolve_fl_procedure): Signal an error if an elemental - function is not scalar valued. - - PR fortran/20867 - * match.c (recursive_stmt_fcn): Perform implicit typing of variables. - - PR fortran/22038 - * match.c (match_forall_iterator): Mark new variables as - FL_UNKNOWN if the match fails. - - PR fortran/28119 - * match.c (gfc_match_forall): Remove extraneous call to - gfc_match_eos. - - PR fortran/25072 - * resolve.c (resolve_code, resolve_function): Rework - forall_flag scheme so that it is set and has a value of - 2, when the code->expr (ie. the forall mask) is resolved. - This is used to change "block" to "mask" in the non-PURE - error message. - -2006-06-24 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - PR fortran/28081 - * resolve.c (resolve_substring): Don't issue out-of-bounds - error messages when the range has zero size. - -2006-06-24 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - PR fortran/23862 - * lang-specs.h (f95-cpp-input): Pass -ffree-form to f951 unless - -ffixed-form is explicitly specified. - -2006-06-24 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/28118 - * trans-array.c (gfc_conv_expr_descriptor): When building temp, - use the substring reference to calculate the length if the - expression does not have a charlen. - -2006-06-24 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - PR fortran/28094 - * trans-intrinsic.c (gfc_conv_intrinsic_mod): Support cases where - there is no integer kind equal to the resulting real kind. - * intrinsic.c (add_functions): MODULO is not allowed as an actual - argument. - -2006-06-23 Steven G. Kargl <kargls@comcast.net> - - PR fortran/27981 - * match.c (gfc_match_if): Handle errors in assignment in simple if. - -2006-06-22 Asher Langton <langton2@llnl.gov> - - PR fortran/24748 - * primary.c (gfc_match_rvalue): Don't call match_substring for - implicit non-character types. - -2006-06-22 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - PR libfortran/26769 - * iresolve.c (gfc_resolve_reshape): Call reshape_r4 and - reshape_r8 instead of reshape_4 and reshape_8. - (gfc_resolve_transpose): Likewise for transpose. - -2006-06-21 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - * trans-expr.c (gfc_conv_missing_dummy, gfc_conv_unary_op, - gfc_conv_cst_int_power, gfc_conv_string_tmp, - gfc_conv_function_call): Replace calls to convert on constant - integer nodes by build_int_cst. - * trans-stmt.c (gfc_trans_do): Likewise. - * trans-io.c (set_internal_unit, transfer_namelist_element): - Likewise. - * trans-decl.c (build_entry_thunks): Likewise. - -2006-06-20 Steven G. Kargl <kargls@comcast.net> - - * simplify.c (gfc_simplify_rrspacing): Initialize and clear mpfr_t - variable. - -2006-06-20 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/25049 - PR fortran/25050 - * check.c (non_init_transformational): New function. - (find_substring_ref): New function to signal use of disallowed - transformational intrinsic in an initialization expression. - (gfc_check_all_any): Call previous if initialization expr. - (gfc_check_count): The same. - (gfc_check_cshift): The same. - (gfc_check_dot_product): The same. - (gfc_check_eoshift): The same. - (gfc_check_minloc_maxloc): The same. - (gfc_check_minval_maxval): The same. - (gfc_check_gfc_check_product_sum): The same. - (gfc_check_pack): The same. - (gfc_check_spread): The same. - (gfc_check_transpose): The same. - (gfc_check_unpack): The same. - - PR fortran/18769 - *intrinsic.c (add_functions): Add gfc_simplify_transfer. - *intrinsic.h : Add prototype for gfc_simplify_transfer. - *simplify.c (gfc_simplify_transfer) : New function to act as - placeholder for eventual implementation. Emit error for now. - - PR fortran/16206 - * expr.c (find_array_element): Eliminate condition on length of - offset. Add bounds checking. Rearrange exit. Return try and - put gfc_constructor result as an argument. - (find_array_section): New function. - (find_substring_ref): New function. - (simplify_const_ref): Add calls to previous. - (simplify_parameter_variable): Return on NULL expr. - (gfc_simplify_expr): Only call gfc_expand_constructor for full - arrays. - - PR fortran/20876 - * match.c (gfc_match_forall): Add missing locus to gfc_code. - -2006-06-18 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - PR fortran/26801 - * trans-intrinsic.c (gfc_conv_associated): Use pre and post blocks - of the scalarization expression. - -2006-06-18 Jerry DeLisle <jvdelisle@gcc.gnu.org> - - PR fortran/19310 - PR fortran/19904 - * arith.c (gfc_range_check): Return ARITH_OK if -fno-range-check. Add - return of ARITH_NAN, ARITH_UNDERFLOW, and ARITH_OVERFLOW. - (gfc_arith_divide): If -fno-range-check allow mpfr to divide by zero. - * gfortran.h (gfc_option_t): Add new flag. - * invoke.texi: Document new flag. - * lang.opt: Add option -frange-check. - * options.c (gfc_init_options): Initialize new flag. - (gfc_handle_options): Set flag if invoked. - * simplify.c (range_check): Add error messages for - overflow, underflow, and other errors. - * trans-const.c (gfc_conv_mpfr_to_tree): Build NaN and Inf from mpfr - result. - -2006-06-17 Karl Berry <karl@gnu.org> - - * gfortran.texi (@dircategory): Use "Software development" - instead of "Programming", following the Free Software Directory. - -2006-06-16 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - PR fortran/27965 - * trans-array.c (gfc_conv_ss_startstride): Correct the runtime - conditions for bounds-checking. Check for nonzero stride. - Don't check the last dimension of assumed-size arrays. Fix the - dimension displayed in the error message. - -2006-06-15 Thomas Koenig <Thomas.Koenig@online.de> - - * trans-array.h (gfc_trans_create_temp_array): Add bool - argument. - * trans-arrray.c (gfc_trans_create_temp_array): Add extra - argument "function" to show if we are translating a function. - If we are translating a function, perform checks whether - the size along any argument is negative. In that case, - allocate size 0. - (gfc_trans_allocate_storage): Add function argument (as - false) to gfc_trans_create_temp_array call. - * trans-expr.c (gfc_conv_function_call): Add function - argument (as true) to gfc_trans_create_temp_array call. - * trans-stmt.c (gfc_conv_elemental_dependencies): Add - function argument (as false) to gfc_trans_create_temp_array - call. - * trans-intrinsic.c: Likewise. - -2006-06-10 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/24558 - PR fortran/20877 - PR fortran/25047 - * decl.c (get_proc_name): Add new argument to flag that a - module function entry is being treated. If true, correct - error condition, add symtree to module namespace and add - a module procedure. - (gfc_match_function_decl, gfc_match_entry, - gfc_match_subroutine): Use the new argument in calls to - get_proc_name. - * resolve.c (resolve_entries): ENTRY symbol reference to - to master entry namespace if a module function. - * trans-decl.c (gfc_create_module_variable): Return if - the symbol is an entry. - * trans-exp.c (gfc_conv_variable): Check that parent_decl - is not NULL. - -2006-06-09 Jakub Jelinek <jakub@redhat.com> - - PR fortran/27916 - * trans-openmp.c (gfc_omp_clause_default_ctor): New function. - * trans.h (gfc_omp_clause_default_ctor): New prototype. - * f95-lang.c (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Define. - -2006-06-08 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - PR fortran/27958 - * trans-expr.c (gfc_conv_substring): If the substring start is - greater than its end, the length of the substring is zero, and - not negative. - (gfc_trans_string_copy): Don't generate a call to - _gfortran_copy_string when destination length is zero. - -2006-06-08 Asher Langton <langton2@llnl.gov> - - PR fortran/27786 - * trans-array.c (gfc_conv_array_ref): Eliminate bounds checking - for assumed-size Cray pointees. - -2006-06-08 Steven G. Kargl <kargls@comcat.net> - - * intrinsic.c (add_subroutine): Make make_noreturn() conditional on - the appropriate symbol name. - -2006-06-07 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/23091 - * resolve.c (resolve_fl_variable): Error if an automatic - object has the SAVE attribute. - - PR fortran/24168 - * expr.c (simplify_intrinsic_op): Transfer the rank and - the locus to the simplified expression. - - PR fortran/25090 - PR fortran/25058 - * gfortran.h : Add int entry_id to gfc_symbol. - * resolve.c : Add static variables current_entry_id and - specification_expr. - (resolve_variable): During code resolution, check if a - reference to a dummy variable in an executable expression - is preceded by its appearance as a parameter in an entry. - Likewise check its specification expressions. - (resolve_code): Update current_entry_id on EXEC_ENTRY. - (resolve_charlen, resolve_fl_variable): Set and reset - specifiaction_expr. - (is_non_constant_shape_array): Do not return on detection - of a variable but continue to resolve all the expressions. - (resolve_codes): set current_entry_id to an out of range - value. - -2006-06-06 Mike Stump <mrs@apple.com> - - * Make-lang.in: Rename to htmldir to build_htmldir to avoid - installing during build. - -2006-06-06 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/27897 - * match.c (gfc_match_common): Fix code typo. Remove - sym->name, since sym is NULL, and replace with name. - -2006-06-05 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - PR libfortran/27895 - * resolve.c (compute_last_value_for_triplet): New function. - (check_dimension): Correctly handle zero-sized array sections. - Add checking on last element of array sections. - -2006-06-05 Steven G. Kargl <kargls@comcast.net> - - * data.c (gfc_assign_data_value): Fix comment typo. Remove - a spurious return. - -2006-06-05 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/14067 - * data.c (create_character_intializer): Add warning message - for truncated string. - - PR fortran/16943 - * symbol.c : Include flags.h. - (gfc_add_type): If a procedure and types are the same do not - throw an error unless standard is less than gnu or pedantic. - - PR fortran/20839 - * parse.c (parse_do_block): Error if named block do construct - does not have a named enddo. - - PR fortran/27655 - * check.c (gfc_check_associated): Pick up EXPR_NULL for pointer - as well as target and put error return at end of function. - -2006-06-03 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - * trans.c (gfc_msg_bounds, gfc_msg_fault, gfc_msg_wrong_return): - Add strings for common runtime error messages. - (gfc_trans_runtime_check): Add a locus argument, use a string - and not a string tree for the message. - * trans.h (gfc_trans_runtime_check): Change prototype accordingly. - (gfc_msg_bounds, gfc_msg_fault, gfc_msg_wrong_return): Add proto. - * trans-const.c (gfc_strconst_bounds, gfc_strconst_fault, - gfc_strconst_wrong_return, gfc_strconst_current_filename): Remove. - (gfc_init_constants): Likewise. - * trans-const.h: Likewise. - * trans-decl.c (gfc_build_builtin_function_decls): Call to - _gfortran_runtime_error has only one argument, the message string. - * trans-array.h (gfc_conv_array_ref): Add a symbol argument and a - locus. - * trans-array.c (gfc_trans_array_bound_check): Build precise - error messages. - (gfc_conv_array_ref): Use the new symbol argument and the locus - to build more precise error messages. - (gfc_conv_ss_startstride): More precise error messages. - * trans-expr.c (gfc_conv_variable): Give symbol reference and - locus to gfc_conv_array_ref. - (gfc_conv_function_call): Use the new prototype for - gfc_trans_runtime_check. - * trans-stmt.c (gfc_trans_goto): Build more precise error message. - * trans-io.c (set_string): Likewise. - * trans-intrinsic.c (gfc_conv_intrinsic_bound): Use new prototype - for gfc_trans_runtime_check. - -2006-06-01 Thomas Koenig <Thomas.Koenig@online.de> - - PR fortran/27715 - * arith.c: Cast the characters from the strings to unsigned - char to avoid values less than 0 for extended ASCII. - -2006-06-01 Per Bothner <bothner@bothner.com> - - * data.c (gfc_assign_data_value): Handle USE_MAPPED_LOCATION. - * scanner.c (gfc_gobble_whitespace): Likewise. - -2006-06-01 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/25098 - PR fortran/25147 - * interface.c (compare_parameter): Return 1 if the actual arg - is external and the formal is a procedure. - (compare_actual_formal): If the actual argument is a variable - and the formal a procedure, this an error. If a gsymbol exists - for a procedure of the same name, this is not yet resolved and - the error is cleared. - - * trans-intrinsic.c (gfc_conv_associated): Make provision for - zero array length or zero string length contingent on presence - of target, for consistency with standard. - -2006-05-30 Asher Langton <langton2@llnl.gov> - - * symbol.c (check_conflict): Allow external, function, and - subroutine attributes with Cray pointees. - * trans-expr.c (gfc_conv_function_val): Translate Cray pointees - that point to procedures. - * gfortran.texi: Document new feature. - -2006-05-29 Jerry DeLisle <jvdelisle@gcc.gnu.org> - - PR fortran/27634 - * io.c (check_format): Add error for missing period in format - specifier unless -std=legacy. - * gfortran.texi: Add description of expanded namelist read and - missing period in format extensions. - -2006-05-29 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - PR fortran/19777 - * trans-array.c (gfc_conv_array_ref): Perform out-of-bounds - checking for assumed-size arrrays for all but the last dimension. - -2006-05-29 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - * invoke.texi: Change -fpackderived into -fpack-derived. - -2006-05-29 Kazu Hirata <kazu@codesourcery.com> - - * options.c, primary.c, resolve.c, trans-common.c: Fix typos - in error messages. - -2006-05-28 Kazu Hirata <kazu@codesourcery.com> - - * check.c, expr.c, resolve.c, trans-common.c, - trans-intrinsic.c, trans-stmt.c, trans-types.c: Fix comment typos. - -2006-05-27 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - PR fortran/19777 - * trans-array.c (gfc_conv_array_ref): Don't perform out-of-bounds - checking for assumed-size arrrays. - -2006-05-27 Paul Thomas <pault@gcc.gnu.org> - - * trans-intrinsic.c (gfc_conv_associated): If pointer in first - arguments has zero array length of zero string length, return - false. - -2006-05-26 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - PR fortran/27524 - * trans-array.c (gfc_trans_dummy_array_bias): Don't use stride as - a temporary variable when -fbounds-check is enabled, since its - value will be needed later. - -2006-05-26 Thomas Koenig <Thomas.Koenig@online.de> - - PR fortran/23151 - * io.c (match_io): print (1,*) is an error. - -2006-05-26 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/27709 - * resolve.c (find_array_spec): Add gfc_symbol, derived, and - use to track repeated component references. - - PR fortran/27155 - PR fortran/27449 - * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): Use - se->string_length throughout and use memcpy to populate the - expression returned to the scalarizer. - (gfc_size_in_bytes): New function. - -2006-05-21 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/27613 - * primary.c (gfc_match_rvalue): Test if symbol represents a - direct recursive function reference. Error if array valued, - go to function0 otherwise. - -2006-05-21 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/25746 - * interface.c (gfc_extend_assign): Use new EXEC_ASSIGN_CALL. - * gfortran.h : Put EXEC_ASSIGN_CALL in enum. - * trans-stmt.c (gfc_conv_elemental_dependencies): New function. - (gfc_trans_call): Call it. Add new boolian argument to flag - need for dependency checking. Assert intent OUT and IN for arg1 - and arg2. - (gfc_trans_forall_1): Use new code EXEC_ASSIGN_CALL. - trans-stmt.h : Modify prototype of gfc_trans_call. - trans.c (gfc_trans_code): Add call for EXEC_ASSIGN_CALL. - st.c (gfc_free_statement): Free actual for EXEC_ASSIGN_CALL. - * dependency.c (gfc_check_fncall_dependency): Don't check other - against itself. - - PR fortran/25090 - * resolve.c : Remove resolving_index_expr. - (entry_parameter): Remove. - (gfc_resolve_expr, resolve_charlen, resolve_fl_variable): Lift - calls to entry_parameter and references to resolving_index_expr. - - PR fortran/27584 - * check.c (gfc_check_associated): Replace NULL assert with an - error message, since it is possible to generate bad code that - has us fall through to here.. - - PR fortran/19015 - * iresolve.c (maxloc, minloc): If DIM is not present, pass the - rank of ARRAY as the shape of the result. Otherwise, pass the - shape of ARRAY, less the dimension DIM. - (maxval, minval): The same, when DIM is present, otherwise no - change. - -2006-05-19 H.J. Lu <hongjiu.lu@intel.com> - - PR fortran/27662 - * trans-array.c (gfc_conv_expr_descriptor): Don't zero the - first stride to indicate a temporary. - * trans-expr.c (gfc_conv_function_call): Likewise. - -2006-05-18 Francois-Xavier Coudert <coudert@clipper.ens.fr> - Feng Wang <fengwang@nudt.edu.cn> - - PR fortran/27552 - * dump-parse-tree.c (gfc_show_expr): Deal with Hollerith constants. - * data.c (create_character_intializer): Set from_H flag if character is - initialized by Hollerith constant. - -2006-05-17 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - PR fortran/26551 - * resolve.c (resolve_call, resolve_function): Issue an error - if a function or subroutine call is recursive but the function or - subroutine wasn't declared as such. - -2006-05-07 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - PR fortran/26551 - * gfortran.dg/recursive_check_1.f: New test. - - -2006-05-17 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - PR fortran/27320 - * dump-parse-tree.c (gfc_show_code_node): Try harder to find the - called procedure name. - -2006-05-17 Jakub Jelinek <jakub@redhat.com> - - PR middle-end/27415 - * trans-openmp.c (gfc_trans_omp_parallel_do, - gfc_trans_omp_parallel_sections, gfc_trans_omp_parallel_workshare): Set - OMP_PARALLEL_COMBINED flag. - -2006-05-16 H.J. Lu <hongjiu.lu@intel.com> - - PR driver/26885 - * Make-lang.in (GFORTRAN_D_OBJS): Replace gcc.o with - $(GCC_OBJS). - -2006-05-15 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/25090 - * resolve.c: Static resolving_index_expr initialized. - (entry_parameter): New function to emit errors for variables - that are not entry parameters. - (gfc_resolve_expr): Call entry_parameter, when resolving - variables, if the namespace has entries and resolving_index_expr - is set. - (resolve_charlen): Set resolving_index_expr before the call to - resolve_index_expr and reset it afterwards. - (resolve_fl_variable): The same before and after the call to - is_non_constant_shape_array, which ultimately makes a call to - gfc_resolve_expr. - - PR fortran/25082 - * resolve.c (resolve_code): Add error condition that the return - expression must be scalar. - - PR fortran/27411 - * matchexp.c (gfc_get_parentheses): New function. - (match_primary): Remove inline code and call above. - * gfortran.h: Provide prototype for gfc_get_parentheses. - * resolve.c (resolve_array_ref): Call the above, when start is a - derived type variable array reference. - -2006-05-15 Jakub Jelinek <jakub@redhat.com> - - PR fortran/27446 - * trans-openmp.c (gfc_trans_omp_array_reduction): Ensure - OMP_CLAUSE_REDUCTION_{INIT,MERGE} are set to BIND_EXPR. - -2006-05-14 H.J. Lu <hongjiu.lu@intel.com> - - * Make-lang.in (fortran/options.o): Depend on $(TARGET_H). - -2006-05-11 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - PR fortran/27553 - * parse.c (next_free): Return instead of calling decode_statement - upon error. - -2005-05-10 Thomas Koenig <Thomas.Koenig@online.de> - - PR fortran/27470 - * trans-array.c(gfc_array_allocate): If ref->next exists - that is if there is a statement like ALLOCATE(foo%bar(2)), - F95 rules require that bar should be a pointer. - -2006-05-10 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - PR fortran/20460 - * resolve.c (gfc_resolve_index): Make REAL array indices a - GFC_STD_LEGACY feature. - -2006-05-10 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - PR fortran/24549 - * parse.c (reject_statement): Clear gfc_new_block. - -2006-05-09 Steven G. Kargl <kargls@comcast.net> - - * invoke.texi: Missed file in previous commit. Update - description of -fall-intrinsics - -2006-05-07 Steven Boscher <steven@gcc.gnu.org> - - PR fortran/27378 - * parse.c (next_statement): Add check to avoid an ICE when - gfc_current_locus.lb is not set. - -2006-05-07 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> - - PR fortran/27457 - * match.c (match_case_eos): Error out on garbage following - CASE(...). - -2006-05-07 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/24813 - * trans-array.c (get_array_ctor_strlen): Remove static attribute. - * trans.h: Add prototype for get_array_ctor_strlen. - * trans-intrinsic.c (gfc_conv_intrinsic_len): Switch on EXPR_ARRAY - and call get_array_ctor_strlen. - -2006-05-05 Steven G. Kargl <kargls@comcast.net> - - * invoke.texi: Update description of -fall-intrinsics - * options.c (gfc_post_options): Disable -Wnonstd-intrinsics if - -fall-intrinsics is used. - (gfc_handle_option): Permit -Wno-nonstd-intrinsics. - -2006-05-04 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> - - * simplify.c (ascii_table): Fix wrong entry. - -2006-05-02 Steven G. Kargl <kargls@comcast.net> - - PR fortran/26896 - * lang.opt: Fix -Wtab description - - PR fortran/20248 - * lang.opt: New flag -fall-intrinsics. - * invoke.texi: Document option. - * gfortran.h (options_t): New member flag_all_intrinsics. - * options.c (gfc_init_options, gfc_handle_option): Set new option. - sort nearby misplaced options. - * intrinsic.c (add_sym, make_generic, make_alias): Use it. - -2006-05-02 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/27269 - * module.c: Add static flag in_load_equiv. - (mio_expr_ref): Return if no symtree and in_load_equiv. - (load_equiv): If any of the equivalence members have no symtree, free - the equivalence and the associated expressions. - - PR fortran/27324 - * trans-common.c (gfc_trans_common): Invert the order of calls to - finish equivalences and gfc_commit_symbols. - -2006-04-29 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - PR fortran/25681 - * simplify.c (simplify_len): Character variables with constant - length can be simplified. - -2006-04-29 H.J. Lu <hongjiu.lu@intel.com> - - PR fortran/27351 - * trans-array.c (gfc_conv_array_transpose): Move gcc_assert - before gfc_conv_expr_descriptor. - -2006-04-23 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/25099 - * resolve.c (resolve_call): Check conformity of elemental - subroutine actual arguments. - -2006-04-22 Jakub Jelinek <jakub@redhat.com> - - PR fortran/26769 - * iresolve.c (gfc_resolve_reshape): Use reshape_r16 for real(16). - (gfc_resolve_transpose): Use transpose_r16 for real(16). - -2006-04-21 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/27122 - * resolve.c (resolve_function): Remove general restriction on auto - character length function interfaces. - (gfc_resolve_uops): Check restrictions on defined operator - procedures. - (resolve_types): Call the check for defined operators. - - PR fortran/27113 - * trans-array.c (gfc_trans_array_constructor_subarray): Remove - redundant gfc_todo_error. - (get_array_ctor_var_strlen): Remove typo in enum. - -2006-04-18 Bernhard Fischer <aldot@gcc.gnu.org> - - * parse.c (next_free): Use consistent error string between - free-form and fixed-form for illegal statement label of zero. - (next_fixed): Use consistent warning string between free-form - and fixed-form for statement labels for empty statements. - -2006-04-18 Steve Ellcey <sje@cup.hp.com> - - * trans-io.c (gfc_build_io_library_fndecls): Align pad. - -2006-04-16 Thomas Koenig <Thomas.Koenig@online.de> - - PR fortran/26017 - * trans-array.c(gfc_array_init_size): Introduce or_expr - which is true if the size along any dimension - is negative. Create a temporary variable with base - name size. If or_expr is true, set the temporary to 0, - to the normal size otherwise. - -2006-04-16 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/26822 - * intrinsic.c (add_functions): Mark LOGICAL as elemental. - - PR fortran/26787 - * expr.c (gfc_check_assign): Extend scope of error to include - assignments to a procedure in the main program or, from a - module or internal procedure that is not that represented by - the lhs symbol. Use VARIABLE rather than l-value in message. - - PR fortran/27096 - * trans-array.c (gfc_trans_deferred_array): If the backend_decl - is not a descriptor, dereference and then test and use the type. - - PR fortran/25597 - * trans-decl.c (gfc_trans_deferred_vars): Check if an array - result, is also automatic character length. If so, process - the character length. - - PR fortran/18003 - PR fortran/25669 - PR fortran/26834 - * trans_intrinsic.c (gfc_walk_intrinsic_bound): Set - data.info.dimen for bound intrinsics. - * trans_array.c (gfc_conv_ss_startstride): Pick out LBOUND and - UBOUND intrinsics and supply their shape information to the ss - and the loop. - - PR fortran/27124 - * trans_expr.c (gfc_trans_function_call): Add a new block, post, - in to which all the argument post blocks are put. Add this block - to se->pre after a byref call or to se->post, otherwise. - -2006-04-14 Roger Sayle <roger@eyesopen.com> - - * trans-io.c (set_string): Use fold_build2 and build_int_cst instead - of build2 and convert to construct "x < 0" rather than "x <= -1". - -2006-04-13 Richard Henderson <rth@redhat.com> - - * trans-openmp.c (gfc_trans_omp_sections): Adjust for changed - number of operands to OMP_SECTIONS. - -2006-04-08 Kazu Hirata <kazu@codesourcery.com> - - * gfortran.texi: Fix typos. Follow spelling conventions. - * resolve.c, trans-expr.c, trans-stmt.c: Fix comment typos. - Follow spelling conventions. - -2006-04-05 Roger Sayle <roger@eyesopen.com> - - * dependency.c (get_no_elements): Delete function. - (get_deps): Delete function. - (transform_sections): Delete function. - (gfc_check_section_vs_section): Significant rewrite. - -2006-04-04 H.J. Lu <hongjiu.lu@intel.com> - - PR fortran/25619 - * trans-array.c (gfc_conv_expr_descriptor): Only dereference - character pointer when copying temporary. - - PR fortran/23634 - * trans-array.c (gfc_conv_expr_descriptor): Properly copy - temporary character with non constant size. - -2006-04-03 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/26891 - * trans.h: Prototype for gfc_conv_missing_dummy. - * trans-expr (gfc_conv_missing_dummy): New function - (gfc_conv_function_call): Call it and tidy up some of the code. - * trans-intrinsic (gfc_conv_intrinsic_function_args): The same. - - PR fortran/26976 - * array.c (gfc_array_dimen_size): If available, return shape[dimen]. - * resolve.c (resolve_function): If available, use the argument - shape for the function expression. - * iresolve.c (gfc_resolve_transfer): Set shape[0] = size. - -2006-04-02 Erik Edelmann <eedelman@gcc.gnu.org> - - * trans-array.c (gfc_trans_dealloc_allocated): Take a - tree representation of the array to be deallocated as argument - instead of its gfc_symbol. - (gfc_trans_deferred_array): Update call to - gfc_trans_dealloc_allocated. - * trans-array.h (gfc_trans_dealloc_allocated): Update - prototype. - * trans-expr.c (gfc_conv_function_call): Update call to - gfc_trans_dealloc_allocated, get indirect reference to dummy - arguments. - -2006-04-01 Roger Sayle <roger@eyesopen.com> - - PR fortran/25270 - * trans-array.c (gfc_trans_allocate_array_storage): In array index - calculations use gfc_index_zero_node and gfc_index_one_node instead - of integer_zero_node and integer_one_node respectively. - (gfc_conv_array_transpose): Likewise. - (gfc_conv_ss_startstride): Likewise. - (gfc_trans_dummy_array_bias): Likewise. - -2006-04-01 Roger Sayle <roger@eyesopen.com> - - * dependency.c (gfc_is_inside_range): Delete. - (gfc_check_element_vs_section): Significant rewrite. - -2006-04-01 Roger Sayle <roger@eyesopen.com> - - * dependency.c (gfc_dep_compare_expr): Strip parentheses and unary - plus operators when comparing expressions. Handle comparisons of - the form "X+C vs. X", "X vs. X+C", "X-C vs. X" and "X vs. X-C" where - C is an integer constant. Handle comparisons of the form "P+Q vs. - R+S" and "P-Q vs. R-S". Handle comparisons of integral extensions - specially (increasing functions) so extend(A) > extend(B), when A>B. - (gfc_check_element_vs_element): Move test later, so that we ignore - the fact that "A < B" or "A > B" when A or B contains a forall index. - -2006-03-31 Asher Langton <langton2@llnl.gov> - - PR fortran/25358 - * expr.c (gfc_check_assign): Allow cray pointee to be assumes-size. - -2006-03-30 Paul Thomas <paulthomas2@wanadoo.fr> - Bud Davis <bdavis9659@sbcglobal.net> - - PR 21130 - * module.c (load_needed): Traverse entire tree before returning. - -2006-03-30 Roger Sayle <roger@eyesopen.com> - - PR middle-end/22375 - * trans.c (gfc_trans_runtime_check): Promote the arguments of - __builtin_expect to the correct types, and the result back to - boolean_type_node. - -2006-03-29 Carlos O'Donell <carlos@codesourcery.com> - - * Make-lang.in: Rename docdir to gcc_docdir. - -2006-03-28 Steven G. Kargl <kargls@comcast.net> - - * intrinsic.texi: s/floor/float in previous commit. - -2006-03-28 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/26779 - * resolve.c (resolve_fl_procedure): Do not check the access of - derived types for internal procedures. - -2006-03-27 Jakub Jelinek <jakub@redhat.com> - - * io.c (check_io_constraints): Don't look at - dt->advance->value.charater.string, unless it is a CHARACTER - constant. - - * f95-lang.c (gfc_get_alias_set): New function. - (LANG_HOOKS_GET_ALIAS_SET): Define. - -2006-03-25 Steven G. Kargl <kargls@comcast.net> - - PR fortran/26816 - * intrinsic.c (add_functions): Allow FLOAT to accept all integer kinds. - * intrinsic.texi: Document FLOAT. - -2006-03-25 Thomas Koenig <Thomas.Koenig@online.de> - - PR fortran/26769 - * iresolve.c (gfc_resolve_reshape): Remove doubling of - kind for complex. For real(kind=10), call reshape_r10. - (gfc_resolve_transpose): For real(kind=10), call - transpose_r10. - -2006-03-25 Roger Sayle <roger@eyesopen.com> - - * dependency.c (gfc_check_dependency): Improve handling of pointers; - Two variables of different types can't have a dependency, and two - variables with the same symbol are equal, even if pointers. - -2006-03-24 Roger Sayle <roger@eyesopen.com> - - * gfortran.h (gfc_symbol): Add a new "forall_index" bit field. - * match.c (match_forall_iterator): Set forall_index field on - the iteration variable's symbol. - * dependency.c (contains_forall_index_p): New function to - traverse a gfc_expr to check whether it contains a variable - with forall_index set in it's symbol. - (gfc_check_element_vs_element): Return GFC_DEP_EQUAL for scalar - constant expressions that don't variables used as FORALL indices. - -2006-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de> - - PR driver/22600 - * error.c (gfc_fatal_error): Return ICE_EXIT_CODE instead of 4. - -2006-03-22 Thomas Koenig <Thomas.Koenig@online.de> - - PR fortran/19303 - * gfortran.h (gfc_option_t): Add record_marker. - * lang.opt: Add -frecord-marker=4 and -frecord-marker=8. - * trans-decl.c: Add gfor_fndecl_set_record_marker. - (gfc_build_builtin_function_decls): Set - gfor_fndecl_set_record_marker. - (gfc_generate_function_code): If we are in the main program - and -frecord-marker was provided, call set_record_marker. - * options.c (gfc_handle_option): Add handling for - -frecord-marker=4 and -frecord-marker=8. - * invoke.texi: Document -frecord-marker. - -2006-03-22 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/17298 - * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): New - function to implement array valued TRANSFER intrinsic. - (gfc_conv_intrinsic_function): Call the new function if TRANSFER - and non-null se->ss. - (gfc_walk_intrinsic_function): Treat TRANSFER as one of the - special cases by calling gfc_walk_intrinsic_libfunc directly. - -2006-03-21 Toon Moene <toon@moene.indiv.nluug.nl> - - * options.c (gfc_init_options): Initialize - flag_argument_noalias to 3. - -2006-03-20 Thomas Koenig <Thomas.Koenig@online.de> - - PR fortran/20935 - * iresolve.c (gfc_resolve_maxloc): If mask is scalar, - prefix the function name with an "s". If the mask is scalar - or if its kind is smaller than gfc_default_logical_kind, - coerce it to default kind. - (gfc_resolve_maxval): Likewise. - (gfc_resolve_minloc): Likewise. - (gfc_resolve_minval): Likewise. - (gfc_resolve_product): Likewise. - (gfc_resolve_sum): Likewise. - -2006-03-19 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/26741 - *expr.c (external_spec_function): Permit elemental functions. - - PR fortran/26716 - *interface.c (compare_actual_formal): Detect call for procedure - usage and require rank checking, in this case, for assumed shape - and deferred shape arrays. - (gfc_procedure_use): Revert to pre-PR25070 call to - compare_actual_formal that does not require rank checking.. - -2006-03-16 Roger Sayle <roger@eyesopen.com> - - * gfortran.h (gfc_equiv_info): Add length field. - * trans-common.c (copy_equiv_list_to_ns): Set the length field. - * dependency.c (gfc_are_equivalenced_arrays): Use both the offset - and length fields to determine whether the two equivalenced symbols - overlap in memory. - -2006-03-14 Jerry DeLisle <jvdelisle@gcc.gnu.org> - - PR fortran/19101 - * gfortran.h: Add warn_ampersand. - * invoke.texi: Add documentation for new option. - * lang.opt: Add Wampersand. - * options.c (gfc_init_options): Initialize warn_ampersand. - (gfc_post_options): Set the warn if pedantic. - (set_Wall): Set warn_ampersand. - (gfc_handle_option: Add Wampersand for itself, -std=f95, and -std=f2003. - * scanner.c (gfc_next_char_literal): Add test for missing '&' in - continued character constant and give warning if missing. - -2006-03-14 Steven G. Kargl <kargls@comcast.net> - - PR 18537 - * gfortran.h: Wrap Copyright line. - (gfc_option_t): add warn_tabs member. - * lang.opt: Update Coyright year. Add the Wtabs. - * invoke.texi: Document -Wtabs. - * scanner.c (gfc_gobble_whitespace): Use warn_tabs. Add linenum to - suppress multiple warnings. - (load_line): Use warn_tabs. Add linenum, current_line, seen_comment - to suppress multiple warnings. - * options.c (gfc_init_options): Initialize warn_tabs. - (set_Wall): set warn_tabs for -Wall. - (gfc_post_options): Adjust flag_tabs depending on -pedantic. - (gfc_handle_option): Process command-line option -W[no-]tabs - -2006-03-13 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/25378 - * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Set the initial position to zero and - modify the condition for updating it, to implement the F2003 requirement for all(mask) - is false. - -2006-03-13 Jakub Jelinek <jakub@redhat.com> - - * trans-openmp.c (gfc_trans_omp_variable): Handle references - to parent result. - * trans-expr.c (gfc_conv_variable): Remove useless setting - of parent_flag, formatting. - - * trans-decl.c (gfc_get_fake_result_decl): Re-add setting of - GFC_DECL_RESULT flag. - -2003-03-11 Roger Sayle <roger@eyesopen.com> - - * dependency.c (gfc_dep_compare_expr) <EXPR_OP>: Allow unary and - binary operators to compare equal if their operands are equal. - <EXPR_FUNCTION>: Allow "constant" intrinsic conversion functions - to compare equal, if their operands are equal. - -2006-03-11 Erik Edelmann <eedelman@gcc.gnu.org> - - * symbol.c (check_conflict): Allow allocatable function results, - except for elemental functions. - * trans-array.c (gfc_trans_allocate_temp_array): Rename to ... - (gfc_trans_create_temp_array): ... this, and add new argument - callee_alloc. - (gfc_trans_array_constructor, gfc_conv_loop_setup): Update call - to gfc_trans_allocate_temp_array. - * trans-array.h (gfc_trans_allocate_temp_array): Update prototype. - * trans-expr.c (gfc_conv_function_call): Use new arg of - gfc_trans_create_temp_array avoid pre-allocation of temporary - result variables of pointer AND allocatable functions. - (gfc_trans_arrayfunc_assign): Return NULL for allocatable - functions. - * resolve.c (resolve_symbol): Copy value of 'allocatable' attribute - from sym->result to sym. - -2006-03-09 Erik Edelmann <eedelman@gcc.gnu.org> - - * trans-expr.c (gfc_add_interface_mapping): Copy 'allocatable' - attribute from sym to new_sym. Call build_fold_indirect_ref() - for allocatable arguments. - -2006-03-09 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/26257 - * trans-array.c (gfc_conv_expr_descriptor): Exclude calculation of - the offset and data when se->data_not_needed is set. - * trans.h: Include the data_not_need bit in gfc_se. - * trans-intrinsic.c (gfc_conv_intrinsic_size): Set it for SIZE. - -2006-03-06 Paul Thomas <pault@gcc.gnu.org> - Erik Edelmann <eedelman@gcc.gnu.org> - - * trans-array.c (gfc_trans_dealloc_allocated): New function. - (gfc_trans_deferred_array): Use it, instead of inline code. - * trans-array.h: Prototype for gfc_trans_dealloc_allocated(). - * trans-expr.c (gfc_conv_function_call): Deallocate allocated - ALLOCATABLE, INTENT(OUT) arguments upon procedure entry. - -2006-03-06 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/26107 - * resolve.c (resolve_function): Add name after test for pureness. - - PR fortran/19546 - * trans-expr.c (gfc_conv_variable): Detect reference to parent result, - store current_function_decl, replace with parent, whilst calls are - made to gfc_get_fake_result_decl, and restore afterwards. Signal this - to gfc_get_fake_result_decl with a new argument, parent_flag. - * trans-stmt.c (gfc_trans_return): gfc_get_fake_result_decl 2nd arg - is set to zero. - * trans.h: Add parent_flag to gfc_get_fake_result_decl prototype. - * trans-decl.c (gfc_get_fake_result_decl): On parent_flag, being set, - add decl to parent function. Replace refs to current_fake_result_decl - with refs to this_result_decl. - (gfc_generate_function_code): Null parent_fake_result_decl before the - translation of code for contained procedures. Set parent_flag to zero - in call to gfc_get_fake_result_decl. - * trans-intrinsic.c (gfc_conv_intrinsic_len): The same. - -2006-03-05 Steven G. Kargl <kargls@comcast.net> - - * simplify.c (gfc_simplify_verify): Fix return when SET=''. - -2006-03-05 Erik Edelmann <eedelman@gcc.gnu.org> - - PR fortran/16136 - * symbol.c (conf_std): New macro. - (check_conflict): Use it to allow ALLOCATABLE dummy - arguments for F2003. - * trans-expr.c (gfc_conv_function_call): Pass the - address of the array descriptor when dummy argument is - ALLOCATABLE. - * interface.c (compare_allocatable): New function. - (compare_actual_formal): Use it. - * resolve.c (resolve_deallocate_expr, - resolve_allocate_expr): Check that INTENT(IN) variables - aren't (de)allocated. - * gfortran.texi (Fortran 2003 status): List ALLOCATABLE - dummy arguments as supported. - -2006-03-03 Roger Sayle <roger@eyesopen.com> - - * dependency.c (gfc_check_element_vs_element): Revert last change. - -2006-03-03 Roger Sayle <roger@eyesopen.com> - - * dependency.c (gfc_check_element_vs_element): Consider two - unordered scalar subscripts as (potentially) equal. - -2006-03-03 Roger Sayle <roger@eyesopen.com> - - * dependency.c (gfc_check_dependency): Call gfc_dep_resolver to - check whether two array references have a dependency. - (gfc_check_element_vs_element): Assume lref and rref must be - REF_ARRAYs. If gfc_dep_compare_expr returns -2, assume these - references could potentially overlap. - (gfc_dep_resolver): Whitespace and comment tweaks. Assume a - dependency if the references have different depths. Rewrite - final term to clarrify we only have a dependency for overlaps. - -2006-03-03 Thomas Koenig <Thomas.Koenig@online.de> - - PR fortran/25031 - * trans-array.h: Adjust gfc_array_allocate prototype. - * trans-array.c (gfc_array_allocate): Change type of - gfc_array_allocatate to bool. Function returns true if - it operates on an array. Change second argument to gfc_expr. - Find last reference in chain. - If the function operates on an allocatable array, emit call to - allocate_array() or allocate64_array(). - * trans-stmt.c (gfc_trans_allocate): Code to follow to last - reference has been moved to gfc_array_allocate. - * trans.h: Add declaration for gfor_fndecl_allocate_array and - gfor_fndecl_allocate64_array. - (gfc_build_builtin_function_decls): Add gfor_fndecl_allocate_array - and gfor_fndecl_allocate64_array. - -2006-03-01 Roger Sayle <roger@eyesopen.com> - - * trans-stmt.c (generate_loop_for_temp_to_lhs): Add an additional - INVERT argument to invert the sense of the WHEREMASK argument. - Remove unneeded code to AND together a list of masks. - (generate_loop_for_rhs_to_temp): Likewise. - (gfc_trans_assign_need_temp): Likewise. - (gfc_trans_forall_1): Likewise. - (gfc_evaluate_where_mask): Likewise, add a new INVERT argument - to specify the sense of the MASK argument. - (gfc_trans_where_assign): Likewise. - (gfc_trans_where_2): Likewise. Restructure code that decides - whether we need to allocate zero, one or two temporary masks. - If this is a top-level WHERE (i.e. the incoming MASK is NULL), - we only need to allocate at most one temporary mask, and can - invert it's sense to provide the complementary pending execution - mask. Only calculate the size of the required temporary arrays - if we need any. - (gfc_trans_where): Update call to gfc_trans_where_2. - -2006-03-01 Paul Thomas <pault@gcc.gnu.org> - - * iresolve.c (gfc_resolve_dot_product): Remove any difference in - treatment of logical types. - * trans-intrinsic.c (gfc_conv_intrinsic_dot_product): New function. - - PR fortran/26393 - * trans-decl.c (gfc_get_symbol_decl): Extend condition that symbols - must be referenced to include unreferenced symbols in an interface - body. - - PR fortran/20938 - * trans-array.c (gfc_conv_resolve_dependencies): Add call to - gfc_are_equivalenced_arrays. - * symbol.c (gfc_free_equiv_infos, gfc_free_equiv_lists): New - functions. (gfc_free_namespace): Call them. - * trans-common.c (copy_equiv_list_to_ns): New function. - (add_equivalences): Call it. - * gfortran.h: Add equiv_lists to gfc_namespace and define - gfc_equiv_list and gfc_equiv_info. - * dependency.c (gfc_are_equivalenced_arrays): New function. - (gfc_check_dependency): Call it. - * dependency.h: Prototype for gfc_are_equivalenced_arrays. - -2006-03-01 Roger Sayle <roger@eyesopen.com> - - * dependency.c (gfc_is_same_range): Compare the stride, lower and - upper bounds when testing array reference ranges for equality. - (gfc_check_dependency): Fix indentation whitespace. - (gfc_check_element_vs_element): Likewise. - (gfc_dep_resolver): Likewise. - -2006-02-28 Thomas Koenig <Thomas.Koenig@online.de> - - * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): - If the mask expression exists and has rank 0, enclose the - generated loop in an "if (mask)". Put the default - initialization into the else branch. - -2006-02-25 Thomas Koenig <Thomas.Koenig@online.de> - - PR fortran/23092 - * trans-intrinsic.c (gfc_conv_intrinsic_arith): If the - mask expression exists and has rank 0, enclose the generated - loop in an "if (mask)". - * (gfc_conv_intrinsic_minmaxloc): Likewise. - -2006-02-24 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/26409 - * resolve.c (resolve_contained_functions, resolve_types, - gfc_resolve): Revert patch of 2006-02-19. - -2006-02-24 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/24519 - * dependency.c (gfc_is_same_range): Correct typo. - (gfc_check_section_vs_section): Call gfc_is_same_range. - - PR fortran/25395 - * trans-common.c (add_equivalences): Add a new flag that is set when - an equivalence is seen that prevents more from being reset until the - start of a new traversal of the list, thus ensuring completion of - all the equivalences. - -2006-02-23 Erik Edelmann <eedelman@gcc.gnu.org> - - * module.c (read_module): Remove redundant code lines. - -2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> - * Make-lang.in (FORTRAN): Remove - (.PHONY): Remove F95 and f95. Add fortran - -2006-02-20 Roger Sayle <roger@eyesopen.com> - - * trans-stmt.c (gfc_trans_where_2): Avoid updating unused current - execution mask for empty WHERE/ELSEWHERE clauses. Don't allocate - temporary mask arrays if they won't be used. - -2006-02-20 Roger Sayle <roger@eyesopen.com> - - * trans-stmt.c (gfc_trans_where_assign): Remove code to handle - traversing a linked list of MASKs. The MASK is now always a - single element requiring no ANDing during the assignment. - -2006-02-19 Thomas Koenig <Thomas.Koenig@online.de> - - * gfortran.texi: Document environment variables which - influence runtime behavior. - -2006-02-19 H.J. Lu <hongjiu.lu@intel.com> - - * resolve.c (resolve_contained_functions): Call resolve_entries - first. - (resolve_types): Remove calls to resolve_entries and - resolve_contained_functions. - (gfc_resolve): Call resolve_contained_functions. - -2006-02-19 Erik Edelmann <eedelman@gcc.gnu.org> - - PR fortran/26201 - * intrinsic.c (gfc_convert_type_warn): Call - gfc_intrinsic_symbol() on the newly created symbol. - -2006-02-19 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/25054 - * resolve.c (is_non_constant_shape_array): New function. - (resolve_fl_variable): Remove code for the new function and call it. - (resolve_fl_namelist): New function. Add test for namelist array - with non-constant shape, using is_non_constant_shape_array. - (resolve_symbol): Remove code for resolve_fl_namelist and call it. - - PR fortran/25089 - * match.c (match_namelist): Increment the refs field of an accepted - namelist object symbol. - * resolve.c (resolve_fl_namelist): Test namelist objects for a conflict - with contained or module procedures. - -2006-02-18 Roger Sayle <roger@eyesopen.com> - - * trans-stmt.c (struct temporary_list): Delete. - (gfc_trans_where_2): Major reorganization. Remove no longer needed - TEMP argument. Allocate and deallocate the control mask and - pending control mask locally. - (gfc_trans_forall_1): Delete TEMP local variable, and update - call to gfc_trans_where_2. No need to deallocate arrays after. - (gfc_evaluate_where_mask): Major reorganization. Change return - type to void. Pass in parent execution mask, MASK, and two - already allocated mask arrays CMASK and PMASK. On return - CMASK := MASK & COND, PMASK := MASK & !COND. MASK, CMASK and - CMASK may all be NULL, or refer to the same temporary arrays. - (gfc_trans_where): Update call to gfc_trans_where_2. We no - longer need a TEMP variable or to deallocate temporary arrays - allocated by gfc_trans_where_2. - -2006-02-18 Danny Smith <dannysmith@users.sourceforeg.net> - - * gfortran.h (gfc_add_attribute): Change uint to unsigned int. - * symbol.c (gfc_add_attribute): Likewise for definition. - * resolve.c (resolve_global_procedure): Likewise for variable 'type'. - -2006-02-17 Richard Sandiford <richard@codesourcery.com> - - * trans-common.c: Include rtl.h earlier. - * trans-decl.c: Likewise. - -2006-02-16 Jakub Jelinek <jakub@redhat.com> - - PR fortran/26224 - * parse.c (parse_omp_do, parse_omp_structured_block): Call - gfc_commit_symbols and gfc_warning_check. - - * openmp.c (resolve_omp_clauses): Add a dummy case label to workaround - PR middle-end/26316. - -2006-02-16 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/24557 - * trans-expr.c (gfc_add_interface_mapping): Use the actual argument - for character(*) arrays, rather than casting to the type and kind - parameters of the formal argument. - -2006-02-15 Toon Moene <toon@moene.indiv.nluug.nl> - - PR fortran/26054 - * options.c: Do not warn for Fortran 2003 features by default. - -2006-02-15 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> - - * check.c: Update copyright years. - - * check.c (gfc_check_minloc_maxloc, check_reduction): Don't call - dim_range_check on not-present optional dim argument. - -2006-02-15 Jakub Jelinek <jakub@redhat.com> - - PR libgomp/25938 - PR libgomp/25984 - * Make-lang.in (install-finclude-dir): New goal. - (fortran.install-common): Depend on install-finclude-dir. - * lang-specs.h: If not -nostdinc, add -I finclude. - -2006-02-14 Thomas Koenig <Thomas.Koenig@online.de> - - PR fortran/25045 - * check.c (dim_check): Perform all checks if dim is optional. - (gfc_check_minloc_maxloc): Use dim_check and dim_rank_check - to check dim argument. - (check_reduction): Likewise. - -2006-02-14 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> - - PR fortran/26277 - * io.c (match_ltag): Mark label as referenced. - -2006-02-14 Jakub Jelinek <jakub@redhat.com> - Richard Henderson <rth@redhat.com> - Diego Novillo <dnovillo@redhat.com> - - * invoke.texi: Document -fopenmp. - * gfortran.texi (Extensions): Document OpenMP. - - Backport from gomp-20050608-branch - * trans-openmp.c: Call build_omp_clause instead of - make_node when creating OMP_CLAUSE_* trees. - (gfc_trans_omp_reduction_list): Remove argument 'code'. - Adjust all callers. - - * trans.h (build4_v): Define. - * trans-openmp.c: Call build4_v to create OMP_PARALLEL nodes. - Call build3_v to create OMP_SECTIONS nodes. - - PR fortran/25162 - * openmp.c (gfc_match_omp_variable_list): Call gfc_set_sym_referenced - on all symbols added to the variable list. - - * openmp.c (gfc_match_omp_clauses): Fix check for non-INTRINSIC - procedure symbol in REDUCTION. - - * trans-openmp.c (gfc_trans_omp_array_reduction): Use gfc_add - for MINUS_EXPR OMP_CLAUSE_REDUCTION_CODE. - - * trans-openmp.c (gfc_trans_omp_do): Add PBLOCK argument. If PBLOCK - is non-NULL, evaluate INIT/COND/INCR and chunk size expressions in - that statement block. - (gfc_trans_omp_parallel_do): Pass non-NULL PBLOCK to gfc_trans_omp_do - for non-ordered non-static combined loops. - (gfc_trans_omp_directive): Pass NULL PBLOCK to gfc_trans_omp_do. - - * openmp.c: Include target.h and toplev.h. - (gfc_match_omp_threadprivate): Emit diagnostic if target does - not support TLS. - * Make-lang.in (fortran/openmp.o): Add dependencies on - target.h and toplev.h. - - * trans-decl.c (gfc_get_fake_result_decl): Set GFC_DECL_RESULT. - * trans-openmp.c (gfc_omp_privatize_by_reference): Make - DECL_ARTIFICIAL vars predetermined shared except GFC_DECL_RESULT. - (gfc_omp_disregard_value_expr): Handle GFC_DECL_RESULT. - (gfc_trans_omp_variable): New function. - (gfc_trans_omp_variable_list, gfc_trans_omp_reduction_list): Use it. - * trans.h (GFC_DECL_RESULT): Define. - - * trans-openmp.c (gfc_omp_firstprivatize_type_sizes): New function. - * f95-lang.c (LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define. - * trans.h (gfc_omp_firstprivatize_type_sizes): New prototype. - - * trans-openmp.c (gfc_omp_privatize_by_reference): Return - true if a pointer has GFC_DECL_SAVED_DESCRIPTOR set. - (gfc_trans_omp_array_reduction, gfc_trans_omp_reduction_list): New - functions. - (gfc_trans_omp_clauses): Add WHERE argument. Call - gfc_trans_omp_reduction_list rather than gfc_trans_omp_variable_list - for reductions. - (gfc_trans_omp_do, gfc_trans_omp_parallel, gfc_trans_omp_parallel_do, - gfc_trans_omp_parallel_sections, gfc_trans_omp_parallel_workshare, - gfc_trans_omp_sections, gfc_trans_omp_single): Adjust - gfc_trans_omp_clauses callers. - - * openmp.c (omp_current_do_code): New var. - (gfc_resolve_omp_do_blocks): New function. - (gfc_resolve_omp_parallel_blocks): Call it. - (gfc_resolve_do_iterator): Add CODE argument. Don't propagate - predetermination if argument is !$omp do or !$omp parallel do - iteration variable. - * resolve.c (resolve_code): Call gfc_resolve_omp_do_blocks - for EXEC_OMP_DO. Adjust gfc_resolve_do_iterator caller. - * fortran.h (gfc_resolve_omp_do_blocks): New prototype. - (gfc_resolve_do_iterator): Add CODE argument. - - * trans.h (gfc_omp_predetermined_sharing, - gfc_omp_disregard_value_expr, gfc_omp_private_debug_clause): New - prototypes. - (GFC_DECL_COMMON_OR_EQUIV, GFC_DECL_CRAY_POINTEE): Define. - * trans-openmp.c (gfc_omp_predetermined_sharing, - gfc_omp_disregard_value_expr, gfc_omp_private_debug_clause): New - functions. - * trans-common.c (build_equiv_decl, build_common_decl, - create_common): Set GFC_DECL_COMMON_OR_EQUIV flag on the decls. - * trans-decl.c (gfc_finish_cray_pointee): Set GFC_DECL_CRAY_POINTEE - on the decl. - * f95-lang.c (LANG_HOOKS_OMP_PREDETERMINED_SHARING, - LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR, - LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE): Define. - - * openmp.c (resolve_omp_clauses): Remove extraneous comma. - - * symbol.c (check_conflict): Add conflict between cray_pointee and - threadprivate. - * openmp.c (gfc_match_omp_threadprivate): Fail if - gfc_add_threadprivate returned FAILURE. - (resolve_omp_clauses): Diagnose Cray pointees in SHARED, - {,FIRST,LAST}PRIVATE and REDUCTION clauses and Cray pointers in - {FIRST,LAST}PRIVATE and REDUCTION clauses. - - * resolve.c (omp_workshare_flag): New variable. - (resolve_function): Diagnose use of non-ELEMENTAL user defined - function in WORKSHARE construct. - (resolve_code): Cleanup forall_save use. Make sure omp_workshare_flag - is set to correct value in different contexts. - - * openmp.c (resolve_omp_clauses): Replace %s with '%s' when printing - variable name. - (resolve_omp_atomic): Likewise. - - PR fortran/24493 - * scanner.c (skip_free_comments): Set at_bol at the beginning of the - loop, not before it. - (skip_fixed_comments): Handle ! comments in the middle of line here - as well. - (gfc_skip_comments): Use skip_fixed_comments for FIXED_FORM even if - not at BOL. - (gfc_next_char_literal): Fix expected canonicalized *$omp string. - - * trans-openmp.c (gfc_trans_omp_do): Use make_node and explicit - initialization to build OMP_FOR instead of build. - - * trans-decl.c (gfc_gimplify_function): Invoke - diagnose_omp_structured_block_errors. - - * trans-openmp.c (gfc_trans_omp_master): Use OMP_MASTER. - (gfc_trans_omp_ordered): Use OMP_ORDERED. - - * gfortran.h (gfc_resolve_do_iterator, gfc_resolve_blocks, - gfc_resolve_omp_parallel_blocks): New prototypes. - * resolve.c (resolve_blocks): Renamed to... - (gfc_resolve_blocks): ... this. Remove static. - (gfc_resolve_forall): Adjust caller. - (resolve_code): Only call gfc_resolve_blocks if code->block != 0 - and not for EXEC_OMP_PARALLEL* directives. Call - gfc_resolve_omp_parallel_blocks for EXEC_OMP_PARALLEL* directives. - Call gfc_resolve_do_iterator if resolved successfully EXEC_DO - iterator. - * openmp.c: Include pointer-set.h. - (omp_current_ctx): New variable. - (gfc_resolve_omp_parallel_blocks, gfc_resolve_do_iterator): New - functions. - * Make-lang.in (fortran/openmp.o): Depend on pointer-set.h. - - * openmp.c (gfc_match_omp_clauses): For max/min/iand/ior/ieor, - look up symbol if it exists, use its name instead and, if it is not - INTRINSIC, issue diagnostics. - - * parse.c (parse_omp_do): Handle implied end do properly. - (parse_executable): If parse_omp_do returned ST_IMPLIED_ENDDO, - return it instead of continuing. - - * trans-openmp.c (gfc_trans_omp_critical): Update for changed - operand numbering. - (gfc_trans_omp_do, gfc_trans_omp_parallel, gfc_trans_omp_parallel_do, - gfc_trans_omp_parallel_sections, gfc_trans_omp_parallel_workshare, - gfc_trans_omp_sections, gfc_trans_omp_single): Likewise. - - * trans.h (gfc_omp_privatize_by_reference): New prototype. - * f95-lang.c (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Redefine - to gfc_omp_privatize_by_reference. - * trans-openmp.c (gfc_omp_privatize_by_reference): New function. - - * trans-stmt.h (gfc_trans_omp_directive): Add comment. - - * openmp.c (gfc_match_omp_variable_list): Add ALLOW_COMMON argument. - Disallow COMMON matching if it is set. - (gfc_match_omp_clauses, gfc_match_omp_flush): Adjust all callers. - (resolve_omp_clauses): Show locus in error messages. Check that - variable types in reduction clauses are appropriate for reduction - operators. - - * resolve.c (resolve_symbol): Don't error if a threadprivate module - variable isn't SAVEd. - - * trans-openmp.c (gfc_trans_omp_do): Put count into BLOCK, not BODY. - Fix typo in condition. Fix DOVAR initialization. - - * openmp.c (gfc_match_omp_clauses): Match min/iand/ior/ieor - rather than .min. etc. - - * trans-openmpc.c (omp_not_yet): Remove. - (gfc_trans_omp_parallel_do): Keep listprivate clause on parallel. - Force creation of BIND_EXPR around the workshare construct. - (gfc_trans_omp_parallel_sections): Likewise. - (gfc_trans_omp_parallel_workshare): Likewise. - - * types.def (BT_I16, BT_FN_I16_VPTR_I16, - BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add. - - * trans-openmp.c (gfc_trans_omp_clauses): Create OMP_CLAUSE_DEFAULT. - (gfc_trans_omp_code): New function. - (gfc_trans_omp_do): Use it, remove omp_not_yet uses. - (gfc_trans_omp_parallel, gfc_trans_omp_single): Likewise. - (gfc_trans_omp_sections): Likewise. Only treat empty last section - specially if lastprivate clause is present. - * f95-lang.c (gfc_init_builtin_functions): Create BUILT_IN_TRAP - builtin. - - * trans-openmp.c (gfc_trans_omp_variable_list): Update for - OMP_CLAUSE_DECL name change. - (gfc_trans_omp_do): Likewise. - - * trans-openmp.c (gfc_trans_omp_clauses): Create OMP_CLAUSE_REDUCTION - clauses. - (gfc_trans_omp_atomic): Build OMP_ATOMIC instead of expanding - sync builtins directly. - (gfc_trans_omp_single): Build OMP_SINGLE statement. - - * trans-openmp.c (gfc_trans_add_clause): New. - (gfc_trans_omp_variable_list): Take a tree code and build the clause - node here. Link it to the head of a list. - (gfc_trans_omp_clauses): Update to match. - (gfc_trans_omp_do): Use gfc_trans_add_clause. - - * trans-openmp.c (gfc_trans_omp_clauses): Change second argument to - gfc_omp_clauses *. Use gfc_evaluate_now instead of creating - temporaries by hand. - (gfc_trans_omp_atomic, gfc_trans_omp_critical): Use buildN_v macros. - (gfc_trans_omp_do): New function. - (gfc_trans_omp_master): Dont' check for gfc_trans_code returning NULL. - (gfc_trans_omp_parallel): Adjust gfc_trans_omp_clauses caller. - Use buildN_v macros. - (gfc_trans_omp_parallel_do, gfc_trans_omp_parallel_sections, - gfc_trans_omp_parallel_workshare, gfc_trans_omp_sections, - gfc_trans_omp_single, gfc_trans_omp_workshare): New functions. - (gfc_trans_omp_directive): Use them. - * parse.c (parse_omp_do): Allow new_st.op == EXEC_NOP. - * openmp.c (resolve_omp_clauses): Check for list items present - in multiple clauses. - (resolve_omp_do): Check that iteration variable is not THREADPRIVATE - and is not present in any clause variable lists other than PRIVATE - or LASTPRIVATE. - - * gfortran.h (symbol_attribute): Add threadprivate bit. - (gfc_common_head): Add threadprivate member, change use_assoc - and saved into char to save space. - (gfc_add_threadprivate): New prototype. - * symbol.c (check_conflict): Handle threadprivate. - (gfc_add_threadprivate): New function. - (gfc_copy_attr): Copy threadprivate. - * trans-openmp.c (gfc_trans_omp_clauses): Avoid creating a temporary - if IF or NUM_THREADS is constant. Create OMP_CLAUSE_SCHEDULE and - OMP_CLAUSE_ORDERED. - * resolve.c (resolve_symbol): Complain if a THREADPRIVATE symbol - outside a module and not in COMMON has is not SAVEd. - (resolve_equivalence): Ensure THREADPRIVATE objects don't get - EQUIVALENCEd. - * trans-common.c: Include target.h and rtl.h. - (build_common_decl): Set DECL_TLS_MODEL if THREADPRIVATE. - * trans-decl.c: Include rtl.h. - (gfc_finish_var_decl): Set DECL_TLS_MODEL if THREADPRIVATE. - * dump-parse-tree.c (gfc_show_attr): Handle THREADPRIVATE. - * Make-lang.in (fortran/trans-decl.o): Depend on $(RTL_H). - (fortran/trans-common.o): Depend on $(RTL_H) and $(TARGET_H). - * openmp.c (gfc_match_omp_variable_list): Ensure COMMON block - is from current namespace. - (gfc_match_omp_threadprivate): Rewrite. - (resolve_omp_clauses): Check some clause restrictions. - * module.c (ab_attribute): Add AB_THREADPRIVATE. - (attr_bits): Add THREADPRIVATE. - (mio_symbol_attribute, mio_symbol_attribute): Handle threadprivate. - (load_commons, write_common, write_blank_common): Adjust for type - change of saved, store/load threadprivate bit from the integer - as well. - - * types.def (BT_FN_UINT_UINT): New. - (BT_FN_VOID_UINT_UINT): Remove. - - * trans-openmp.c (gfc_trans_omp_clauses, gfc_trans_omp_barrier, - gfc_trans_omp_critical, gfc_trans_omp_flush, gfc_trans_omp_master, - gfc_trans_omp_ordered, gfc_trans_omp_parallel): New functions. - (gfc_trans_omp_directive): Use them. - - * openmp.c (expr_references_sym): Add SE argument, don't look - into SE tree. - (is_conversion): New function. - (resolve_omp_atomic): Adjust expr_references_sym callers. Handle - promoted expressions. - * trans-openmp.c (gfc_trans_omp_atomic): New function. - (gfc_trans_omp_directive): Call it. - - * f95-lang.c (builtin_type_for_size): New function. - (gfc_init_builtin_functions): Initialize synchronization and - OpenMP builtins. - * types.def: New file. - * Make-lang.in (f95-lang.o): Depend on $(BUILTINS_DEF) and - fortran/types.def. - - * trans-openmp.c: Rename GOMP_* tree codes into OMP_*. - - * dump-parse-tree.c (show_symtree): Don't crash if ns->proc_name - is NULL. - - * dump-parse-tree.c (gfc_show_namelist, gfc_show_omp_node): New - functions. - (gfc_show_code_node): Call gfc_show_omp_node for EXEC_OMP_* nodes. - - * parse.c (parse_omp_do): Call pop_state before next_statement. - * openmp.c (expr_references_sym, resolve_omp_atomic, resolve_omp_do): - New functions. - (gfc_resolve_omp_directive): Call them. - * match.c (match_exit_cycle): Issue error if EXIT or CYCLE statement - leaves an OpenMP structured block or if EXIT terminates !$omp do - loop. - - * Make-lang.in (F95_PARSER_OBJS): Add fortran/openmp.o. - (F95_OBJS): Add fortran/trans-openmp.o. - (fortran/trans-openmp.o): Depend on $(GFORTRAN_TRANS_DEPS). - * lang.opt: Add -fopenmp option. - * options.c (gfc_init_options): Initialize it. - (gfc_handle_option): Handle it. - * gfortran.h (ST_OMP_ATOMIC, ST_OMP_BARRIER, ST_OMP_CRITICAL, - ST_OMP_END_CRITICAL, ST_OMP_END_DO, ST_OMP_END_MASTER, - ST_OMP_END_ORDERED, ST_OMP_END_PARALLEL, ST_OMP_END_PARALLEL_DO, - ST_OMP_END_PARALLEL_SECTIONS, ST_OMP_END_PARALLEL_WORKSHARE, - ST_OMP_END_SECTIONS, ST_OMP_END_SINGLE, ST_OMP_END_WORKSHARE, - ST_OMP_DO, ST_OMP_FLUSH, ST_OMP_MASTER, ST_OMP_ORDERED, - ST_OMP_PARALLEL, ST_OMP_PARALLEL_DO, ST_OMP_PARALLEL_SECTIONS, - ST_OMP_PARALLEL_WORKSHARE, ST_OMP_SECTIONS, ST_OMP_SECTION, - ST_OMP_SINGLE, ST_OMP_THREADPRIVATE, ST_OMP_WORKSHARE): New - statement codes. - (OMP_LIST_PRIVATE, OMP_LIST_FIRSTPRIVATE, OMP_LIST_LASTPRIVATE, - OMP_LIST_COPYPRIVATE, OMP_LIST_SHARED, OMP_LIST_COPYIN, - OMP_LIST_PLUS, OMP_LIST_REDUCTION_FIRST, OMP_LIST_MULT, - OMP_LIST_SUB, OMP_LIST_AND, OMP_LIST_OR, OMP_LIST_EQV, - OMP_LIST_NEQV, OMP_LIST_MAX, OMP_LIST_MIN, OMP_LIST_IAND, - OMP_LIST_IOR, OMP_LIST_IEOR, OMP_LIST_REDUCTION_LAST, OMP_LIST_NUM): - New OpenMP variable list types. - (gfc_omp_clauses): New typedef. - (gfc_get_omp_clauses): Define. - (EXEC_OMP_CRITICAL, EXEC_OMP_DO, EXEC_OMP_FLUSH, EXEC_OMP_MASTER, - EXEC_OMP_ORDERED, EXEC_OMP_PARALLEL, EXEC_OMP_PARALLEL_DO, - EXEC_OMP_PARALLEL_SECTIONS, EXEC_OMP_PARALLEL_WORKSHARE, - EXEC_OMP_SECTIONS, EXEC_OMP_SINGLE, EXEC_OMP_WORKSHARE, - EXEC_OMP_ATOMIC, EXEC_OMP_BARRIER, EXEC_OMP_END_NOWAIT, - EXEC_OMP_END_SINGLE): New OpenMP gfc_exec_op codes. - (struct gfc_code): Add omp_clauses, omp_name, omp_namelist - and omp_bool fields to ext union. - (flag_openmp): Declare. - (gfc_free_omp_clauses, gfc_resolve_omp_directive): New prototypes. - * scanner.c (openmp_flag, openmp_locus): New variables. - (skip_free_comments, skip_fixed_comments, gfc_next_char_literal): - Handle OpenMP directive lines and conditional compilation magic - comments. - * parse.h (COMP_OMP_STRUCTURED_BLOCK): New compile state. - * parse.c (decode_omp_directive, parse_omp_do, parse_omp_atomic, - parse_omp_structured_block): New functions. - (next_free, next_fixed): Parse OpenMP directives. - (case_executable, case_exec_markers, case_decl): Add ST_OMP_* - codes. - (gfc_ascii_statement): Handle ST_OMP_* codes. - (parse_executable): Rearrange the loop slightly, so that - parse_omp_do can return next_statement. - * match.h (gfc_match_omp_eos, gfc_match_omp_atomic, - gfc_match_omp_barrier, gfc_match_omp_critical, gfc_match_omp_do, - gfc_match_omp_flush, gfc_match_omp_master, gfc_match_omp_ordered, - gfc_match_omp_parallel, gfc_match_omp_parallel_do, - gfc_match_omp_parallel_sections, gfc_match_omp_parallel_workshare, - gfc_match_omp_sections, gfc_match_omp_single, - gfc_match_omp_threadprivate, gfc_match_omp_workshare, - gfc_match_omp_end_nowait, gfc_match_omp_end_single): New prototypes. - * resolve.c (resolve_blocks): Ignore EXEC_OMP_* block directives. - (resolve_code): Call gfc_resolve_omp_directive on EXEC_OMP_* - directives. - * trans.c (gfc_trans_code): Call gfc_trans_omp_directive for - EXEC_OMP_* directives. - * st.c (gfc_free_statement): Handle EXEC_OMP_* statement freeing. - * trans-stmt.h (gfc_trans_omp_directive): New prototype. - * openmp.c: New file. - * trans-openmp.c: New file. - -2006-02-13 Andrew Pinski <pinskia@physics.uc.edu> - Jakub Jelinek <jakub@redhat.com> - - PR fortran/26246 - * trans-decl.c (gfc_get_symbol_decl, gfc_get_fake_result_decl): Use - gfc_add_decl_to_function rather than gfc_finish_var_decl on length. - -2006-02-13 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/26074 - PR fortran/25103 - * resolve.c (resolve_symbol): Extend the requirement that module - arrays have constant bounds to those in the main program. At the - same time simplify the array bounds, to avoiding trapping parameter - array references, and exclude automatic character length from main - and modules. Rearrange resolve_symbol and resolve_derived to put as - each flavor together, as much as is possible and move all specific - code for flavors FL_VARIABLE, FL_PROCEDURE and FL_PARAMETER into new - functions. - (resolve_fl_var_and_proc, resolve_fl_variable, resolve_fl_procedure): - New functions to do work of resolve_symbol. - (resolve_index_expr): New function that is called from resolved_symbol - and is extracted from resolve_charlen. - (resolve_charlen): Call this new function. - (resolve_fl_derived): Renamed resolve_derived to be consistent with - the naming of the new functions for the other flavours. Change the - charlen checking so that the style is consistent with other similar - checks. Add the generation of the gfc_dt_list, removed from resolve_ - symbol. - - PR fortran/20861 - * resolve.c (resolve_actual_arglist): Prevent internal procedures - from being dummy arguments. - - PR fortran/20871 - * resolve.c (resolve_actual_arglist): Prevent pure but non-intrinsic - procedures from being dummy arguments. - - PR fortran/25083 - * resolve.c (check_data_variable): Add test that data variable is in - COMMON. - - PR fortran/25088 - * resolve.c (resolve_call): Add test that the subroutine does not - have a type. - -2006-02-12 Erik Edelmann <eedelman@gcc.gnu.org> - - PR fortran/25806 - * trans-array.c (gfc_trans_allocate_array_storage): New argument - dealloc; free the temporary only if dealloc is true. - (gfc_trans_allocate_temp_array): New argument bool dealloc, to be - passed onwards to gfc_trans_allocate_array_storage. - (gfc_trans_array_constructor, gfc_conv_loop_setup): Update call to - gfc_trans_allocate_temp_array. - * trans-array.h (gfc_trans_allocate_temp_array): Update function - prototype. - * trans-expr.c (gfc_conv_function_call): Set new argument 'dealloc' - to gfc_trans_allocate_temp_array to false in case of functions - returning pointers. - (gfc_trans_arrayfunc_assign): Return NULL for functions returning - pointers. - -2006-02-10 Steven G. Kargl <kargls@comcast.net> - - PR fortran/20858 - *decl.c (variable_decl): Improve error message. Remove initialization - typespec. Wrap long line. - *expr.c (gfc_check_pointer_assign): Permit checking of type, kind type, - and rank. - *simplify.c (gfc_simplify_null): Ensure type, kind type, and rank - are set. - - -2006-02-10 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> - - PR fortran/14771 - * arith.c (eval_intrinsic): Accept INTRINSIC_PARENTHESES. - * expr.c (check_intrinsic_op): Likewise. - * module.c (mio_expr): Likewise. - -2006-02-09 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> - - * dump-parse-tree.c: Update copyright years. - * matchexp.c: Likewise. - * module.c: Likewise. - - PR fortran/14771 - * gfortran.h (gfc_intrinsic_op): Add INTRINSIC_PARENTHESES. - * dump-parse-tree (gfc_show_expr): Handle INTRINSIC_PARENTHESES. - * expr.c (simplify_intrinsic_op): Treat INTRINSIC_PARENTHESES as - if it were INTRINSIC_UPLUS. - * resolve.c (resolve_operator): Handle INTRINSIC_PARENTHESES. - * match.c (intrinsic_operators): Add INTRINSIC_PARENTHESES. - * matchexp.c (match_primary): Record parentheses surrounding - numeric expressions. - * module.c (intrinsics): Add INTRINSIC_PARENTHESES for module - dumping. - * trans-expr.c (gfc_conv_expr_op): Handle INTRINSIC_PARENTHESES. - -2006-02-09 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/26038 - * trans-stmt.c (gfc_trans_allocate): Provide assumed character length - scalar with missing backend_decl for the hidden dummy charlen. - - PR fortran/25059 - * interface.c (gfc_extend_assign): Remove detection of non-PURE - subroutine in assignment interface, with gfc_error, and put it in - * resolve.c (resolve_code). - - PR fortran/25070 - * interface.c (gfc_procedure_use): Flag rank checking for non- - elemental, contained or interface procedures in call to - (compare_actual_formal), where ranks are checked for assumed - shape arrays.. - -2006-02-08 Francois-Xavier Coudert <coudert@clipper.ens.fr> - - PR libfortran/25425 - * trans-decl.c (gfc_generate_function_code): Add new argument, - pedantic, to set_std call. - -2006-02-06 Thomas Koenig <Thomas.Koenig@online.de> - - PR libfortran/23815 - * gfortran.texi: Document the GFORTRAN_CONVERT_UNIT environment - variable. - * invoke.texi: Mention the "Runtime" chapter. - Document the -fconvert= option. - * gfortran.h: Add options_convert. - * lang.opt: Add fconvert=little-endian, fconvert=big-endian, - fconvert=native and fconvert=swap. - * trans-decl.c (top level): Add gfor_fndecl_set_convert. - (gfc_build_builtin_function_decls): Set gfor_fndecl_set_convert. - (gfc_generate_function_code): If -fconvert was specified, - and this is the main program, add a call to set_convert(). - * options.c: Handle the -fconvert options. - -2006-02-06 Roger Sayle <roger@eyesopen.com> - - * trans-stmt.c (gfc_evaluate_where_mask): Allow the NMASK argument - to be NULL to indicate that the not mask isn't required. - (gfc_trans_where_2): Remove PMASK argument. Avoid calculating the - pending mask for the last clause of a WHERE chain. Update recursive - call. - (gfc_trans_forall_1): Update call to gfc_trans_where_2. - (gfc_trans_where): Likewise. - -2006-02-06 Jakub Jelinek <jakub@redhat.com> - - Backport from gomp-20050608-branch - * trans-decl.c (create_function_arglist): Handle dummy functions. - - * trans-decl.c (gfc_get_symbol_decl): Revert explicit setting of - TYPE_SIZE_UNIT. - (gfc_trans_vla_type_sizes): Also "gimplify" - GFC_TYPE_ARRAY_DATAPTR_TYPE for GFC_DESCRIPTOR_TYPE_P types. - * trans-array.c (gfc_trans_deferred_array): Call - gfc_trans_vla_type_sizes. - - * trans-decl.c (saved_function_decls, saved_parent_function_decls): - Remove unnecessary initialization. - (create_function_arglist): Make sure __result has complete type. - (gfc_get_fake_result_decl): Change current_fake_result_decl into - a tree chain. For entry master, create a separate variable - for each result name. For BT_CHARACTER results, call - gfc_finish_var_decl on length even if it has been already created, - but not pushdecl'ed. - (gfc_trans_vla_type_sizes): For function/entry result, adjust - result value type, not the FUNCTION_TYPE. - (gfc_generate_function_code): Adjust for current_fake_result_decl - changes. - (gfc_trans_deferred_vars): Likewise. Call gfc_trans_vla_type_sizes - even on result if it is assumed-length character. - - * trans-decl.c (gfc_trans_dummy_character): Add SYM argument. - Call gfc_trans_vla_type_sizes. - (gfc_trans_auto_character_variable): Call gfc_trans_vla_type_sizes. - (gfc_trans_vla_one_sizepos, gfc_trans_vla_type_sizes_1, - gfc_trans_vla_type_sizes): New functions. - (gfc_trans_deferred_vars): Adjust gfc_trans_dummy_character - callers. Call gfc_trans_vla_type_sizes on assumed-length - character parameters. - * trans-array.c (gfc_trans_array_bounds, - gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias): Call - gfc_trans_vla_type_sizes. - * trans.h (gfc_trans_vla_type_sizes): New prototype. - - * trans-decl.c (gfc_build_qualified_array): For non-assumed-size - arrays without constant size, create also an index var for - GFC_TYPE_ARRAY_SIZE (type). If the type is incomplete, complete - it as 0..size-1. - (gfc_create_string_length): Don't call gfc_defer_symbol_init - if just creating DECL_ARGUMENTS. - (gfc_get_symbol_decl): Call gfc_finish_var_decl and - gfc_defer_symbol_init even if ts.cl->backend_decl is already - set to a VAR_DECL that doesn't have DECL_CONTEXT yet. - (create_function_arglist): Rework, so that hidden length - arguments for CHARACTER parameters are created together with - the parameters. Resolve ts.cl->backend_decl for CHARACTER - parameters. If the argument is a non-constant length array - or CHARACTER, ensure PARM_DECL has different type than - its DECL_ARG_TYPE. - (generate_local_decl): Call gfc_get_symbol_decl even - for non-referenced non-constant length CHARACTER parameters - after optionally issuing warnings. - * trans-array.c (gfc_trans_array_bounds): Set last stride - to GFC_TYPE_ARRAY_SIZE (type) to initialize it as well. - (gfc_trans_dummy_array_bias): Initialize GFC_TYPE_ARRAY_SIZE (type) - variable as well. - - * trans-expr.c (gfc_conv_expr_val): Fix comment typo. - - * trans-stmt.c (gfc_trans_simple_do): Fix comment. - -2006-02-04 Roger Sayle <roger@eyesopen.com> - - * dependency.c (gfc_check_dependency): Remove unused vars and nvars - arguments. Replace with an "identical" argument. A full array - reference to the same symbol is a dependency if identical is true. - * dependency.h (gfc_check_dependency): Update prototype. - * trans-array.h (gfc_check_dependency): Delete duplicate prototype. - * trans-stmt.c: #include dependency.h for gfc_check_dependency. - (gfc_trans_forall_1): Update calls to gfc_check_dependency. - (gfc_trans_where_2): Likewise. Remove unneeded variables. - (gfc_trans_where_3): New function for simple non-dependent WHEREs. - (gfc_trans_where): Call gfc_trans_where_3 to translate simple - F90-style WHERE statements without internal dependencies. - * Make-lang.in (trans-stmt.o): Depend upon dependency.h. - -2006-02-05 H.J. Lu <hongjiu.lu@intel.com> - - PR fortran/26041 - PR fortran/26064 - * resolve.c (resolve_types): New function. - (resolve_codes): Likewise. - (gfc_resolve): Use them. - -2006-02-05 Roger Sayle <roger@eyesopen.com> - - * trans-stmt.c (gfc_evaluate_where_mask): Use LOGICAL*1 for WHERE - masks instead of LOGICAL*4. - -2006-02-05 Jakub Jelinek <jakub@redhat.com> - - * resolve.c (resolve_symbol): Initialize constructor_expr to NULL. - -2006-02-04 Thomas Koenig <Thomas.Koenig@online.de> - - PR fortran/25075 - check.c (identical_dimen_shape): New function. - (check_dot_product): Use identical_dimen_shape() to check sizes - for dot_product. - (gfc_check_matmul): Likewise. - (gfc_check_merge): Check conformance between tsource and fsource - and between tsource and mask. - (gfc_check_pack): Check conformance between array and mask. - -2006-02-03 Steven G. Kargl <kargls@comcast> - Paul Thomas <pault@gcc.gnu.org> - - PR fortran/20845 - * resolve.c (resolve_symbol): Default initialization of derived type - component reguires the SAVE attribute. - -2006-02-02 Steven G. Kargl <kargls@comcast> - - PR fortran/24958 - match.c (gfc_match_nullify): Free the list from head not tail. - - PR fortran/25072 - * match.c (match_forall_header): Fix internal error caused by bogus - gfc_epxr pointers. - - -2006-01-31 Thomas Koenig <Thomas.Koenig@online.de> - - PR fortran/26039 - expr.c (gfc_check_conformance): Reorder error message - to avoid plural. - check.c(gfc_check_minloc_maxloc): Call gfc_check_conformance - for checking arguments array and mask. - (check_reduction): Likewise. - -2006-01-30 Erik Edelmann <eedelman@gcc.gnu.org> - - PR fortran/24266 - * trans-io.c (set_internal_unit): Check the rank of the - expression node itself instead of its symbol. - -2006-01-29 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/18578 - PR fortran/18579 - PR fortran/20857 - PR fortran/20885 - * interface.c (compare_actual_formal): Error for INTENT(OUT or INOUT) - if actual argument is not a variable. - -2006-01-28 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/17911 - * expr.c (gfc_check_assign, gfc_check_pointer_assign): Emit error if - the lvalue is a use associated procedure. - - PR fortran/20895 - PR fortran/25030 - * expr.c (gfc_check_pointer_assign): Emit error if lvalue and rvalue - character lengths are not the same. Use gfc_dep_compare_expr for the - comparison. - * gfortran.h: Add prototype for gfc_dep_compare_expr. - * dependency.h: Remove prototype for gfc_dep_compare_expr. - -2006-01-27 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/25964 - * resolve.c (resolve_function): Add GFC_ISYM_LOC to the list of - generic_ids exempted from assumed size checking. - -2006-01-27 Jakub Jelinek <jakub@redhat.com> - - PR fortran/25324 - * Make-lang.in (fortran/scanner.o): Depend on toplev.h. - * lang.opt (fpreprocessed): New option. - * scanner.c: Include toplev.h. - (gfc_src_file, gfc_src_preprocessor_lines): New variables. - (preprocessor_line): Unescape filename if there were any - backslashes. - (load_file): If initial and gfc_src_file is not NULL, - use it rather than opening the file. If gfc_src_preprocessor_lines - has non-NULL elements, pass it to preprocessor_line. - (unescape_filename, gfc_read_orig_filename): New functions. - * gfortran.h (gfc_option_t): Add flag_preprocessed. - (gfc_read_orig_filename): New prototype. - * options.c (gfc_init_options): Clear flag_preprocessed. - (gfc_post_options): If flag_preprocessed, call - gfc_read_orig_filename. - (gfc_handle_option): Handle OPT_fpreprocessed. - * lang-specs.h: Pass -fpreprocessed to f951 if preprocessing - sources. - -2006-01-27 Erik Edelmann <eedelman@gcc.gnu.org> - - * symbol.c (free_old_symbol): Fix confusing comment, and add code - to free old_symbol->formal. - -2006-01-26 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/25964 - * resolve.c (resolve_function): Exclude statement functions from - global reference checking. - - PR fortran/25084 - PR fortran/20852 - PR fortran/25085 - PR fortran/25086 - * resolve.c (resolve_function): Declare a gfc_symbol to replace the - references through the symtree to the symbol associated with the - function expresion. Give error on reference to an assumed character - length function is defined in an interface or an external function - that is not a dummy argument. - (resolve_symbol): Give error if an assumed character length function - is array-valued, pointer-valued, pure or recursive. Emit warning - that character(*) value functions are obsolescent in F95. - - PR fortran/25416 - * trans-expr.c (gfc_conv_function_call): The above patch to resolve.c - prevents any assumed character length function call from getting here - except intrinsics such as SPREAD. In this case, ensure that no - segfault occurs from referencing non-existent charlen->length-> - expr_type and provide a backend_decl for the charlen from the charlen - of the first actual argument. - - Cure temp name confusion. - * trans-expr.c (gfc_get_interface_mapping_array): Change name of - temporary from "parm" to "ifm" to avoid clash with temp coming from - trans-array.c. - -2006-01-25 Erik Edelmann <eedelman@gcc.gnu.org> - - PR fortran/25716 - * symbol.c (free_old_symbol): New function. - (gfc_commit_symbols): Use it. - (gfc_commit_symbol): New function. - (gfc_use_derived): Use it. - * gfortran.h: Add prototype for gfc_commit_symbol. - * intrinsic.c (gfc_find_function): Search in 'conversion' - if not found in 'functions'. - (gfc_convert_type_warn): Add a symtree to the new - expression node, and commit the new symtree->n.sym. - * resolve.c (gfc_resolve_index): Make sure typespec is - properly initialized. - -2006-01-23 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/25901 - * decl.c (get_proc_name): Replace subroutine and function attributes - in "already defined" test by the formal arglist pointer being non-NULL. - - Fix regression in testing of admissability of attributes. - * symbol.c (gfc_add_attribute): If the current_attr has non-zero - intent, do not do the check for a dummy being used. - * decl.c (attr_decl1): Add current_attr.intent as the third argument - in the call to gfc_add_attribute. - * gfortran.h: Add the third argument to the prototype for - gfc_add_attribute. - -2006-01-21 Joseph S. Myers <joseph@codesourcery.com> - - * gfortranspec.c (lang_specific_driver): Update copyright notice - date. - -2006-01-21 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/25124 - PR fortran/25625 - * decl.c (get_proc_name): If there is an existing - symbol in the encompassing namespace, call errors - if it is a procedure of the same name or the kind - field is set, indicating a type declaration. - - PR fortran/20881 - PR fortran/23308 - PR fortran/25538 - PR fortran/25710 - * decl.c (add_global_entry): New function to check - for existing global symbol with this name and to - create new one if none exists. - (gfc_match_entry): Call add_global_entry before - matching argument lists for subroutine and function - entries. - * gfortran.h: Prototype for existing function, - global_used. - * resolve.c (resolve_global_procedure): New function - to check global symbols for procedures. - (resolve_call, resolve_function): Calls to this - new function for non-contained and non-module - procedures. - * match.c (match_common): Add check for existing - global symbol, creat one if none exists and emit - error if there is a clash. - * parse.c (global_used): Remove static and use the - gsymbol name rather than the new_block name, so that - the function can be called from resolve.c. - (parse_block_data, parse_module, add_global_procedure): - Improve checks for existing gsymbols. Emit error if - already defined or if references were to another type. - Set defined flag. - - PR fortran/PR24276 - * trans-expr.c (gfc_conv_aliased_arg): New function called by - gfc_conv_function_call that coverts an expression for an aliased - component reference to a derived type array into a temporary array - of the same type as the component. The temporary is passed as an - actual argument for the procedure call and is copied back to the - derived type after the call. - (is_aliased_array): New function that detects an array reference - that is followed by a component reference. - (gfc_conv_function_call): Detect an aliased actual argument with - is_aliased_array and convert it to a temporary and back again - using gfc_conv_aliased_arg. - -2006-01-19 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> - - * gfortranspec.c: Update copyright years. - * trans.c: Likewise. - * trans-array.c: Likewise. - * trans-array.h: Likewise. - * trans-decl.c: Likewise. - * trans-stmt.c: Likewise. - * trans-stmt.h: Likewise. - * trans-types.c: Likewise. - -2006-01-18 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> - - PR fortran/18540 - PR fortran/18937 - * gfortran.h (BBT_HEADER): Move definition up. - (gfc_st_label): Add BBT_HEADER, remove 'prev' and 'next'. - * io.c (format_asterisk): Adapt initializer. - * resolve.c (resolve_branch): Allow FORTRAN 66 cross-block GOTOs - as extension. - (warn_unused_label): Take gfc_st_label label as argument, adapt to - new data structure. - (gfc_resolve): Adapt call to warn_unused_label. - * symbol.c (compare_st_labels): New function. - (gfc_free_st_label, free_st_labels, gfc_get_st_label): Convert to - using balanced binary tree. - * decl.c (match_char_length, gfc_match_old_kind_spec): Do away - with 'cnt'. - (warn_unused_label): Adapt to binary tree. - * match.c (gfc_match_small_literal_int): Only set cnt if non-NULL. - * primary.c (match_kind_param): Do away with cnt. - -2006-01-18 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/20869 - PR fortran/20875 - PR fortran/25024 - * symbol.c (check_conflict): Add pointer valued elemental - functions and internal procedures with the external attribute - to the list of conflicts. - (gfc_add_attribute): New catch-all function to perform the - checking of symbol attributes for attribute declaration - statements. - * decl.c (attr_decl1): Call gfc_add_attribute for each of - - (gfc_match_external, gfc_match_intent, gfc_match_intrinsic, - gfc_match_pointer, gfc_match_dimension, gfc_match_target): - Remove spurious calls to checks in symbol.c. Set the - attribute directly and use the call to attr_decl() for - checking. - * gfortran.h: Add prototype for gfc_add_attribute. - - PR fortran/25785 - * resolve.c (resolve_function): Exclude PRESENT from assumed size - argument checking. Replace strcmp's with comparisons with generic - codes. - -2006-01-16 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> - - * gfortranspec.c (lang_specific_spec_functions): Remove. - -2006-01-16 Richard Guenther <rguenther@suse.de> - - * trans-stmt.c (gfc_trans_if_1): Use fold_buildN and build_int_cst. - (gfc_trans_arithmetic_if): Likewise. - (gfc_trans_simple_do): Likewise. - (gfc_trans_do): Likewise. - (gfc_trans_do_while): Likewise. - (gfc_trans_logical_select): Likewise. - (gfc_trans_forall_loop): Likewise. - (generate_loop_for_temp_to_lhs): Likewise. - (generate_loop_for_rhs_to_temp): Likewise. - (gfc_trans_allocate): Likewise. - * trans.c (gfc_add_expr_to_block): Do not fold expr again. - -2006-01-16 Richard Guenther <rguenther@suse.de> - - * trans-expr.c (gfc_conv_function_call): Use fold_build2. - * trans-stmt.c (gfc_trans_goto): Likewise. Use build_int_cst. - * trans.c (gfc_trans_runtime_check): Don't fold the condition - again. - -2006-01-13 Steven G. Kargl <kargls@comcast.net> - - PR fortran/25756 - * symbol.c (gfc_free_st_label): Give variable meaningful name. Remove - unneeded parenthesis. Fix-up the head of the list (2 lines gleaned - from g95). - -2006-01-13 Diego Novillo <dnovillo@redhat.com> - - * trans.c (gfc_add_expr_to_block): Do not fold tcc_statement - nodes. - -2006-01-11 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> - - * parse.c (next_fixed): Remove superfluous string concatenation. - -2006-01-11 Bernhard Fischer <rep.nop@aon.at> - - PR fortran/25486 - * scanner.c (load_line): use maxlen to determine the line-length used - for padding lines in fixed form. - -2006-01-11 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/25730 - * trans-types.c (copy_dt_decls_ifequal): Copy backend decl for - character lengths. - -2006-01-09 Andrew Pinski <pinskia@physics.uc.edu> - - fortran/24936 - * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Use fold_convert - to avoid type mismatch. - -2006-01-09 Andrew Pinski <pinskia@physics.uc.edu> - - PR fortran/21977 - * trans-decl.c (gfc_generate_function_code): Move the NULLing of - current_fake_result_decl down to below generate_local_vars. - -2006-01-09 Feng Wang <fengwang@nudt.edu.cn> - - PR fortran/12456 - * trans-expr.c (gfc_to_single_character): New function that converts - string to single character if its length is 1. - (gfc_build_compare_string):New function that compare string and handle - single character specially. - (gfc_conv_expr_op): Use gfc_build_compare_string. - (gfc_trans_string_copy): Use gfc_to_single_character. - * trans-intrinsic.c (gfc_conv_intrinsic_strcmp): Use - gfc_build_compare_string. - * trans.h (gfc_build_compare_string): Add prototype. - -2006-01-09 Feng Wang <fengwang@nudt.edu.cn> - - * simplify.c (gfc_simplify_char): Use UCHAR_MAX instead of literal - constant. - (gfc_simplify_ichar): Get the result from unsinged char and in the - range 0 to UCHAR_MAX instead of CHAR_MIN to CHAR_MAX. - -2006-01-08 Erik Edelmann <eedelman@gcc.gnu.org> - - PR fortran/25093 - * resolve.c (resolve_fntype): Check that PUBLIC functions - aren't of PRIVATE type. - -2006-01-07 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de> - - * decl.c (gfc_match_function_decl): Correctly error out in case of - omitted function argument list. - -2006-01-07 Paul Thomas <pault@gcc.gnu.org> - - PR fortran/22146 - * trans-array.c (gfc_reverse_ss): Remove static attribute. - (gfc_walk_elemental_function_args): Replace gfc_expr * argument for - the function call with the corresponding gfc_actual_arglist*. Change - code accordingly. - (gfc_walk_function_expr): Call to gfc_walk_elemental_function_args - now requires the actual argument list instead of the expression for - the function call. - * trans-array.h: Modify the prototype for gfc_walk_elemental_function_args - and provide a prototype for gfc_reverse_ss. - * trans-stmt.h (gfc_trans_call): Add the scalarization code for the case - where an elemental subroutine has array valued actual arguments. - - PR fortran/25029 - PR fortran/21256 - PR fortran/20868 - PR fortran/20870 - * resolve.c (check_assumed_size_reference): New function to check for upper - bound in assumed size array references. - (resolve_assumed_size_actual): New function to do a very restricted scan - of actual argument expressions of those procedures for which incomplete - assumed size array references are not allowed. - (resolve_function, resolve_call): Switch off assumed size checking of - actual arguments, except for elemental procedures and intrinsic - inquiry functions, in some circumstances. - (resolve_variable): Call check_assumed_size_reference. - -2006-01-05 Jerry DeLisle <jvdelisle@gcc.gnu.org> - - PR fortran/24268 - * io.c (next_char_not_space): New function that returns the next - character that is not white space. - (format_lex): Use the new function to skip whitespace within - a format string. - -2006-01-05 Erik Edelmann <eedelman@gcc.gnu.org> - - PR fortran/23675 - * expr.c (gfc_expr_set_symbols_referenced): New function. - * gfortran.h: Add a function prototype for it. - * resolve.c (resolve_function): Use it for - use associated character functions lengths. - * expr.c, gfortran.h, resolve.c: Updated copyright years. - -2006-01-03 Steven G. Kargl <kargls@comcast.net> - - PR fortran/25101 - * resolve.c (resolve_forall_iterators): Check for scalar variables; - Check stride is nonzero. - -2006-01-02 Steven G. Kargl <kargls@comcast.net> - - PR fortran/24640 - * parse.c (next_free): Check for whitespace after the label. - * match.c (gfc_match_small_literal_int): Initialize cnt variable. - -2006-01-01 Steven G. Kargl <kargls@comcast.net> - - * ChangeLog: Split previous years into ... - * ChangeLog-2002: here. - * ChangeLog-2003: here. - * ChangeLog-2004: here. - * ChangeLog-2005: here. + * ChangeLog: Copy to ... + * ChangeLog-2006: here. diff --git a/gcc/fortran/ChangeLog-2006 b/gcc/fortran/ChangeLog-2006 new file mode 100644 index 0000000..de32f26 --- /dev/null +++ b/gcc/fortran/ChangeLog-2006 @@ -0,0 +1,4538 @@ +2006-12-31 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/27900 + * resolve.c (resolve_actual_arglist): If all else fails and a + procedure actual argument has no type, see if a specific + intrinsic matches. + + PR fortran/24325 + * resolve.c (resolve_function): If the function reference is + FL_VARIABLE this is an error. + +2006-12-31 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/23060 + * intrinsic.c (compare_actual_formal ): Distinguish argument + list functions from keywords. + * intrinsic.c (sort_actual): If formal is NULL, the presence of + an argument list function actual is an error. + * trans-expr.c (conv_arglist_function) : New function to + implement argument list functions %VAL, %REF and %LOC. + (gfc_conv_function_call): Call it. + * resolve.c (resolve_actual_arglist): Add arg ptype and check + argument list functions. + (resolve_function, resolve_call): Set value of ptype before + calls to resolve_actual_arglist. + * primary.c (match_arg_list_function): New function. + (gfc_match_actual_arglist): Call it before trying for a + keyword argument. + +2006-12-28 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/30034 + * resolve.c (resolve_formal_arglist): Exclude the test for + pointers and procedures for subroutine arguments as well as + functions. + + PR fortran/30237 + * intrinsic.c (remove_nullargs): Do not pass up arguments with + a label. If the actual has a label and the formal has a type + then emit an error. + +2006-12-27 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR fortran/30014 + *io.c (resolve_tag): Don't issue error for tag_size type not being + default integer size for -std=F2003. Add similar check for + tag_iolength. + *ioparm.def: Change size and iolength parameters to ioint pointer, which + corresponds to GFC_IO_INT on the library side. + +2006-12-27 Gerald Pfeifer <gerald@pfeifer.com> + + * interface.c (compare_actual_formal): Remove unused variable + gsym. + +2006-12-27 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/20896 + * interface.c (check_sym_interfaces): Try to resolve interface + reference as a global symbol, if it is not a nodule procedure. + (compare_actual_formal): Remove call to gfc_find_symbol; if + the expression is already a variable it is locally declared + and this has precedence. + gfortran.h : Add prototype for resolve_global_procedure. + resolve.c (resolve_global_procedure): Remove static attribute + from function declaration. + (resolve_fl_procedure): Remove symtree declaration and the + redundant check for an ambiguous procedure. + + PR fortran/25135 + * module.c (load_generic_interfaces): If the symbol is present + and is not generic it is ambiguous. + +2006-12-22 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/25818 + * trans-array.c (gfc_trans_g77_array): If the variable is + optional or not always present, make the statement conditional + on presence of the argument. + * gfortran.h : Add symbol_attribute not_always_present. + * resolve.c (check_argument_lists): New function to check if + arguments are not present in all entries. + + PR fortran/30084 + * module.c (mio_component_ref): Move treatment of unique name + variables, during output, to fix_mio_expr. + (fix_mio_expr): New function that fixes defective expressions + before they are written to the module file. + (mio_expr): Call the new function. + (resolve_entries): Call check_argument_lists. + +2006-12-21 Roger Sayle <roger@eyesopen.com> + + * trans-array.c (gfc_trans_create_temp_array): When the size is known + at compile-time, avoid an unnecessary conditional assignment. + (gfc_array_init_size): Likewise. + +2006-12-22 Kazu Hirata <kazu@codesourcery.com> + + * interface.c: Fix a comment typo. + +2006-12-21 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/30273 + * dependency.c (gfc_check_dependency): There is no dependency + with EXPR_NULL so always return 0. + +2006-12-21 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/30202 + * trans-array.c (gfc_conv_function_call): Use parmse.expr for + the nullifying of intent(out) arguments rather than the backend + declaration. + +2006-12-20 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> + + PR fortran/25392 + * trans-stmt.c (gfc_trans_return): Fix comment formatting. + * trans-types.c (gfc_sym_type): Don't return early for functions. + Remove special handling for -ff2c. + (gfc_get_function_type): Add special handling for -ff2c. + * trans-decl.c (gfc_create_function_decl): Fix comment formatting. + (gfc_get_fake_result_decl): Make sure we get the right type for + functions. + (gfc_generate_function_code): Convert type of result variable to + type of function. + +2006-12-20 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/30190 + * trans-array.c (gfc_conv_array_ref): Remove gfc_evaluate_now + from the -fbounds-check branch. + +2006-12-20 Roger Sayle <roger@eyesopen.com> + + * trans-expr.c (is_zero_initializer_p): Determine whether a given + constant expression is a zero initializer. + (gfc_trans_zero_assign): New function to attempt to optimize + "a(:) = 0.0" as a call to __builtin_memset (a, 0, sizeof(a)); + (gfc_trans_assignment): Special case array assignments to a + zero initializer constant, using gfc_trans_zero_assign. + +2006-12-20 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/29992 + * interface.c (check_sym_interfaces): Module procedures in a + generic must be use associated or contained in the module. + * decl.c (gfc_match_modproc): Set attribute mod_proc. + * gfortran.h (symbol_attribute): Add mod_proc atribute. + + PR fortran/30081 + * resolve.c (resolve_generic_f, resolve_generic_s): Use + gfc_intrinsic_name to find out if the function is intrinsic + because it does not have to be a generic intrinsic to be + overloaded. + +2006-12-19 Tobias Burnus <burnus@net-b.de> + + PR fortran/39238 + * trans-intrinsic.c: Check for associated(NULL,NULL). + +2006-12-19 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/30236 + * interface.c (compare_interfaces): Handle NULL symbols. + (count_types_test): Count NULL symbols, which correspond to + alternate returns. + + (check_interface1): Change final argument from int to bool + in the function and all references. + +2006-12-18 Roger Sayle <roger@eyesopen.com> + + * trans-array.c (gfc_conv_array_index_offset): Avoid multiplying + index by one, or adding zero to it. + +2006-12-17 Roger Sayle <roger@eyesopen.com> + + PR fortran/30207 + * dependency.c (gfc_full_array_ref_p): New function to test whether + the given array ref specifies the entire array. + (gfc_dep_resolver): Use gfc_full_array_ref_p to analyze AR_FULL + array refs against AR_SECTION array refs, and vice versa. + * dependency.h (gfc_full_array_ref_p): Prototype here. + * trans-array.c (gfc_conv_expr_descriptor): Use gfc_full_array_ref_p. + +2006-12-16 Brooks Moses <brooks.moses@codesourcery.com> + + * gfortran.texi: Added TeX support for document parts; + rearranged existing text into "About GNU Fortran", + "Invoking GNU Fortran", and "Language Reference" parts. + +2006-12-15 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR fortran/30200 + * trans-io.c (build_dt): Move post block for format_expr to end. + +2006-12-14 Richard Guenther <rguenther@suse.de> + Diego Novillo <dnovillo@redhat.com> + + * Make-lang.in (fortran/options.o): Add $(PARAMS_H) dependency. + * options.c (params.h): Include. + (gfc_post_options): Set MAX_ALIASED_VOPS to 50. + +2006-12-13 Richard Guenther <rguenther@suse.de> + + PR fortran/30115 + * trans-array.c (gfc_array_allocate): Adjust for changed + library interface. + (gfc_array_deallocate): Likewise. + (gfc_trans_dealloc_allocated): Likewise. + * trans-stmt.c (gfc_trans_allocate): Likewise. + (gfc_trans_deallocate): Likewise. + * trans-decl.c (gfc_build_builtin_function_decls): Adjust + function declarations to match the library changes. Mark + allocation functions with DECL_IS_MALLOC. + +2006-12-12 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> + + * trans-expr.c (gfc_conv_substring): Check for empty substring. + +2006-12-11 Jan Hubicka <jh@suse.cz> + + * f95-lang.c (gfc_expand_function): Update for renamed varpool + functions. + +2006-12-10 Tobias Burnus <burnus@net-b.de> + + * gfortran.texi: Update Fortran 2003 section. + +2006-12-10 Tobias Burnus <burnus@net-b.de> + + PR fortran/23994 + * interface.c (compare_actual_formal): PROTECTED is incompatible + with intent(out). + * symbol.c (check_conflict): Check for PROTECTED conflicts. + (gfc_add_protected): New function. + (gfc_copy_attr): Copy PROTECTED attribute. + * decl.c (match_attr_spec): Add PROTECTED support. + (gfc_match_protected): New function. + * dump-parse-tree.c (gfc_show_attr): Add PROTECTED support. + * gfortran.h (gfc_symbol): Add protected flag. + Add gfc_add_protected prototype. + * expr.c (gfc_check_pointer_assign): Add PROTECTED support. + * module.c (ab_attribute, attr_bits, mio_symbol_attribute, + mio_symbol_attribute): Add PROTECTED support. + * resolve.c (resolve_equivalence): Add PROTECTED support. + * match.c (gfc_match_assignment,gfc_match_pointer_assignment): + Check PROTECTED attribute. + * match.h: Add gfc_match_protected prototype. + * parse.c (decode_statement): Match PROTECTED statement. + * primary.c (match_variable): Add PROTECTED support. + +2006-12-09 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/29975 + PR fortran/30068 + PR fortran/30096 + * interface.c (compare_type_rank_if): Reject invalid generic + interfaces. + (check_interface1): Give a warning for nonreferred to ambiguous + interfaces. + (check_sym_interfaces): Check whether an ambiguous interface is + referred to. Do not check host associated interfaces since these + cannot be ambiguous with the local versions. + (check_uop_interface, gfc_check_interfaces): Update call to + check_interface1. + * symbol.c (gfc_get_sym_tree, gfc_get_sym_tree): Allow adding + unambiguous procedures to generic interfaces. + * gfortran.h (symbol_attribute): Added use_only and + ambiguous_interfaces. + * module.c (load_need): Set the use_only flag, if needed. + * resolve.c (resolve_fl_procedure): Warn for nonreferred + interfaces. + * expr.c (find_array_section): Fix initializer array contructor. + +2006-12-09 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/29464 + * module.c (load_generic_interfaces): Add symbols for all the + local names of an interface. Share the interface amongst the + symbols. + * gfortran.h : Add generic_copy to symbol_attribute. + * symbol.c (free_symbol): Only free interface if generic_copy + is not set. + +2006-12-09 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/29941 + * resolve.c (resolve_function): Add LEN to the functions not + checked for assumed size actual args. + +2006-12-08 Tobias Burnus <burnus@net-b.de> + + PR fortran/27546 + * trans-decl.c (gfc_create_module_variable): Allow imported + symbols in interface bodies in modules. + +2006-12-06 Tobias Burnus <burnus@net-b.de> + + PR fortran/29711 + * error.c (error_print): Fix handling of printf-style position + specifiers of the form "%3$d". + +2006-12-05 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/30003 + * trans-array.c (gfc_trans_create_temp_array): Set the section + ends to zero. + (gfc_conv_array_transpose): Likewise. + (gfc_conv_section_startstride): Declare an expression for end, + set it from a the array reference and evaluate it for the info + structure. Zero the ends in the ss structure and set end, used + in the bounds check, from the info structure. + trans.h: Add and end array to the gfc_ss_info structure. + +2006-12-05 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/29912 + * trans-expr.c (gfc_trans_arrayfunc_assign): Return NULL if the + lhs and rhs character lengths are not constant and equal for + character array valued functions. + +2006-12-04 Tobias Burnus <burnus@net-b.de> + + PR fortran/29962 + * expr.c (check_intrinsic_op): Allow noninteger exponents for F2003. + +2006-12-04 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/29821 + * resolve.c (resolve_operator): Only return result of + gfc_simplify_expr if expression is constant. + +2006-12-04 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/29916 + * resolve.c (resolve_symbol): Allow host-associated variables + the specification expression of an array-valued function. + * expr.c (check_restricted): Accept host-associated dummy + array indices. + +2006-12-03 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/29642 + * trans-expr.c (gfc_conv_variable): A character expression with + the VALUE attribute needs an address expression; otherwise all + other expressions with this attribute must not be dereferenced. + (gfc_conv_function_call): Pass expressions with the VALUE + attribute by value, using gfc_conv_expr. + * symbol.c (check_conflict): Add strings for INTENT OUT, INOUT + and VALUE. Apply all the constraints associated with the VALUE + attribute. + (gfc_add_value): New function. + (gfc_copy_attr): Call it for VALUE attribute. + * decl.c (match_attr_spec): Include the VALUE attribute. + (gfc_match_value): New function. + * dump-parse-tree.c (gfc_show_attr): Include VALUE. + * gfortran.h : Add value to the symbol_attribute structure and + add a prototype for gfc_add_value + * module.c (mio_internal_string): Include AB_VALUE in enum. + (attr_bits): Provide the VALUE string for it. + (mio_symbol_attribute): Read or apply the VLUE attribute. + * trans-types.c (gfc_sym_type): Variables with the VLAUE + attribute are not passed by reference! + * resolve.c (was_declared): Add value to those that return 1. + (resolve_symbol): Value attribute requires dummy attribute. + * match.h : Add prototype for gfc_match_public. + * parse.c (decode_statement): Try to match a VALUE statement. + +2006-12-01 Thomas Koenig <Thomas.Koenig@online.de> + + PR libfortran/29568 + * gfortran.h (gfc_option_t): Add max_subrecord_length. + (top level): Define MAX_SUBRECORD_LENGTH. + * lang.opt: Add option -fmax-subrecord-length=. + * trans-decl.c: Add new function set_max_subrecord_length. + (gfc_generate_function_code): If we are within the main + program and max_subrecord_length has been set, call + set_max_subrecord_length. + * options.c (gfc_init_options): Add defaults for + max_subrecord_lenght, convert and record_marker. + (gfc_handle_option): Add handling for + -fmax_subrecord_length. + * invoke.texi: Document the new default for + -frecord-marker=<n>. + +2006-11-28 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/29976 + * trans-expr.c (gfc_conv_missing_dummy): Remove build_int_const + and replace with cast to type of se->expr of integer_zero_node. + +2006-11-28 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/20880 + * resolve.c (resolve_fl_procedure): Error if procedure is + ambiguous modified to require attr.referenced. + +2006-11-26 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/29892 + * trans-intrinsic.c (gfc_conv_intrinsic_bound): Use a locus in + the call to gfc_trans_runtime_check. + * trans-array.c (gfc_trans_array_bound_check): Try harder to find + the variable or function name for the runtime error message. + (gfc_trans_dummy_array_bias): Use a locus in the call to + gfc_trans_runtime_check + +2006-11-26 Andrew Pinski <pinskia@gmail.com> + + * trans-decl.c (gfc_build_intrinsic_function_decls): Mark the + pow functions as constant functions. + +2006-11-25 Andrew Pinski <pinskia@gmail.com> + + PR fortran/29982 + * trans-expr.c (gfc_conv_expr_reference): Strip off NOP_EXPRs. + +2006-11-25 Andrew Pinski <pinskia@gmail.com> + + PR fortran/29951 + * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Change to + call memcpy instead of creating a VIEW_CONVERT_EXRP. + +2006-11-25 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/29711 + * error.c (error_print): Handle printf-style position specifiers, + of the form "%3$d". + +2006-11-24 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/20880 + * parse.c (parse_interface): Error if procedure name is that of + encompassing scope. + * resolve.c (resolve_fl_procedure): Error if procedure is + ambiguous. + + PR fortran/29387 + * interface.c (compare_actual_formal): Add missing condition + that 'where' be present for error that asserts that actual + arguments be definable. + +2006-11-24 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + * resolve.c (resolve_actual_arglist): Remove the special case for + CHAR. + * intrinsic.c (add_functions): Remove the special case for CHAR. + +2006-11-22 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de> + + PR fortran/29441 + * intrinsic.c (gfc_intrinsic_func_interface): Always check if + intrinsic is allowed in initialization expression. + +2006-11-22 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/25087 + * resolve.c (resolve_fl_procedure): Add an error if an external + automatic character length function does not have an explicit + interface. + +2006-11-22 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/29652 + * interface.c (check_interface1): Use a local value, instead of + the dummy, as the inner iterator over interface symbols. + +2006-11-21 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/29820 + * trans-array.c (gfc_get_derived_type): Once done, spread the + backend_decl to all identical derived types in all sibling + namespaces. + +2006-11-20 Tobias Burnus <burnus@net-b.de> + + PR fortran/27546 + * primary.c (gfc_match_rvalue): Added IMPORT support. + +2006-11-20 Tobias Burnus <burnus@net-b.de> + + * symbol.c (check_conflict): Add conflict between VOLATILE + attribute and program name. + +2006-11-20 Bernhard Fischer <aldot@gcc.gnu.org> + + PR fortran/24783 + * resolve.c (resolve_variable): Get the implicit type from the + symbols namespace rather than the default namespace. Fix whitespace. + (resolve_formal_arglist, resolve_equivalence): Fix typo. + +2006-11-19 Erik Edelmann <eedelman@gcc.gnu.org> + + * resolve.c (resolve_ref): Check for ALLOCATABLEs to the right of + nonzero rank part references too. + +2006-11-19 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + * module.c (gfc_use_module): Uncomment the ISO_FORTRAN_ENV code. + Check that intrinsic and non-intrinsic modules don't conflict. + (use_iso_fortran_env_module): New function. + (create_int_parameter): New function. + * trans-types.c (gfc_init_kinds): Choose values for + gfc_numeric_storage_size and gfc_character_storage_size. + (gfc_numeric_storage_size, gfc_character_storage_size): New variables. + * resolve.c (resolve_symbol): Do no check intrinsic modules + against the list of intrinsic symbols. + * iso-fortran-env.def: New file. + * gfortran.h (gfc_numeric_storage_size, + gfc_character_storage_size): Add prototypes. + +2006-11-18 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/24285 + * io.c (check_format): Allow dollars everywhere in format, and + issue a warning. + +2006-11-17 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + * gfortran.h (gfc_add_intrinsic_modules_path, + gfc_open_intrinsic_module): New prototypes. + (gfc_add_include_path, gfc_open_included_file): Update prototypes. + * lang.opt: Add -fintrinsic-modules-path option. + * module.c (gfc_match_use): Match the Fortran 2003 form of + USE statement. + (gfc_use_module): Also handle intrinsic modules. + * scanner.c (gfc_directorylist): Add use_for_modules for field. + (intrinsic_modules_dirs): New static variable. + (add_path_to_list, gfc_add_intrinsic_modules_path): New functions. + (gfc_add_include_path): Use the new add_path_to_list helper + function. + (gfc_release_include_path): Free memory for intrinsic_modules_dirs. + (open_included_file, gfc_open_intrinsic_module): New functions. + (gfc_open_included_file): Use the new open_included_file + helper function. + * lang-specs.h: Use the new -fintrinsic-modules-path option. + * parse.c (decode_statement): Do not match the required space + after USE here. + * options.c (gfc_handle_option): Handle the new option. Use new + prototype for gfc_add_include_path. + (gfc_post_options): Use new prototype for gfc_add_include_path. + +2006-11-16 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/29391 + PR fortran/29489 + * simplify.c (simplify_bound): Fix the simplification of + LBOUND/UBOUND intrinsics. + * trans-intrinsic.c (simplify_bound): Fix the logic, and + remove an erroneous assert. + +2006-11-16 Francois-Xavier Coudert <fxcoudert@gcc.gnu,org> + + * trans-decl.c (gfc_get_symbol_decl): Fix formatting. + +2006-11-15 Brooks Moses <brooks.moses@codesourcery.com> + + * data.c: Remove trailing periods from error messages. + * decl.c: Likewise. + * expr.c: Likewise. + * io.c: Likewise. + * match.c: Likewise. + * module.c: Likewise. + * options.c: Likewise. + * resolve.c: Likewise. + * symbol.c: Likewise. + * trans-io.c: Likewise. + +2006-11-15 Brooks Moses <brooks.moses@codesourcery.com> + + * lang.opt: Rearrange entries back into ASCII order. + +2006-11-15 Tobias Burnus <burnus@net-b.de> + + * parse.c (parse_contained): Fix indention + of one line. + +2006-11-15 Tobias Burnus <burnus@net-b.de> + + PR fortran/27546 + * decl.c (gfc_match_import,variable_decl): + Add IMPORT support. + (gfc_match_kind_spec): Fix typo in gfc_error. + * gfortran.h (gfc_namespace, gfc_statement): + Add IMPORT support. + * parse.c (decode_statement,gfc_ascii_statement, + verify_st_order): Add IMPORT support. + * match.h: Add gfc_match_import. + * gfortran.texi: Add IMPORT to the supported + Fortran 2003 features. + +2006-11-15 Tobias Burnus <burnus@net-b.de> + Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> + + PR fortran/27588 + * trans-expr.c (gfc_conv_substring): Add bounds checking. + (gfc_conv_variable, gfc_conv_substring_expr): Pass more + arguments to gfc_conv_substring. + +2006-11-15 Tobias Burnus <burnus@net-b.de> + + PR fortran/29806 + * parse.c (parse_contained): Check for empty contains statement. + +2006-11-15 Bud Davis <bdavis9659@sbcglobal.net> + + PR fortran/28974 + * gfortran.h (gfc_expr): Add element which holds a splay-tree + for the exclusive purpose of quick access to a constructor by + offset. + * data.c (find_con_by_offset): Use the splay tree for the search. + (gfc_assign_data_value): Use the splay tree. + (gfc_assign_data_value_range): ditto. + * expr.c (gfc_get_expr): Initialize new element to null. + (gfc_free_expr): Delete splay tree when deleting gfc_expr. + +2006-11-14 Brooks Moses <brooks.moses@codesourcery.com> + + PR fortran/29702 + * error.c (show_loci): Move column-offset calculation to + show_locus. + (show_locus): Remove blank lines before "Included in" + lines, clean up code, calculate column-offsets, print + column number is error-header lines as appropriate. + (error_integer): (new function) Print integer to error + buffer. + (error_print): Use error_integer, avoid possible buffer + overflows from buggy error formats. + +2006-11-14 Brooks Moses <brooks.moses@codesourcery.com> + + * gfortran.h (GFC_MAX_LINE): Remove constant definition. + (gfc_option_t): Clarify comments. + * options.c: Set default line length limits to actual default + values, rather than flag values. + * scanner.c: Eliminate checking and handling of the + fixed/free_line_length flag values. + +2006-11-14 Brooks Moses <brooks.moses@codesourcery.com> + + * lang.opt: Remove -fno-backend option. + * gfortran.h (gfc_option_t): Remove flag_no_backend. + * options.c (gfc_init_options): Remove flag_no_backend. + (gfc_handle_option): Remove -fno-backend option handler. + * parse.c (gfc_parse_file): Remove references to + gfc_option.flag_no_backend. + +2006-11-14 Tobias Burnus <burnus@net-b.de> + + * match.c (gfc_match_namelist): Add missing space to + error message. + +2006-11-14 Tobias Burnus <burnus@net-b.de> + + PR fortran/29657 + * symbol.c (check_conflict): Add further conflicts. + +2006-11-13 Jakub Jelinek <jakub@redhat.com> + + PR fortran/29759 + * fortran/scanner.c (skip_free_comments): Clear openmp_flag + before returning true. + +2006-11-12 Andrew Pinski <andrew_pinski@playstation.sony.com> + + PR fortran/26994 + * trans-expr.c (gfc_conv_expr_reference): Set TREE_STATIC on the + new CONST_DECL. + +2006-11-11 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> + + * array.c: Add 2006 to copyright years. + * data.c: Same. + * interface.c: Same. + * misc.c: Same. + * trans-io.c: Same. + +2006-11-11 Richard Guenther <rguenther@suse.de> + + * trans-intrinsic.c (enum rounding_mode): New enum. + (build_fix_expr, gfc_conv_intrinsic_aint, gfc_conv_intrinsic_mod, + gfc_conv_intrinsic_function): Use it instead of FIX_CEIL_EXPR, + FIX_FLOOR_EXPR, FIX_ROUND_EXPR and FIX_TRUNC_EXPR. + +2006-11-10 Brooks Moses <brooks.moses@codesourcery.com> + + * lang.opt (-fmodule-private): Remove option. + * gfortran.h (gfc_option_t): Remove module_access_private flag. + * options.c (gfc_init_options): Remove initialization for it. + (gfc_handle_option): Remove handling for -fmodule-private. + * module.c (gfc_check_access): Add comments, remove check for + gfc_option.flag_module_access_private. + +2006-11-10 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/29758 + * check.c (gfc_check_reshape): Check that there are enough + elements in the source array as to be able to fill an array + defined by shape, when pad is absent. + +2006-11-10 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/29315 + * trans-expr.c (is_aliased_array): Treat correctly the case where the + component is itself and array or array reference. + +2006-11-09 Brooks Moses <brooks.moses@codesourcery.com> + + * check.c (same_type_check): Typo fix in comment. + +2006-11-09 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/29431 + * trans-array.c (get_array_ctor_strlen): If we fall through to + default, use a constant character length if it is available. + +2006-11-09 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/29744 + * trans-types.c (gfc_get_derived_type): Ensure that the + proc_name namespace is not the same as the owner namespace and + that identical derived types in the same namespace share the + same backend_decl. + +2006-11-09 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/29699 + * trans-array.c (structure_alloc_comps): Detect pointers to + arrays and use indirect reference to declaration. + * resolve.c (resolve_fl_variable): Tidy up condition. + (resolve_symbol): The same and only add initialization code if + the symbol is referenced. + * trans-decl.c (gfc_trans_deferred_vars): Call gfc_trans_ + deferred_array before gfc_trans_auto_array_allocation. + + PR fortran/21370 + * symbol.c (check_done): Remove. + (gfc_add_attribute): Remove reference to check_done and remove + the argument attr_intent. + (gfc_add_allocatable, gfc_add_dimension, gfc_add_external, + gfc_add_intrinsic, gfc_add_optional, gfc_add_pointer, + gfc_add_cray_pointer, gfc_add_cray_pointee, gfc_add_result, + gfc_add_target, gfc_add_in_common, gfc_add_elemental, + gfc_add_pure, gfc_add_recursive, gfc_add_procedure, + gfc_add_type): Remove references to check_done. + * decl.c (attr_decl1): Eliminate third argument in call to + gfc_add_attribute. + * gfortran.h : Change prototype for gfc_add_attribute. + +2006-11-08 Brooks Moses <brooks.moses@codesourcery.com> + + * invoke.texi: Added documentation for -fmax-errors option. + +2006-11-08 Brooks Moses <brooks.moses@codesourcery.com> + + * lang.opt: Add -fmax-errors= option. + * gfortran.h (gfc_option_t): Add max_errors element. + * options.c (gfc_init_options): Set max_errors default value + to 25. + (gfc_handle_options): Assign -fmax_errors value to + gfc_option.max_errors. + * error.c (gfc_increment_error_count): New function, which + also checks whether the error count exceeds max_errors. + (gfc_warning): Use it. + (gfc_warning_now): Use it. + (gfc_notify_std): Use it. + (gfc_error): Use it. + (gfc_error_now): Use it. + (gfc_error_check): Use it. + +2006-11-08 Brooks Moses <brooks.moses@codesourcery.com> + + * lang.opt: Remove non-working -qkind= option. + * gfortran.h (gfc_option_t): Remove q_kind member. + * options.c (gfc_init_options): Remove q_kind initialization. + (gfc_handle_option): Remove -qkind= option handling. + * primary.c: (match_real_constant): Remove 'Q' exponent. + +2006-11-08 Tobias Burnus <burnus@net-b.de> + + * gfortran.texi: Add volatile and internal-file + namelist to Fortran 2003 status. + * intrinsic.texi: Correct CHMOD entry. + +2006-11-07 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/29539 + PR fortran/29634 + * decl.c (variable_decl): Add test for presence of proc_name. + * error.c (gfc_error_flag_test): New function. + * gfortran.h : Prototype for gfc_error_flag_test. + +2006-11-07 Tobias Burnus <burnus@net-b.de> + + PR fortran/29601 + * symbol.c (check_conflict, gfc_add_volatile): Add volatile support. + * decl.c (match_attr_spec, gfc_match_volatile): Add volatile support. + * gfortran.h (symbol_attribute): Add volatile_ to struct. + * resolve.c (was_declared): Add volatile support. + * trans-decl.c (gfc_finish_var_decl): Add volatile support. + * match.h: Declare gfc_match_volatile. + * parse.c (decode_statement): Recognize volatile. + * modules.c (ab_attribute, attr_bits, mio_symbol_attribute): + Add volatile support. + * dump-parse-tree.c (gfc_show_attr): Add volatile support. + +2006-11-06 Tobias Burnus <burnus@net-b.de> + + * decl.c (match_attr_spec, gfc_match_enum): Unify gfc_notify_std + message for GFC_STD_F2003. + * array.c (gfc_match_array_constructor): Unify gfc_notify_std + message for GFC_STD_F2003. + * io.c (check_io_constraints): Unify gfc_notify_std message for + GFC_STD_F2003. + * resolve.c (resolve_actual_arglist): Unify gfc_notify_std message + for GFC_STD_F2003. + +2006-11-06 Brooks Moses <brooks.moses@codesourcery.com> + + * intrinsic.texi: Added documentation for FTELL, GETLOG, and + HOSTNM intrinsics. + +2006-11-06 Erik Edelmann <eedelman@gcc.gnu.org> + + PR fortran/29630 + PR fortran/29679 + * expr.c (find_array_section): Support vector subscripts. Don't + add sizes for dimen_type == DIMEN_ELEMENT to the shape array. + +2006-11-05 Bernhard Fischer <aldot@gcc.gnu.org> + + PR fortran/21061 + * error.c (gfc_warning): If warnings_are_errors then treat + warnings as errors with respect to the exit code. + (gfc_notify_std): Ditto. + (gfc_warning_now): Ditto. + +2006-11-05 Francois-Xavier Coudert <fxcoudert@gcc.gnu,org> + Paul Thomas <pault@gcc.gnu.org> + + PR fortran/24518 + * trans-intrinsic.c (gfc_conv_intrinsic_mod): Use built_in fmod + for both MOD and MODULO, if it is available. + + PR fortran/29565 + * trans-expr.c (gfc_conv_aliased_arg): For an INTENT(OUT), save + the declarations from the unused loops by merging the block + scope for each; this ensures that the temporary is declared. + +2006-11-04 Brooks Moses <brooks.moses@codesourcery.com> + + * error.c (show_locus): Add trailing colon in error messages. + (error_print): Avoid leading space in error lines. + +2006-11-04 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/29713 + * expr.c (gfc_simplify_expr): Correct memory allocation. + +2006-11-02 Brooks Moses <brooks.moses@codesourcery.com> + + * error.c (show_locus): Remove "In file" from error messages. + +2006-10-31 Geoffrey Keating <geoffk@apple.com> + + * trans-decl.c (gfc_generate_constructors): Update for removal + of get_file_function_name. + +2006-11-01 Bernhard Fischer <aldot@gcc.gnu.org> + + PR fortran/29537 + * trans-common.c (gfc_trans_common): If the blank common is + in a procedure or program without a name then proc_name is null, so + use the locus of the common. + (gfc_sym_mangled_common_id): Fix whitespace. + * match.c (gfc_match_common): Emit warning about blank common in + block data. + +2006-10-31 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/29067 + * decl.c (gfc_set_constant_character_len): NULL-terminate the + character constant string. + * data.c (create_character_intializer): Likewise. + * expr.c (gfc_simplify_expr): NULL-terminate the substring + character constant. + * primary.c (match_hollerith_constant): NULL-terminate the + character constant string. + +2006-10-31 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/29387 + * trans-intrinsic.c (gfc_conv_intrinsic_len): Rearrange to have + a specific case for EXPR_VARIABLE and, in default, build an ss + to call gfc_conv_expr_descriptor for array expressions.. + + PR fortran/29490 + * trans-expr.c (gfc_set_interface_mapping_bounds): In the case + that GFC_TYPE_ARRAY_LBOUND is not available, use descriptor + values for it and GFC_TYPE_ARRAY_UBOUND. + + PR fortran/29641 + * trans-types.c (gfc_get_derived_type): If the derived type + namespace has neither a parent nor a proc_name, set NULL for + the search namespace. + +2006-10-30 Tobias Burnus <burnus@net-b.de> + + PR fortran/29452 + * io.c (check_io_constraints): Fix keyword string comparison. + +2006-10-30 Andrew Pinski <pinskia@gmail.com> + + PR fortran/29410 + * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): + Change over to create VIEW_CONVERT_EXPR instead of using an + ADDR_EXPR, a cast and then an indirect reference + +2006-10-29 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + * trans-intrinsic.c (gfc_conv_intrinsic_loc): Make LOC return a + signed integer node. + +2006-10-29 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR fortran/17741 + * decl.c (get_proc_name): Bump current namespace refs count. + +2006-10-29 Jakub Jelinek <jakub@redhat.com> + + PR fortran/29629 + * trans-openmp.c (gfc_trans_omp_array_reduction): Set attr.flavor + of init_val_sym and outer_sym to FL_VARIABLE. + +2006-10-29 Kazu Hirata <kazu@codesourcery.com> + + * intrinsic.texi: Fix a typo. + +2006-10-27 Steven G. Kargl <kargl@gcc.gnu.org> + + * gfortran.h: Remove GFC_MPFR_TOO_OLD. + * arith.c (arctangent2): Remove function + (gfc_check_real_range): Remove subnormal kludge. + * arith.h: Remove arctangent2 prototype. + * simplify.c: (gfc_simplify_atan2): Remove use of arctangent2. + (gfc_simplify_exponent, gfc_simplify_log, gfc_simplify_nearest, + gfc_simplify_rrspacing, gfc_simplify_spacing): Remove mpfr kludges. + +2006-10-28 Tobias Burnus <burnus@net-b.de> + + PR fortran/28224 + * io.c (check_io_constraints): Allow namelists + for internal files for Fortran 2003. + +2006-10-27 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR fortran/27954 + * decl.c (gfc_free_data_all): New function to free all data structures + after errors in DATA statements and declarations. + (top_var_list): Use new function.(top_val_list): Use new function. + (gfc_match_data_decl): Use new function. + * misc.c (gfc_typename): Fixed incorrect function name in error text. + +2006-10-24 Erik Edelmann <eedelman@gcc.gnu.org> + + PR fortran/29393 + * expr.c (simplify_parameter_variable): Keep rank of original + expression. + +2006-10-23 Rafael Avila de Espindola <rafael.espindola@gmail.com> + + * Make-lang.in (f951$(exeext)): Depend on and link with attribs.o. + * trans.h (builtin_function): Rename to gfc_builtin_function. + Change the signature. + * 95-lang.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as + gfc_builtin_function. + (builtin_function): Rename to gfc_builtin_function. Move common + code to builtin_function. + (gfc_define_builtin): Replace calls to builtin_function with + gfc_define_builtin. + +2006-10-22 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/26025 + * lang.opt: Add -fexternal-blas and -fblas-matmul-limit options. + * options.c (gfc_init_options): Initialize new flags. + (gfc_handle_option): Handle new flags. + * gfortran.h (gfc_option): Add flag_external_blas and + blas_matmul_limit flags. + * trans-expr.c (gfc_conv_function_call): Use new argument + append_args, appending it at the end of the argument list + built for a function call. + * trans-stmt.c (gfc_trans_call): Use NULL_TREE for the new + append_args argument to gfc_trans_call. + * trans.h (gfc_conv_function_call): Update prototype. + * trans-decl.c (gfc_build_intrinsic_function_decls): Add + prototypes for BLAS ?gemm routines. + * trans-intrinsic.c (gfc_conv_intrinsic_funcall): Generate the + extra arguments given to the library matmul function, and give + them to gfc_conv_function_call. + * invoke.texi: Add documentation for -fexternal-blas and + -fblas-matmul-limit. + +2006-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * Make-lang.in (F95_LIBS): Delete. + * f951$(exeext): Use $(LIBS) instead of $(F95_LIBS). + * config-lang.in (need_gmp): Delete. + +2006-10-19 Brooks Moses <bmoses@stanford.edu> + + * invoke.texi: Fixed "denormal" typo. + +2006-10-19 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/29216 + PR fortran/29314 + * gfortran.h : Add EXEC_INIT_ASSIGN. + * dump-parse-tree.c (gfc_show_code_node): The same. + * trans-openmp.c (gfc_trans_omp_array_reduction): Set new + argument for gfc_trans_assignment to false. + * trans-stmt.c (gfc_trans_forall_1): The same. + * trans-expr.c (gfc_conv_function_call, gfc_trans_assign, + gfc_trans_arrayfunc_assign, gfc_trans_assignment): The + same. In the latter function, use the new flag to stop + the checking of the lhs for deallocation. + (gfc_trans_init_assign): New function. + * trans-stmt.h : Add prototype for gfc_trans_init_assign. + * trans.c (gfc_trans_code): Implement EXEC_INIT_ASSIGN. + * trans.h : Add new boolean argument to the prototype of + gfc_trans_assignment. + * resolve.c (resolve_allocate_exp): Replace EXEC_ASSIGN by + EXEC_INIT_ASSIGN. + (resolve_code): EXEC_INIT_ASSIGN does not need resolution. + (apply_default_init): New function. + (resolve_symbol): Call it for derived types that become + defined but which do not already have an initialization + expression.. + * st.c (gfc_free_statement): Include EXEC_INIT_ASSIGN. + +2006-10-16 Tobias Burnus <burnus@net-b.de> + + * primary.c: Revert 'significand'-to-'significant' comment change. + * invoke.texi (Warning Options): Minor cleanup for + -Wimplicit-interface. + +2006-10-17 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/29451 + * trans-array.c (gfc_trans_array_bounds): Test for and set + negative stride of a non-constant bound array to zero. + + PR fortran/29392 + * data.c (create_character_intializer): Copy and simplify + the expressions for the start and end of a sub-string + reference. + +2006-10-16 Kaz Kojima <kkojima@rr.iij4u.or.jp> + + * io.c (gfc_match_close): Ensure that status is terminated by + a NULL element. + +2006-10-16 Tobias Burnus <burnus@net-b.de> + + * trans-stmt.c: Fix a typo + * invoke.texi: Fix typos + * resolve.c: Fix a comment typo + * trans-decl.c: Fix a comment typo + * primary.c: Fix a comment typo + +2006-10-15 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/29403 + * io.c (match_io): Check for a default-char-expr for PRINT format. + +2006-10-15 Bernhard Fischer <aldot@gcc.gnu.org> + + PR fortran/24767 + * lang.opt (Wunused-labels): Remove. + * options.c: Remove references to gfc_option.warn_unused_labels. + * gfortran.h: Remove variable warn_unused_labels. + * resolve.c (warn_unused_fortran_label) : Use warn_unused_label + instead of gfc_option.warn_unused_labels. + * invoke.texi: Remove documentation of -Wunused-labels. + +2006-10-14 Tobias Burnus <burnus@net-b.de> + + * gfortran.texi: Add link to GFortran apps + * intrinsic.texi: Updated documentation of ACCESS and CHMOD + +2006-10-14 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR fortran/19261 + * scanner.c (load_line): Add checks for illegal use of '&' and issue + warnings. Issue errors with -pedantic. + +2006-10-14 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/29371 + * trans-expr.c (gfc_trans_pointer_assignment): Add the expression + for the assignment of null to the data field to se->pre, rather + than block. + +2006-10-14 Kazu Hirata <kazu@codesourcery.com> + + * intrinsic.texi: Fix typos. + * trans-array.c: Fix a comment typo. + +2006-10-13 Brooks Moses <bmoses@stanford.edu> + + * intrinsic.texi (STAT): Reverted a format in example code to + octal; noted this in accompanying string. + +2006-10-13 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/29373 + * decl.c (get_proc_name, gfc_match_function_decl): Add + attr.implicit_type to conditions that throw error for + existing explicit interface and that allow new type- + spec to be applied. + + PR fortran/29407 + * resolve.c (resolve_fl_namelist): Do not check for + namelist/procedure conflict, if the symbol corresponds + to a good local variable declaration. + + PR fortran/27701 + * decl.c (get_proc_name): Replace the detection of a declared + procedure by the presence of a formal argument list by the + attributes of the symbol and the presence of an explicit + interface. + + PR fortran/29232 + * resolve.c (resolve_fl_variable): See if the host association + of a derived type is blocked by the presence of another type I + object in the current namespace. + + PR fortran/29364 + * resolve.c (resolve_fl_derived): Check for the presence of + the derived type for a derived type component. + + PR fortran/24398 + * module.c (gfc_use_module): Check that the first words in a + module file are 'GFORTRAN module'. + + PR fortran/29422 + * resolve.c (resolve_transfer): Test functions for suitability + for IO, as well as variables. + + PR fortran/29428 + * trans-expr.c (gfc_trans_scalar_assign): Remove nullify of + rhs expression. + +2006-10-13 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/29391 + * trans-intrinsic.c (gfc_conv_intrinsic_bound): Generate correct + code for LBOUND and UBOUND intrinsics. + +2006-10-13 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/21435 + * io.c (compare_to_allowed_values): New function. + (gfc_match_open): Add checks for constant values of specifiers. + (gfc_match_close): Add checks for constant values of the STATUS + specifier. + +2006-10-12 Brooks Moses <bmoses@stanford.edu> + + * intrinsic.texi (STAT): Fixed a format typo in sample code. + +2006-10-12 Brooks Moses <bmoses@stanford.edu> + + * intrinsic.texi (STAT): Shortened lines in sample code. + +2006-10-11 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de> + + * gfortran.h (gfc_show_actual_arglist, gfc_show_array_ref, + gfc_show_array_spec, gfc_show_attr, gfc_show_code, + gfc_show_components, gfc_show_constructor, gfc_show_equiv, + gfc_show_expr, gfc_show_namelist, gfc_show_ref, gfc_show_symbol, + gfc_show_typespec): Add prototypes. + * dump-parse-tree.c (gfc_show_actual_arglist, gfc_show_array_ref, + gfc_show_array_spec, gfc_show_attr, gfc_show_code, + gfc_show_components, gfc_show_constructor, gfc_show_equiv, + gfc_show_expr, gfc_show_namelist, gfc_show_ref, gfc_show_symbol, + gfc_show_typespec): Remove 'static' from declaration. + +2006-10-10 Brooks Moses <bmoses@stanford.edu> + + * invoke.texi, gfortran.texi: Corrected erronous dashes. + +2006-10-10 Brooks Moses <bmoses@stanford.edu> + + * Make-lang.in: Added "fortran.pdf", "gfortran.pdf" target + support. + +2006-10-10 Daniel Franke <franke.daniel@gmail.com> + + * intrinsic.texi: added documentation for FSTAT, GETARG,GET_COMMAND, + GET_COMMAND_ARGUMENT, GETENV, GET_ENVIRONMENT_VARIABLE, IAND, IARGC, + LSTAT and STAT, removed the reference to PR19292 from ACCESS, CHMOD, + GMTIME, LSHIFT, LTIME, RSHIFT. + +2006-10-10 Brooks Moses <bmoses@stanford.edu> + + * gfortran.texi (Standards): Update to current status. + +2006-10-09 Brooks Moses <bmoses@stanford.edu> + + * Make-lang.in: Added intrinsic.texi to GFORTRAN_TEXI + dependences. + +2006-10-09 Brooks Moses <bmoses@stanford.edu> + + * intrinsic.texi (MOVE_ALLOC): changed "Options" to "Standards". + +2006-10-09 Steven G. Kargl <kargl@gcc.gnu.org> + + * gfortran.h: Define GFC_MPFR_TOO_OLD via mpfr version info. + * arith.c (arctangent, gfc_check_real_range): Use it. + * simplify.c (gfc_simplify_atan2, gfc_simplify_exponent, + gfc_simplify_log, gfc_simplify_nearest): Use it. + + PR fortran/15441 + PR fortran/29312 + * iresolve.c (gfc_resolve_rrspacing): Give rrspacing library + routine hidden precision argument. + (gfc_resolve_spacing): Give spacing library routine hidden + precision, emin - 1, and tiny(x) arguments. + * simplify.c (gfc_simplify_nearest): Remove explicit subnormalization. + (gfc_simplify_rrspacing): Implement formula from Fortran 95 standard. + (gfc_simplify_spacing): Implement formula from Fortran 2003 standard. + * trans-intrinsic.c (gfc_intrinsic_map_t) Declare rrspacing and + spacing via LIBF_FUNCTION + (prepare_arg_info, call_builtin_clz, gfc_conv_intrinsic_spacing, + gfc_conv_intrinsic_rrspacing): Remove functions. + (gfc_conv_intrinsic_function): Remove calls to + gfc_conv_intrinsic_spacing and gfc_conv_intrinsic_rrspacing. + * f95-lang.c (gfc_init_builtin_functions): Remove __builtin_clz, + __builtin_clzl and __builtin_clzll + +2006-10-09 Richard Henderson <rth@redhat.com> + + Revert emutls patch. + +2006-10-09 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + * intrinsic.c (add_sym_0s, add_sym_1s, add_sym_2s, add_sym_3s, + add_sym_4s, add_sym_5s, add_functions): Use macro ACTUAL_NO, + ACTUAL_YES, NOT_ELEMENTAL and ELEMENTAL instead of constants + 0 and 1 as second and third arguments to add_sym* functions. + +2006-10-08 Erik Edelmann <edelmann@gcc.gnu.org> + Paul Thomas <pault@gcc.gnu.org> + + PR fortran/20541 + * interface.c (gfc_compare_derived_types): Add comparison of + the allocatable field. + * intrinsic.c (add_subroutines): Add MOVE_ALLOC. + * trans-expr.c (gfc_conv_aliased_arg, gfc_trans_subarray_assign, + gfc_trans_subcomponent_assign, gfc_conv_string_parameter, + gfc_trans_scalar_assign): Add extra arguments l_is_temp + and r_is_var to references to latter function. + (gfc_conv_function_call): Add enum for types of argument and + an associated variable parm_kind. Deallocate components of + INTENT(OUT) and non-variable arrays. + (gfc_trans_subcomponent_assign): Add block to assign arrays + to allocatable components. + (gfc_trans_scalar_assign): Add block to handle assignments of + derived types with allocatable components, using the above new + arguments to control allocation/deallocation of memory and the + copying of allocated arrays. + * trans-array.c (gfc_array_allocate): Remove old identification + of pointer and replace with that of an allocatable array. Add + nullify of structures with allocatable components. + (gfc_conv_array_initializer): Treat EXPR_NULL. + (gfc_conv_array_parameter): Deallocate allocatable components + of non-variable structures. + (gfc_trans_dealloc_allocated): Use second argument of library + deallocate to inhibit, without error, freeing NULL pointers. + (get_full_array_size): New function to return the size of a + full array. + (gfc_duplicate_allocatable): New function to allocate and copy + allocated data. + (structure_alloc_comps): New recursive function to deallocate, + nullify or copy allocatable components. + (gfc_nullify_alloc_comp, gfc_deallocate_alloc_comp, + gfc_copy_alloc_comp): New interface functions to call previous. + (gfc_trans_deferred_array): Add the code to nullify allocatable + components, when entering scope, and to deallocate them on + leaving. Do not call gfc_trans_static_array_pointer and return + for structures with allocatable components and default + initializers. + * symbol.c (gfc_set_component_attr): Set allocatable field. + (gfc_get_component_attr): Set the allocatable attribute. + * intrinsic.h : Prototype for gfc_check_move_alloc. + * decl.c (build_struct): Apply TR15581 constraints for + allocatable components. + (variable_decl): Default initializer is always NULL for + allocatable components. + (match_attr_spec): Allow, or not, allocatable components, + according to the standard in force. + * trans-array.h : Prototypes for gfc_nullify_alloc_comp, + gfc_deallocate_alloc_comp, gfc_copy_alloc_comp and + gfc_duplicate_allocatable. + * gfortran.texi : Add mention of TR15581 extensions. + * gfortran.h : Add attribute alloc_comp, add + gfc_components field allocatable and add the prototype + for gfc_expr_to_initialize. + * trans-stmt.c (generate_loop_for_temp_to_lhs, + generate_loop_for_rhs_to_temp, gfc_trans_where_assign, + gfc_trans_where_3): Add extra arguments to calls to + gfc_trans_scalar_assign and set appropriately. + (gfc_trans_allocate): Nullify allocatable components. + (gfc_trans_deallocate): Deallocate to ultimate allocatable + components but stop at ultimate pointer components. + * module.c (mio_symbol_attribute, mio_symbol_attribute, + mio_component): Add module support for allocatable + components. + * trans-types.c (gfc_get_derived_type): Treat allocatable + components. + * trans.h : Add two boolean arguments to + gfc_trans_scalar_assign. + * resolve.c (resolve_structure_cons): Check conformance of + constructor element and the component. + (resolve_allocate_expr): Add expression to nullify the + constructor expression for allocatable components. + (resolve_transfer): Inhibit I/O of derived types with + allocatable components. + (resolve_fl_derived): Skip check of bounds of allocatable + components. + * trans-decl.c (gfc_get_symbol_decl): Add derived types + with allocatable components to deferred variable. + (gfc_trans_deferred_vars): Make calls for derived types + with allocatable components to gfc_trans_deferred_array. + (gfc_generate_function_code): Nullify allocatable + component function result on entry. + * parse.c (parse_derived): Set symbol attr.allocatable if + allocatable components are present. + * check.c (gfc_check_allocated): Enforce attr.allocatable + for intrinsic arguments. + (gfc_check_move_alloc): Check arguments of move_alloc. + * primary.c (gfc_variable_attr): Set allocatable attribute. + * intrinsic.texi : Add index entry and section for + for move_alloc. + +2006-10-08 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/29115 + * resolve.c (resolve_structure_cons): It is an error if the + pointer component elements of a derived type constructor are + not pointer or target. + + + PR fortran/29211 + * trans-stmt.c (generate_loop_for_temp_to_lhs, + generate_loop_for_rhs_to_temp): Provide a string length for + the temporary by copying that of the other side of the scalar + assignment. + +2006-10-08 Tobias Burnus <burnus@net-b.de> + + PR fortran/28585 + * intrinsic.c (add_functions): Add new_line Fortran 2003 intrinsic. + * intrinsic.h: Add gfc_simplify_new_line and gfc_check_new_line + prototypes. + * check.c (gfc_check_new_line): New function. + * simplify.c (gfc_simplify_new_line): New function. + * intrinsic.texi: Document new_line intrinsic. + +2006-10-07 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/16580 + PR fortran/29288 + * gcc/fortran/intrinsic.c (add_sym): Define the actual_ok when a + gfc_intrinsic_sym structure is filled. + (gfc_intrinsic_actual_ok): New function. + (add_sym_0s, add_sym_1s, add_sym_2s, add_sym_3s, add_sym_4s, + add_sym_5s): Intrinsic subroutines are not allowed as actual + arguments, so we remove argument actual_ok. + (add_functions): Correct the values for actual_ok of all intrinsics. + Add comments for gfc_check_access_func and gfc_resolve_index_func. + (add_subroutines): Remove the actual_ok argument, which was never used. + * gcc/fortran/intrinsic.h (gfc_intrinsic_actual_ok): New prototype. + * gcc/fortran/gfortran.h (gfc_resolve_index_func): New prototype. + * gcc/fortran/resolve.c (resolve_actual_arglist): Check whether + an intrinsic used as an argument list is allowed there. + * gcc/fortran/iresolve.c (gfc_resolve_index_func): New function. + (gfc_resolve_len): Change intrinsic function name to agree with + libgfortran. + * gcc/fortran/trans-decl.c (gfc_get_extern_function_decl): Add + new case, because some specific intrinsics take 3 arguments. + * gcc/fortran/intrinsic.texi: DIMAG is a GNU extension. + +2006-10-06 Jakub Jelinek <jakub@redhat.com> + + PR fortran/28415 + * trans-decl.c (gfc_finish_var_decl): With -fno-automatic, don't + make artificial variables or pointer to variable automatic array + TREE_STATIC. + + * scanner.c (skip_free_comments): Return bool instead of void. + (gfc_next_char_literal): Don't return ' ' if & is missing after + !$omp or !$. Use skip_{free,fixed}_comments directly instead + of gfc_skip_comments. + +2006-10-04 Brooks Moses <bmoses@stanford.edu> + + * gfortran.texi: (Current Status): update and rewrite to reflect + actual status more accurately. + +2006-10-04 Brooks Moses <bmoses@stanford.edu> + + * gfortran.texi: Consistently refer to the compiler as "GNU + Fortran". + * intrinsic.texi: Ditto. + * invoke.texi: Ditto. + +2006-10-04 Richard Henderson <rth@redhat.com> + Jakub Jelinek <jakub@redhat.com> + + * 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. + +2006-10-04 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/29343 + * resolve.c (resolve_allocate_expr): Exclude derived types from + search for dependences between allocated variables and the + specification expressions for other allocations in the same + statement. + +2006-10-04 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/29098 + * resolve.c (resolve_structure_cons): Do not return FAILURE if + component expression is NULL. + +2006-10-03 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/20779 + PR fortran/20891 + * resolve.c (find_sym_in_expr): New function that returns true + if a symbol is found in an expression. + (resolve_allocate_expr): Check whether the STAT variable is + itself allocated in the same statement. Use the call above to + check whether any of the allocated arrays are used in array + specifications in the same statement. + +2006-10-03 Steven G. Kargl <kargl@gcc.gnu.org> + + * arith.c (gfc_check_real_range): Use correct exponent range for + subnormal numbers. + +2006-10-03 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/29284 + PR fortran/29321 + PR fortran/29322 + * trans-expr.c (gfc_conv_function_call): Check the expression + and the formal symbol are present when testing the actual + argument. + + PR fortran/25091 + PR fortran/25092 + * resolve.c (resolve_entries): It is an error if the entries + of an array-valued function do not have the same shape. + +2006-10-03 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR middle-end/27478 + * trans-decl.c (gfc_get_fake_result_decl): Mark var as + TREE_ADDRESSABLE. + +2006-10-02 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR fortran/19262 + * gfortran.h (gfc_option_t): Add max_continue_fixed and + max_continue_free. + * options.c (gfc_init_options): Initialize fixed form and free form + consecutive continuation line limits. + * scanner.c (gfc_scanner_init_1): Initialize continue_line + and continue_count. (gfc_next_char_literal): Count the number of + continuation lines in the current statement and warn if limit + is exceeded. + +2006-10-02 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR fortran/19260 + * scanner.c (gfc_next_char_literal): Add check for missing '&' + and warn if in_string, otherwise return ' '. + +2006-10-02 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/29210 + * primary.c (match_sym_complex_part): Named constants as real or + imaginary part of complex a named constant are only allowed in + Fortran 2003. + +2006-10-01 Brooks Moses <bmoses@stanford.edu> + + * gfortran.texi: Corrected references to MALLOC intrinsic. + * invoke.texi: Minor cleanup and clarification to the Dialect + Options section. + +2006-09-30 Brooks Moses <bmoses@stanford.edu> + + * invoke.texi: Add mention of BOZ constants and integer + overflow to -fno-range-check. + * gfortran.texi: Add mention of -fno-range-check to + section on BOZ contants. + +2006-09-30 Bernhard Fischer <aldot@gcc.gnu.org> + + * resolve.c: Fix commentary typo. Fix whitespace. + +2006-09-28 Steven G. Kargl <kargl@gcc.gnu.org> + + fortran/29147 + * arith.c (gfc_check_integer_range): Disable range checking via + -fno-range-check. + +2006-09-28 Steven G. Kargl <kargl@gcc.gnu.org> + + * arith.c: Change conditional test for inclusion of arctangent(). + (gfc_check_real_range): Change conditional test for use of + mpfr_subnormalize. + * simplify.c (gfc_simplify_atan2): Fix conditional for use of + mpfr_atan2() instead of arctangent(). + (gfc_simplify_exponent): Fix conditional for use of mpfr_get_exp(). + (gfc_simplify_log): Fix conditional for use of mpfr_atan2() instead + of arctangent(). + (gfc_simplify_nearest): Fix conditional for use of mpfr_nextafter(). + +2006-09-27 Steven G. Kargl <kargl@gcc.gnu.org> + + * arith.c: Conditionally include arctangent2(). + (gfc_check_real_range): Use mpfr_subnormalize in preference to local + hack. + * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl): Append + l for long double functions. + * simplify.c: Wrap Copyright to new line. + (gfc_simplify_atan2): Use mpfr_atan2 in preference to arctangent2(). + (gfc_simplify_log): Ditto. + + + PR fortran/28276 + * simplify.c (gfc_simplify_exponent): Use mpfr_get_exp in + preference to broken local hack. + + PR fortran/27021 + * simplify.c (gfc_simplify_nearest): Use mpfr_nexttoward and + mpfr_subnormalize to handle numbers near zero in preference to broken + local hack. + +2006-09-26 Jakub Jelinek <jakub@redhat.com> + + PR fortran/29097 + * scanner.c (include_line): Handle conditional include. + +2006-09-25 Tobias Schluter <tobias.schlueter@physik.uni-muenchen.de> + + PR fortran/21203 + * error.c (show_loci): No need to risk an ICE to output a + slightly nicer error message. + +2006-09-19 Paul Thomas <pault@gcc.gnu.org> + Steven Bosscher <steven@gcc.gnu.org> + + PR fortran/29101 + * trans-stmt.c (gfc_trans_character_select): Store the label + from select_string and then clean up any temporaries from the + conversion of the select expression, before branching to the + selected case. + +2006-09-18 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/28526 + * primary.c (match_variable): If the compiler is in a module + specification block, an interface block or a contains section, + reset host_flag to force the changed symbols mechanism. + + PR fortran/29101 + * trans-stmt.c (gfc_trans_character_select): Add the post block + for the expression to the main block, after the call to + select_string and the last label. + +2006-09-18 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/29060 + * iresolve.c (resolve_spread): Build shape for result if the + source shape is available and dim and ncopies are constants. + +2006-09-18 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> + + PR fortran/28817 + PR fortran/21918 + * trans-decl.c (generate_local_decl): Change from 'warning' to + 'gfc_warning' to have line numbers correctly reported. + +2006-09-15 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/29051 + * decl.c (match_old_style_init): Set the 'where' field of the + gfc_data structure 'newdata'. + + * match.c (match_case_eos): Add a comprehensible error message. + +2006-09-13 Wolfgang Gellerich <gellerich@de.ibm.com> + + * trans-expr.c (gfc_add_interface_mapping): For characters, dereference + pointer if necessary and then perform the cast. + +2006-09-11 Steven G. Kargl <kargl@gcc.gnu.org> + + * intrinsic.c: Update Copyright date. + * intrinsic.h: Ditto. + +2006-09-11 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/28890 + * trans-expr.c (gfc_conv_function_call): Obtain the string length + of a dummy character(*) function from the symbol if it is not + already translated. For a call to a character(*) function, use + the passed, hidden string length argument, which is available + from the backend_decl of the formal argument. + * resolve.c (resolve_function): It is an error if a function call + to a character(*) function is other than a dummy procedure or + an intrinsic. + +2006-09-10 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/28959 + * trans-types.c (gfc_get_derived_type): Use the parent namespace of + the procedure if the type's own namespace does not have a parent. + +2006-09-10 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/28923 + * expr.c (find_array_section): Only use the array lower and upper + bounds for the start and end of the sections, where the expr is + NULL. + +2006-09-10 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/28914 + * trans-array.c (gfc_trans_array_constructor_value): Create a temporary + loop variable to hold the current loop variable in case it is modified + by the array constructor. + +2006-09-07 Steven G. Kargl <kargls@comcast.net> + + * gfortran.h (gfc_integer_info): Eliminate max_int. + * arith.c (gfc_arith_init_1): Remove initialization of max_int. + (gfc_arith_done_1): Remove clearing of max_int. + (gfc_check_integer_range): Fix range chekcing of overflow. + * simplify.c (gfc_simplify_not): Construct mask that was max_int. + +2006-09-05 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/28908 + * gfortran.h : Restore the gfc_dt_list structure and reference + to it in gfc_namespace. + * resolve.c (resolve_fl_derived): Restore the building of the + list of derived types for the current namespace. Modify the + restored code so that a check is made to see if the symbol is + already in the list. + (resolve_fntype): Make sure that the specification block + version of the derived type is used for a module function that + returns that type. + * symbol.c (gfc_free_dt_list): Restore. + (gfc_free_namespace): Restore call to previous. + * trans-types.c (copy_dt_decls_ifequal): Restore. + (gfc_get_derived_type): Restore all the paraphenalia for + association of derived types, including calls to previous. + Modify the restored code such that all derived types are built + if their symbols are found in the parent namespace; not just + non-module types. Add backend_decls to like derived types in + sibling namespaces, as well as that of the derived type. + +2006-08-30 Kazu Hirata <kazu@codesourcery.com> + + * match.c: Fix a comment typo. + +2006-08-30 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/28885 + * trans-expr.c (gfc_conv_aliased_arg): Ensure that the temp + declaration is retained for INTENT(OUT) arguments. + + PR fortran/28873 + PR fortran/20067 + * resolve.c (resolve_generic_f): Make error message more + comprehensible. + (resolve_generic_s): Restructure search for specific procedures + to be similar to resolve_generic_f and change to similar error + message. Ensure that symbol reference is refreshed, in case + the search produces a NULL. + (resolve_specific_s): Restructure search, as above and as + resolve_specific_f. Ensure that symbol reference is refreshed, + in case the search produces a NULL. + + PR fortran/25077 + PR fortran/25102 + * interface.c (check_operator_interface): Throw error if the + interface assignment tries to change intrinsic type assigments + or has less than two arguments. Also, it is an error if an + interface operator contains an alternate return. + + PR fortran/24866 + * parse.c (gfc_fixup_sibling_symbols): Do not modify the symbol + if it is a dummy in the contained namespace. + +2006-08-29 Steven G. Kargl <kargls@comcast.net> + + PR fortran/28866 + * match.c: Wrap copyright. + (gfc_match_assignment): Return MATCH_NO for failed lvalue. Remove + gotos. Move error handling of FL_PARAMETER to ... + * gfc_match_if: Deal with MATCH_NO from above. + * primary.c: Wrap copyright. + (match_variable): ... here. Improve error messages. + +2006-08-29 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/28788 + * symbol.c (gfc_use_derived): Never eliminate the symbol, + following reassociation of use associated derived types. + +2006-08-26 Steven G. Kargl <kargls@comcast.net> + + * arith.h: Update Copyright dates. Fix whitespace. + * arith.c: Update Copyright dates. Fix whitespace. Fix comments. + (gfc_arith_done_1): Clean up pedantic_min_int and subnormal. + +2006-08-26 Tobias Burnus <burnus@net-b.de> + + * gfortran.texi: Note variable initialization causes SAVE attribute. + * intrinsic.texi: Clarify support for KIND=16 and KIND=10. + Mention -std=f2003. Cross reference INQUIRE from ACCESS intrinsic. + Add missing ) in ACOS. + +2006-08-26 Daniel Franke <franke.daniel@gmail.com> + + * intrinsic.texi: Update Copyright date. Added documentation + for ACOSH, AND, ASINH, ATANH, CHDIR, FGET, FGETC, FPUT, FPUTC, + GETCWD, OR and XOR intrinsics, removed inadvertently introduced + doc-stubs for EQV and NEQV, corrected some typographical errors. + +2006-08-24 Daniel Franke <franke.daniel@gmail.com>, + Brooks Moses <bmoses@stanford.edu> + + * intrinsic.texi: Added doc-stubs for undocumented intrinsics, + added a "See Also" section, renamed the "Options" section to + "Standard", improved the index, and made numerous minor + typo corrections and grammatical fixes. + +2006-08-24 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/28788 + * symbol.c (shift_types): Shift the derived type references in + formal namespaces. + (gfc_use_derived): Return if the derived type symbol is already + in another namspace. Add searches for the derived type in + sibling namespaces. + + PR fortran/28771 + * decl.c (add_init_expr_to_sym): Restore the original but + restricted to parameter arrays to fix a regression. + +2006-08-23 Steven G. Kargl <kargls@comcast.net> + + * gfortran.texi: Fix last commit where a "no" was deleted and + a grammatical error was introduced. + +2006-08-23 Steven G. Kargl <kargls@comcast.net> + + * gfortran.texi: Spell check. Add a few contributors to + Chapter 9. Expand the description of BOZ constant handling. + +2006-08-20 Janne Blomqvist <jb@gcc.gnu.org> + + PR fortran/25828 + * gfortran.texi: Mention STREAM I/O among supported F2003 + features. + +2006-08-20 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/28601 + PR fortran/28630 + * gfortran.h : Eliminate gfc_dt_list structure and reference + to it in gfc_namespace. + * resolve.c (resolve_fl_derived): Remove the building of the + list of derived types for the current namespace. + * symbol.c (find_renamed_type): New function to find renamed + derived types by symbol name rather than symtree name. + (gfc_use_derived): Search parent namespace for identical + derived type and use it, even if local version is complete, + except in interface bodies. Ensure that renamed derived types + are found by call to find_renamed_type. Recurse for derived + type components. + (gfc_free_dt_list): Remove. + (gfc_free_namespace): Remove call to previous. + * trans-types.c (copy_dt_decls_ifequal): Remove. + (gfc_get_derived_type): Remove all the paraphenalia for + association of derived types, including calls to previous. + * match.c (gfc_match_allocate): Call gfc_use_derived to + associate any derived types that are being allocated. + + PR fortran/20886 + * resolve.c (resolve_actual_arglist): The passing of + a generic procedure name as an actual argument is an + error. + + PR fortran/28735 + * resolve.c (resolve_variable): Check for a symtree before + resolving references. + + PR fortran/28762 + * primary.c (match_variable): Return MATCH_NO if the symbol + is that of the program. + + PR fortran/28425 + * trans-expr.c (gfc_trans_subcomponent_assign): Translate + derived type component expressions other than another derived + type constructor. + + PR fortran/28496 + * expr.c (find_array_section): Correct errors in + the handling of a missing start value for the + index triplet in an array reference. + + PR fortran/18111 + * trans-decl.c (gfc_build_dummy_array_decl): Before resetting + reference to backend_decl, set it DECL_ARTIFICIAL. + (gfc_get_symbol_decl): Likewise for original dummy decl, when + a copy is made of an array. + (create_function_arglist): Likewise for the _entry paramter + in entry_masters. + (build_entry_thunks): Likewise for dummies in entry thunks. + + PR fortran/28600 + * trans-decl.c (gfc_get_symbol_decl): Ensure that the + DECL_CONTEXT of the length of a character dummy is the + same as that of the symbol declaration. + + PR fortran/28771 + * decl.c (add_init_expr_to_sym): Remove setting of charlen for + an initializer of an assumed charlen variable. + + PR fortran/28660 + * trans-decl.c (generate_expr_decls): New function. + (generate_dependency_declarations): New function. + (generate_local_decl): Call previous if not either a dummy or + a declaration in an entry master. + +2006-08-19 Erik Edelmann <eedelman@gcc.gnu.org> + + PR fortran/25217 + * resolve.c (resolve_fl_variable): Set a default initializer for + derived types with INTENT(OUT) even if 'flag' is true. + * trans-expr.c (gfc_conv_function_call): Insert code to + reinitialize INTENT(OUT) arguments of derived type with default + initializers. + +2006-08-15 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR fortran/25828 + * gfortran.h: Add new pointer for stream position to st_inquire. + Rename gfc_large_io_int_kind to gfc_intio_kind. + * trans-types.c (gfc_init_kinds): use gfc_intio_kind. + * io.c: Add new IO tag for file position going in and another for out. + (match_dt_element): Match new tag_spos. + (gfc_resolve_dt): Resolve new tag_spos. + (gfc_free_inquire): Free inquire->strm_pos. + (match_inquire_element): Match new tag_strm_out. + (gfc_resolve_inquire): Resolve new tag_strm_out. + * trans-io.c: Rename IOPARM_type_large_io_int to IOPARM_type_intio. + (gfc_build_st_parameter): Same. + (gfc_build_io_library_fndecls) Same. and add build pointer type pintio. + (gfc_trans_inquire): Translate strm_pos for inquire. + * ioparm.def: Reorder flags to accomodate addition of new inquire + flag for strm_pos_out and add it in. + +2006-08-06 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/28590 + * parse.c (parse_derived): Remove the test for sequence type + components of a sequence type. + * resolve.c (resolve_fl_derived): Put the test here so that + pointer components are tested. + +2006-08-05 Steven G. Kargl <kargls@comcast.nt> + + PR fortran/28548 + * resolve.c(resolve_elemental_actual): Add flags.h to use -pedantic + and exclude conversion functions in conditional. Change gfc_error + to gfc_warning. + (warn_unused_label) Rename to ... + (warn_unused_fortran_label) avoid warn_unused_label in flags.h. + +2006-07-30 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + * intrinsic.c (add_functions): Add ACCESS, CHMOD, RSHIFT, LSHIFT. + (add_subroutines): Add LTIME, GMTIME and CHMOD. + * intrinsic.h (gfc_check_access_func, gfc_check_chmod, + gfc_check_chmod_sub, gfc_check_ltime_gmtime, gfc_simplify_rshift, + gfc_simplify_lshift, gfc_resolve_access, gfc_resolve_chmod, + gfc_resolve_rshift, gfc_resolve_lshift, gfc_resolve_chmod_sub, + gfc_resolve_gmtime, gfc_resolve_ltime): Add prototypes. + * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_ACCESS, + GFC_ISYM_CHMOD, GFC_ISYM_LSHIFT, GFC_ISYM_RSHIFT. + * iresolve.c (gfc_resolve_access, gfc_resolve_chmod, + gfc_resolve_rshift, gfc_resolve_lshift, gfc_resolve_chmod_sub, + gfc_resolve_gmtime, gfc_resolve_ltime): New functions. + * check.c (gfc_check_access_func, gfc_check_chmod, + gfc_check_chmod_sub, gfc_check_ltime_gmtime): New functions. + * trans-intrinsic.c (gfc_conv_intrinsic_rlshift): New function. + (gfc_conv_intrinsic_function): Add cases for the new GFC_ISYM_*. + +2006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de> + + * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies. + +2006-07-26 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + * intrinsic.c (add_functions): Add INT2, SHORT, INT8, LONG, + LSTAT, MCLOCK and MCLOCK8 intrinsic functions. + (add_subroutines): Add LSTAT intrinsic subroutine. + * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_INT2, + GFC_ISYM_INT8, GFC_ISYM_LONG, GFC_ISYM_LSTAT, GFC_ISYM_MCLOCK + and GFC_ISYM_MCLOCK8. + * iresolve.c (gfc_resolve_int2, gfc_resolve_int8, + gfc_resolve_long, gfc_resolve_lstat, gfc_resolve_mclock, + gfc_resolve_mclock8, gfc_resolve_lstat_sub): New functions. + * check.c (gfc_check_intconv): New function. + * trans-intrinsic.c (gfc_conv_intrinsic_function): Add cases for + the added GFC_ISYM_*. + * simplify.c (gfc_simplify_intconv, gfc_simplify_int2, + gfc_simplify_int8, gfc_simplify_long): New functions. + * intrinsic.h (gfc_check_intconv, gfc_simplify_int2, + gfc_simplify_int8, gfc_simplify_long, gfc_resolve_int2, + gfc_resolve_int8, gfc_resolve_long, gfc_resolve_lstat, + gfc_resolve_mclock, gfc_resolve_mclock8, gfc_resolve_lstat_sub): + Add prototypes. + +2006-07-24 Erik Edelmann <eedelman@gcc.gnu.org> + + PR fortran/28416 + * trans-array.c (gfc_conv_array_parameter): Give special treatment for + ALLOCATABLEs if they are themselves dummy variables. + +2006-07-23 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR fortran/25289 + * gfortran.h: Declare gfc_large_io_int_kind. + * trans-types.c (gfc_init_kinds): Set gfc_large_io_int_kind + to size 8 or 4. + * trans-io.c (enum iofield_type): Add large_io_int type. + (gfc_build_st_parameter): Same. + (gfc_build_io_library_fndecls): Same. + * ioparm_def: Use large_io_int to define rec. + +2006-07-22 Steven Bosscher <steven@gcc.gnu.org> + + PR fortran/28439 + * trans-stmt.c (gfc_trans_arithmetic_if): Evaluate the condition once. + +2006-07-16 Jakub Jelinek <jakub@redhat.com> + + PR fortran/28390 + * trans-openmp.c (gfc_trans_omp_do): Look for LASTPRIVATE in + code->exp.omp_clauses rather than in the 3rd function argument. + +2006-07-16 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/28384 + * trans-common.c (translate_common): If common_segment is NULL + emit error that common block does not exist. + + PR fortran/20844 + * io.c (check_io_constraints): It is an error if an ADVANCE + specifier appears without an explicit format. + + PR fortran/28201 + * resolve.c (resolve_generic_s): For a use_associated function, + do not search for an alternative symbol in the parent name + space. + + PR fortran/20893 + * resolve.c (resolve_elemental_actual): New function t combine + all the checks of elemental procedure actual arguments. In + addition, check of array valued optional args(this PR) has + been added. + (resolve_function, resolve_call): Remove parts that treated + elemental procedure actual arguments and call the above. + +2006-07-14 Steven G. Kargl <kargls@comcast.net> + + * trans-expr.c (gfc_trans_string_copy): Evaluate the string lengths + +006-07-13 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/28353 + * trans-expr.c (gfc_conv_aliased_arg): Missing formal arg means + that intent is INOUT (fixes regression). + + PR fortran/25097 + * check.c (check_present): The only permitted reference is a + full array reference. + + PR fortran/20903 + * decl.c (variable_decl): Add error if a derived type is not + from the current namespace if the namespace is an interface + body. + +2006-07-12 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/28163 + * trans-expr.c (gfc_trans_string_copy): Generate inline code + to perform string copying instead of calling a library function. + * trans-decl.c (gfc_build_intrinsic_function_decls): Don't build + decl for copy_string. + * trans.h (gfor_fndecl_copy_string): Remove prototype. + +2006-07-11 Feng Wang <fengwang@nudt.edu.cn> + + PR fortran/28213 + * trans-io.c (transfer_expr): Deal with Hollerith constants used in + I/O list. + +2006-07-07 Kazu Hirata <kazu@codesourcery.com> + + * intrinsic.texi: Fix typos. + +2006-07-07 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/28237 + PR fortran/23420 + * io.c (resolve_tag): Any integer that is not an assigned + variable is an error. + +2006-07-06 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/28129 + * trans-array.c (gfc_trans_array_bound_check): Add a locus + argument, and use it in the error messages. + (gfc_conv_array_index_offset): Donc perform bounds checking on + the last dimension of assumed-size arrays. + +2006-07-06 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/27874 + * trans-stmt.c (compute_inner_temp_size): Don't perform bounds + checking when calculating the bounds of scalarization. + +2006-07-05 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/20892 + * interface.c (gfc_match_interface): Don't allow dummy procedures + to have a generic interface. + +2006-07-04 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/28174 + * trans-array.c (gfc_conv_expr_descriptor): When building temp, + ensure that the substring reference uses a new charlen. + * trans-expr.c (gfc_conv_aliased_arg): Add the formal intent to + the argument list, lift the treatment of missing string lengths + from the above and implement the use of the intent. + (gfc_conv_function_call): Add the extra argument to the call to + the above. + + PR fortran/28167 + * trans-array.c (get_array_ctor_var_strlen): Treat a constant + substring reference. + * array.c (gfc_resolve_character_array_constructor): Remove + static attribute and add the gfc_ prefix, make use of element + charlens for the expression and pick up constant string lengths + for expressions that are not themselves constant. + * gfortran.h : resolve_character_array_constructor prototype + added. + * resolve.c (gfc_resolve_expr): Call resolve_character_array_ + constructor again after expanding the constructor, to ensure + that the character length is passed to the expression. + +2006-07-04 Francois-Xavier Coudert <coudert@clipper.ens.fr> + Daniel Franke <franke.daniel@gmail.com> + + * intrinsic.c (add_subroutines): Add ITIME and IDATE. + * intrinsic.h (gfc_check_itime_idate,gfc_resolve_idate, + fc_resolve_itime): New protos. + * iresolve.c (gfc_resolve_itime, gfc_resolve_idate): New functions. + * check.c (gfc_check_itime_idate): New function. + * intrinsic.texi: Document the new intrinsics. + +2006-07-03 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + * intrinsics/date_and_time.c (itime0,idate0,itime_i4,itime_i8, + idate_i4,idate_i8): New functions. + + +2006-07-03 Asher Langton <langton2@llnl.gov> + + * decl.c (match_old_style_init): Add data attribute to symbol. + +2006-07-03 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + * iresolve.c (gfc_resolve_cpu_time, gfc_resolve_random_number): + Remove ATTRIBUTE_UNUSED for used argument. + +2006-07-03 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + * intrinsic.texi: Document new intrinsics. + +2006-07-01 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> + + PR fortran/19259 + * parse.c (next_free): Error out on line starting with semicolon. + (next_fixed): Fix formatting. Error out on line starting with + semicolon. + +2006-06-30 Kazu Hirata <kazu@codesourcery.com> + + * check.c: Fix a comment typo. + +2006-06-25 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/25056 + * interface.c (compare_actual_formal): Signal an error if the formal + argument is a pure procedure and the actual is not pure. + + PR fortran/27554 + * resolve.c (resolve_actual_arglist): If the type of procedure + passed as an actual argument is not already declared, see if it is + an intrinsic. + + PR fortran/25073 + * resolve.c (resolve_select): Use bits 1 and 2 of a new int to + keep track of the appearance of constant logical case expressions. + Signal an error is either value appears more than once. + + PR fortran/20874 + * resolve.c (resolve_fl_procedure): Signal an error if an elemental + function is not scalar valued. + + PR fortran/20867 + * match.c (recursive_stmt_fcn): Perform implicit typing of variables. + + PR fortran/22038 + * match.c (match_forall_iterator): Mark new variables as + FL_UNKNOWN if the match fails. + + PR fortran/28119 + * match.c (gfc_match_forall): Remove extraneous call to + gfc_match_eos. + + PR fortran/25072 + * resolve.c (resolve_code, resolve_function): Rework + forall_flag scheme so that it is set and has a value of + 2, when the code->expr (ie. the forall mask) is resolved. + This is used to change "block" to "mask" in the non-PURE + error message. + +2006-06-24 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/28081 + * resolve.c (resolve_substring): Don't issue out-of-bounds + error messages when the range has zero size. + +2006-06-24 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/23862 + * lang-specs.h (f95-cpp-input): Pass -ffree-form to f951 unless + -ffixed-form is explicitly specified. + +2006-06-24 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/28118 + * trans-array.c (gfc_conv_expr_descriptor): When building temp, + use the substring reference to calculate the length if the + expression does not have a charlen. + +2006-06-24 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/28094 + * trans-intrinsic.c (gfc_conv_intrinsic_mod): Support cases where + there is no integer kind equal to the resulting real kind. + * intrinsic.c (add_functions): MODULO is not allowed as an actual + argument. + +2006-06-23 Steven G. Kargl <kargls@comcast.net> + + PR fortran/27981 + * match.c (gfc_match_if): Handle errors in assignment in simple if. + +2006-06-22 Asher Langton <langton2@llnl.gov> + + PR fortran/24748 + * primary.c (gfc_match_rvalue): Don't call match_substring for + implicit non-character types. + +2006-06-22 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR libfortran/26769 + * iresolve.c (gfc_resolve_reshape): Call reshape_r4 and + reshape_r8 instead of reshape_4 and reshape_8. + (gfc_resolve_transpose): Likewise for transpose. + +2006-06-21 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + * trans-expr.c (gfc_conv_missing_dummy, gfc_conv_unary_op, + gfc_conv_cst_int_power, gfc_conv_string_tmp, + gfc_conv_function_call): Replace calls to convert on constant + integer nodes by build_int_cst. + * trans-stmt.c (gfc_trans_do): Likewise. + * trans-io.c (set_internal_unit, transfer_namelist_element): + Likewise. + * trans-decl.c (build_entry_thunks): Likewise. + +2006-06-20 Steven G. Kargl <kargls@comcast.net> + + * simplify.c (gfc_simplify_rrspacing): Initialize and clear mpfr_t + variable. + +2006-06-20 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/25049 + PR fortran/25050 + * check.c (non_init_transformational): New function. + (find_substring_ref): New function to signal use of disallowed + transformational intrinsic in an initialization expression. + (gfc_check_all_any): Call previous if initialization expr. + (gfc_check_count): The same. + (gfc_check_cshift): The same. + (gfc_check_dot_product): The same. + (gfc_check_eoshift): The same. + (gfc_check_minloc_maxloc): The same. + (gfc_check_minval_maxval): The same. + (gfc_check_gfc_check_product_sum): The same. + (gfc_check_pack): The same. + (gfc_check_spread): The same. + (gfc_check_transpose): The same. + (gfc_check_unpack): The same. + + PR fortran/18769 + *intrinsic.c (add_functions): Add gfc_simplify_transfer. + *intrinsic.h : Add prototype for gfc_simplify_transfer. + *simplify.c (gfc_simplify_transfer) : New function to act as + placeholder for eventual implementation. Emit error for now. + + PR fortran/16206 + * expr.c (find_array_element): Eliminate condition on length of + offset. Add bounds checking. Rearrange exit. Return try and + put gfc_constructor result as an argument. + (find_array_section): New function. + (find_substring_ref): New function. + (simplify_const_ref): Add calls to previous. + (simplify_parameter_variable): Return on NULL expr. + (gfc_simplify_expr): Only call gfc_expand_constructor for full + arrays. + + PR fortran/20876 + * match.c (gfc_match_forall): Add missing locus to gfc_code. + +2006-06-18 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/26801 + * trans-intrinsic.c (gfc_conv_associated): Use pre and post blocks + of the scalarization expression. + +2006-06-18 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR fortran/19310 + PR fortran/19904 + * arith.c (gfc_range_check): Return ARITH_OK if -fno-range-check. Add + return of ARITH_NAN, ARITH_UNDERFLOW, and ARITH_OVERFLOW. + (gfc_arith_divide): If -fno-range-check allow mpfr to divide by zero. + * gfortran.h (gfc_option_t): Add new flag. + * invoke.texi: Document new flag. + * lang.opt: Add option -frange-check. + * options.c (gfc_init_options): Initialize new flag. + (gfc_handle_options): Set flag if invoked. + * simplify.c (range_check): Add error messages for + overflow, underflow, and other errors. + * trans-const.c (gfc_conv_mpfr_to_tree): Build NaN and Inf from mpfr + result. + +2006-06-17 Karl Berry <karl@gnu.org> + + * gfortran.texi (@dircategory): Use "Software development" + instead of "Programming", following the Free Software Directory. + +2006-06-16 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/27965 + * trans-array.c (gfc_conv_ss_startstride): Correct the runtime + conditions for bounds-checking. Check for nonzero stride. + Don't check the last dimension of assumed-size arrays. Fix the + dimension displayed in the error message. + +2006-06-15 Thomas Koenig <Thomas.Koenig@online.de> + + * trans-array.h (gfc_trans_create_temp_array): Add bool + argument. + * trans-arrray.c (gfc_trans_create_temp_array): Add extra + argument "function" to show if we are translating a function. + If we are translating a function, perform checks whether + the size along any argument is negative. In that case, + allocate size 0. + (gfc_trans_allocate_storage): Add function argument (as + false) to gfc_trans_create_temp_array call. + * trans-expr.c (gfc_conv_function_call): Add function + argument (as true) to gfc_trans_create_temp_array call. + * trans-stmt.c (gfc_conv_elemental_dependencies): Add + function argument (as false) to gfc_trans_create_temp_array + call. + * trans-intrinsic.c: Likewise. + +2006-06-10 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/24558 + PR fortran/20877 + PR fortran/25047 + * decl.c (get_proc_name): Add new argument to flag that a + module function entry is being treated. If true, correct + error condition, add symtree to module namespace and add + a module procedure. + (gfc_match_function_decl, gfc_match_entry, + gfc_match_subroutine): Use the new argument in calls to + get_proc_name. + * resolve.c (resolve_entries): ENTRY symbol reference to + to master entry namespace if a module function. + * trans-decl.c (gfc_create_module_variable): Return if + the symbol is an entry. + * trans-exp.c (gfc_conv_variable): Check that parent_decl + is not NULL. + +2006-06-09 Jakub Jelinek <jakub@redhat.com> + + PR fortran/27916 + * trans-openmp.c (gfc_omp_clause_default_ctor): New function. + * trans.h (gfc_omp_clause_default_ctor): New prototype. + * f95-lang.c (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Define. + +2006-06-08 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/27958 + * trans-expr.c (gfc_conv_substring): If the substring start is + greater than its end, the length of the substring is zero, and + not negative. + (gfc_trans_string_copy): Don't generate a call to + _gfortran_copy_string when destination length is zero. + +2006-06-08 Asher Langton <langton2@llnl.gov> + + PR fortran/27786 + * trans-array.c (gfc_conv_array_ref): Eliminate bounds checking + for assumed-size Cray pointees. + +2006-06-08 Steven G. Kargl <kargls@comcat.net> + + * intrinsic.c (add_subroutine): Make make_noreturn() conditional on + the appropriate symbol name. + +2006-06-07 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/23091 + * resolve.c (resolve_fl_variable): Error if an automatic + object has the SAVE attribute. + + PR fortran/24168 + * expr.c (simplify_intrinsic_op): Transfer the rank and + the locus to the simplified expression. + + PR fortran/25090 + PR fortran/25058 + * gfortran.h : Add int entry_id to gfc_symbol. + * resolve.c : Add static variables current_entry_id and + specification_expr. + (resolve_variable): During code resolution, check if a + reference to a dummy variable in an executable expression + is preceded by its appearance as a parameter in an entry. + Likewise check its specification expressions. + (resolve_code): Update current_entry_id on EXEC_ENTRY. + (resolve_charlen, resolve_fl_variable): Set and reset + specifiaction_expr. + (is_non_constant_shape_array): Do not return on detection + of a variable but continue to resolve all the expressions. + (resolve_codes): set current_entry_id to an out of range + value. + +2006-06-06 Mike Stump <mrs@apple.com> + + * Make-lang.in: Rename to htmldir to build_htmldir to avoid + installing during build. + +2006-06-06 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/27897 + * match.c (gfc_match_common): Fix code typo. Remove + sym->name, since sym is NULL, and replace with name. + +2006-06-05 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR libfortran/27895 + * resolve.c (compute_last_value_for_triplet): New function. + (check_dimension): Correctly handle zero-sized array sections. + Add checking on last element of array sections. + +2006-06-05 Steven G. Kargl <kargls@comcast.net> + + * data.c (gfc_assign_data_value): Fix comment typo. Remove + a spurious return. + +2006-06-05 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/14067 + * data.c (create_character_intializer): Add warning message + for truncated string. + + PR fortran/16943 + * symbol.c : Include flags.h. + (gfc_add_type): If a procedure and types are the same do not + throw an error unless standard is less than gnu or pedantic. + + PR fortran/20839 + * parse.c (parse_do_block): Error if named block do construct + does not have a named enddo. + + PR fortran/27655 + * check.c (gfc_check_associated): Pick up EXPR_NULL for pointer + as well as target and put error return at end of function. + +2006-06-03 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + * trans.c (gfc_msg_bounds, gfc_msg_fault, gfc_msg_wrong_return): + Add strings for common runtime error messages. + (gfc_trans_runtime_check): Add a locus argument, use a string + and not a string tree for the message. + * trans.h (gfc_trans_runtime_check): Change prototype accordingly. + (gfc_msg_bounds, gfc_msg_fault, gfc_msg_wrong_return): Add proto. + * trans-const.c (gfc_strconst_bounds, gfc_strconst_fault, + gfc_strconst_wrong_return, gfc_strconst_current_filename): Remove. + (gfc_init_constants): Likewise. + * trans-const.h: Likewise. + * trans-decl.c (gfc_build_builtin_function_decls): Call to + _gfortran_runtime_error has only one argument, the message string. + * trans-array.h (gfc_conv_array_ref): Add a symbol argument and a + locus. + * trans-array.c (gfc_trans_array_bound_check): Build precise + error messages. + (gfc_conv_array_ref): Use the new symbol argument and the locus + to build more precise error messages. + (gfc_conv_ss_startstride): More precise error messages. + * trans-expr.c (gfc_conv_variable): Give symbol reference and + locus to gfc_conv_array_ref. + (gfc_conv_function_call): Use the new prototype for + gfc_trans_runtime_check. + * trans-stmt.c (gfc_trans_goto): Build more precise error message. + * trans-io.c (set_string): Likewise. + * trans-intrinsic.c (gfc_conv_intrinsic_bound): Use new prototype + for gfc_trans_runtime_check. + +2006-06-01 Thomas Koenig <Thomas.Koenig@online.de> + + PR fortran/27715 + * arith.c: Cast the characters from the strings to unsigned + char to avoid values less than 0 for extended ASCII. + +2006-06-01 Per Bothner <bothner@bothner.com> + + * data.c (gfc_assign_data_value): Handle USE_MAPPED_LOCATION. + * scanner.c (gfc_gobble_whitespace): Likewise. + +2006-06-01 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/25098 + PR fortran/25147 + * interface.c (compare_parameter): Return 1 if the actual arg + is external and the formal is a procedure. + (compare_actual_formal): If the actual argument is a variable + and the formal a procedure, this an error. If a gsymbol exists + for a procedure of the same name, this is not yet resolved and + the error is cleared. + + * trans-intrinsic.c (gfc_conv_associated): Make provision for + zero array length or zero string length contingent on presence + of target, for consistency with standard. + +2006-05-30 Asher Langton <langton2@llnl.gov> + + * symbol.c (check_conflict): Allow external, function, and + subroutine attributes with Cray pointees. + * trans-expr.c (gfc_conv_function_val): Translate Cray pointees + that point to procedures. + * gfortran.texi: Document new feature. + +2006-05-29 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR fortran/27634 + * io.c (check_format): Add error for missing period in format + specifier unless -std=legacy. + * gfortran.texi: Add description of expanded namelist read and + missing period in format extensions. + +2006-05-29 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/19777 + * trans-array.c (gfc_conv_array_ref): Perform out-of-bounds + checking for assumed-size arrrays for all but the last dimension. + +2006-05-29 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + * invoke.texi: Change -fpackderived into -fpack-derived. + +2006-05-29 Kazu Hirata <kazu@codesourcery.com> + + * options.c, primary.c, resolve.c, trans-common.c: Fix typos + in error messages. + +2006-05-28 Kazu Hirata <kazu@codesourcery.com> + + * check.c, expr.c, resolve.c, trans-common.c, + trans-intrinsic.c, trans-stmt.c, trans-types.c: Fix comment typos. + +2006-05-27 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/19777 + * trans-array.c (gfc_conv_array_ref): Don't perform out-of-bounds + checking for assumed-size arrrays. + +2006-05-27 Paul Thomas <pault@gcc.gnu.org> + + * trans-intrinsic.c (gfc_conv_associated): If pointer in first + arguments has zero array length of zero string length, return + false. + +2006-05-26 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/27524 + * trans-array.c (gfc_trans_dummy_array_bias): Don't use stride as + a temporary variable when -fbounds-check is enabled, since its + value will be needed later. + +2006-05-26 Thomas Koenig <Thomas.Koenig@online.de> + + PR fortran/23151 + * io.c (match_io): print (1,*) is an error. + +2006-05-26 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/27709 + * resolve.c (find_array_spec): Add gfc_symbol, derived, and + use to track repeated component references. + + PR fortran/27155 + PR fortran/27449 + * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): Use + se->string_length throughout and use memcpy to populate the + expression returned to the scalarizer. + (gfc_size_in_bytes): New function. + +2006-05-21 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/27613 + * primary.c (gfc_match_rvalue): Test if symbol represents a + direct recursive function reference. Error if array valued, + go to function0 otherwise. + +2006-05-21 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/25746 + * interface.c (gfc_extend_assign): Use new EXEC_ASSIGN_CALL. + * gfortran.h : Put EXEC_ASSIGN_CALL in enum. + * trans-stmt.c (gfc_conv_elemental_dependencies): New function. + (gfc_trans_call): Call it. Add new boolian argument to flag + need for dependency checking. Assert intent OUT and IN for arg1 + and arg2. + (gfc_trans_forall_1): Use new code EXEC_ASSIGN_CALL. + trans-stmt.h : Modify prototype of gfc_trans_call. + trans.c (gfc_trans_code): Add call for EXEC_ASSIGN_CALL. + st.c (gfc_free_statement): Free actual for EXEC_ASSIGN_CALL. + * dependency.c (gfc_check_fncall_dependency): Don't check other + against itself. + + PR fortran/25090 + * resolve.c : Remove resolving_index_expr. + (entry_parameter): Remove. + (gfc_resolve_expr, resolve_charlen, resolve_fl_variable): Lift + calls to entry_parameter and references to resolving_index_expr. + + PR fortran/27584 + * check.c (gfc_check_associated): Replace NULL assert with an + error message, since it is possible to generate bad code that + has us fall through to here.. + + PR fortran/19015 + * iresolve.c (maxloc, minloc): If DIM is not present, pass the + rank of ARRAY as the shape of the result. Otherwise, pass the + shape of ARRAY, less the dimension DIM. + (maxval, minval): The same, when DIM is present, otherwise no + change. + +2006-05-19 H.J. Lu <hongjiu.lu@intel.com> + + PR fortran/27662 + * trans-array.c (gfc_conv_expr_descriptor): Don't zero the + first stride to indicate a temporary. + * trans-expr.c (gfc_conv_function_call): Likewise. + +2006-05-18 Francois-Xavier Coudert <coudert@clipper.ens.fr> + Feng Wang <fengwang@nudt.edu.cn> + + PR fortran/27552 + * dump-parse-tree.c (gfc_show_expr): Deal with Hollerith constants. + * data.c (create_character_intializer): Set from_H flag if character is + initialized by Hollerith constant. + +2006-05-17 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/26551 + * resolve.c (resolve_call, resolve_function): Issue an error + if a function or subroutine call is recursive but the function or + subroutine wasn't declared as such. + +2006-05-07 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/26551 + * gfortran.dg/recursive_check_1.f: New test. + + +2006-05-17 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/27320 + * dump-parse-tree.c (gfc_show_code_node): Try harder to find the + called procedure name. + +2006-05-17 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/27415 + * trans-openmp.c (gfc_trans_omp_parallel_do, + gfc_trans_omp_parallel_sections, gfc_trans_omp_parallel_workshare): Set + OMP_PARALLEL_COMBINED flag. + +2006-05-16 H.J. Lu <hongjiu.lu@intel.com> + + PR driver/26885 + * Make-lang.in (GFORTRAN_D_OBJS): Replace gcc.o with + $(GCC_OBJS). + +2006-05-15 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/25090 + * resolve.c: Static resolving_index_expr initialized. + (entry_parameter): New function to emit errors for variables + that are not entry parameters. + (gfc_resolve_expr): Call entry_parameter, when resolving + variables, if the namespace has entries and resolving_index_expr + is set. + (resolve_charlen): Set resolving_index_expr before the call to + resolve_index_expr and reset it afterwards. + (resolve_fl_variable): The same before and after the call to + is_non_constant_shape_array, which ultimately makes a call to + gfc_resolve_expr. + + PR fortran/25082 + * resolve.c (resolve_code): Add error condition that the return + expression must be scalar. + + PR fortran/27411 + * matchexp.c (gfc_get_parentheses): New function. + (match_primary): Remove inline code and call above. + * gfortran.h: Provide prototype for gfc_get_parentheses. + * resolve.c (resolve_array_ref): Call the above, when start is a + derived type variable array reference. + +2006-05-15 Jakub Jelinek <jakub@redhat.com> + + PR fortran/27446 + * trans-openmp.c (gfc_trans_omp_array_reduction): Ensure + OMP_CLAUSE_REDUCTION_{INIT,MERGE} are set to BIND_EXPR. + +2006-05-14 H.J. Lu <hongjiu.lu@intel.com> + + * Make-lang.in (fortran/options.o): Depend on $(TARGET_H). + +2006-05-11 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/27553 + * parse.c (next_free): Return instead of calling decode_statement + upon error. + +2005-05-10 Thomas Koenig <Thomas.Koenig@online.de> + + PR fortran/27470 + * trans-array.c(gfc_array_allocate): If ref->next exists + that is if there is a statement like ALLOCATE(foo%bar(2)), + F95 rules require that bar should be a pointer. + +2006-05-10 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/20460 + * resolve.c (gfc_resolve_index): Make REAL array indices a + GFC_STD_LEGACY feature. + +2006-05-10 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/24549 + * parse.c (reject_statement): Clear gfc_new_block. + +2006-05-09 Steven G. Kargl <kargls@comcast.net> + + * invoke.texi: Missed file in previous commit. Update + description of -fall-intrinsics + +2006-05-07 Steven Boscher <steven@gcc.gnu.org> + + PR fortran/27378 + * parse.c (next_statement): Add check to avoid an ICE when + gfc_current_locus.lb is not set. + +2006-05-07 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> + + PR fortran/27457 + * match.c (match_case_eos): Error out on garbage following + CASE(...). + +2006-05-07 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/24813 + * trans-array.c (get_array_ctor_strlen): Remove static attribute. + * trans.h: Add prototype for get_array_ctor_strlen. + * trans-intrinsic.c (gfc_conv_intrinsic_len): Switch on EXPR_ARRAY + and call get_array_ctor_strlen. + +2006-05-05 Steven G. Kargl <kargls@comcast.net> + + * invoke.texi: Update description of -fall-intrinsics + * options.c (gfc_post_options): Disable -Wnonstd-intrinsics if + -fall-intrinsics is used. + (gfc_handle_option): Permit -Wno-nonstd-intrinsics. + +2006-05-04 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> + + * simplify.c (ascii_table): Fix wrong entry. + +2006-05-02 Steven G. Kargl <kargls@comcast.net> + + PR fortran/26896 + * lang.opt: Fix -Wtab description + + PR fortran/20248 + * lang.opt: New flag -fall-intrinsics. + * invoke.texi: Document option. + * gfortran.h (options_t): New member flag_all_intrinsics. + * options.c (gfc_init_options, gfc_handle_option): Set new option. + sort nearby misplaced options. + * intrinsic.c (add_sym, make_generic, make_alias): Use it. + +2006-05-02 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/27269 + * module.c: Add static flag in_load_equiv. + (mio_expr_ref): Return if no symtree and in_load_equiv. + (load_equiv): If any of the equivalence members have no symtree, free + the equivalence and the associated expressions. + + PR fortran/27324 + * trans-common.c (gfc_trans_common): Invert the order of calls to + finish equivalences and gfc_commit_symbols. + +2006-04-29 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/25681 + * simplify.c (simplify_len): Character variables with constant + length can be simplified. + +2006-04-29 H.J. Lu <hongjiu.lu@intel.com> + + PR fortran/27351 + * trans-array.c (gfc_conv_array_transpose): Move gcc_assert + before gfc_conv_expr_descriptor. + +2006-04-23 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/25099 + * resolve.c (resolve_call): Check conformity of elemental + subroutine actual arguments. + +2006-04-22 Jakub Jelinek <jakub@redhat.com> + + PR fortran/26769 + * iresolve.c (gfc_resolve_reshape): Use reshape_r16 for real(16). + (gfc_resolve_transpose): Use transpose_r16 for real(16). + +2006-04-21 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/27122 + * resolve.c (resolve_function): Remove general restriction on auto + character length function interfaces. + (gfc_resolve_uops): Check restrictions on defined operator + procedures. + (resolve_types): Call the check for defined operators. + + PR fortran/27113 + * trans-array.c (gfc_trans_array_constructor_subarray): Remove + redundant gfc_todo_error. + (get_array_ctor_var_strlen): Remove typo in enum. + +2006-04-18 Bernhard Fischer <aldot@gcc.gnu.org> + + * parse.c (next_free): Use consistent error string between + free-form and fixed-form for illegal statement label of zero. + (next_fixed): Use consistent warning string between free-form + and fixed-form for statement labels for empty statements. + +2006-04-18 Steve Ellcey <sje@cup.hp.com> + + * trans-io.c (gfc_build_io_library_fndecls): Align pad. + +2006-04-16 Thomas Koenig <Thomas.Koenig@online.de> + + PR fortran/26017 + * trans-array.c(gfc_array_init_size): Introduce or_expr + which is true if the size along any dimension + is negative. Create a temporary variable with base + name size. If or_expr is true, set the temporary to 0, + to the normal size otherwise. + +2006-04-16 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/26822 + * intrinsic.c (add_functions): Mark LOGICAL as elemental. + + PR fortran/26787 + * expr.c (gfc_check_assign): Extend scope of error to include + assignments to a procedure in the main program or, from a + module or internal procedure that is not that represented by + the lhs symbol. Use VARIABLE rather than l-value in message. + + PR fortran/27096 + * trans-array.c (gfc_trans_deferred_array): If the backend_decl + is not a descriptor, dereference and then test and use the type. + + PR fortran/25597 + * trans-decl.c (gfc_trans_deferred_vars): Check if an array + result, is also automatic character length. If so, process + the character length. + + PR fortran/18003 + PR fortran/25669 + PR fortran/26834 + * trans_intrinsic.c (gfc_walk_intrinsic_bound): Set + data.info.dimen for bound intrinsics. + * trans_array.c (gfc_conv_ss_startstride): Pick out LBOUND and + UBOUND intrinsics and supply their shape information to the ss + and the loop. + + PR fortran/27124 + * trans_expr.c (gfc_trans_function_call): Add a new block, post, + in to which all the argument post blocks are put. Add this block + to se->pre after a byref call or to se->post, otherwise. + +2006-04-14 Roger Sayle <roger@eyesopen.com> + + * trans-io.c (set_string): Use fold_build2 and build_int_cst instead + of build2 and convert to construct "x < 0" rather than "x <= -1". + +2006-04-13 Richard Henderson <rth@redhat.com> + + * trans-openmp.c (gfc_trans_omp_sections): Adjust for changed + number of operands to OMP_SECTIONS. + +2006-04-08 Kazu Hirata <kazu@codesourcery.com> + + * gfortran.texi: Fix typos. Follow spelling conventions. + * resolve.c, trans-expr.c, trans-stmt.c: Fix comment typos. + Follow spelling conventions. + +2006-04-05 Roger Sayle <roger@eyesopen.com> + + * dependency.c (get_no_elements): Delete function. + (get_deps): Delete function. + (transform_sections): Delete function. + (gfc_check_section_vs_section): Significant rewrite. + +2006-04-04 H.J. Lu <hongjiu.lu@intel.com> + + PR fortran/25619 + * trans-array.c (gfc_conv_expr_descriptor): Only dereference + character pointer when copying temporary. + + PR fortran/23634 + * trans-array.c (gfc_conv_expr_descriptor): Properly copy + temporary character with non constant size. + +2006-04-03 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/26891 + * trans.h: Prototype for gfc_conv_missing_dummy. + * trans-expr (gfc_conv_missing_dummy): New function + (gfc_conv_function_call): Call it and tidy up some of the code. + * trans-intrinsic (gfc_conv_intrinsic_function_args): The same. + + PR fortran/26976 + * array.c (gfc_array_dimen_size): If available, return shape[dimen]. + * resolve.c (resolve_function): If available, use the argument + shape for the function expression. + * iresolve.c (gfc_resolve_transfer): Set shape[0] = size. + +2006-04-02 Erik Edelmann <eedelman@gcc.gnu.org> + + * trans-array.c (gfc_trans_dealloc_allocated): Take a + tree representation of the array to be deallocated as argument + instead of its gfc_symbol. + (gfc_trans_deferred_array): Update call to + gfc_trans_dealloc_allocated. + * trans-array.h (gfc_trans_dealloc_allocated): Update + prototype. + * trans-expr.c (gfc_conv_function_call): Update call to + gfc_trans_dealloc_allocated, get indirect reference to dummy + arguments. + +2006-04-01 Roger Sayle <roger@eyesopen.com> + + PR fortran/25270 + * trans-array.c (gfc_trans_allocate_array_storage): In array index + calculations use gfc_index_zero_node and gfc_index_one_node instead + of integer_zero_node and integer_one_node respectively. + (gfc_conv_array_transpose): Likewise. + (gfc_conv_ss_startstride): Likewise. + (gfc_trans_dummy_array_bias): Likewise. + +2006-04-01 Roger Sayle <roger@eyesopen.com> + + * dependency.c (gfc_is_inside_range): Delete. + (gfc_check_element_vs_section): Significant rewrite. + +2006-04-01 Roger Sayle <roger@eyesopen.com> + + * dependency.c (gfc_dep_compare_expr): Strip parentheses and unary + plus operators when comparing expressions. Handle comparisons of + the form "X+C vs. X", "X vs. X+C", "X-C vs. X" and "X vs. X-C" where + C is an integer constant. Handle comparisons of the form "P+Q vs. + R+S" and "P-Q vs. R-S". Handle comparisons of integral extensions + specially (increasing functions) so extend(A) > extend(B), when A>B. + (gfc_check_element_vs_element): Move test later, so that we ignore + the fact that "A < B" or "A > B" when A or B contains a forall index. + +2006-03-31 Asher Langton <langton2@llnl.gov> + + PR fortran/25358 + * expr.c (gfc_check_assign): Allow cray pointee to be assumes-size. + +2006-03-30 Paul Thomas <paulthomas2@wanadoo.fr> + Bud Davis <bdavis9659@sbcglobal.net> + + PR 21130 + * module.c (load_needed): Traverse entire tree before returning. + +2006-03-30 Roger Sayle <roger@eyesopen.com> + + PR middle-end/22375 + * trans.c (gfc_trans_runtime_check): Promote the arguments of + __builtin_expect to the correct types, and the result back to + boolean_type_node. + +2006-03-29 Carlos O'Donell <carlos@codesourcery.com> + + * Make-lang.in: Rename docdir to gcc_docdir. + +2006-03-28 Steven G. Kargl <kargls@comcast.net> + + * intrinsic.texi: s/floor/float in previous commit. + +2006-03-28 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/26779 + * resolve.c (resolve_fl_procedure): Do not check the access of + derived types for internal procedures. + +2006-03-27 Jakub Jelinek <jakub@redhat.com> + + * io.c (check_io_constraints): Don't look at + dt->advance->value.charater.string, unless it is a CHARACTER + constant. + + * f95-lang.c (gfc_get_alias_set): New function. + (LANG_HOOKS_GET_ALIAS_SET): Define. + +2006-03-25 Steven G. Kargl <kargls@comcast.net> + + PR fortran/26816 + * intrinsic.c (add_functions): Allow FLOAT to accept all integer kinds. + * intrinsic.texi: Document FLOAT. + +2006-03-25 Thomas Koenig <Thomas.Koenig@online.de> + + PR fortran/26769 + * iresolve.c (gfc_resolve_reshape): Remove doubling of + kind for complex. For real(kind=10), call reshape_r10. + (gfc_resolve_transpose): For real(kind=10), call + transpose_r10. + +2006-03-25 Roger Sayle <roger@eyesopen.com> + + * dependency.c (gfc_check_dependency): Improve handling of pointers; + Two variables of different types can't have a dependency, and two + variables with the same symbol are equal, even if pointers. + +2006-03-24 Roger Sayle <roger@eyesopen.com> + + * gfortran.h (gfc_symbol): Add a new "forall_index" bit field. + * match.c (match_forall_iterator): Set forall_index field on + the iteration variable's symbol. + * dependency.c (contains_forall_index_p): New function to + traverse a gfc_expr to check whether it contains a variable + with forall_index set in it's symbol. + (gfc_check_element_vs_element): Return GFC_DEP_EQUAL for scalar + constant expressions that don't variables used as FORALL indices. + +2006-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de> + + PR driver/22600 + * error.c (gfc_fatal_error): Return ICE_EXIT_CODE instead of 4. + +2006-03-22 Thomas Koenig <Thomas.Koenig@online.de> + + PR fortran/19303 + * gfortran.h (gfc_option_t): Add record_marker. + * lang.opt: Add -frecord-marker=4 and -frecord-marker=8. + * trans-decl.c: Add gfor_fndecl_set_record_marker. + (gfc_build_builtin_function_decls): Set + gfor_fndecl_set_record_marker. + (gfc_generate_function_code): If we are in the main program + and -frecord-marker was provided, call set_record_marker. + * options.c (gfc_handle_option): Add handling for + -frecord-marker=4 and -frecord-marker=8. + * invoke.texi: Document -frecord-marker. + +2006-03-22 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/17298 + * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): New + function to implement array valued TRANSFER intrinsic. + (gfc_conv_intrinsic_function): Call the new function if TRANSFER + and non-null se->ss. + (gfc_walk_intrinsic_function): Treat TRANSFER as one of the + special cases by calling gfc_walk_intrinsic_libfunc directly. + +2006-03-21 Toon Moene <toon@moene.indiv.nluug.nl> + + * options.c (gfc_init_options): Initialize + flag_argument_noalias to 3. + +2006-03-20 Thomas Koenig <Thomas.Koenig@online.de> + + PR fortran/20935 + * iresolve.c (gfc_resolve_maxloc): If mask is scalar, + prefix the function name with an "s". If the mask is scalar + or if its kind is smaller than gfc_default_logical_kind, + coerce it to default kind. + (gfc_resolve_maxval): Likewise. + (gfc_resolve_minloc): Likewise. + (gfc_resolve_minval): Likewise. + (gfc_resolve_product): Likewise. + (gfc_resolve_sum): Likewise. + +2006-03-19 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/26741 + *expr.c (external_spec_function): Permit elemental functions. + + PR fortran/26716 + *interface.c (compare_actual_formal): Detect call for procedure + usage and require rank checking, in this case, for assumed shape + and deferred shape arrays. + (gfc_procedure_use): Revert to pre-PR25070 call to + compare_actual_formal that does not require rank checking.. + +2006-03-16 Roger Sayle <roger@eyesopen.com> + + * gfortran.h (gfc_equiv_info): Add length field. + * trans-common.c (copy_equiv_list_to_ns): Set the length field. + * dependency.c (gfc_are_equivalenced_arrays): Use both the offset + and length fields to determine whether the two equivalenced symbols + overlap in memory. + +2006-03-14 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR fortran/19101 + * gfortran.h: Add warn_ampersand. + * invoke.texi: Add documentation for new option. + * lang.opt: Add Wampersand. + * options.c (gfc_init_options): Initialize warn_ampersand. + (gfc_post_options): Set the warn if pedantic. + (set_Wall): Set warn_ampersand. + (gfc_handle_option: Add Wampersand for itself, -std=f95, and -std=f2003. + * scanner.c (gfc_next_char_literal): Add test for missing '&' in + continued character constant and give warning if missing. + +2006-03-14 Steven G. Kargl <kargls@comcast.net> + + PR 18537 + * gfortran.h: Wrap Copyright line. + (gfc_option_t): add warn_tabs member. + * lang.opt: Update Coyright year. Add the Wtabs. + * invoke.texi: Document -Wtabs. + * scanner.c (gfc_gobble_whitespace): Use warn_tabs. Add linenum to + suppress multiple warnings. + (load_line): Use warn_tabs. Add linenum, current_line, seen_comment + to suppress multiple warnings. + * options.c (gfc_init_options): Initialize warn_tabs. + (set_Wall): set warn_tabs for -Wall. + (gfc_post_options): Adjust flag_tabs depending on -pedantic. + (gfc_handle_option): Process command-line option -W[no-]tabs + +2006-03-13 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/25378 + * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Set the initial position to zero and + modify the condition for updating it, to implement the F2003 requirement for all(mask) + is false. + +2006-03-13 Jakub Jelinek <jakub@redhat.com> + + * trans-openmp.c (gfc_trans_omp_variable): Handle references + to parent result. + * trans-expr.c (gfc_conv_variable): Remove useless setting + of parent_flag, formatting. + + * trans-decl.c (gfc_get_fake_result_decl): Re-add setting of + GFC_DECL_RESULT flag. + +2003-03-11 Roger Sayle <roger@eyesopen.com> + + * dependency.c (gfc_dep_compare_expr) <EXPR_OP>: Allow unary and + binary operators to compare equal if their operands are equal. + <EXPR_FUNCTION>: Allow "constant" intrinsic conversion functions + to compare equal, if their operands are equal. + +2006-03-11 Erik Edelmann <eedelman@gcc.gnu.org> + + * symbol.c (check_conflict): Allow allocatable function results, + except for elemental functions. + * trans-array.c (gfc_trans_allocate_temp_array): Rename to ... + (gfc_trans_create_temp_array): ... this, and add new argument + callee_alloc. + (gfc_trans_array_constructor, gfc_conv_loop_setup): Update call + to gfc_trans_allocate_temp_array. + * trans-array.h (gfc_trans_allocate_temp_array): Update prototype. + * trans-expr.c (gfc_conv_function_call): Use new arg of + gfc_trans_create_temp_array avoid pre-allocation of temporary + result variables of pointer AND allocatable functions. + (gfc_trans_arrayfunc_assign): Return NULL for allocatable + functions. + * resolve.c (resolve_symbol): Copy value of 'allocatable' attribute + from sym->result to sym. + +2006-03-09 Erik Edelmann <eedelman@gcc.gnu.org> + + * trans-expr.c (gfc_add_interface_mapping): Copy 'allocatable' + attribute from sym to new_sym. Call build_fold_indirect_ref() + for allocatable arguments. + +2006-03-09 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/26257 + * trans-array.c (gfc_conv_expr_descriptor): Exclude calculation of + the offset and data when se->data_not_needed is set. + * trans.h: Include the data_not_need bit in gfc_se. + * trans-intrinsic.c (gfc_conv_intrinsic_size): Set it for SIZE. + +2006-03-06 Paul Thomas <pault@gcc.gnu.org> + Erik Edelmann <eedelman@gcc.gnu.org> + + * trans-array.c (gfc_trans_dealloc_allocated): New function. + (gfc_trans_deferred_array): Use it, instead of inline code. + * trans-array.h: Prototype for gfc_trans_dealloc_allocated(). + * trans-expr.c (gfc_conv_function_call): Deallocate allocated + ALLOCATABLE, INTENT(OUT) arguments upon procedure entry. + +2006-03-06 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/26107 + * resolve.c (resolve_function): Add name after test for pureness. + + PR fortran/19546 + * trans-expr.c (gfc_conv_variable): Detect reference to parent result, + store current_function_decl, replace with parent, whilst calls are + made to gfc_get_fake_result_decl, and restore afterwards. Signal this + to gfc_get_fake_result_decl with a new argument, parent_flag. + * trans-stmt.c (gfc_trans_return): gfc_get_fake_result_decl 2nd arg + is set to zero. + * trans.h: Add parent_flag to gfc_get_fake_result_decl prototype. + * trans-decl.c (gfc_get_fake_result_decl): On parent_flag, being set, + add decl to parent function. Replace refs to current_fake_result_decl + with refs to this_result_decl. + (gfc_generate_function_code): Null parent_fake_result_decl before the + translation of code for contained procedures. Set parent_flag to zero + in call to gfc_get_fake_result_decl. + * trans-intrinsic.c (gfc_conv_intrinsic_len): The same. + +2006-03-05 Steven G. Kargl <kargls@comcast.net> + + * simplify.c (gfc_simplify_verify): Fix return when SET=''. + +2006-03-05 Erik Edelmann <eedelman@gcc.gnu.org> + + PR fortran/16136 + * symbol.c (conf_std): New macro. + (check_conflict): Use it to allow ALLOCATABLE dummy + arguments for F2003. + * trans-expr.c (gfc_conv_function_call): Pass the + address of the array descriptor when dummy argument is + ALLOCATABLE. + * interface.c (compare_allocatable): New function. + (compare_actual_formal): Use it. + * resolve.c (resolve_deallocate_expr, + resolve_allocate_expr): Check that INTENT(IN) variables + aren't (de)allocated. + * gfortran.texi (Fortran 2003 status): List ALLOCATABLE + dummy arguments as supported. + +2006-03-03 Roger Sayle <roger@eyesopen.com> + + * dependency.c (gfc_check_element_vs_element): Revert last change. + +2006-03-03 Roger Sayle <roger@eyesopen.com> + + * dependency.c (gfc_check_element_vs_element): Consider two + unordered scalar subscripts as (potentially) equal. + +2006-03-03 Roger Sayle <roger@eyesopen.com> + + * dependency.c (gfc_check_dependency): Call gfc_dep_resolver to + check whether two array references have a dependency. + (gfc_check_element_vs_element): Assume lref and rref must be + REF_ARRAYs. If gfc_dep_compare_expr returns -2, assume these + references could potentially overlap. + (gfc_dep_resolver): Whitespace and comment tweaks. Assume a + dependency if the references have different depths. Rewrite + final term to clarrify we only have a dependency for overlaps. + +2006-03-03 Thomas Koenig <Thomas.Koenig@online.de> + + PR fortran/25031 + * trans-array.h: Adjust gfc_array_allocate prototype. + * trans-array.c (gfc_array_allocate): Change type of + gfc_array_allocatate to bool. Function returns true if + it operates on an array. Change second argument to gfc_expr. + Find last reference in chain. + If the function operates on an allocatable array, emit call to + allocate_array() or allocate64_array(). + * trans-stmt.c (gfc_trans_allocate): Code to follow to last + reference has been moved to gfc_array_allocate. + * trans.h: Add declaration for gfor_fndecl_allocate_array and + gfor_fndecl_allocate64_array. + (gfc_build_builtin_function_decls): Add gfor_fndecl_allocate_array + and gfor_fndecl_allocate64_array. + +2006-03-01 Roger Sayle <roger@eyesopen.com> + + * trans-stmt.c (generate_loop_for_temp_to_lhs): Add an additional + INVERT argument to invert the sense of the WHEREMASK argument. + Remove unneeded code to AND together a list of masks. + (generate_loop_for_rhs_to_temp): Likewise. + (gfc_trans_assign_need_temp): Likewise. + (gfc_trans_forall_1): Likewise. + (gfc_evaluate_where_mask): Likewise, add a new INVERT argument + to specify the sense of the MASK argument. + (gfc_trans_where_assign): Likewise. + (gfc_trans_where_2): Likewise. Restructure code that decides + whether we need to allocate zero, one or two temporary masks. + If this is a top-level WHERE (i.e. the incoming MASK is NULL), + we only need to allocate at most one temporary mask, and can + invert it's sense to provide the complementary pending execution + mask. Only calculate the size of the required temporary arrays + if we need any. + (gfc_trans_where): Update call to gfc_trans_where_2. + +2006-03-01 Paul Thomas <pault@gcc.gnu.org> + + * iresolve.c (gfc_resolve_dot_product): Remove any difference in + treatment of logical types. + * trans-intrinsic.c (gfc_conv_intrinsic_dot_product): New function. + + PR fortran/26393 + * trans-decl.c (gfc_get_symbol_decl): Extend condition that symbols + must be referenced to include unreferenced symbols in an interface + body. + + PR fortran/20938 + * trans-array.c (gfc_conv_resolve_dependencies): Add call to + gfc_are_equivalenced_arrays. + * symbol.c (gfc_free_equiv_infos, gfc_free_equiv_lists): New + functions. (gfc_free_namespace): Call them. + * trans-common.c (copy_equiv_list_to_ns): New function. + (add_equivalences): Call it. + * gfortran.h: Add equiv_lists to gfc_namespace and define + gfc_equiv_list and gfc_equiv_info. + * dependency.c (gfc_are_equivalenced_arrays): New function. + (gfc_check_dependency): Call it. + * dependency.h: Prototype for gfc_are_equivalenced_arrays. + +2006-03-01 Roger Sayle <roger@eyesopen.com> + + * dependency.c (gfc_is_same_range): Compare the stride, lower and + upper bounds when testing array reference ranges for equality. + (gfc_check_dependency): Fix indentation whitespace. + (gfc_check_element_vs_element): Likewise. + (gfc_dep_resolver): Likewise. + +2006-02-28 Thomas Koenig <Thomas.Koenig@online.de> + + * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): + If the mask expression exists and has rank 0, enclose the + generated loop in an "if (mask)". Put the default + initialization into the else branch. + +2006-02-25 Thomas Koenig <Thomas.Koenig@online.de> + + PR fortran/23092 + * trans-intrinsic.c (gfc_conv_intrinsic_arith): If the + mask expression exists and has rank 0, enclose the generated + loop in an "if (mask)". + * (gfc_conv_intrinsic_minmaxloc): Likewise. + +2006-02-24 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/26409 + * resolve.c (resolve_contained_functions, resolve_types, + gfc_resolve): Revert patch of 2006-02-19. + +2006-02-24 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/24519 + * dependency.c (gfc_is_same_range): Correct typo. + (gfc_check_section_vs_section): Call gfc_is_same_range. + + PR fortran/25395 + * trans-common.c (add_equivalences): Add a new flag that is set when + an equivalence is seen that prevents more from being reset until the + start of a new traversal of the list, thus ensuring completion of + all the equivalences. + +2006-02-23 Erik Edelmann <eedelman@gcc.gnu.org> + + * module.c (read_module): Remove redundant code lines. + +2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> + * Make-lang.in (FORTRAN): Remove + (.PHONY): Remove F95 and f95. Add fortran + +2006-02-20 Roger Sayle <roger@eyesopen.com> + + * trans-stmt.c (gfc_trans_where_2): Avoid updating unused current + execution mask for empty WHERE/ELSEWHERE clauses. Don't allocate + temporary mask arrays if they won't be used. + +2006-02-20 Roger Sayle <roger@eyesopen.com> + + * trans-stmt.c (gfc_trans_where_assign): Remove code to handle + traversing a linked list of MASKs. The MASK is now always a + single element requiring no ANDing during the assignment. + +2006-02-19 Thomas Koenig <Thomas.Koenig@online.de> + + * gfortran.texi: Document environment variables which + influence runtime behavior. + +2006-02-19 H.J. Lu <hongjiu.lu@intel.com> + + * resolve.c (resolve_contained_functions): Call resolve_entries + first. + (resolve_types): Remove calls to resolve_entries and + resolve_contained_functions. + (gfc_resolve): Call resolve_contained_functions. + +2006-02-19 Erik Edelmann <eedelman@gcc.gnu.org> + + PR fortran/26201 + * intrinsic.c (gfc_convert_type_warn): Call + gfc_intrinsic_symbol() on the newly created symbol. + +2006-02-19 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/25054 + * resolve.c (is_non_constant_shape_array): New function. + (resolve_fl_variable): Remove code for the new function and call it. + (resolve_fl_namelist): New function. Add test for namelist array + with non-constant shape, using is_non_constant_shape_array. + (resolve_symbol): Remove code for resolve_fl_namelist and call it. + + PR fortran/25089 + * match.c (match_namelist): Increment the refs field of an accepted + namelist object symbol. + * resolve.c (resolve_fl_namelist): Test namelist objects for a conflict + with contained or module procedures. + +2006-02-18 Roger Sayle <roger@eyesopen.com> + + * trans-stmt.c (struct temporary_list): Delete. + (gfc_trans_where_2): Major reorganization. Remove no longer needed + TEMP argument. Allocate and deallocate the control mask and + pending control mask locally. + (gfc_trans_forall_1): Delete TEMP local variable, and update + call to gfc_trans_where_2. No need to deallocate arrays after. + (gfc_evaluate_where_mask): Major reorganization. Change return + type to void. Pass in parent execution mask, MASK, and two + already allocated mask arrays CMASK and PMASK. On return + CMASK := MASK & COND, PMASK := MASK & !COND. MASK, CMASK and + CMASK may all be NULL, or refer to the same temporary arrays. + (gfc_trans_where): Update call to gfc_trans_where_2. We no + longer need a TEMP variable or to deallocate temporary arrays + allocated by gfc_trans_where_2. + +2006-02-18 Danny Smith <dannysmith@users.sourceforeg.net> + + * gfortran.h (gfc_add_attribute): Change uint to unsigned int. + * symbol.c (gfc_add_attribute): Likewise for definition. + * resolve.c (resolve_global_procedure): Likewise for variable 'type'. + +2006-02-17 Richard Sandiford <richard@codesourcery.com> + + * trans-common.c: Include rtl.h earlier. + * trans-decl.c: Likewise. + +2006-02-16 Jakub Jelinek <jakub@redhat.com> + + PR fortran/26224 + * parse.c (parse_omp_do, parse_omp_structured_block): Call + gfc_commit_symbols and gfc_warning_check. + + * openmp.c (resolve_omp_clauses): Add a dummy case label to workaround + PR middle-end/26316. + +2006-02-16 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/24557 + * trans-expr.c (gfc_add_interface_mapping): Use the actual argument + for character(*) arrays, rather than casting to the type and kind + parameters of the formal argument. + +2006-02-15 Toon Moene <toon@moene.indiv.nluug.nl> + + PR fortran/26054 + * options.c: Do not warn for Fortran 2003 features by default. + +2006-02-15 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> + + * check.c: Update copyright years. + + * check.c (gfc_check_minloc_maxloc, check_reduction): Don't call + dim_range_check on not-present optional dim argument. + +2006-02-15 Jakub Jelinek <jakub@redhat.com> + + PR libgomp/25938 + PR libgomp/25984 + * Make-lang.in (install-finclude-dir): New goal. + (fortran.install-common): Depend on install-finclude-dir. + * lang-specs.h: If not -nostdinc, add -I finclude. + +2006-02-14 Thomas Koenig <Thomas.Koenig@online.de> + + PR fortran/25045 + * check.c (dim_check): Perform all checks if dim is optional. + (gfc_check_minloc_maxloc): Use dim_check and dim_rank_check + to check dim argument. + (check_reduction): Likewise. + +2006-02-14 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> + + PR fortran/26277 + * io.c (match_ltag): Mark label as referenced. + +2006-02-14 Jakub Jelinek <jakub@redhat.com> + Richard Henderson <rth@redhat.com> + Diego Novillo <dnovillo@redhat.com> + + * invoke.texi: Document -fopenmp. + * gfortran.texi (Extensions): Document OpenMP. + + Backport from gomp-20050608-branch + * trans-openmp.c: Call build_omp_clause instead of + make_node when creating OMP_CLAUSE_* trees. + (gfc_trans_omp_reduction_list): Remove argument 'code'. + Adjust all callers. + + * trans.h (build4_v): Define. + * trans-openmp.c: Call build4_v to create OMP_PARALLEL nodes. + Call build3_v to create OMP_SECTIONS nodes. + + PR fortran/25162 + * openmp.c (gfc_match_omp_variable_list): Call gfc_set_sym_referenced + on all symbols added to the variable list. + + * openmp.c (gfc_match_omp_clauses): Fix check for non-INTRINSIC + procedure symbol in REDUCTION. + + * trans-openmp.c (gfc_trans_omp_array_reduction): Use gfc_add + for MINUS_EXPR OMP_CLAUSE_REDUCTION_CODE. + + * trans-openmp.c (gfc_trans_omp_do): Add PBLOCK argument. If PBLOCK + is non-NULL, evaluate INIT/COND/INCR and chunk size expressions in + that statement block. + (gfc_trans_omp_parallel_do): Pass non-NULL PBLOCK to gfc_trans_omp_do + for non-ordered non-static combined loops. + (gfc_trans_omp_directive): Pass NULL PBLOCK to gfc_trans_omp_do. + + * openmp.c: Include target.h and toplev.h. + (gfc_match_omp_threadprivate): Emit diagnostic if target does + not support TLS. + * Make-lang.in (fortran/openmp.o): Add dependencies on + target.h and toplev.h. + + * trans-decl.c (gfc_get_fake_result_decl): Set GFC_DECL_RESULT. + * trans-openmp.c (gfc_omp_privatize_by_reference): Make + DECL_ARTIFICIAL vars predetermined shared except GFC_DECL_RESULT. + (gfc_omp_disregard_value_expr): Handle GFC_DECL_RESULT. + (gfc_trans_omp_variable): New function. + (gfc_trans_omp_variable_list, gfc_trans_omp_reduction_list): Use it. + * trans.h (GFC_DECL_RESULT): Define. + + * trans-openmp.c (gfc_omp_firstprivatize_type_sizes): New function. + * f95-lang.c (LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define. + * trans.h (gfc_omp_firstprivatize_type_sizes): New prototype. + + * trans-openmp.c (gfc_omp_privatize_by_reference): Return + true if a pointer has GFC_DECL_SAVED_DESCRIPTOR set. + (gfc_trans_omp_array_reduction, gfc_trans_omp_reduction_list): New + functions. + (gfc_trans_omp_clauses): Add WHERE argument. Call + gfc_trans_omp_reduction_list rather than gfc_trans_omp_variable_list + for reductions. + (gfc_trans_omp_do, gfc_trans_omp_parallel, gfc_trans_omp_parallel_do, + gfc_trans_omp_parallel_sections, gfc_trans_omp_parallel_workshare, + gfc_trans_omp_sections, gfc_trans_omp_single): Adjust + gfc_trans_omp_clauses callers. + + * openmp.c (omp_current_do_code): New var. + (gfc_resolve_omp_do_blocks): New function. + (gfc_resolve_omp_parallel_blocks): Call it. + (gfc_resolve_do_iterator): Add CODE argument. Don't propagate + predetermination if argument is !$omp do or !$omp parallel do + iteration variable. + * resolve.c (resolve_code): Call gfc_resolve_omp_do_blocks + for EXEC_OMP_DO. Adjust gfc_resolve_do_iterator caller. + * fortran.h (gfc_resolve_omp_do_blocks): New prototype. + (gfc_resolve_do_iterator): Add CODE argument. + + * trans.h (gfc_omp_predetermined_sharing, + gfc_omp_disregard_value_expr, gfc_omp_private_debug_clause): New + prototypes. + (GFC_DECL_COMMON_OR_EQUIV, GFC_DECL_CRAY_POINTEE): Define. + * trans-openmp.c (gfc_omp_predetermined_sharing, + gfc_omp_disregard_value_expr, gfc_omp_private_debug_clause): New + functions. + * trans-common.c (build_equiv_decl, build_common_decl, + create_common): Set GFC_DECL_COMMON_OR_EQUIV flag on the decls. + * trans-decl.c (gfc_finish_cray_pointee): Set GFC_DECL_CRAY_POINTEE + on the decl. + * f95-lang.c (LANG_HOOKS_OMP_PREDETERMINED_SHARING, + LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR, + LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE): Define. + + * openmp.c (resolve_omp_clauses): Remove extraneous comma. + + * symbol.c (check_conflict): Add conflict between cray_pointee and + threadprivate. + * openmp.c (gfc_match_omp_threadprivate): Fail if + gfc_add_threadprivate returned FAILURE. + (resolve_omp_clauses): Diagnose Cray pointees in SHARED, + {,FIRST,LAST}PRIVATE and REDUCTION clauses and Cray pointers in + {FIRST,LAST}PRIVATE and REDUCTION clauses. + + * resolve.c (omp_workshare_flag): New variable. + (resolve_function): Diagnose use of non-ELEMENTAL user defined + function in WORKSHARE construct. + (resolve_code): Cleanup forall_save use. Make sure omp_workshare_flag + is set to correct value in different contexts. + + * openmp.c (resolve_omp_clauses): Replace %s with '%s' when printing + variable name. + (resolve_omp_atomic): Likewise. + + PR fortran/24493 + * scanner.c (skip_free_comments): Set at_bol at the beginning of the + loop, not before it. + (skip_fixed_comments): Handle ! comments in the middle of line here + as well. + (gfc_skip_comments): Use skip_fixed_comments for FIXED_FORM even if + not at BOL. + (gfc_next_char_literal): Fix expected canonicalized *$omp string. + + * trans-openmp.c (gfc_trans_omp_do): Use make_node and explicit + initialization to build OMP_FOR instead of build. + + * trans-decl.c (gfc_gimplify_function): Invoke + diagnose_omp_structured_block_errors. + + * trans-openmp.c (gfc_trans_omp_master): Use OMP_MASTER. + (gfc_trans_omp_ordered): Use OMP_ORDERED. + + * gfortran.h (gfc_resolve_do_iterator, gfc_resolve_blocks, + gfc_resolve_omp_parallel_blocks): New prototypes. + * resolve.c (resolve_blocks): Renamed to... + (gfc_resolve_blocks): ... this. Remove static. + (gfc_resolve_forall): Adjust caller. + (resolve_code): Only call gfc_resolve_blocks if code->block != 0 + and not for EXEC_OMP_PARALLEL* directives. Call + gfc_resolve_omp_parallel_blocks for EXEC_OMP_PARALLEL* directives. + Call gfc_resolve_do_iterator if resolved successfully EXEC_DO + iterator. + * openmp.c: Include pointer-set.h. + (omp_current_ctx): New variable. + (gfc_resolve_omp_parallel_blocks, gfc_resolve_do_iterator): New + functions. + * Make-lang.in (fortran/openmp.o): Depend on pointer-set.h. + + * openmp.c (gfc_match_omp_clauses): For max/min/iand/ior/ieor, + look up symbol if it exists, use its name instead and, if it is not + INTRINSIC, issue diagnostics. + + * parse.c (parse_omp_do): Handle implied end do properly. + (parse_executable): If parse_omp_do returned ST_IMPLIED_ENDDO, + return it instead of continuing. + + * trans-openmp.c (gfc_trans_omp_critical): Update for changed + operand numbering. + (gfc_trans_omp_do, gfc_trans_omp_parallel, gfc_trans_omp_parallel_do, + gfc_trans_omp_parallel_sections, gfc_trans_omp_parallel_workshare, + gfc_trans_omp_sections, gfc_trans_omp_single): Likewise. + + * trans.h (gfc_omp_privatize_by_reference): New prototype. + * f95-lang.c (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Redefine + to gfc_omp_privatize_by_reference. + * trans-openmp.c (gfc_omp_privatize_by_reference): New function. + + * trans-stmt.h (gfc_trans_omp_directive): Add comment. + + * openmp.c (gfc_match_omp_variable_list): Add ALLOW_COMMON argument. + Disallow COMMON matching if it is set. + (gfc_match_omp_clauses, gfc_match_omp_flush): Adjust all callers. + (resolve_omp_clauses): Show locus in error messages. Check that + variable types in reduction clauses are appropriate for reduction + operators. + + * resolve.c (resolve_symbol): Don't error if a threadprivate module + variable isn't SAVEd. + + * trans-openmp.c (gfc_trans_omp_do): Put count into BLOCK, not BODY. + Fix typo in condition. Fix DOVAR initialization. + + * openmp.c (gfc_match_omp_clauses): Match min/iand/ior/ieor + rather than .min. etc. + + * trans-openmpc.c (omp_not_yet): Remove. + (gfc_trans_omp_parallel_do): Keep listprivate clause on parallel. + Force creation of BIND_EXPR around the workshare construct. + (gfc_trans_omp_parallel_sections): Likewise. + (gfc_trans_omp_parallel_workshare): Likewise. + + * types.def (BT_I16, BT_FN_I16_VPTR_I16, + BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add. + + * trans-openmp.c (gfc_trans_omp_clauses): Create OMP_CLAUSE_DEFAULT. + (gfc_trans_omp_code): New function. + (gfc_trans_omp_do): Use it, remove omp_not_yet uses. + (gfc_trans_omp_parallel, gfc_trans_omp_single): Likewise. + (gfc_trans_omp_sections): Likewise. Only treat empty last section + specially if lastprivate clause is present. + * f95-lang.c (gfc_init_builtin_functions): Create BUILT_IN_TRAP + builtin. + + * trans-openmp.c (gfc_trans_omp_variable_list): Update for + OMP_CLAUSE_DECL name change. + (gfc_trans_omp_do): Likewise. + + * trans-openmp.c (gfc_trans_omp_clauses): Create OMP_CLAUSE_REDUCTION + clauses. + (gfc_trans_omp_atomic): Build OMP_ATOMIC instead of expanding + sync builtins directly. + (gfc_trans_omp_single): Build OMP_SINGLE statement. + + * trans-openmp.c (gfc_trans_add_clause): New. + (gfc_trans_omp_variable_list): Take a tree code and build the clause + node here. Link it to the head of a list. + (gfc_trans_omp_clauses): Update to match. + (gfc_trans_omp_do): Use gfc_trans_add_clause. + + * trans-openmp.c (gfc_trans_omp_clauses): Change second argument to + gfc_omp_clauses *. Use gfc_evaluate_now instead of creating + temporaries by hand. + (gfc_trans_omp_atomic, gfc_trans_omp_critical): Use buildN_v macros. + (gfc_trans_omp_do): New function. + (gfc_trans_omp_master): Dont' check for gfc_trans_code returning NULL. + (gfc_trans_omp_parallel): Adjust gfc_trans_omp_clauses caller. + Use buildN_v macros. + (gfc_trans_omp_parallel_do, gfc_trans_omp_parallel_sections, + gfc_trans_omp_parallel_workshare, gfc_trans_omp_sections, + gfc_trans_omp_single, gfc_trans_omp_workshare): New functions. + (gfc_trans_omp_directive): Use them. + * parse.c (parse_omp_do): Allow new_st.op == EXEC_NOP. + * openmp.c (resolve_omp_clauses): Check for list items present + in multiple clauses. + (resolve_omp_do): Check that iteration variable is not THREADPRIVATE + and is not present in any clause variable lists other than PRIVATE + or LASTPRIVATE. + + * gfortran.h (symbol_attribute): Add threadprivate bit. + (gfc_common_head): Add threadprivate member, change use_assoc + and saved into char to save space. + (gfc_add_threadprivate): New prototype. + * symbol.c (check_conflict): Handle threadprivate. + (gfc_add_threadprivate): New function. + (gfc_copy_attr): Copy threadprivate. + * trans-openmp.c (gfc_trans_omp_clauses): Avoid creating a temporary + if IF or NUM_THREADS is constant. Create OMP_CLAUSE_SCHEDULE and + OMP_CLAUSE_ORDERED. + * resolve.c (resolve_symbol): Complain if a THREADPRIVATE symbol + outside a module and not in COMMON has is not SAVEd. + (resolve_equivalence): Ensure THREADPRIVATE objects don't get + EQUIVALENCEd. + * trans-common.c: Include target.h and rtl.h. + (build_common_decl): Set DECL_TLS_MODEL if THREADPRIVATE. + * trans-decl.c: Include rtl.h. + (gfc_finish_var_decl): Set DECL_TLS_MODEL if THREADPRIVATE. + * dump-parse-tree.c (gfc_show_attr): Handle THREADPRIVATE. + * Make-lang.in (fortran/trans-decl.o): Depend on $(RTL_H). + (fortran/trans-common.o): Depend on $(RTL_H) and $(TARGET_H). + * openmp.c (gfc_match_omp_variable_list): Ensure COMMON block + is from current namespace. + (gfc_match_omp_threadprivate): Rewrite. + (resolve_omp_clauses): Check some clause restrictions. + * module.c (ab_attribute): Add AB_THREADPRIVATE. + (attr_bits): Add THREADPRIVATE. + (mio_symbol_attribute, mio_symbol_attribute): Handle threadprivate. + (load_commons, write_common, write_blank_common): Adjust for type + change of saved, store/load threadprivate bit from the integer + as well. + + * types.def (BT_FN_UINT_UINT): New. + (BT_FN_VOID_UINT_UINT): Remove. + + * trans-openmp.c (gfc_trans_omp_clauses, gfc_trans_omp_barrier, + gfc_trans_omp_critical, gfc_trans_omp_flush, gfc_trans_omp_master, + gfc_trans_omp_ordered, gfc_trans_omp_parallel): New functions. + (gfc_trans_omp_directive): Use them. + + * openmp.c (expr_references_sym): Add SE argument, don't look + into SE tree. + (is_conversion): New function. + (resolve_omp_atomic): Adjust expr_references_sym callers. Handle + promoted expressions. + * trans-openmp.c (gfc_trans_omp_atomic): New function. + (gfc_trans_omp_directive): Call it. + + * f95-lang.c (builtin_type_for_size): New function. + (gfc_init_builtin_functions): Initialize synchronization and + OpenMP builtins. + * types.def: New file. + * Make-lang.in (f95-lang.o): Depend on $(BUILTINS_DEF) and + fortran/types.def. + + * trans-openmp.c: Rename GOMP_* tree codes into OMP_*. + + * dump-parse-tree.c (show_symtree): Don't crash if ns->proc_name + is NULL. + + * dump-parse-tree.c (gfc_show_namelist, gfc_show_omp_node): New + functions. + (gfc_show_code_node): Call gfc_show_omp_node for EXEC_OMP_* nodes. + + * parse.c (parse_omp_do): Call pop_state before next_statement. + * openmp.c (expr_references_sym, resolve_omp_atomic, resolve_omp_do): + New functions. + (gfc_resolve_omp_directive): Call them. + * match.c (match_exit_cycle): Issue error if EXIT or CYCLE statement + leaves an OpenMP structured block or if EXIT terminates !$omp do + loop. + + * Make-lang.in (F95_PARSER_OBJS): Add fortran/openmp.o. + (F95_OBJS): Add fortran/trans-openmp.o. + (fortran/trans-openmp.o): Depend on $(GFORTRAN_TRANS_DEPS). + * lang.opt: Add -fopenmp option. + * options.c (gfc_init_options): Initialize it. + (gfc_handle_option): Handle it. + * gfortran.h (ST_OMP_ATOMIC, ST_OMP_BARRIER, ST_OMP_CRITICAL, + ST_OMP_END_CRITICAL, ST_OMP_END_DO, ST_OMP_END_MASTER, + ST_OMP_END_ORDERED, ST_OMP_END_PARALLEL, ST_OMP_END_PARALLEL_DO, + ST_OMP_END_PARALLEL_SECTIONS, ST_OMP_END_PARALLEL_WORKSHARE, + ST_OMP_END_SECTIONS, ST_OMP_END_SINGLE, ST_OMP_END_WORKSHARE, + ST_OMP_DO, ST_OMP_FLUSH, ST_OMP_MASTER, ST_OMP_ORDERED, + ST_OMP_PARALLEL, ST_OMP_PARALLEL_DO, ST_OMP_PARALLEL_SECTIONS, + ST_OMP_PARALLEL_WORKSHARE, ST_OMP_SECTIONS, ST_OMP_SECTION, + ST_OMP_SINGLE, ST_OMP_THREADPRIVATE, ST_OMP_WORKSHARE): New + statement codes. + (OMP_LIST_PRIVATE, OMP_LIST_FIRSTPRIVATE, OMP_LIST_LASTPRIVATE, + OMP_LIST_COPYPRIVATE, OMP_LIST_SHARED, OMP_LIST_COPYIN, + OMP_LIST_PLUS, OMP_LIST_REDUCTION_FIRST, OMP_LIST_MULT, + OMP_LIST_SUB, OMP_LIST_AND, OMP_LIST_OR, OMP_LIST_EQV, + OMP_LIST_NEQV, OMP_LIST_MAX, OMP_LIST_MIN, OMP_LIST_IAND, + OMP_LIST_IOR, OMP_LIST_IEOR, OMP_LIST_REDUCTION_LAST, OMP_LIST_NUM): + New OpenMP variable list types. + (gfc_omp_clauses): New typedef. + (gfc_get_omp_clauses): Define. + (EXEC_OMP_CRITICAL, EXEC_OMP_DO, EXEC_OMP_FLUSH, EXEC_OMP_MASTER, + EXEC_OMP_ORDERED, EXEC_OMP_PARALLEL, EXEC_OMP_PARALLEL_DO, + EXEC_OMP_PARALLEL_SECTIONS, EXEC_OMP_PARALLEL_WORKSHARE, + EXEC_OMP_SECTIONS, EXEC_OMP_SINGLE, EXEC_OMP_WORKSHARE, + EXEC_OMP_ATOMIC, EXEC_OMP_BARRIER, EXEC_OMP_END_NOWAIT, + EXEC_OMP_END_SINGLE): New OpenMP gfc_exec_op codes. + (struct gfc_code): Add omp_clauses, omp_name, omp_namelist + and omp_bool fields to ext union. + (flag_openmp): Declare. + (gfc_free_omp_clauses, gfc_resolve_omp_directive): New prototypes. + * scanner.c (openmp_flag, openmp_locus): New variables. + (skip_free_comments, skip_fixed_comments, gfc_next_char_literal): + Handle OpenMP directive lines and conditional compilation magic + comments. + * parse.h (COMP_OMP_STRUCTURED_BLOCK): New compile state. + * parse.c (decode_omp_directive, parse_omp_do, parse_omp_atomic, + parse_omp_structured_block): New functions. + (next_free, next_fixed): Parse OpenMP directives. + (case_executable, case_exec_markers, case_decl): Add ST_OMP_* + codes. + (gfc_ascii_statement): Handle ST_OMP_* codes. + (parse_executable): Rearrange the loop slightly, so that + parse_omp_do can return next_statement. + * match.h (gfc_match_omp_eos, gfc_match_omp_atomic, + gfc_match_omp_barrier, gfc_match_omp_critical, gfc_match_omp_do, + gfc_match_omp_flush, gfc_match_omp_master, gfc_match_omp_ordered, + gfc_match_omp_parallel, gfc_match_omp_parallel_do, + gfc_match_omp_parallel_sections, gfc_match_omp_parallel_workshare, + gfc_match_omp_sections, gfc_match_omp_single, + gfc_match_omp_threadprivate, gfc_match_omp_workshare, + gfc_match_omp_end_nowait, gfc_match_omp_end_single): New prototypes. + * resolve.c (resolve_blocks): Ignore EXEC_OMP_* block directives. + (resolve_code): Call gfc_resolve_omp_directive on EXEC_OMP_* + directives. + * trans.c (gfc_trans_code): Call gfc_trans_omp_directive for + EXEC_OMP_* directives. + * st.c (gfc_free_statement): Handle EXEC_OMP_* statement freeing. + * trans-stmt.h (gfc_trans_omp_directive): New prototype. + * openmp.c: New file. + * trans-openmp.c: New file. + +2006-02-13 Andrew Pinski <pinskia@physics.uc.edu> + Jakub Jelinek <jakub@redhat.com> + + PR fortran/26246 + * trans-decl.c (gfc_get_symbol_decl, gfc_get_fake_result_decl): Use + gfc_add_decl_to_function rather than gfc_finish_var_decl on length. + +2006-02-13 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/26074 + PR fortran/25103 + * resolve.c (resolve_symbol): Extend the requirement that module + arrays have constant bounds to those in the main program. At the + same time simplify the array bounds, to avoiding trapping parameter + array references, and exclude automatic character length from main + and modules. Rearrange resolve_symbol and resolve_derived to put as + each flavor together, as much as is possible and move all specific + code for flavors FL_VARIABLE, FL_PROCEDURE and FL_PARAMETER into new + functions. + (resolve_fl_var_and_proc, resolve_fl_variable, resolve_fl_procedure): + New functions to do work of resolve_symbol. + (resolve_index_expr): New function that is called from resolved_symbol + and is extracted from resolve_charlen. + (resolve_charlen): Call this new function. + (resolve_fl_derived): Renamed resolve_derived to be consistent with + the naming of the new functions for the other flavours. Change the + charlen checking so that the style is consistent with other similar + checks. Add the generation of the gfc_dt_list, removed from resolve_ + symbol. + + PR fortran/20861 + * resolve.c (resolve_actual_arglist): Prevent internal procedures + from being dummy arguments. + + PR fortran/20871 + * resolve.c (resolve_actual_arglist): Prevent pure but non-intrinsic + procedures from being dummy arguments. + + PR fortran/25083 + * resolve.c (check_data_variable): Add test that data variable is in + COMMON. + + PR fortran/25088 + * resolve.c (resolve_call): Add test that the subroutine does not + have a type. + +2006-02-12 Erik Edelmann <eedelman@gcc.gnu.org> + + PR fortran/25806 + * trans-array.c (gfc_trans_allocate_array_storage): New argument + dealloc; free the temporary only if dealloc is true. + (gfc_trans_allocate_temp_array): New argument bool dealloc, to be + passed onwards to gfc_trans_allocate_array_storage. + (gfc_trans_array_constructor, gfc_conv_loop_setup): Update call to + gfc_trans_allocate_temp_array. + * trans-array.h (gfc_trans_allocate_temp_array): Update function + prototype. + * trans-expr.c (gfc_conv_function_call): Set new argument 'dealloc' + to gfc_trans_allocate_temp_array to false in case of functions + returning pointers. + (gfc_trans_arrayfunc_assign): Return NULL for functions returning + pointers. + +2006-02-10 Steven G. Kargl <kargls@comcast.net> + + PR fortran/20858 + *decl.c (variable_decl): Improve error message. Remove initialization + typespec. Wrap long line. + *expr.c (gfc_check_pointer_assign): Permit checking of type, kind type, + and rank. + *simplify.c (gfc_simplify_null): Ensure type, kind type, and rank + are set. + + +2006-02-10 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> + + PR fortran/14771 + * arith.c (eval_intrinsic): Accept INTRINSIC_PARENTHESES. + * expr.c (check_intrinsic_op): Likewise. + * module.c (mio_expr): Likewise. + +2006-02-09 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> + + * dump-parse-tree.c: Update copyright years. + * matchexp.c: Likewise. + * module.c: Likewise. + + PR fortran/14771 + * gfortran.h (gfc_intrinsic_op): Add INTRINSIC_PARENTHESES. + * dump-parse-tree (gfc_show_expr): Handle INTRINSIC_PARENTHESES. + * expr.c (simplify_intrinsic_op): Treat INTRINSIC_PARENTHESES as + if it were INTRINSIC_UPLUS. + * resolve.c (resolve_operator): Handle INTRINSIC_PARENTHESES. + * match.c (intrinsic_operators): Add INTRINSIC_PARENTHESES. + * matchexp.c (match_primary): Record parentheses surrounding + numeric expressions. + * module.c (intrinsics): Add INTRINSIC_PARENTHESES for module + dumping. + * trans-expr.c (gfc_conv_expr_op): Handle INTRINSIC_PARENTHESES. + +2006-02-09 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/26038 + * trans-stmt.c (gfc_trans_allocate): Provide assumed character length + scalar with missing backend_decl for the hidden dummy charlen. + + PR fortran/25059 + * interface.c (gfc_extend_assign): Remove detection of non-PURE + subroutine in assignment interface, with gfc_error, and put it in + * resolve.c (resolve_code). + + PR fortran/25070 + * interface.c (gfc_procedure_use): Flag rank checking for non- + elemental, contained or interface procedures in call to + (compare_actual_formal), where ranks are checked for assumed + shape arrays.. + +2006-02-08 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR libfortran/25425 + * trans-decl.c (gfc_generate_function_code): Add new argument, + pedantic, to set_std call. + +2006-02-06 Thomas Koenig <Thomas.Koenig@online.de> + + PR libfortran/23815 + * gfortran.texi: Document the GFORTRAN_CONVERT_UNIT environment + variable. + * invoke.texi: Mention the "Runtime" chapter. + Document the -fconvert= option. + * gfortran.h: Add options_convert. + * lang.opt: Add fconvert=little-endian, fconvert=big-endian, + fconvert=native and fconvert=swap. + * trans-decl.c (top level): Add gfor_fndecl_set_convert. + (gfc_build_builtin_function_decls): Set gfor_fndecl_set_convert. + (gfc_generate_function_code): If -fconvert was specified, + and this is the main program, add a call to set_convert(). + * options.c: Handle the -fconvert options. + +2006-02-06 Roger Sayle <roger@eyesopen.com> + + * trans-stmt.c (gfc_evaluate_where_mask): Allow the NMASK argument + to be NULL to indicate that the not mask isn't required. + (gfc_trans_where_2): Remove PMASK argument. Avoid calculating the + pending mask for the last clause of a WHERE chain. Update recursive + call. + (gfc_trans_forall_1): Update call to gfc_trans_where_2. + (gfc_trans_where): Likewise. + +2006-02-06 Jakub Jelinek <jakub@redhat.com> + + Backport from gomp-20050608-branch + * trans-decl.c (create_function_arglist): Handle dummy functions. + + * trans-decl.c (gfc_get_symbol_decl): Revert explicit setting of + TYPE_SIZE_UNIT. + (gfc_trans_vla_type_sizes): Also "gimplify" + GFC_TYPE_ARRAY_DATAPTR_TYPE for GFC_DESCRIPTOR_TYPE_P types. + * trans-array.c (gfc_trans_deferred_array): Call + gfc_trans_vla_type_sizes. + + * trans-decl.c (saved_function_decls, saved_parent_function_decls): + Remove unnecessary initialization. + (create_function_arglist): Make sure __result has complete type. + (gfc_get_fake_result_decl): Change current_fake_result_decl into + a tree chain. For entry master, create a separate variable + for each result name. For BT_CHARACTER results, call + gfc_finish_var_decl on length even if it has been already created, + but not pushdecl'ed. + (gfc_trans_vla_type_sizes): For function/entry result, adjust + result value type, not the FUNCTION_TYPE. + (gfc_generate_function_code): Adjust for current_fake_result_decl + changes. + (gfc_trans_deferred_vars): Likewise. Call gfc_trans_vla_type_sizes + even on result if it is assumed-length character. + + * trans-decl.c (gfc_trans_dummy_character): Add SYM argument. + Call gfc_trans_vla_type_sizes. + (gfc_trans_auto_character_variable): Call gfc_trans_vla_type_sizes. + (gfc_trans_vla_one_sizepos, gfc_trans_vla_type_sizes_1, + gfc_trans_vla_type_sizes): New functions. + (gfc_trans_deferred_vars): Adjust gfc_trans_dummy_character + callers. Call gfc_trans_vla_type_sizes on assumed-length + character parameters. + * trans-array.c (gfc_trans_array_bounds, + gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias): Call + gfc_trans_vla_type_sizes. + * trans.h (gfc_trans_vla_type_sizes): New prototype. + + * trans-decl.c (gfc_build_qualified_array): For non-assumed-size + arrays without constant size, create also an index var for + GFC_TYPE_ARRAY_SIZE (type). If the type is incomplete, complete + it as 0..size-1. + (gfc_create_string_length): Don't call gfc_defer_symbol_init + if just creating DECL_ARGUMENTS. + (gfc_get_symbol_decl): Call gfc_finish_var_decl and + gfc_defer_symbol_init even if ts.cl->backend_decl is already + set to a VAR_DECL that doesn't have DECL_CONTEXT yet. + (create_function_arglist): Rework, so that hidden length + arguments for CHARACTER parameters are created together with + the parameters. Resolve ts.cl->backend_decl for CHARACTER + parameters. If the argument is a non-constant length array + or CHARACTER, ensure PARM_DECL has different type than + its DECL_ARG_TYPE. + (generate_local_decl): Call gfc_get_symbol_decl even + for non-referenced non-constant length CHARACTER parameters + after optionally issuing warnings. + * trans-array.c (gfc_trans_array_bounds): Set last stride + to GFC_TYPE_ARRAY_SIZE (type) to initialize it as well. + (gfc_trans_dummy_array_bias): Initialize GFC_TYPE_ARRAY_SIZE (type) + variable as well. + + * trans-expr.c (gfc_conv_expr_val): Fix comment typo. + + * trans-stmt.c (gfc_trans_simple_do): Fix comment. + +2006-02-04 Roger Sayle <roger@eyesopen.com> + + * dependency.c (gfc_check_dependency): Remove unused vars and nvars + arguments. Replace with an "identical" argument. A full array + reference to the same symbol is a dependency if identical is true. + * dependency.h (gfc_check_dependency): Update prototype. + * trans-array.h (gfc_check_dependency): Delete duplicate prototype. + * trans-stmt.c: #include dependency.h for gfc_check_dependency. + (gfc_trans_forall_1): Update calls to gfc_check_dependency. + (gfc_trans_where_2): Likewise. Remove unneeded variables. + (gfc_trans_where_3): New function for simple non-dependent WHEREs. + (gfc_trans_where): Call gfc_trans_where_3 to translate simple + F90-style WHERE statements without internal dependencies. + * Make-lang.in (trans-stmt.o): Depend upon dependency.h. + +2006-02-05 H.J. Lu <hongjiu.lu@intel.com> + + PR fortran/26041 + PR fortran/26064 + * resolve.c (resolve_types): New function. + (resolve_codes): Likewise. + (gfc_resolve): Use them. + +2006-02-05 Roger Sayle <roger@eyesopen.com> + + * trans-stmt.c (gfc_evaluate_where_mask): Use LOGICAL*1 for WHERE + masks instead of LOGICAL*4. + +2006-02-05 Jakub Jelinek <jakub@redhat.com> + + * resolve.c (resolve_symbol): Initialize constructor_expr to NULL. + +2006-02-04 Thomas Koenig <Thomas.Koenig@online.de> + + PR fortran/25075 + check.c (identical_dimen_shape): New function. + (check_dot_product): Use identical_dimen_shape() to check sizes + for dot_product. + (gfc_check_matmul): Likewise. + (gfc_check_merge): Check conformance between tsource and fsource + and between tsource and mask. + (gfc_check_pack): Check conformance between array and mask. + +2006-02-03 Steven G. Kargl <kargls@comcast> + Paul Thomas <pault@gcc.gnu.org> + + PR fortran/20845 + * resolve.c (resolve_symbol): Default initialization of derived type + component reguires the SAVE attribute. + +2006-02-02 Steven G. Kargl <kargls@comcast> + + PR fortran/24958 + match.c (gfc_match_nullify): Free the list from head not tail. + + PR fortran/25072 + * match.c (match_forall_header): Fix internal error caused by bogus + gfc_epxr pointers. + + +2006-01-31 Thomas Koenig <Thomas.Koenig@online.de> + + PR fortran/26039 + expr.c (gfc_check_conformance): Reorder error message + to avoid plural. + check.c(gfc_check_minloc_maxloc): Call gfc_check_conformance + for checking arguments array and mask. + (check_reduction): Likewise. + +2006-01-30 Erik Edelmann <eedelman@gcc.gnu.org> + + PR fortran/24266 + * trans-io.c (set_internal_unit): Check the rank of the + expression node itself instead of its symbol. + +2006-01-29 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/18578 + PR fortran/18579 + PR fortran/20857 + PR fortran/20885 + * interface.c (compare_actual_formal): Error for INTENT(OUT or INOUT) + if actual argument is not a variable. + +2006-01-28 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/17911 + * expr.c (gfc_check_assign, gfc_check_pointer_assign): Emit error if + the lvalue is a use associated procedure. + + PR fortran/20895 + PR fortran/25030 + * expr.c (gfc_check_pointer_assign): Emit error if lvalue and rvalue + character lengths are not the same. Use gfc_dep_compare_expr for the + comparison. + * gfortran.h: Add prototype for gfc_dep_compare_expr. + * dependency.h: Remove prototype for gfc_dep_compare_expr. + +2006-01-27 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/25964 + * resolve.c (resolve_function): Add GFC_ISYM_LOC to the list of + generic_ids exempted from assumed size checking. + +2006-01-27 Jakub Jelinek <jakub@redhat.com> + + PR fortran/25324 + * Make-lang.in (fortran/scanner.o): Depend on toplev.h. + * lang.opt (fpreprocessed): New option. + * scanner.c: Include toplev.h. + (gfc_src_file, gfc_src_preprocessor_lines): New variables. + (preprocessor_line): Unescape filename if there were any + backslashes. + (load_file): If initial and gfc_src_file is not NULL, + use it rather than opening the file. If gfc_src_preprocessor_lines + has non-NULL elements, pass it to preprocessor_line. + (unescape_filename, gfc_read_orig_filename): New functions. + * gfortran.h (gfc_option_t): Add flag_preprocessed. + (gfc_read_orig_filename): New prototype. + * options.c (gfc_init_options): Clear flag_preprocessed. + (gfc_post_options): If flag_preprocessed, call + gfc_read_orig_filename. + (gfc_handle_option): Handle OPT_fpreprocessed. + * lang-specs.h: Pass -fpreprocessed to f951 if preprocessing + sources. + +2006-01-27 Erik Edelmann <eedelman@gcc.gnu.org> + + * symbol.c (free_old_symbol): Fix confusing comment, and add code + to free old_symbol->formal. + +2006-01-26 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/25964 + * resolve.c (resolve_function): Exclude statement functions from + global reference checking. + + PR fortran/25084 + PR fortran/20852 + PR fortran/25085 + PR fortran/25086 + * resolve.c (resolve_function): Declare a gfc_symbol to replace the + references through the symtree to the symbol associated with the + function expresion. Give error on reference to an assumed character + length function is defined in an interface or an external function + that is not a dummy argument. + (resolve_symbol): Give error if an assumed character length function + is array-valued, pointer-valued, pure or recursive. Emit warning + that character(*) value functions are obsolescent in F95. + + PR fortran/25416 + * trans-expr.c (gfc_conv_function_call): The above patch to resolve.c + prevents any assumed character length function call from getting here + except intrinsics such as SPREAD. In this case, ensure that no + segfault occurs from referencing non-existent charlen->length-> + expr_type and provide a backend_decl for the charlen from the charlen + of the first actual argument. + + Cure temp name confusion. + * trans-expr.c (gfc_get_interface_mapping_array): Change name of + temporary from "parm" to "ifm" to avoid clash with temp coming from + trans-array.c. + +2006-01-25 Erik Edelmann <eedelman@gcc.gnu.org> + + PR fortran/25716 + * symbol.c (free_old_symbol): New function. + (gfc_commit_symbols): Use it. + (gfc_commit_symbol): New function. + (gfc_use_derived): Use it. + * gfortran.h: Add prototype for gfc_commit_symbol. + * intrinsic.c (gfc_find_function): Search in 'conversion' + if not found in 'functions'. + (gfc_convert_type_warn): Add a symtree to the new + expression node, and commit the new symtree->n.sym. + * resolve.c (gfc_resolve_index): Make sure typespec is + properly initialized. + +2006-01-23 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/25901 + * decl.c (get_proc_name): Replace subroutine and function attributes + in "already defined" test by the formal arglist pointer being non-NULL. + + Fix regression in testing of admissability of attributes. + * symbol.c (gfc_add_attribute): If the current_attr has non-zero + intent, do not do the check for a dummy being used. + * decl.c (attr_decl1): Add current_attr.intent as the third argument + in the call to gfc_add_attribute. + * gfortran.h: Add the third argument to the prototype for + gfc_add_attribute. + +2006-01-21 Joseph S. Myers <joseph@codesourcery.com> + + * gfortranspec.c (lang_specific_driver): Update copyright notice + date. + +2006-01-21 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/25124 + PR fortran/25625 + * decl.c (get_proc_name): If there is an existing + symbol in the encompassing namespace, call errors + if it is a procedure of the same name or the kind + field is set, indicating a type declaration. + + PR fortran/20881 + PR fortran/23308 + PR fortran/25538 + PR fortran/25710 + * decl.c (add_global_entry): New function to check + for existing global symbol with this name and to + create new one if none exists. + (gfc_match_entry): Call add_global_entry before + matching argument lists for subroutine and function + entries. + * gfortran.h: Prototype for existing function, + global_used. + * resolve.c (resolve_global_procedure): New function + to check global symbols for procedures. + (resolve_call, resolve_function): Calls to this + new function for non-contained and non-module + procedures. + * match.c (match_common): Add check for existing + global symbol, creat one if none exists and emit + error if there is a clash. + * parse.c (global_used): Remove static and use the + gsymbol name rather than the new_block name, so that + the function can be called from resolve.c. + (parse_block_data, parse_module, add_global_procedure): + Improve checks for existing gsymbols. Emit error if + already defined or if references were to another type. + Set defined flag. + + PR fortran/PR24276 + * trans-expr.c (gfc_conv_aliased_arg): New function called by + gfc_conv_function_call that coverts an expression for an aliased + component reference to a derived type array into a temporary array + of the same type as the component. The temporary is passed as an + actual argument for the procedure call and is copied back to the + derived type after the call. + (is_aliased_array): New function that detects an array reference + that is followed by a component reference. + (gfc_conv_function_call): Detect an aliased actual argument with + is_aliased_array and convert it to a temporary and back again + using gfc_conv_aliased_arg. + +2006-01-19 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> + + * gfortranspec.c: Update copyright years. + * trans.c: Likewise. + * trans-array.c: Likewise. + * trans-array.h: Likewise. + * trans-decl.c: Likewise. + * trans-stmt.c: Likewise. + * trans-stmt.h: Likewise. + * trans-types.c: Likewise. + +2006-01-18 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> + + PR fortran/18540 + PR fortran/18937 + * gfortran.h (BBT_HEADER): Move definition up. + (gfc_st_label): Add BBT_HEADER, remove 'prev' and 'next'. + * io.c (format_asterisk): Adapt initializer. + * resolve.c (resolve_branch): Allow FORTRAN 66 cross-block GOTOs + as extension. + (warn_unused_label): Take gfc_st_label label as argument, adapt to + new data structure. + (gfc_resolve): Adapt call to warn_unused_label. + * symbol.c (compare_st_labels): New function. + (gfc_free_st_label, free_st_labels, gfc_get_st_label): Convert to + using balanced binary tree. + * decl.c (match_char_length, gfc_match_old_kind_spec): Do away + with 'cnt'. + (warn_unused_label): Adapt to binary tree. + * match.c (gfc_match_small_literal_int): Only set cnt if non-NULL. + * primary.c (match_kind_param): Do away with cnt. + +2006-01-18 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/20869 + PR fortran/20875 + PR fortran/25024 + * symbol.c (check_conflict): Add pointer valued elemental + functions and internal procedures with the external attribute + to the list of conflicts. + (gfc_add_attribute): New catch-all function to perform the + checking of symbol attributes for attribute declaration + statements. + * decl.c (attr_decl1): Call gfc_add_attribute for each of - + (gfc_match_external, gfc_match_intent, gfc_match_intrinsic, + gfc_match_pointer, gfc_match_dimension, gfc_match_target): + Remove spurious calls to checks in symbol.c. Set the + attribute directly and use the call to attr_decl() for + checking. + * gfortran.h: Add prototype for gfc_add_attribute. + + PR fortran/25785 + * resolve.c (resolve_function): Exclude PRESENT from assumed size + argument checking. Replace strcmp's with comparisons with generic + codes. + +2006-01-16 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> + + * gfortranspec.c (lang_specific_spec_functions): Remove. + +2006-01-16 Richard Guenther <rguenther@suse.de> + + * trans-stmt.c (gfc_trans_if_1): Use fold_buildN and build_int_cst. + (gfc_trans_arithmetic_if): Likewise. + (gfc_trans_simple_do): Likewise. + (gfc_trans_do): Likewise. + (gfc_trans_do_while): Likewise. + (gfc_trans_logical_select): Likewise. + (gfc_trans_forall_loop): Likewise. + (generate_loop_for_temp_to_lhs): Likewise. + (generate_loop_for_rhs_to_temp): Likewise. + (gfc_trans_allocate): Likewise. + * trans.c (gfc_add_expr_to_block): Do not fold expr again. + +2006-01-16 Richard Guenther <rguenther@suse.de> + + * trans-expr.c (gfc_conv_function_call): Use fold_build2. + * trans-stmt.c (gfc_trans_goto): Likewise. Use build_int_cst. + * trans.c (gfc_trans_runtime_check): Don't fold the condition + again. + +2006-01-13 Steven G. Kargl <kargls@comcast.net> + + PR fortran/25756 + * symbol.c (gfc_free_st_label): Give variable meaningful name. Remove + unneeded parenthesis. Fix-up the head of the list (2 lines gleaned + from g95). + +2006-01-13 Diego Novillo <dnovillo@redhat.com> + + * trans.c (gfc_add_expr_to_block): Do not fold tcc_statement + nodes. + +2006-01-11 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> + + * parse.c (next_fixed): Remove superfluous string concatenation. + +2006-01-11 Bernhard Fischer <rep.nop@aon.at> + + PR fortran/25486 + * scanner.c (load_line): use maxlen to determine the line-length used + for padding lines in fixed form. + +2006-01-11 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/25730 + * trans-types.c (copy_dt_decls_ifequal): Copy backend decl for + character lengths. + +2006-01-09 Andrew Pinski <pinskia@physics.uc.edu> + + fortran/24936 + * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Use fold_convert + to avoid type mismatch. + +2006-01-09 Andrew Pinski <pinskia@physics.uc.edu> + + PR fortran/21977 + * trans-decl.c (gfc_generate_function_code): Move the NULLing of + current_fake_result_decl down to below generate_local_vars. + +2006-01-09 Feng Wang <fengwang@nudt.edu.cn> + + PR fortran/12456 + * trans-expr.c (gfc_to_single_character): New function that converts + string to single character if its length is 1. + (gfc_build_compare_string):New function that compare string and handle + single character specially. + (gfc_conv_expr_op): Use gfc_build_compare_string. + (gfc_trans_string_copy): Use gfc_to_single_character. + * trans-intrinsic.c (gfc_conv_intrinsic_strcmp): Use + gfc_build_compare_string. + * trans.h (gfc_build_compare_string): Add prototype. + +2006-01-09 Feng Wang <fengwang@nudt.edu.cn> + + * simplify.c (gfc_simplify_char): Use UCHAR_MAX instead of literal + constant. + (gfc_simplify_ichar): Get the result from unsinged char and in the + range 0 to UCHAR_MAX instead of CHAR_MIN to CHAR_MAX. + +2006-01-08 Erik Edelmann <eedelman@gcc.gnu.org> + + PR fortran/25093 + * resolve.c (resolve_fntype): Check that PUBLIC functions + aren't of PRIVATE type. + +2006-01-07 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de> + + * decl.c (gfc_match_function_decl): Correctly error out in case of + omitted function argument list. + +2006-01-07 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/22146 + * trans-array.c (gfc_reverse_ss): Remove static attribute. + (gfc_walk_elemental_function_args): Replace gfc_expr * argument for + the function call with the corresponding gfc_actual_arglist*. Change + code accordingly. + (gfc_walk_function_expr): Call to gfc_walk_elemental_function_args + now requires the actual argument list instead of the expression for + the function call. + * trans-array.h: Modify the prototype for gfc_walk_elemental_function_args + and provide a prototype for gfc_reverse_ss. + * trans-stmt.h (gfc_trans_call): Add the scalarization code for the case + where an elemental subroutine has array valued actual arguments. + + PR fortran/25029 + PR fortran/21256 + PR fortran/20868 + PR fortran/20870 + * resolve.c (check_assumed_size_reference): New function to check for upper + bound in assumed size array references. + (resolve_assumed_size_actual): New function to do a very restricted scan + of actual argument expressions of those procedures for which incomplete + assumed size array references are not allowed. + (resolve_function, resolve_call): Switch off assumed size checking of + actual arguments, except for elemental procedures and intrinsic + inquiry functions, in some circumstances. + (resolve_variable): Call check_assumed_size_reference. + +2006-01-05 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR fortran/24268 + * io.c (next_char_not_space): New function that returns the next + character that is not white space. + (format_lex): Use the new function to skip whitespace within + a format string. + +2006-01-05 Erik Edelmann <eedelman@gcc.gnu.org> + + PR fortran/23675 + * expr.c (gfc_expr_set_symbols_referenced): New function. + * gfortran.h: Add a function prototype for it. + * resolve.c (resolve_function): Use it for + use associated character functions lengths. + * expr.c, gfortran.h, resolve.c: Updated copyright years. + +2006-01-03 Steven G. Kargl <kargls@comcast.net> + + PR fortran/25101 + * resolve.c (resolve_forall_iterators): Check for scalar variables; + Check stride is nonzero. + +2006-01-02 Steven G. Kargl <kargls@comcast.net> + + PR fortran/24640 + * parse.c (next_free): Check for whitespace after the label. + * match.c (gfc_match_small_literal_int): Initialize cnt variable. + +2006-01-01 Steven G. Kargl <kargls@comcast.net> + + * ChangeLog: Split previous years into ... + * ChangeLog-2002: here. + * ChangeLog-2003: here. + * ChangeLog-2004: here. + * ChangeLog-2005: here. |