aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/fortran/ChangeLog4540
-rw-r--r--gcc/fortran/ChangeLog-20064538
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.