OSDN Git Service

2010-04-10 Tobias Burnus <burnus@net-b.de>
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
index d8a2d3e..17933ff 100644 (file)
@@ -1,3 +1,252 @@
+2010-04-10  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/43591
+       * expr.c (gfc_is_constant_expr, gfc_traverse_expr): Handle
+       proc-pointers and type-bound procedures.
+       (gfc_specification_expr): Check proc-pointers for pureness.
+
+2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
+
+       PR bootstrap/43684
+       * gfortranspec.c (lang_specific_driver): Do not expose vars 
+       only used by HAVE_LD_STATIC_DYNAMIC targets unless compiling
+       for such.
+
+2010-04-09  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/18918
+       * decl.c (variable_decl, match_attr_spec): Fix setting the array
+       spec.
+       * array.c (match_subscript,gfc_match_array_ref): Add coarray support.
+       * data.c (gfc_assign_data_value): Ditto.
+       * expr.c (gfc_check_pointer_assign): Add check for coarray constraint.
+       (gfc_traverse_expr): Traverse also through codimension expressions.
+       (gfc_is_coindexed, gfc_has_ultimate_allocatable,
+       gfc_has_ultimate_pointer): New functions.
+       * gfortran.h (gfc_array_ref_dimen_type): Add DIMEN_STAR for coarrays.
+       (gfc_array_ref): Add codimen.
+       (gfc_array_ref): Add in_allocate.
+       (gfc_is_coindexed, gfc_has_ultimate_allocatable,
+       gfc_has_ultimate_pointer): Add prototypes.
+       * interface.c (compare_parameter, compare_actual_formal,
+       check_intents): Add coarray constraints.
+       * match.c (gfc_match_iterator): Add coarray constraint.
+       * match.h (gfc_match_array_ref): Update interface.
+       * primary.c (gfc_match_varspec): Handle codimensions.
+       * resolve.c (coarray_alloc, inquiry_argument): New static variables.
+       (check_class_members): Return gfc_try instead for error recovery.
+       (resolve_typebound_function,resolve_typebound_subroutine,
+       check_members): Handle return value of check_class_members.
+       (resolve_structure_cons, resolve_actual_arglist, resolve_function,
+       check_dimension, compare_spec_to_ref, resolve_array_ref,
+       resolve_ref, resolve_variable, gfc_resolve_expr, conformable_arrays,
+       resolve_allocate_expr, resolve_ordinary_assign): Add coarray
+       support.
+       * trans-array.c (gfc_conv_array_ref, gfc_walk_variable_expr):
+       Skip over coarray refs.
+       (gfc_array_allocate) Add support for references containing coindexes.
+       * trans-expr.c (gfc_add_interface_mapping): Copy coarray attribute.
+       (gfc_map_intrinsic_function): Ignore codimensions.
+
+2010-04-08  Bud Davis  <bdavis9659@sbcglobal.net>
+
+       PR fortran/28039
+       * io.c (check_format_string):  Added check for additional non 
+       blank characters after the format string was successfully 
+       parsed.
+       * io.c (check_format): Changed the error messages for positive
+       int required and period required to drop through the error logic
+       and report with gfc_error instead of gfc_error_now.  Corrected
+       format postion for hollerith strings.
+
+2010-04-08  Tobias Burnus  <burnus@net-b.de>
+
+       * module.c (use_iso_fortran_env_module): Fix standard check.
+
+2010-04-07  Jakub Jelinek  <jakub@redhat.com>
+
+       * parse.c (parse_derived, parse_enum): Avoid set but not used
+       warning.
+
+2010-04-07  Janne Blomqvist  <jb@gcc.gnu.org>
+
+       PR fortran/40539
+       * gfortran.texi: Add section about representation of
+       LOGICAL variables.
+
+2010-04-07  Simon Baldwin  <simonb@google.com>
+
+       * cpp.c (cb_cpp_error): Add warning reason argument, set a value
+       for diagnostic_override_option_index if CPP_W_WARNING_DIRECTIVE.
+
+2010-04-07  Richard Guenther  <rguenther@suse.de>
+
+       * options.c (gfc_init_options): Do not set.
+
+2010-04-06  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/18918
+       * array.c (gfc_match_array_spec): Add error for -fcoarray=none.
+       * match.c (gfc_match_critical, sync_statement): Ditto.
+       * gfortran.h (gfc_fcoarray): New enum.
+       (gfc_option_t): Use it.
+       * lang.opt (fcoarray): Add new flag.
+       * invoke.texi (fcoarray): Document it.
+       * options.c (gfc_init_options,gfc_handle_option): Handle -fcoarray=.
+       (gfc_handle_coarray_option): New function.
+
+2010-04-06  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/18918
+       * gfortran.h (gfc_array_spec): Add cotype.
+       * array.c (gfc_match_array_spec,gfc_set_array_spec): Use it
+       and defer error diagnostic.
+       * resolve.c (resolve_fl_derived): Add missing check.
+       (resolve_symbol): Add cotype/type check.
+       * parse.c (parse_derived): Fix setting of coarray_comp.
+
+2010-04-06  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/18918
+       * array.c (gfc_free_array_spec,gfc_resolve_array_spec,
+       match_array_element_spec,gfc_copy_array_spec,
+       gfc_compare_array_spec): Include corank.
+       (match_array_element_spec,gfc_set_array_spec): Support codimension.
+       * decl.c (build_sym,build_struct,variable_decl,
+       match_attr_spec,attr_decl1,cray_pointer_decl,
+       gfc_match_volatile): Add codimension.
+       (gfc_match_codimension): New function.
+       * dump-parse-tree.c (show_array_spec,show_attr): Support codimension.
+       * gfortran.h (symbol_attribute,gfc_array_spec): Ditto.
+       (gfc_add_codimension): New function prototype.
+       * match.h (gfc_match_codimension): New function prototype.
+       (gfc_match_array_spec): Update prototype
+       * match.c (gfc_match_common): Update gfc_match_array_spec call.
+       * module.c (MOD_VERSION): Bump.
+       (mio_symbol_attribute): Support coarray attributes.
+       (mio_array_spec): Add corank support.
+       * parse.c (decode_specification_statement,decode_statement,
+       parse_derived): Add coarray support.
+       * resolve.c (resolve_formal_arglist, was_declared,
+       is_non_constant_shape_array, resolve_fl_variable,
+       resolve_fl_derived, resolve_symbol): Add coarray support.
+       * symbol.c (check_conflict, gfc_add_volatile, gfc_copy_attr,
+       gfc_build_class_symbol): Add coarray support.
+       (gfc_add_codimension): New function.
+
+2010-04-06  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/18918
+       * iso-fortran-env.def: Add the integer parameters atomic_int_kind,
+       atomic_logical_kind, iostat_inquire_internal_unit, stat_locked,
+       stat_locked_other_image, stat_stopped_image and stat_unlocked of
+       Fortran 2008.
+       * intrinsic.texi (iso_fortran_env): Ditto.
+       * libgfortran.h (libgfortran_stat_codes): New enum.
+       * module.c (use_iso_fortran_env_module): Honour -std= when loading
+       constants from the intrinsic module.
+
+2010-04-06  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/39997
+       * intrinsic.c (add_functions): Add num_images.
+       * decl.c (gfc_match_end): Handle END CRITICAL.
+       * intrinsic.h (gfc_simplify_num_images): Add prototype.
+       * dump-parse-tree.c (show_code_node): Dump CRITICAL, ERROR STOP,
+       and SYNC.
+       * gfortran.h (gfc_statement): Add enum items for those.
+       (gfc_exec_op) Ditto.
+       (gfc_isym_id): Add num_images.
+       * trans-stmt.c (gfc_trans_stop): Handle ERROR STOP.
+       (gfc_trans_sync,gfc_trans_critical): New functions.
+       * trans-stmt.h (gfc_trans_stop,gfc_trans_sync,
+       gfc_trans_critical): Add/update prototypes.
+       * trans.c (gfc_trans_code): Handle CRITICAL, ERROR STOP,
+       and SYNC statements.
+       * trans.h (gfor_fndecl_error_stop_string) Add variable.
+       * resolve.c (resolve_sync): Add function.
+       (gfc_resolve_blocks): Handle CRITICAL.
+       (resolve_code): Handle CRITICAL, ERROR STOP,
+       (resolve_branch): Add CRITICAL constraint check.
+       and SYNC statements.
+       * st.c (gfc_free_statement): Add new statements.
+       * trans-decl.c (gfor_fndecl_error_stop_string): Global variable.
+       (gfc_build_builtin_function_decls): Initialize it.
+       * match.c (gfc_match_if): Handle ERROR STOP and SYNC.
+       (gfc_match_critical, gfc_match_error_stop, sync_statement,
+       gfc_match_sync_all, gfc_match_sync_images, gfc_match_sync_memory):
+       New functions.
+       (match_exit_cycle): Handle CRITICAL constraint.
+       (gfc_match_stopcode): Handle ERROR STOP.
+       * match.h (gfc_match_critical, gfc_match_error_stop,
+       gfc_match_sync_all, gfc_match_sync_images,
+       gfc_match_sync_memory): Add prototype.
+       * parse.c (decode_statement, gfc_ascii_statement,
+       parse_executable): Handle new statements.
+       (parse_critical_block): New function.
+       * parse.h (gfc_compile_state): Add COMP_CRITICAL.
+       * intrinsic.texi (num_images): Document new function.
+       * simplify.c (gfc_simplify_num_images): Add function.
+
+2010-04-06  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/43178
+       * trans-array.c (gfc_conv_expr_descriptor): Update
+       gfc_trans_scalar_assign call.
+       (has_default_initializer): New function.
+       (gfc_trans_deferred_array): Nullify less often.
+       * trans-expr.c (gfc_conv_subref_array_arg,
+       gfc_trans_subcomponent_assign): Update call to
+       gfc_trans_scalar_assign.
+       (gfc_trans_scalar_assign): Add parameter and pass it on.
+       (gfc_trans_assignment_1): Optionally, do not dealloc before
+       assignment.
+       * trans-openmp.c (gfc_trans_omp_array_reduction): Update
+       call to gfc_trans_scalar_assign.
+       * trans-decl.c (gfc_get_symbol_decl): Do not always apply
+       initializer to static variables.
+       (gfc_init_default_dt): Add dealloc parameter and pass it on.
+       * trans-stmt.c (forall_make_variable_temp,
+       generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp,
+       gfc_trans_forall_1, gfc_trans_where_assign, gfc_trans_where_3
+       gfc_trans_allocate): Update gfc_trans_assignment call.
+       * trans.h (gfc_trans_scalar_assign, gfc_init_default_dt,
+       gfc_init_default_dt, gfc_trans_assignment): Add bool dealloc
+       parameter to prototype.
+
+2010-03-31  Paul Thomas  <pault@gcc.gnu.org>
+
+       * ioparm.def : Update copyright.
+       * lang.opt : ditto
+       * trans-array.c : ditto
+       * trans-array.h : ditto
+       * expr.c: ditto
+       * trans-types.c: ditto
+       * dependency.c : ditto
+       * gfortran.h : ditto
+       * options.c : ditto
+       * trans-io.c : ditto
+       * trans-intrinsic.c : ditto
+       * libgfortran.h : ditto
+       * invoke.texi : ditto
+       * intrinsic.texi : ditto
+       * trans.c : ditto
+       * trans.h : ditto
+       * intrinsic.c : ditto
+       * interface.c : ditto
+       * iresolve.c : ditto
+       * trans-stmt.c : ditto
+       * trans-stmt.h : ditto
+       * parse,c : ditto
+       * match.h : ditto
+       * error.c : ditto
+
+2010-03-20  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/43450
+       * trans-decl.c (gfc_create_module_variable): With -fwhole-file
+       do not assert the context of derived types.
+
 2010-03-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 
        PR fortran/43409