| 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 |
|