| 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 Ávila de Espíndola <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 Schlüter <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. | |
| 2006-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. | |
| 2006-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. | |
| Copyright (C) 2006 Free Software Foundation, Inc. | |
| Copying and distribution of this file, with or without modification, | |
| are permitted in any medium without royalty provided the copyright | |
| notice and this notice are preserved. |