+2009-06-18 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/40451
+ * resolve.c (resolve_contained_fntype): Prevent implicit typing for
+ procedures with explicit interface.
+ * symbol.c (gfc_check_function_type): Ditto.
+
+2009-06-16 Ian Lance Taylor <iant@google.com>
+
+ * decl.c (build_struct): Rewrite loop over constructor elements.
+
+2009-06-16 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/36947
+ PR fortran/40039
+ * expr.c (gfc_check_pointer_assign): Call 'gfc_compare_interfaces' with
+ error message.
+ * gfortran.h (gfc_compare_interfaces): Additional argument.
+ * interface.c (operator_correspondence): Removed.
+ (gfc_compare_interfaces): Additional argument to return error message.
+ Directly use the code from 'operator_correspondence' instead of calling
+ the function. Check for OPTIONAL. Some rearrangements.
+ (check_interface1): Call 'gfc_compare_interfaces' without error message.
+ (compare_parameter): Call 'gfc_compare_interfaces' with error message.
+ * resolve.c (check_generic_tbp_ambiguity): Call 'gfc_compare_interfaces'
+ without error message.
+
+2009-06-16 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/40383
+ * trans-decl.c (create_function_arglist): Copy formal charlist to
+ have a proper passed_length for -fcheck=bounds.
+
+2009-06-12 Steven G. Kargl <kargls@comcast.net>
+
+ * arith.c (gfc_enum_initializer): Move function ...
+ * decl.c: ... here. Remove gfc_ prefix and make static.
+ (enumerator_decl): Update function call.
+ * gfortran.h: Remove gfc_enum_initializer prototype.
+
+2009-06-12 Aldy Hernandez <aldyh@redhat.com>
+
+ * trans-array.c (gfc_trans_allocate_array_storage): Pass
+ location on down.
+ (gfc_trans_array_constructor_value): Same.
+ (gfc_trans_scalarized_loop_end): Same.
+ (gfc_conv_ss_startstride): Same.
+ (gfc_trans_g77_array): Same.
+ (gfc_trans_dummy_array_bias): Same.
+ (gfc_conv_array_parameter): Same.
+ (structure_alloc_comps): Same.
+ * trans-expr.c (gfc_conv_function_call): Same.
+ (fill_with_spaces): Same.
+ (gfc_trans_string_copy): Same.
+ (gfc_trans_scalar_assign): Same.
+ * trans-stmt.c (gfc_trans_goto): Same.
+ (gfc_trans_if_1): Same.
+ (gfc_trans_simple_do): Same.
+ (gfc_trans_do): Same.
+ (gfc_trans_do_while): Same.
+ (gfc_trans_logical_select): Same.
+ (gfc_trans_select): Same.
+ (gfc_trans_forall_loop): Same.
+ (gfc_trans_nested_forall_loop): Same.
+ (generate_loop_for_temp_to_lhs): Same.
+ (generate_loop_for_rhs_to_temp): Same.
+ (gfc_trans_forall_1): Same.
+ (gfc_trans_where_assign): Same.
+ (gfc_trans_where_3): Same.
+ (gfc_trans_allocate): Same.
+ * trans.c (gfc_finish_block): Same.
+ (gfc_trans_runtime_check): Same.
+ (gfc_call_malloc): Same.
+ (gfc_allocate_with_status): Same.
+ (gfc_call_free): Same.
+ (gfc_deallocate_with_status): Same.
+ (gfc_call_realloc): Same.
+ (gfc_trans_code): Same.
+ * trans-decl.c (gfc_init_default_dt): Same.
+ (gfc_generate_constructors): Same.
+ * trans-io.c (gfc_trans_io_runtime_check): Same.
+ * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Same.
+ (gfc_conv_intrinsic_fdate): Same.
+ (gfc_conv_intrinsic_ttynam): Same.
+ (gfc_conv_intrinsic_minmax): Same.
+ (gfc_conv_intrinsic_minmax_char): Same.
+ (gfc_conv_intrinsic_anyall): Same.
+ (gfc_conv_intrinsic_count): Same.
+ (gfc_conv_intrinsic_arith): Same.
+ (gfc_conv_intrinsic_minmaxloc): Same.
+ (gfc_conv_intrinsic_minmaxval): Same.
+ (gfc_conv_intrinsic_rrspacing): Same.
+ (gfc_conv_intrinsic_array_transfer): Same.
+ (gfc_conv_intrinsic_trim): Same.
+ (gfc_conv_intrinsic_repeat): Same.
+
+2009-06-12 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/40176
+ * resolve.c (resolve_symbol): Additional error check, preventing an
+ infinite loop.
+
+2009-06-11 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/40402
+ * resolve.c (next_data_value): It is an error if the value is
+ not constant.
+
+2009-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/38718
+ * intrinsic.c (add_functions): Add simplifiers for ISNAN,
+ IS_IOSTAT_END and IS_IOSTAT_EOR.
+ * intrinsic.h (gfc_simplify_is_iostat_end, gfc_simplify_is_iostat_eor,
+ gfc_simplify_isnan): New prototypes.
+ * intrinsic.c (gfc_simplify_is_iostat_end, gfc_simplify_is_iostat_eor,
+ gfc_simplify_isnan): New functions.
+
+2009-06-11 Jakub Jelinek <jakub@redhat.com>
+
+ * interface.c (fold_unary): Rename to...
+ (fold_unary_intrinsic): ... this.
+ (gfc_extend_expr): Adjust caller.
+ (gfc_match_generic_spec): Likewise. Initialize *op to INTRINSIC_NONE
+ to avoid warnings.
+ * expr.c (gfc_simplify_expr): Initialize start and end before calling
+ gfc_extract_int.
+
+2009-06-10 Dave Korn <dave.korn.cygwin@gmail.com>
+
+ * trans-decl.c (create_main_function): Don't build main decl twice.
+
+2009-06-09 Tobias Burnus <burnus@net-b.de>
+
+ * trans-decl.c (gfc_generate_function_code): Use gfc_option.rtcheck
+ instead of flag_bounds_check.
+ * intrinsic.texi (ISO_FORTRAN_ENV): Document INT{8,16,32,64} and
+ REAL{32,64,128}.
+
+2009-06-08 Paul Thomas <pault@gcc.gnu.org>
+
+ * trans-array.h : Replace prototypes for
+ gfc_conv_descriptor_offset, gfc_conv_descriptor_stride,
+ gfc_conv_descriptor_lbound, gfc_conv_descriptor_ubound with new
+ prototypes of the same names with _get or _set appended.
+ * trans-array.c : Make the originals of the above static and
+ new functions for the _get and _set functions. Update all the
+ references to these descriptor access functions.
+ * trans-expr.c : Update references to the above descriptor
+ access functions.
+ * trans-intrinsic.c : The same.
+ * trans-openmp.c : The same.
+ * trans-stmt.c : The same.
+
+2009-06-08 Alexandre Oliva <aoliva@redhat.com>
+
+ * options.c (gfc_post_options): Disable dump_parse_tree
+ during -fcompare-debug-second.
+
+2009-06-07 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/40008
+ * gfortran.h (gfc_open): Add newunit expression to structure.
+ * io.c (io_tag): Add new unit tag and fix whitespace.
+ (match_open_element): Add matching for newunit.
+ (gfc_free_open): Free the newunit expression.
+ (gfc_resolve_open): Add newunit to resolution and check constraints.
+ (gfc_resolve_close): Add check for non-negative unit.
+ (gfc_resolve_filepos): Likewise.
+ (gfc_resolve_dt): Likewise.
+ * trans-io.c (set_parameter_value): Build runtime checks for unit
+ numbers within range of kind=4 integer. (gfc_trans_open) Set the
+ newunit parameter.
+ * ioparm.def (IOPARM): Define the newunit parameter as a pointer
+ to GFC_INTEGER_4, pint4.
+
+2009-06-07 Daniel Franke <franke.daniel@gmail.com>
+
+ PR fortran/25104
+ PR fortran/29962
+ * array.c (gfc_append_constructor): Added NULL-check.
+ * check.c (gfc_check_spread): Check DIM.
+ (gfc_check_unpack): Check that the ARRAY arguments provides enough
+ values for MASK.
+ * intrinsic.h (gfc_simplify_spread): New prototype.
+ (gfc_simplify_unpack): Likewise.
+ * intrinsic.c (add_functions): Added new simplifier callbacks.
+ * simplify.c (gfc_simplify_spread): New.
+ (gfc_simplify_unpack): New.
+ * expr.c (check_transformational): Allow additional transformational
+ intrinsics in initialization expression.
+
+2009-06-07 Daniel Franke <franke.daniel@gmail.com>
+
+ PR fortran/25104
+ PR fortran/29962
+ * check.c (gfc_check_all_any): Check rank of DIM.
+ (gfc_check_count): Likewise.
+ * intrinsic.h (gfc_simplify_all): New prototype.
+ (gfc_simplify_any): Likewise.
+ (gfc_simplify_count): Likewise.
+ (gfc_simplify_sum): Likewise.
+ (gfc_simplify_product): Likewise.
+ * intrinsic.c (add_functions): Added new simplifier callbacks.
+ * simplify.c (transformational_result): New.
+ (simplify_transformation_to_scalar): New.
+ (simplify_transformation_to_array): New.
+ (gfc_count): New.
+ (gfc_simplify_all): New.
+ (gfc_simplify_any): New.
+ (gfc_simplify_count): New.
+ (gfc_simplify_sum): New.
+ (gfc_simplify_product): New.
+ * expr.c (check_transformational): Allow additional transformational
+ intrinsics in initialization expression.
+
+2009-06-07 Daniel Franke <franke.daniel@gmail.com>
+
+ * check.c (dim_rank_check): Return SUCCESS if DIM=NULL.
+ (gfc_check_lbound): Removed (now) redundant check for DIM=NULL.
+ (gfc_check_minloc_maxloc): Likewise.
+ (check_reduction): Likewise.
+ (gfc_check_size): Likewise.
+ (gfc_check_ubound): Likewise.
+ (gfc_check_cshift): Added missing shape-conformance checks.
+ (gfc_check_eoshift): Likewise.
+ * gfortran.h (gfc_check_conformance): Modified prototype to printf-style.
+ * expr.c (gfc_check_conformance): Accept error-message chunks in
+ printf-style. Changed all callers.
+
+
+2009-06-07 Daniel Franke <franke.daniel@gmail.com>
+
+ PR fortran/25104
+ PR fortran/29962
+ * intrinsic.h (gfc_simplify_dot_product): New prototype.
+ (gfc_simplify_matmul): Likewise.
+ (gfc_simplify_transpose): Likewise.
+ * intrinsic.c (add_functions): Added new simplifier callbacks.
+ * simplify.c (init_result_expr): New.
+ (compute_dot_product): New.
+ (gfc_simplify_dot_product): New.
+ (gfc_simplify_matmul): New.
+ (gfc_simplify_transpose): New.
+ * expr.c (check_transformational): Allow transformational intrinsics
+ with simplifier in initialization expression.
+
+2009-06-06 Daniel Franke <franke.daniel@gmail.com>
+
+ PR fortran/37203
+ * simplify.c (gfc_simplify_reshape): Fixed reshaping of empty arrays
+ without padding.
+
+2009-06-06 Daniel Franke <franke.daniel@gmail.com>
+
+ PR fortran/32890
+ * intrinsic.h (gfc_simplify_pack): New prototype.
+ * intrinsic.c (add_functions): Added
+ simplifier-callback to PACK.
+ * simplify.c (is_constant_array_expr): Moved
+ to beginning of file.
+ (gfc_simplify_pack): New.
+ * check.c (gfc_check_pack): Check that VECTOR has enough elements.
+ Added safeguards for empty arrays.
+
+2009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * simplify.c (call_mpc_func): Use mpc_realref/mpc_imagref
+ instead of MPC_RE/MPC_IM.
+
+2009-06-05 Alexandre Oliva <aoliva@redhat.com>
+
+ * trans-decl.c (gfc_build_qualified_array): Don't skip generation
+ of range types.
+ * trans.h (struct lang_type): Add base_decls.
+ (GFC_TYPE_ARRAY_BASE_DECL): New.
+ * trans-types.c (gfc_get_array_type_bounds): Initialize base decls
+ proactively and excessively.
+ (gfc_get_array_descr_info): Use existing base decls if available.
+
+2009-06-04 Daniel Franke <franke.daniel@gmail.com>
+
+ PR fortran/37203
+ * check.c (gfc_check_reshape): Additional checks for the
+ SHAPE and ORDER arguments.
+ * simplify.c (gfc_simplify_reshape): Converted argument checks
+ to asserts.
+
+2009-06-03 Tobias Burnus <burnus@net-b.de>
+
+ * gfortran.texi: Add mixed-language programming, mention
+ varying string lengths, some clean up of introduction parts.
+ * intrinsic.texi (instrinsic modules): Create @menu for subsections.
+ (ISO_C_BINDING): Support ISOCBINDING_INT_FAST128_T.
+ * libgfortran.h: Comment to rember to keep gfortran.texi in sync.
+ * iso-c-binding.def: Support ISOCBINDING_INT_FAST128_T.
+
+2009-06-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+ Tobias Burnus <burnus@net-b.de>
+
+ * iso-c-binding.def: Use INTMAX_TYPE instead of intmax_type_node.
+ * trans-types.c (init_c_interop_kinds): Remove intmax_type_node.
+
+2009-06-03 Alexandre Oliva <aoliva@redhat.com>
+
+ * module.c (mio_f2k_derived): Initialize cur.
+
+2009-06-01 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/40309
+ * trans-decl.c (gfc_sym_identifier): Use "MAIN__" for PROGRAM "main".
+ (create_main_function): Set main_identifier_node.
+
+2009-05-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/40019
+ * trans-types.c (gfc_build_uint_type): Make nonstatic.
+ * trans.h (gfor_fndecl_clz128, gfor_fndecl_ctz128): New prototypes.
+ * trans-types.h (gfc_build_uint_type): Add prototype.
+ * trans-decl.c (gfc_build_intrinsic_function_decls): Build
+ gfor_fndecl_clz128 and gfor_fndecl_ctz128.
+ * trans-intrinsic.c (gfc_conv_intrinsic_leadz,
+ gfc_conv_intrinsic_trailz): Call the right builtins or library
+ functions, and cast arguments to unsigned types first.
+ * simplify.c (gfc_simplify_leadz): Deal with negative arguments.
+
+2009-05-27 Ian Lance Taylor <iant@google.com>
+
+ * Make-lang.in (gfortran$(exeext)): Change $(COMPILER) to
+ $(LINKER).
+ (f951$(exeext)): Likewise.
+
+2009-05-27 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/40270
+ * trans-decl.c (create_main_function): Mark MAIN__ and
+ argc/argv as TREE_USED and push/pop function_decl context
+ if needed.
+
+2009-05-26 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/39178
+ * gfortranspec.c (lang_specific_driver): Stop linking
+ libgfortranbegin.
+ * trans-decl.c (gfc_build_builtin_function_decls): Stop
+ making MAIN__ publicly visible.
+ (gfc_build_builtin_function_decls): Add
+ gfor_fndecl_set_args.
+ (create_main_function) New function.
+ (gfc_generate_function_code): Use it.
+
+2009-05-26 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/40246
+ * match.c (gfc_match_nullify): NULLify freed pointer.
+
+2009-05-26 Ian Lance Taylor <iant@google.com>
+
+ * Make-lang.in (gfortranspec.o): Use $(COMPILER).
+ (gfortran$(exeext), f951$(exeext), fortran/cpp.o): Likewise.
+
+2009-05-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * gfortran.h (GFC_MPC_RND_MODE): New.
+ * simplify.c (call_mpc_func): New helper function.
+ (gfc_simplify_cos, gfc_simplify_exp, gfc_simplify_log,
+ gfc_simplify_sin, gfc_simplify_sqrt): Add MPC support.
+
+2009-05-25 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/40176
+ * primary.c (gfc_match_varspec): Handle procedure pointer components
+ with array return value.
+ * resolve.c (resolve_expr_ppc): Ditto.
+ (resolve_symbol): Make sure the interface of a procedure pointer has
+ been resolved.
+ * trans-array.c (gfc_walk_function_expr): Handle procedure pointer
+ components with array return value.
+ * trans-expr.c (gfc_conv_component_ref,gfc_conv_procedure_call,
+ gfc_trans_arrayfunc_assign): Ditto.
+ (gfc_trans_pointer_assignment): Handle procedure pointer assignments,
+ where the rhs is a dummy argument.
+ * trans-types.c (gfc_get_ppc_type,gfc_get_derived_type): Handle
+ procedure pointer components with array return value.
+
+2009-05-24 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+ Dominique Dhumieres
+
+ PR fortran/35732
+ PR fortran/39872
+ * trans-array.c (gfc_conv_ss_startstride): Add one to index.
+
+2009-05-22 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/40195
+ * module.c (read_md5_from_module_file): Close file before returning.
+
+2009-05-18 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/40164
+ * primary.c (gfc_match_rvalue): Handle procedure pointer components in
+ arrays.
+ * resolve.c (resolve_ppc_call,resolve_expr_ppc): Resolve component and
+ array references.
+ (resolve_fl_derived): Procedure pointer components are not required to
+ have constant array bounds in their return value.
+
+2009-05-18 Janus Weil <janus@gcc.gnu.org>
+
+ * intrinsic.c (add_sym): Fix my last commit (r147655),
+ which broke bootstrap.
+
+2009-05-18 Richard Guenther <rguenther@suse.de>
+
+ PR fortran/40168
+ * trans-expr.c (gfc_trans_zero_assign): For local array
+ destinations use an assignment from an empty constructor.
+
2009-05-18 Janus Weil <janus@gcc.gnu.org>
PR fortran/36947
* gfortran.h (gfc_code): Rename struct member label to label1.
* dump-parse-tree.c (show_code_node): Update symbol.
* trans-stmt.c (gfc_trans_label_assign, gfc_trans_goto,
- gfc_trans_arithmetic_if)": Ditto.
+ gfc_trans_arithmetic_if): Ditto.
* resolve.c (gfc_resolve_blocks, resolve_code): Ditto.
* match.c (match_arithmetic_if, gfc_match_if, gfc_reference_st_label,
gfc_match_assign, gfc_match_goto): Ditto.
2009-04-24 Daniel Kraft <d@domob.eu>
* gfortran.h (gfc_get_typebound_proc): Removed as macro, now a function.
- (struct gfc_symtree): Moved `typebound' member inside union.
- (struct gfc_namespace): Add `tb_sym_root' as new symtree to sort out
+ (struct gfc_symtree): Moved "typebound" member inside union.
+ (struct gfc_namespace): Add "tb_sym_root" as new symtree to sort out
type-bound procedures there.
(gfc_get_tbp_symtree): New procedure.
* symbol.c (tentative_tbp_list): New global.
- (gfc_get_namespace): NULL new `tb_sym_root' member.
- (gfc_new_symtree): Removed initialization of `typebound' member.
+ (gfc_get_namespace): NULL new "tb_sym_root" member.
+ (gfc_new_symtree): Removed initialization of "typebound" member.
(gfc_undo_symbols): Process list of tentative tbp's.
(gfc_commit_symbols): Ditto.
(free_tb_tree): New method.
* primary.c (gfc_match_varspec): Ditto. Don't reference tbp-symbol
as it isn't a symbol any longer.
* module.c (mio_typebound_symtree): Adapt to changes.
- (mio_typebound_proc): Ditto, create symtrees using `gfc_get_tbp_symtree'
- rather than `gfc_get_sym_tree'.
+ (mio_typebound_proc): Ditto, create symtrees using "gfc_get_tbp_symtree"
+ rather than "gfc_get_sym_tree".
(mio_f2k_derived): Ditto.
* decl.c (match_procedure_in_type): Ditto.
(gfc_match_generic): Ditto. Don't reference tbp-symbol.
2009-04-11 Daniel Kraft <d@domob.eu>
PR fortran/37746
- * gfortran.h (struct gfc_charlen): New field `passed_length' to store
+ * gfortran.h (struct gfc_charlen): New field "passed_length" to store
the actual passed string length for dummy arguments.
* trans-decl.c (gfc_create_string_length): Formatting fixes and added
assertion, moved a local variable into the innermost block it is needed.
2009-04-06 Janus Weil <janus@gcc.gnu.org>
- PR fortran/39414
- * decl.c (match_procedure_decl): Fix double declaration problems with
- PROCEDURE statements.
- * symbol.c (gfc_add_type): Ditto.
+ PR fortran/39414
+ * decl.c (match_procedure_decl): Fix double declaration problems with
+ PROCEDURE statements.
+ * symbol.c (gfc_add_type): Ditto.
2009-04-06 Paul Thomas <pault@gcc.gnu.org>
- PR fortran/36091
- * trans-array.c (gfc_conv_array_ref): If the symbol has the
+ PR fortran/36091
+ * trans-array.c (gfc_conv_array_ref): If the symbol has the
temporary attribute use the array_spec for the bounds.
* gfortran.h : Add the temporary field to the structure
'symbol_attribute'.
2009-03-29 Daniel Kraft <d@domob.eu>
PR fortran/37423
- * gfortran.h (struct gfc_typebound_proc): Added new flag `deferred' and
+ * gfortran.h (struct gfc_typebound_proc): Added new flag "deferred" and
added a comment explaining DEFERRED binding handling.
* decl.c (match_binding_attributes): Really match DEFERRED attribute.
(match_procedure_in_type): Really match PROCEDURE(interface) syntax
(resolve_typebound_procedure): Allow abstract interfaces as targets
for DEFERRED bindings.
(ensure_not_abstract_walker), (ensure_not_abstract): New methods.
- (resolve_fl_derived): Use new `ensure_not_abstract' method for
+ (resolve_fl_derived): Use new "ensure_not_abstract" method for
non-ABSTRACT types extending ABSTRACT ones to ensure each DEFERRED
binding is overridden.
(check_typebound_baseobject): New method.
* gfc-internals.texi (Type-bound procedures): Document a little bit
about internal handling of DEFERRED bindings.
-2009-03-29 Tobias SchlΓΌter <tobi@gcc.gnu.org>
+2009-03-29 Tobias Schlueter <tobi@gcc.gnu.org>
PR fortran/38507
* gfortran.h (gfc_st_label): Fix comment.