summaryrefslogtreecommitdiff
path: root/gcc/fortran/resolve.c
Commit message (Collapse)AuthorAgeFilesLines
* 2011-02-18 Janus Weil <janus@gcc.gnu.org>janus2011-02-181-0/+8
| | | | | | | | | | | | | | PR fortran/47768 * resolve.c (resolve_transfer): Reject variables with procedure pointer components. 2011-02-18 Janus Weil <janus@gcc.gnu.org> PR fortran/47768 * gfortran.dg/proc_ptr_comp_30.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@170271 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-02-18 Janus Weil <janus@gcc.gnu.org>janus2011-02-181-24/+14
| | | | | | | | | | | | | | | | | | | | | | | PR fortran/47767 * gfortran.h (gfc_check_access): Removed prototype. (gfc_check_symbol_access): Added prototype. * module.c (gfc_check_access): Renamed to 'check_access', made static. (gfc_check_symbol_access): New function, basically a shortcut for 'check_access'. (write_dt_extensions,write_symbol0,write_generic,write_symtree): Use 'gfc_check_symbol_access'. (write_operator,write_module): Renamed 'gfc_check_access'. * resolve.c (resolve_fl_procedure,resolve_fl_derived, resolve_fl_namelist,resolve_symbol,resolve_fntype): Use 'gfc_check_symbol_access'. 2011-02-18 Janus Weil <janus@gcc.gnu.org> PR fortran/47767 * gfortran.dg/class_40.f03: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@170269 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-02-11 Tobias Burnus <burnus@net-b.de>burnus2011-02-111-8/+22
| | | | | | | | | | | | | | | PR fortran/47550 * resolve.c (resolve_formal_arglist): PURE with VALUE and no INTENT: Add -std= diagnostics. 2011-02-11 Tobias Burnus <burnus@net-b.de> PR fortran/47550 * gfortran.dg/pure_formal_2.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@170060 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-02-09 Janus Weil <janus@gcc.gnu.org>janus2011-02-091-1/+4
| | | | | | | | | | | | | | | PR fortran/47352 * resolve.c (resolve_procedure_interface): If interface has a result variable, copy the typespec and set result pointer to self. 2011-02-09 Janus Weil <janus@gcc.gnu.org> PR fortran/47352 * gfortran.dg/proc_decl_25.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@169987 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-02-09 Janus Weil <janus@gcc.gnu.org>janus2011-02-091-1/+0
| | | | | | | | | | | | | | PR fortran/47463 * resolve.c (resolve_typebound_subroutine): Remove erroneous line. 2011-02-09 Janus Weil <janus@gcc.gnu.org> PR fortran/47463 * gfortran.dg/typebound_assignment_2.f03: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@169985 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-02-02 Janus Weil <janus@gcc.gnu.org>janus2011-02-021-1/+2
| | | | | | | | | | | | | | PR fortran/47572 * resolve.c (resolve_fl_variable): Handle polymorphic allocatables. 2011-02-02 Janus Weil <janus@gcc.gnu.org> PR fortran/47572 * gfortran.dg/class_36.f03: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@169520 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-01-31 Janus Weil <janus@gcc.gnu.org>janus2011-01-311-4/+3
| | | | | | | | | | | | | | | PR fortran/47463 * resolve.c (resolve_typebound_subroutine): Bug fix for the case of an argument of a typebound assignment being a component. 2011-01-31 Janus Weil <janus@gcc.gnu.org> PR fortran/47463 * gfortran.dg/typebound_assignment_1.f03: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@169443 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-01-31 Tobias Burnus <burnus@net-b.de>burnus2011-01-301-0/+8
| | | | | | | | | | | | | | | PR fortran/47042 * resolve.c (resolve_fl_procedure): Reject stmt functions with pointer/allocatable attribute. 2011-01-31 Tobias Burnus <burnus@net-b.de> PR fortran/47042 * gfortran.dg/stmt_func_1.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@169415 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-01-28 Tobias Burnus <burnus@net-b.de>burnus2011-01-281-5/+7
| | | | | | | | | | | | | | | PR fortran/47507 * resolve.c (resolve_formal_arglist): Allow arguments with VALUE attribute also without INTENT. 2011-01-28 Tobias Burnus <burnus@net-b.de> PR fortran/47507 * gfortran.dg/pure_formal_1.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@169372 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-01-28 Paul Thomas <pault@gcc.gnu.org>pault2011-01-281-10/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tobias Burnus <burnus@gcc.gnu.org> PR fortran/45170 PR fortran/35810 PR fortran/47350 * interface.c (compare_actual_formal): An allocatable or pointer deferred length actual is only allowed if the formal argument is also deferred length. Clean up whitespace. * trans-expr.c (gfc_conv_procedure_call): Pass string length for deferred character length formal arguments by reference. Do the same for function results. (gfc_trans_pointer_assignment): Do not do runtime check of lhs and rhs character lengths, if deferred length lhs. In this case set the lhs character length to that of the rhs. (gfc_conv_string_parameter): Remove assert that string length is an integer type. (is_scalar_reallocatable_lhs): New function. (alloc_scalar_allocatable_for_assignment): New function. (gfc_trans_assignment_1): Call above new function. If the rhs is a deferred character length itself, makes ure that the function is called before reallocation, so that the length is available. (gfc_trans_asssignment): Remove error about assignment to deferred length character variables. * gfortran.texi : Update entry about (re)allocation on assignment. * trans-stmt.c (gfc_trans_allocate): Add code to handle deferred length character variables. * module.c (mio_typespec): Transfer deferred characteristic. * trans-types.c (gfc_get_function_type): New code to generate hidden typelist, so that those character lengths that are passed by reference get the right type. * resolve.c (resolve_contained_fntype): Supress error for deferred character length functions. (resolve_function, resolve_fl_procedure) The same. (check_symbols): Remove the error that support for entity with deferred type parameter is not yet implemented. (resolve_fl_derived): The same. match.c (alloc_opt_list): Allow MOLD for deferred length object. * trans-decl.c (gfc_get_symbol_decl): For deferred character length dummies, generate a local variable for string length. (create_function_arglist): Hidden length can be a pointer. (gfc_trans_deferred_vars): For deferred character length results and dummies, assign the string length to the local variable from the hidden argument on entry and the other way round on exit, as appropriate. 2011-01-28 Paul Thomas <pault@gcc.gnu.org> Tobias Burnus <burnus@gcc.gnu.org> PR fortran/45170 PR fortran/35810 PR fortran/47350 * gfortran.dg/realloc_on_assign_3.f03: New test. * gfortran.dg/realloc_on_assign_4.f03: New test. * gfortran.dg/realloc_on_assign_5.f90: New test. * gfortran.dg/allocatable_function_5.f90: New test. * gfortran.dg/allocate_deferred_char_scalar_1.f90: New test. * gfortran.dg/deferred_type_param_2.f90: Remove two "not yet implemented" dg-errors. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@169356 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-01-26 Tobias Burnus <burnus@net-b.de>burnus2011-01-261-23/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/47339 PR fortran/43062 * match.c (gfc_match_namelist): Allow assumed-length characters. * resolve.c (resolve_fl_namelist): Adapt and add error messages. * symbol.c (check_conflict): Allow allocatables in NML for * F2003. * trans-io.c (nml_get_addr_expr,transfer_namelist_element): Changes due to that change. 2011-01-26 Tobias Burnus <burnus@net-b.de> PR fortran/47339 PR fortran/43062 * fortran.dg/namelist_69.f90: New test. * fortran.dg/namelist_70.f90: New test. * fortran.dg/namelist_assumed_char.f90: Modify dg-error, augment * test. * fortran.dg/namelist_3.f90: Adapt test. * fortran.dg/namelist_34.f90: Ditto. * fortran.dg/namelist_35.f90: Ditto. * fortran.dg/namelist_5.f90: Ditto. * fortran.dg/namelist_63.f90: Ditto. * gfortran.dg/alloc_comp_constraint_1.f90: Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@169282 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-01-22 Thomas Koenig <tkoenig@gcc.gnu.org>tkoenig2011-01-221-0/+42
| | | | | | | | | | | | | | | | PR fortran/38536 * resolve.c (gfc_iso_c_func_interface): For C_LOC, check for array sections followed by component references which are illegal. Also check for coindexed arguments. 2011-01-22 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/38536 * gfortran.dg/c_loc_tests_16.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@169130 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-01-18 Janus Weil <janus@gcc.gnu.org>janus2011-01-181-0/+4
| | | | | | | | | | | | | | | | PR fortran/47240 * resolve.c (expression_rank): Fix rank of procedure poiner components. * trans-expr.c (gfc_conv_procedure_call): Take care of procedure pointer components as actual arguments. 2011-01-18 Janus Weil <janus@gcc.gnu.org> PR fortran/47240 * gfortran.dg/proc_ptr_comp_29.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168973 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/47331jakub2011-01-171-0/+5
| | | | | | | | | | | | | | * gfortran.h (struct gfc_omp_saved_state): New type. (gfc_omp_save_and_clear_state, gfc_omp_restore_state): New prototypes. * resolve.c (resolve_global_procedure): Call it around gfc_resolve call. * openmp.c (gfc_omp_save_and_clear_state, gfc_omp_restore_state): New functions. * gfortran.dg/gomp/pr47331.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168935 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-01-13 Tobias Burnus <burnus@net-b.de>burnus2011-01-131-22/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Mikael Morin <mikael@gcc.gnu.org> PR fortran/45848 PR fortran/47204 * gfortran.h (gfc_code): Move union ext's case_list into the struct block. * dump-parse-tree.c (show_code_node): Adapt by prefixing * case_list by "block.". * frontend-passes.c (gfc_code_walker): Ditto. * match.c (gfc_match_goto, gfc_match_call, gfc_match_case, gfc_match_type_is, gfc_match_class_is): Ditto. * resolve.c (resolve_select, resolve_select_type): Ditto. * st.c (gfc_free_statement): Ditto. * trans-stmt.c (gfc_trans_integer_select, * gfc_trans_logical_select, gfc_trans_character_select): Ditto. * parse.c (resolve_all_program_units): For error recovery, avoid segfault is proc_name is NULL. 2011-01-13 Tobias Burnus <burnus@net-b.de> Mikael Morin <mikael@gcc.gnu.org> PR fortran/45848 PR fortran/47204 * gfortran.dg/select_type_20.f90: New. * gfortran.dg/select_type_21.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168753 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-01-09 Janus Weil <janus@gcc.gnu.org>janus2011-01-091-15/+0
| | | | | | | | | | | | | | | PR fortran/47224 * resolve.c (resolve_actual_arglist): Remove unneeded and buggy piece of code. 2011-01-09 Janus Weil <janus@gcc.gnu.org> PR fortran/47224 * gfortran.dg/proc_ptr_comp_28.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168618 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-01-09 Thomas Koenig <tkoenig@gcc.gnu.org>tkoenig2011-01-091-15/+6
| | | | | | | | | | | | | | | | PR fortran/38536 * resolve.c (is_scalar_expr_ptr): For a substring reference, use gfc_dep_compare_expr to compare start and end expession. Add FIXME for using gfc_deb_compare_expr elsewhere. 2011-01-09 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/38536 * gfortran.dg/iso_c_binding_c_loc_char_1.f03: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168614 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-01-08 Paul Thomas <pault@gcc.gnu.org>pault2011-01-081-1/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/46896 * trans-expr.c (gfc_conv_procedure_call): With a non-copying procedure argument (eg TRANSPOSE) use a temporary if there is any chance of aliasing due to host or use association. (arrayfunc_assign_needs_temporary): Correct logic for function results and do not use a temporary for implicitly PURE variables. Use a temporary for Cray pointees. * symbol.c (gfc_add_save): Explicit SAVE not compatible with implicit pureness of containing procedure. * decl.c (match_old_style_init, gfc_match_data): Where decl would fail in PURE procedure, set implicit_pure to zero. * gfortran.h : Add implicit_pure to structure symbol_attr and add prototype for function gfc_implicit_pure. * expr.c (gfc_check_pointer_assign, gfc_check_vardef_context): Where decl would fail in PURE procedure, reset implicit_pure. * io.c (match_vtag, gfc_match_open, gfc_match_close, gfc_match_print, gfc_match_inquire, gfc_match_wait): The same. * match.c (gfc_match_critical, gfc_match_stopcode, sync_statement, gfc_match_allocate, gfc_match_deallocate): The same. * parse.c (decode_omp_directive): The same. (parse_contained): If not PURE, set implicit pure attribute. * resolve.c (resolve_formal_arglist, resolve_structure_cons, resolve_function, resolve_ordinary_assign) : The same. (gfc_implicit_pure): New function. * module.c (mio_symbol_attribute): Introduce AB_IMPLICIT_PURE to ab_attribute enum and use it in this function. 2011-01-08 Paul Thomas <pault@gcc.gnu.org> PR fortran/46896 * gfortran.dg/transpose_optimization_2.f90 : New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168600 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-01-07 Janus Weil <janus@gcc.gnu.org>janus2011-01-071-6/+0
| | | | | | | | | | | | | | | | | | | | | | | PR fortran/47189 PR fortran/47194 * gfortran.h (gfc_lval_expr_from_sym): Moved prototype. * class.c (gfc_class_null_initializer): Initialize _vptr to declared type. * expr.c (gfc_lval_expr_from_sym): Moved here from symbol.c. * resolve.c (resolve_deallocate_expr): _data component will be added at translation stage. * symbol.c (gfc_lval_expr_from_sym): Moved to expr.c. * trans-stmt.c (gfc_trans_deallocate): Reset _vptr to declared type. 2011-01-07 Janus Weil <janus@gcc.gnu.org> PR fortran/47189 PR fortran/47194 * gfortran.dg/storage_size_3.f08: Extended. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168565 138bc75d-0d04-0410-961f-82ee72b054a4
* 2011-01-05 Thomas Koenig <tkoenig@gcc.gnu.org>tkoenig2011-01-051-9/+58
| | | | | | | | | | | | | | | PR fortran/46017 * resolve.c (resolve_allocate_deallocate): Follow references to check for duplicate occurence of allocation/deallocation objects. 2011-01-05 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/46017 * gfortran.dg/allocate_error_2.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168506 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-12-31 Thomas Koenig <tkoenig@gcc.gnu.org>tkoenig2010-12-311-3/+6
| | | | | | | | | | | | | | | PR fortran/45338 * resolve.c (resolve_operator): Mark function for user-defined operator as referenced. 2010-12-31 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/45338 * gfortran.dg/userdef_operator_2.f90: New test case. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168366 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-12-17 Janus Weil <janus@gcc.gnu.org>janus2010-12-171-1/+3
| | | | | | | | | | | | | | | | Tobias Burnus <burnus@gcc.gnu.org> PR fortran/46849 * resolve.c (resolve_symbol): Remove symbols that wrongly ended up in a local BLOCK namespace. 2010-12-17 Janus Weil <janus@gcc.gnu.org> PR fortran/46849 * gfortran.dg/block_9.f08: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167978 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-12-12 Janus Weil <janus@gcc.gnu.org>janus2010-12-121-0/+1
| | | | | | | | | | | | | | PR fortran/46809 * resolve.c (resolve_select_type): Set the location of the first argument when generating the EXTENDS_TYPE_OF call. 2010-12-12 Janus Weil <janus@gcc.gnu.org> PR fortran/46809 * gfortran.dg/pointer_check_8.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167731 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-12-11 Tobias Burnus <burnus@net-b.de>burnus2010-12-111-7/+8
| | | | | | | | | | | | | | | | | PR fortran/46370 * primary.c (gfc_match_varspec): Pass information about * codimension to gfc_match_array_ref also for BT_CLASS. * resolve.c (resolve_procedure): Correct check for C612. 2010-12-11 Tobias Burnus <burnus@net-b.de> PR fortran/46370 * gfortran.dg/coarray_14.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167715 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-11-28 Janus Weil <janus@gcc.gnu.org>janus2010-11-281-2/+13
| | | | | | | | | | | | | PR fortran/46662 * resolve.c (update_ppc_arglist): Add check for abstract passed object. 2010-11-28 Janus Weil <janus@gcc.gnu.org> PR fortran/46662 * gfortran.dg/proc_ptr_comp_pass_7.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167225 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-11-11 Tobias Burnus <burnus@net-b.de>burnus2010-11-111-2/+12
| | | | | | | | | | | | | | | | | | | | | PR fortran/46413 * resolve.c (resolve_transfer): Reject I/O transfer of polymorphic type. PR fortran/46205 * resolve.c (resolve_code): Reject nonscalar FORALL masks. 2010-11-11 Tobias Burnus <burnus@net-b.de> PR fortran/46413 * gfortran.dg/class_31.f90: New. PR fortran/46205 * gfortran.dg/forall_14.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166631 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-11-11 Janus Weil <janus@gcc.gnu.org>janus2010-11-111-0/+1
| | | | | | | | | | | | * resolve.c (resolve_procedure_interface): Copy 'is_bind_c' attribute. 2010-11-11 Janus Weil <janus@gcc.gnu.org> * gfortran.dg/proc_decl_24.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166623 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-11-10 Tobias Burnus <burnus@net-b.de>burnus2010-11-101-0/+7
| | | | | | | | | | | | | | | PR fortran/46244 * resolve.c (resolve_fl_derived): Don't allow CLASS in sequence/BIND(C) types. 2010-11-10 Tobias Burnus <burnus@net-b.de> PR fortran/46244 * gfortran.dg/class_30.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166547 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-11-09 Janus Weil <janus@gcc.gnu.org>janus2010-11-091-20/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/46313 * gfortran.h (gfc_add_data_component,gfc_add_vptr_component, gfc_add_hash_component,gfc_add_size_component, gfc_add_def_init_component): New macros. * class.c (gfc_add_component_ref): Renamed data component. (get_unique_type_string): New function. (gfc_build_class_symbol): Use 'get_unique_type_string' to construct uniques names for the class containers. Rename components. (gfc_find_derived_vtab): Use 'get_unique_type_string' to construct uniques names for the vtab symbols. Rename components. * decl.c (attr_decl1): Renamed class container components. * iresolve.c (gfc_resolve_extends_type_of): Ditto. * match.c (select_type_set_tmp): Renamed temporaries. * module.c (read_module): Renamed vtab and vtype symbols. * resolve.c (resolve_structure_cons,resolve_typebound_function, resolve_typebound_subroutine,resolve_deallocate_expr, resolve_select_type,resolve_fl_derived): Renamed class container and vtab components. * trans-array.c (structure_alloc_comps): Ditto. * trans-decl.c (gfc_trans_deferred_vars): Ditto. * trans-expr.c (gfc_conv_derived_to_class,gfc_conv_structure, gfc_trans_class_init_assign,gfc_trans_class_assign): Ditto. * trans-intrinsic.c (gfc_conv_intrinsic_sizeof, gfc_conv_intrinsic_storage_size,gfc_conv_allocated,gfc_conv_associated, gfc_conv_same_type_as): Ditto. * trans-stmt.c (gfc_trans_allocate): Ditto. 2010-11-09 Janus Weil <janus@gcc.gnu.org> PR fortran/46313 * gfortran.dg/class_29.f03: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166480 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-11-05 Janus Weil <janus@gcc.gnu.org>janus2010-11-051-0/+3
| | | | | | | | | | | | | | | | | | | | | | | PR fortran/45451 PR fortran/46174 * class.c (gfc_find_derived_vtab): Improved search for existing vtab. Add component '$copy' to vtype symbol for polymorphic deep copying. * expr.c (gfc_check_pointer_assign): Make sure the vtab is generated during resolution stage. * resolve.c (resolve_codes): Don't resolve code if namespace is already resolved. * trans-stmt.c (gfc_trans_allocate): Call '$copy' procedure for polymorphic ALLOCATE statements with SOURCE. 2010-11-05 Janus Weil <janus@gcc.gnu.org> PR fortran/45451 PR fortran/46174 * gfortran.dg/class_19.f03: Modified. * gfortran.dg/class_allocate_6.f03: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166368 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-11-02 Steven G. Kargl < kargl@gcc.gnu.org>burnus2010-11-021-1/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tobias Burnus <burnus@net-b.de> PR fortran/45170 * array.c (gfc_match_array_constructor): Reject deferred type parameter (DTP) in type-spec. * decl.c (char_len_param_value, match_char_length, gfc_match_char_spec, build_sym, variable_decl, enumerator_decl): Support DTP. * expr.c (check_inquiry): Fix check due to support for DTP. * gfortran.h (gfc_typespec): Add Boolean 'deferred'. * misc.c (gfc_clear_ts): Set it to false. * match.c (gfc_match_allocate): Support DTP. * resolve.c (resolve_allocate_expr): Not-implemented error for * DTP. (resolve_fl_variable): Add DTP constraint check. * trans-decl.c (gfc_trans_deferred_vars): Add not-implemented error for DTP. 2010-11-02 Steven G. Kargl < kargl@gcc.gnu.org> Tobias Burnus <burnus@net-b.de> PR fortran/45170 * gfortran.dg/deferred_type_param_1.f90: New. * gfortran.dg/deferred_type_param_2.f90: New. * gfortran.dg/initialization_1.f90: Update dg-errors. * gfortran.dg/initialization_9.f90: Update dg-errors. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166205 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-10-10 Janus Weil <janus@gcc.gnu.org>janus2010-10-101-1/+1
| | | | | | | | | | | | | | PR fortran/45961 * resolve.c (resolve_typebound_function): Bugfix for type-bound operators. 2010-10-10 Janus Weil <janus@gcc.gnu.org> PR fortran/45961 * gfortran.dg/typebound_operator_6.f03: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@165263 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-10-07 Janus Weil <janus@gcc.gnu.org>janus2010-10-071-3/+2
| | | | | | | | | | | | | | | PR fortran/45933 * resolve.c (resolve_typebound_function): Use correct declared type for type-bound operators. 2010-10-07 Janus Weil <janus@gcc.gnu.org> PR fortran/45933 * gfortran.dg/typebound_operator_5.f03: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@165126 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-10-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>jvdelisle2010-10-061-1/+1
| | | | | | | | | PR fortran/45889 * resolve.c (resolve_transfer): Use expression inside parenthesis to find acutal component to be transgferred. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@165068 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-10-06 Mikael Morin <mikael@gcc.gnu.org>mikael2010-10-061-8/+5
| | | | | | | | * resolve.c (add_dt_to_dt_list): Remove unneeded if. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@165035 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-10-06 Mikael Morin <mikael@gcc.gnu.org>mikael2010-10-061-4/+9
| | | | | | | | | * resolve.c (check_typebound_baseobject): Free local expr before returning. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@165034 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-10-02 Janus Weil <janus@gcc.gnu.org>janus2010-10-021-5/+3
| | | | | | | | | | | | | | PR fortran/45748 * resolve.c (resolve_formal_arglist): Avoid setting default type for formal arguments of intrinsic procedures. 2010-10-02 Janus Weil <janus@gcc.gnu.org> PR fortran/45748 * gfortran.dg/intrinsic_6.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164901 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-09-30 Janus Weil <janus@gcc.gnu.org>janus2010-09-301-2/+2
| | | | | | | | | | | | | | PR fortran/45828 * resolve.c (resolve_allocate_expr): Do not use 'gfc_has_default_initializer'. 2010-09-30 Janus Weil <janus@gcc.gnu.org> PR fortran/45828 * gfortran.dg/allocate_derived_5.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164765 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-09-27 Tobias Burnus <burnus@net-b.de>burnus2010-09-261-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/40569 PR fortran/40568 * intrinsic.h (gfc_simplify_compiler_options, gfc_simplify_compiler_version): New prototypes. * intrinsic.c (gfc_intrinsic_function_by_id, make_from_module): New functions. (gfc_find_function, gfc_find_subroutine, gfc_generic_intrinsic, gfc_specific_intrinsic): Don't return module intrinsics. (add_functions): Add compiler_options, compiler_version. (gfc_intrinsic_func_interface): Also lookup symbol by ISYM ID. * symbol.c (std_for_isocbinding_symbol): Add version check for NAMED_FUNCTIONS. * iso-fortran-env.def: Add compiler_options, compiler_version. * iso-c-binding.def: Add c_sizeof. * gfortran.h (gfc_intrinsic_sym): Add from_module:1. (iso_c_binding_symbol, iso_fortran_env_symbol): Add NAMED_FUNCTIONS. (gfc_intrinsic_function_by_id): New prototype. * module.c (create_intrinsic_function): New function. (import_iso_c_binding_module, use_iso_fortran_env_module): Use it. * trans-types.c (init_c_interop_kinds): Add NAMED_FUNCTIONS. * resolve.c (resolve_intrinsic): Try also to resolve intrinsics by ISYM ID. * simplify.c (gfc_simplify_compiler_options, gfc_simplify_compiler_version): New functions. 2010-09-27 Tobias Burnus <burnus@net-b.de> PR fortran/40569 PR fortran/40568 * gfortran.dg/storage_size_2.f08: Fix test. * gfortran.dg/c_sizeof_1.f90: Fix test. * gfortran.dg/c_sizeof_2.f90: Update dg-error. * gfortran.dg/c_sizeof_3.f90: New. * gfortran.dg/c_sizeof_4.f90: New. * gfortran.dg/iso_c_binding_compiler_1.f90: New. * gfortran.dg/iso_c_binding_compiler_2.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164639 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-09-26 Daniel Kraft <d@domob.eu>domob2010-09-261-3/+7
| | | | | | | | | | | | | | | | PR fortran/45783 PR fortran/45795 * resolve.c (resolve_select_type): Clarify code. (resolve_assoc_var): Only set typespec if it is currently unknown. 2010-09-26 Daniel Kraft <d@domob.eu> PR fortran/45783 PR fortran/45795 * gfortran.dg/select_type_18.f03: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164638 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-09-25 Daniel Kraft <d@domob.eu>domob2010-09-251-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/45776 * gfortran.h (struct gfc_dt): New member `dt_io_kind'. * io.c (resolve_tag): F2008 check for NEWUNIT and variable definition checks for NEWUNIT, IOSTAT, SIZE and IOMSG. (gfc_free_dt): Correctly handle freeing of `dt_io_kind' and `extra_comma' with changed semantics. (gfc_resolve_dt): Check variable definitions. (match_io_element): Remove INTENT and PURE checks here and initialize code->ext.dt member. (match_io): Set dt->dt_io_kind. (gfc_resolve_inquire): Check variable definition for all tags except UNIT, FILE and ID. * resolve.c (resolve_transfer): Variable definition check. 2010-09-25 Daniel Kraft <d@domob.eu> PR fortran/45776 * gfortran.dg/io_constraints_6.f03: New test. * gfortran.dg/io_constraints_7.f03: New test. * gfortran.dg/newunit_2.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164619 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-09-23 Daniel Kraft <d@domob.eu>domob2010-09-231-90/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/38936 PR fortran/44044 PR fortran/45474 * gfortran.h (gfc_check_vardef_context): New method. (struct symbol_attribute): New flag `select_type_temporary'. * primary.c (gfc_variable_attr): Clarify initialization of ref. (match_variable): Remove PROTECTED check and assignment check for PARAMETERs (this is now done later). * match.c (gfc_match_iterator): Remove INTENT(IN) check. (gfc_match_associate): Defer initialization of newAssoc->variable. (gfc_match_nullify): Remove PURE definability check. (select_type_set_tmp): Set new `select_type_temporary' flag. * expr.c (gfc_check_assign): Remove INTENT(IN) check here. (gfc_check_pointer_assign): Ditto (and other checks removed). (gfc_check_vardef_context): New method. * interface.c (compare_parameter_protected): Removed. (compare_actual_formal): Use `gfc_check_vardef_context' for checks related to INTENT([IN]OUT) arguments. * intrinsic.c (check_arglist): Check INTENT for intrinsics. * resolve.c (gfc_resolve_iterator): Use `gfc_check_vardef_context'. (remove_last_array_ref): New method. (resolve_deallocate_expr), (resolve_allocate_expr): Ditto. (resolve_allocate_deallocate): Ditto (for STAT and ERRMSG). (resolve_assoc_var): Remove checks for definability here. (resolve_select_type): Handle resolving of code->block here. (resolve_ordinary_assign): Remove PURE check. (resolve_code): Do not resolve code->blocks for SELECT TYPE here. Use `gfc_check_vardef_context' for assignments and pointer-assignments. 2010-09-23 Daniel Kraft <d@domob.eu> PR fortran/38936 PR fortran/44044 PR fortran/45474 * gfortran.dg/intrinsic_intent_1.f03: New test. * gfortran.dg/select_type_17.f03: New test. * gfortran.dg/associate_5.f03: More definability tests. * gfortran.dg/enum_2.f90: Check definability. * gfortran.dg/allocatable_dummy_2.f90: Change expected error message. * gfortran.dg/allocate_alloc_opt_2.f90: Ditto. * gfortran.dg/char_expr_2.f90: Ditto. * gfortran.dg/deallocate_alloc_opt_2.f90: Ditto. * gfortran.dg/enum_5.f90: Ditto. * gfortran.dg/equiv_constraint_8.f90: Ditto. * gfortran.dg/impure_assignment_2.f90: Ditto. * gfortran.dg/impure_assignment_3.f90: Ditto. * gfortran.dg/intent_out_1.f90: Ditto. * gfortran.dg/intent_out_3.f90: Ditto. * gfortran.dg/pointer_assign_7.f90: Ditto. * gfortran.dg/pointer_intent_3.f90: Ditto. * gfortran.dg/pr19936_1.f90: Ditto. * gfortran.dg/proc_ptr_comp_3.f90: Ditto. * gfortran.dg/simpleif_2.f90: Ditto. * gfortran.dg/protected_5.f90: Ditto. * gfortran.dg/protected_4.f90: Ditto and remove invalid error check. * gfortran.dg/protected_6.f90: Ditto. * gfortran.dg/protected_7.f90: Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164550 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-09-15 Janus Weil <janus@gcc.gnu.org>janus2010-09-151-4/+10
| | | | | | | | | | | | | | | PR fortran/45577 * resolve.c (resolve_allocate_expr): Do default initialization via EXEC_INIT_ASSIGN. 2010-09-15 Janus Weil <janus@gcc.gnu.org> PR fortran/45577 * gfortran.dg/allocate_derived_4.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164305 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-09-11 Mikael Morin <mikael@gcc.gnu.org>mikael2010-09-101-30/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * gfortran.h (gfc_expr): Remove inline_noncopying_intrinsic attribute. * dependency.c (gfc_check_dependency): Don't depend on expr's inline_noncopying_intrinsic_attribute. * dependency.c (gfc_check_argument_var_dependency, gfc_check_argument_dependency): Ditto. Recursively check dependency as NOT_ELEMENTAL in the non-copying (=transpose) case. * trans-intrinsic.c (gfc_conv_intrinsic_function): Ditto. * resolve.c (find_noncopying_intrinsics): Remove. (resolve_function, resolve_call): Remove call to find_noncopying_intrinsics. * trans-array.c (gfc_conv_array_transpose): Remove. (gfc_walk_subexpr): Make non-static. Move prototype... * trans-array.h (gfc_walk_subexpr): ... here. * trans-intrinsic.c (gfc_conv_intrinsic_function): Update transpose handling. (walk_inline_intrinsic_transpose, walk_inline_intrinsic_function, gfc_inline_intrinsic_function_p): New. (gfc_is_intrinsic_libcall): Return early in inline intrinsic case. Remove transpose from the libcall list. (gfc_walk_intrinsic_function): Special case inline intrinsic. * trans.h (gfc_inline_intrinsic_function_p): New prototype. 2010-09-11 Mikael Morin <mikael@gcc.gnu.org> * gfortran.dg/inline_transpose_1.f90: Update temporary's locations and counts. Check that transpose is not called. * gfortran.dg/transpose_2.f90: Update error message. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164205 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-09-04 Tobias Burnus <burnus@net-b.de>burnus2010-09-041-40/+40
| | | | | | | | | | | | | | | PR fortran/45530 * resolve.c (resolve_fl_namelist): Change constraint checking order to prevent endless loop. 2010-09-04 Tobias Burnus <burnus@net-b.de> PR fortran/45530 * gfortran.dg/namelist_63.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163862 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-09-04 Janus Weil <janus@gcc.gnu.org>janus2010-09-041-0/+28
| | | | | | | | | | | | | | | | | PR fortran/45507 * resolve.c (resolve_allocate_expr): Generate default initializers already at this point, resolve them and put them into expr3, ... * trans-stmt.c (gfc_trans_allocate): ... instead of waiting until translation stage. 2010-09-04 Janus Weil <janus@gcc.gnu.org> PR fortran/45507 * gfortran.dg/allocate_alloc_opt_12.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163856 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-09-03 Daniel Kraft <d@domob.eu>domob2010-09-031-2/+5
| | | | | | | | | | | | | | | | | PR fortran/34162 * resolve.c (resolve_actual_arglist): Allow internal procedure as actual argument with Fortran 2008. 2010-09-03 Daniel Kraft <d@domob.eu> PR fortran/34162 * gfortran.dg/internal_dummy_1.f90: Add -std=f2003. * gfortran.dg/internal_dummy_2.f08: New test. * gfortran.dg/internal_dummy_3.f08: New test. * gfortran.dg/internal_dummy_4.f08: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163813 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-09-03 Daniel Kraft <d@domob.eu>domob2010-09-031-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/44602 * gfortran.h (struct gfc_code): Renamed `whichloop' to `which_construct' as this is no longer restricted to loops. * parse.h (struct gfc_state_data): New field `construct'. * match.c (match_exit_cycle): Handle EXIT from non-loops. * parse.c (push_state): Set `construct' field. * resolve.c (resolve_select_type): Extend comment. * trans-stmt.c (gfc_trans_if): Add exit label. (gfc_trans_block_construct), (gfc_trans_select): Ditto. (gfc_trans_simple_do): Store exit/cycle labels on the gfc_code itself. (gfc_trans_do), (gfc_trans_do_while): Ditto. (gfc_trans_exit): Use new name `which_construct' instead of `whichloop'. (gfc_trans_cycle): Ditto. (gfc_trans_if_1): Use fold_build3_loc instead of fold_build3. 2010-09-03 Daniel Kraft <d@domob.eu> PR fortran/44602 * gfortran.dg/exit_2.f08; Adapt error messages. * gfortran.dg/exit_3.f08: New test. * gfortran.dg/exit_4.f08: New test. * gfortran.dg/exit_5.f03: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163798 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-09-02 Janus Weil <janus@gcc.gnu.org>janus2010-09-021-1/+2
| | | | | | | | | PR fortran/44541 * resolve.c (resolve_symbol): Correct check for attributes of CLASS variable. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163773 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-09-02 Tobias Burnus <burnus@net-b.de>burnus2010-09-021-5/+3
| | | | | | | | | | | | | | | | | | PR fortran/45489 * resolve.c (apply_default_init): Mark symbol as referenced, if it is initialized. (resolve_symbol): Change intialized check for BT_DERIVED such that also function results get initialized; remove now obsolete gfc_set_sym_referenced for BT_CLASS. 2010-09-02 Tobias Burnus <burnus@net-b.de> PR fortran/45489 * gfortran.dg/initialization_27.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163767 138bc75d-0d04-0410-961f-82ee72b054a4