summaryrefslogtreecommitdiff
path: root/gcc/fortran/resolve.c
Commit message (Collapse)AuthorAgeFilesLines
...
* 2010-09-01 Janus Weil <janus@gcc.gnu.org>janus2010-09-011-35/+12
| | | | | | | | | | | | | | | | | | | | | | | PR fortran/44541 * class.c (gfc_find_derived_vtab): Add component '$def_init'. * resolve.c (resolve_allocate_expr): Defer handling of default initialization to 'gfc_trans_allocate'. (apply_default_init,resolve_symbol): Handle polymorphic dummies. (resolve_fl_derived): Suppress error messages for vtypes. * trans-stmt.c (gfc_trans_allocate): Handle initialization via polymorphic MOLD expression. * trans-expr.c (gfc_trans_class_init_assign): Now only used for dummy initialization. 2010-09-01 Janus Weil <janus@gcc.gnu.org> PR fortran/44541 * gfortran.dg/allocate_alloc_opt_10.f90: Extended. * gfortran.dg/class_dummy_1.f03: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163744 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-08-30 Janus Weil <janus@gcc.gnu.org>janus2010-08-301-1/+2
| | | | | | | | | | | | | | PR fortran/45456 * resolve.c (resolve_structure_cons): Handle pointer-valued PPCs. 2010-08-30 Janus Weil <janus@gcc.gnu.org> PR fortran/45456 * gfortran.dg/typebound_proc_18.f03: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163661 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-08-29 Janus Weil <janus@gcc.gnu.org>janus2010-08-291-0/+8
| | | | | | | | | | | | | | | | PR fortran/42769 * resolve.c (resolve_structure_cons): For derived types, make sure the type has been resolved. (resolve_typebound_procedures): Make sure the vtab has been generated. 2010-08-29 Janus Weil <janus@gcc.gnu.org> PR fortran/42769 * gfortran.dg/dynamic_dispatch_11.f03: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163631 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-08-26 Daniel Kraft <d@domob.eu>domob2010-08-261-100/+135
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/38936 PR fortran/44047 PR fortran/45384 * gfortran.h (struct gfc_association_list): New flag `dangling'. (gfc_build_block_ns): Declared here... * parse.h (gfc_build_block_ns): ...instead of here. * trans.h (gfc_process_block_locals): Expect additionally the gfc_association_list of BLOCK (if present). * match.c (select_type_set_tmp): Create sym->assoc for temporary. * resolve.c (resolve_variable): Only check for invalid *array* references on associate-names. (resolve_assoc_var): New method with code previously in resolve_symbol. (resolve_select_type): Use association to give the selector and temporaries their values instead of ordinary assignment. (resolve_fl_var_and_proc): Allow CLASS associate-names. (resolve_symbol): Use new `resolve_assoc_var' instead of inlining here. * trans-stmt.c (gfc_trans_block_construct): Pass association-list to `gfc_process_block_locals' to match new interface. * trans-decl.c (gfc_get_symbol_decl): Don't defer associate-names here automatically. (gfc_process_block_locals): Defer them rather here when linked to from the BLOCK's association list. 2010-08-26 Daniel Kraft <d@domob.eu> PR fortran/38936 PR fortran/44047 PR fortran/45384 * gfortran.dg/associate_8.f03: New test. * gfortran.dg/select_type_13.f03: New test. * gfortran.dg/select_type_14.f03: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163572 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-08-23 Janus Weil <janus@gcc.gnu.org>janus2010-08-231-76/+90
| | | | | | | | | | | | | | | | | PR fortran/45366 * resolve.c (resolve_procedure_interface): New function split off from 'resolve_symbol'. (resolve_formal_arglist): Call it here ... (resolve_symbol): ... and here. 2010-08-23 Janus Weil <janus@gcc.gnu.org> PR fortran/45366 * gfortran.dg/proc_ptr_29.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163468 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-08-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>jvdelisle2010-08-191-1/+6
| | | | | | | | | PR fortran/41859 * resolve.c (resolve_transfer): Traverse operands and set expression to be checked to a non EXPR_OP type. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163363 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-08-19 Janus Weil <janus@gcc.gnu.org>janus2010-08-181-6/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/45290 * gfortran.h (gfc_add_save): Modified prototype. * decl.c (add_init_expr_to_sym): Defer checking of proc pointer init. (match_pointer_init): New function to match F08 pointer initialization. (variable_decl,match_procedure_decl,match_ppc_decl): Use 'match_pointer_init'. (match_attr_spec): Module variables are implicitly SAVE. (gfc_match_save): Modified call to 'gfc_add_save'. * expr.c (gfc_check_assign_symbol): Extra checks for pointer initialization. * primary.c (gfc_variable_attr): Handle SAVE attribute. * resolve.c (resolve_structure_cons): Add new argument and do pointer initialization checks. (gfc_resolve_expr): Modified call to 'resolve_structure_cons'. (resolve_values): Call 'resolve_structure_cons' directly with init arg. (resolve_fl_variable): Handle SAVE_IMPLICIT. * symbol.c (gfc_add_save,gfc_copy_attr,save_symbol): Handle SAVE_IMPLICIT. * trans-decl.c (gfc_create_module_variable): Module variables with TARGET can already exist. * trans-expr.c (gfc_conv_variable): Check for 'current_function_decl'. (gfc_conv_initializer): Implement non-NULL pointer initialization. 2010-08-19 Janus Weil <janus@gcc.gnu.org> PR fortran/45290 * gfortran.dg/proc_ptr_comp_3.f90: Modified. * gfortran.dg/pointer_init_2.f90: New. * gfortran.dg/pointer_init_3.f90: New. * gfortran.dg/pointer_init_4.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163356 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-08-17 Daniel Kraft <d@domob.eu>domob2010-08-171-68/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/38936 * gfortran.h (struct gfc_association_list): New member `where'. (gfc_is_associate_pointer) New method. * match.c (gfc_match_associate): Remember locus for each associate name matched and do not try to set variable flag. * parse.c (parse_associate): Use remembered locus for symbols. * primary.c (match_variable): Instead of variable-flag check for associate names set it for all such names used. * symbol.c (gfc_is_associate_pointer): New method. * resolve.c (resolve_block_construct): Don't generate assignments to give associate-names their values. (resolve_fl_var_and_proc): Allow associate-names to be deferred-shape. (resolve_symbol): Set some more attributes for associate variables, set variable flag here and check it and don't try to build an explicitely shaped array-spec for array associate variables. * trans-expr.c (gfc_conv_variable): Dereference in case of association to scalar variable. * trans-types.c (gfc_is_nodesc_array): Handle array association symbols. (gfc_sym_type): Return pointer type for association to scalar vars. * trans-decl.c (gfc_get_symbol_decl): Defer association symbols. (trans_associate_var): New method. (gfc_trans_deferred_vars): Handle association symbols. 2010-08-17 Daniel Kraft <d@domob.eu> PR fortran/38936 * gfortran.dg/associate_1.f03: Extended to test newly supported features like association to variables. * gfortran.dg/associate_3.f03: Removed check for illegal change of associate-name here... * gfortran.dg/associate_5.f03: ...and added it here. * gfortran.dg/associate_6.f03: No longer XFAIL'ed. * gfortran.dg/associate_7.f03: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163295 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-08-15 Daniel Kraft <d@domob.eu>domob2010-08-151-5/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/38936 * gfortran.h (gfc_find_proc_namespace): New method. * expr.c (gfc_build_intrinsic_call): No need to build symtree messing around with namespace. * symbol.c (gfc_find_proc_namespace): New method. * trans-decl.c (gfc_build_qualified_array): Use it for correct value of nest. * primary.c (gfc_match_varspec): Handle associate-names as arrays. * parse.c (parse_associate): Removed assignment-generation here... * resolve.c (resolve_block_construct): ...and added it here. (resolve_variable): Handle names that are arrays but were not parsed as such because of association. (resolve_code): Fix BLOCK resolution. (resolve_symbol): Generate array-spec for associate-names. 2010-08-15 Daniel Kraft <d@domob.eu> PR fortran/38936 * gfortran.dg/associate_1.f03: Enable test for array expressions. * gfortran.dg/associate_3.f03: Clarify comment. * gfortran.dg/associate_5.f03: New test. * gfortran.dg/associate_6.f03: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163268 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-08-15 Daniel Kraft <d@domob.eu>domob2010-08-151-2/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/45197 * decl.c (gfc_match_prefix): Match IMPURE prefix and mark ELEMENTAL routines not IMPURE also as PURE. * intrinsic.c (enum klass): New class `CLASS_PURE' and renamed `NO_CLASS' in `CLASS_IMPURE'. (add_sym): Set symbol-attributes `pure' and `elemental' correctly. (add_sym_0s): Renamed `NO_CLASS' in `CLASS_IMPURE'. (add_functions): Ditto. (add_subroutines): Ditto and mark `MOVE_ALLOC' as CLASS_PURE. * resolve.c (gfc_pure): Do not treat ELEMENTAL as automatically PURE. (resolve_formal_arglist): Check that arguments to ELEMENTAL procedures are not ALLOCATABLE and have their INTENT specified. 2010-08-15 Daniel Kraft <d@domob.eu> PR fortran/45197 * gfortran.dg/elemental_args_check_3.f90: New test. * gfortran.dg/impure_1.f08: New test. * gfortran.dg/impure_2.f08: New test. * gfortran.dg/impure_3.f90: New test. * gfortran.dg/typebound_proc_6.f03: Changed expected error message. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163261 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-08-13 Daniel Kraft <d@domob.eu>domob2010-08-131-12/+16
| | | | | | | | | | | | | | | | | | | * gfortran.h (array_type): New type `AS_IMPLIED_SHAPE'. * array.c (gfc_match_array_spec): Match implied-shape specification and handle AS_IMPLIED_SHAPE correctly otherwise. * decl.c (add_init_expr_to_sym): Set upper bounds for implied-shape. (variable_decl): Some checks for implied-shape declaration. * resolve.c (resolve_symbol): Assert that array-spec is no longer AS_IMPLIED_SHAPE in any case. 2010-08-13 Daniel Kraft <d@domob.eu> * gfortran.dg/implied_shape_1.f08: New test. * gfortran.dg/implied_shape_2.f90: New test. * gfortran.dg/implied_shape_3.f08: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163221 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-08-09 Thomas Koenig <tkoenig@gcc.gnu.org>tkoenig2010-08-091-0/+32
| | | | | | | | | | | | | | | | | | | | | PR fortran/44235 * array.c (gfc_ref_dimen_size): Add end argument. If end is non-NULL, calculate it. (ref_size): Adjust call to gfc_ref_dimen_size. (gfc_array_dimen_size): Likewise. (gfc_array_res_shape): Likewise. * gfortran.h: Adjust prototype for gfc_ref_dimen_size. * resolve.c (resolve_array_ref): For stride not equal to -1, fill in the lowest possible end. 2010-08-09 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/44235 * gfortran.dg/dependency_32.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163041 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-08-04 Janus Weil <janus@gcc.gnu.org>janus2010-08-041-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | PR fortran/42207 PR fortran/44064 PR fortran/44065 * class.c (gfc_find_derived_vtab): Do not generate vtabs for class container types. Do not artificially increase refs. Commit symbols one by one. * interface.c (compare_parameter): Make sure vtabs are present before generating module variables. * resolve.c (resolve_allocate_expr): Ditto. 2010-08-04 Janus Weil <janus@gcc.gnu.org> PR fortran/42207 PR fortran/44064 PR fortran/44065 * gfortran.dg/class_25.f03: New. * gfortran.dg/class_26.f03: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162879 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-08-04 Tobias Burnus <burnus@net-b.de>burnus2010-08-041-3/+18
| | | | | | | | | | | PR fortran/45183 PR fortran/44857 * resolve.c (resolve_structure_cons): Fix freeing of charlen. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162871 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-08-04 Tobias Burnus <burnus@net-b.de>burnus2010-08-041-0/+46
| | | | | | | | | | | | | | | | | | | | PR fortran/44857 * resolve.c (resolve_structure_cons): Fix handling of initialization structcture constructors with character elements of the wrong length. * array.c (gfc_check_iter_variable): Add NULL check. (gfc_resolve_character_array_constructor): Also truncate character length. 2010-08-04 Tobias Burnus <burnus@net-b.de> PR fortran/44857 * gfortran.dg/derived_constructor_char_1.f90: New. * gfortran.dg/derived_constructor_char_2.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162863 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-08-03 Janus Weil <janus@gcc.gnu.org>janus2010-08-031-1/+1
| | | | | | | | | | | | | | | | | | PR fortran/44584 PR fortran/45161 * class.c (add_procs_to_declared_vtab1): Don't add erroneous procedures. * resolve.c (resolve_tb_generic_targets): Check for errors. 2010-08-03 Janus Weil <janus@gcc.gnu.org> PR fortran/44584 PR fortran/45161 * gfortran.dg/typebound_call_9.f03: Modified. * gfortran.dg/typebound_generic_1.f03: Modified. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162840 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-07-30 Mikael Morin <mikael@gcc.gnu.org>mikael2010-07-301-3/+1
| | | | | | | | | | | | | * gfortran.h (gfc_release_symbol): New prototype. * symbol.c (gfc_release_symbol): New. Code taken from free_sym_tree. (gfc_undo_symbols, free_sym_tree, gfc_free_finalizer): Use gfc_release_symbol. * parse.c (gfc_fixup_sibling_symbols): Ditto. * resolve.c (resolve_symbol): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162719 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-07-29 Janus Weil <janus@gcc.gnu.org>janus2010-07-291-20/+4
| | | | | | | | | | | | | | PR fortran/44962 * resolve.c (resolve_fl_derived): Call gfc_resolve_array_spec. 2010-07-29 Janus Weil <janus@gcc.gnu.org> PR fortran/44962 * gfortran.dg/typebound_proc_17.f03: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162695 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-07-26 Tobias Burnus <burnus@net-b.de>burnus2010-07-271-8/+15
| | | | | | | | | | | | | | | | | | | | | | | PR fortran/40873 * trans-decl.c (gfc_get_extern_function_decl): Fix generation for functions which are later in the same file. (gfc_create_function_decl, build_function_decl, build_entry_thunks): Add global argument. * trans.c (gfc_generate_module_code): Update gfc_create_function_decl call. * trans.h (gfc_create_function_decl): Update prototype. * resolve.c (resolve_global_procedure): Also resolve for IFSRC_IFBODY. 2010-07-26 Tobias Burnus <burnus@net-b.de> PR fortran/40873 * gfortran.dg/whole_file_22.f90: New test. * gfortran.dg/whole_file_23.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162557 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-07-25 Thomas Koenig <tkoenig@gcc.gnu.org>tkoenig2010-07-251-0/+2
| | | | | | | | | | | | | | | | | | PR fortran/40628 * Make-lang.in: Add fortran/frontend-passes.o. * gfortran.h: Add prototype for gfc_run_passes. * resolve.c (gfc_resolve): Call gfc_run_passes. * frontend-passes.c: New file. 2010-07-25 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/40628 * trim_optimize_1.f90: New test. * character_comparision_1.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162519 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-07-23 Tobias Burnus <burnus@net-b.de>burnus2010-07-231-15/+28
| | | | | | | | | PR fortran/45030 * resolve.c (resolve_global_procedure): Properly handle ENTRY. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162486 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-07-19 Paul Thomas <pault@gcc.gnu.org>pault2010-07-191-0/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/42385 * interface.c (matching_typebound_op): Add argument for the return of the generic name for the procedure. (build_compcall_for_operator): Add an argument for the generic name of an operator procedure and supply it to the expression. (gfc_extend_expr, gfc_extend_assign): Use the generic name in calls to the above procedures. * resolve.c (resolve_typebound_function): Catch procedure component calls for CLASS objects, check that the vtable is complete and insert the $vptr and procedure components, to make the call. (resolve_typebound_function): The same. * trans-decl.c (gfc_trans_deferred_vars): Do not deallocate an allocatable scalar if it is a result. 2010-07-19 Paul Thomas <pault@gcc.gnu.org> PR fortran/42385 * gfortran.dg/class_defined_operator_1.f03 : New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162313 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-07-15 Janus Weil <janus@gcc.gnu.org>janus2010-07-151-14/+4
| | | | | | | | | | | | | | | | | PR fortran/44936 * resolve.c (resolve_typebound_generic_call): Resolve generic non-polymorphic type-bound procedure calls to the correct specific procedure. (resolve_typebound_subroutine): Remove superfluous code. 2010-07-15 Janus Weil <janus@gcc.gnu.org> PR fortran/44936 * gfortran.dg/typebound_generic_9.f03: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162221 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-07-14 Janus Weil <janus@gcc.gnu.org>janus2010-07-141-5/+12
| | | | | | | | | | | | | | | | | | PR fortran/44925 * gfortran.h (gfc_is_data_pointer): Remove prototype. * dependency.c (gfc_is_data_pointer): Make it static. * intrinsic.texi: Update documentation on C_LOC. * resolve.c (gfc_iso_c_func_interface): Fix pointer and target checks and add a check for polymorphic variables. 2010-07-14 Janus Weil <janus@gcc.gnu.org> PR fortran/44925 * gfortran.dg/c_loc_tests_15.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162169 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-07-13 Janus Weil <janus@gcc.gnu.org>janus2010-07-131-32/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/44434 PR fortran/44565 PR fortran/43945 PR fortran/44869 * gfortran.h (gfc_find_derived_vtab): Modified prototype. * class.c (gfc_build_class_symbol): Modified call to 'gfc_find_derived_vtab'. (add_proc_component): Removed, moved code into 'add_proc_comp'. (add_proc_comps): Renamed to 'add_proc_comp', removed treatment of generics. (add_procs_to_declared_vtab1): Removed unnecessary argument 'resolved'. Removed treatment of generics. (copy_vtab_proc_comps): Removed unnecessary argument 'resolved'. Call 'add_proc_comp' instead of duplicating code. (add_procs_to_declared_vtab): Removed unnecessary arguments 'resolved' and 'declared'. (add_generic_specifics,add_generics_to_declared_vtab): Removed. (gfc_find_derived_vtab): Removed unnecessary argument 'resolved'. Removed treatment of generics. * iresolve.c (gfc_resolve_extends_type_of): Modified call to 'gfc_find_derived_vtab'. * resolve.c (resolve_typebound_function,resolve_typebound_subroutine): Removed treatment of generics. (resolve_select_type,resolve_fl_derived): Modified call to 'gfc_find_derived_vtab'. * trans-decl.c (gfc_get_symbol_decl): Ditto. * trans-expr.c (gfc_conv_derived_to_class,gfc_trans_class_assign): Ditto. * trans-stmt.c (gfc_trans_allocate): Ditto. 2010-07-13 Janus Weil <janus@gcc.gnu.org> PR fortran/44434 PR fortran/44565 PR fortran/43945 PR fortran/44869 * gfortran.dg/dynamic_dispatch_1.f03: Fixed invalid test case. * gfortran.dg/dynamic_dispatch_2.f03: Ditto. * gfortran.dg/dynamic_dispatch_3.f03: Ditto. * gfortran.dh/typebound_call_16.f03: New. * gfortran.dg/typebound_generic_6.f03: New. * gfortran.dg/typebound_generic_7.f03: New. * gfortran.dg/typebound_generic_8.f03: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162125 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-07-12 Mikael Morin <mikael@gcc.gnu.org>mikael2010-07-121-3/+1
| | | | | | | | | * expr.c (gfc_get_int_expr): Don't initialize mpfr data twice. * resolve.c (build_default_init_expr): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162081 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-07-11 Janus Weil <janus@gcc.gnu.org>janus2010-07-111-8/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/44689 * decl.c (build_sym,attr_decl1): Only build the class container if the symbol has sufficient attributes. * expr.c (gfc_check_pointer_assign): Use class_pointer instead of pointer attribute for classes. * match.c (gfc_match_allocate,gfc_match_deallocate): Ditto. * module.c (MOD_VERSION): Bump. (enum ab_attribute,attr_bits): Add AB_CLASS_POINTER. (mio_symbol_attribute): Handle class_pointer attribute. * parse.c (parse_derived): Use class_pointer instead of pointer attribute for classes. * primary.c (gfc_variable_attr,gfc_expr_attr): Ditto. * resolve.c (resolve_structure_cons,resolve_deallocate_expr, resolve_allocate_expr,resolve_fl_derived): Ditto. (resolve_fl_var_and_proc): Check for class_ok attribute. 2010-07-11 Janus Weil <janus@gcc.gnu.org> PR fortran/44689 * gfortran.dg/class_24.f03: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162052 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-07-10 Paul Thomas <pault@gcc.gnu.org>pault2010-07-101-0/+9
| | | | | | | | | | | | | | | PR fortran/44773 * trans-expr.c (arrayfunc_assign_needs_temporary): No temporary if the lhs has never been host associated, as well as not being use associated, a pointer or a target. * resolve.c (resolve_variable): Mark variables that are host associated. * gfortran.h: Add the host_assoc bit to the symbol_attribute structure. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162038 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-07-06 Tobias Burnus <burnus@net-b.de>burnus2010-07-061-2/+2
| | | | | | | | | | | | | | | | | | | | PR fortran/44742 * array.c (gfc_expand_constructor): Add optional diagnostic. * gfortran.h (gfc_expand_constructor): Update prototype. * expr.c (gfc_simplify_expr, check_init_expr, gfc_reduce_init_expr): Update gfc_expand_constructor call. * resolve.c (gfc_resolve_expr): Ditto. 2010-07-06 Tobias Burnus <burnus@net-b.de> PR fortran/44742 * gfortran.dg/parameter_array_init_6.f90: New. * gfortran.dg/initialization_20.f90: Update dg-error. * gfortran.dg/initialization_24.f90: Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161888 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-06-29 Janus Weil <janus@gcc.gnu.org>janus2010-06-291-0/+1
| | | | | | | | | | | | | | PR fortran/44718 * resolve.c (is_external_proc): Prevent procedure pointers from being regarded as external procedures. 2010-06-29 Janus Weil <janus@gcc.gnu.org> PR fortran/44718 * gfortran.dg/proc_ptr_28.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161569 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-06-22 Janus Weil <janus@gcc.gnu.org>janus2010-06-221-0/+1
| | | | | | | | | | | | | | PR fortran/44616 * resolve.c (resolve_fl_derived): Avoid checking for abstract on class containers. 2010-06-22 Janus Weil <janus@gcc.gnu.org> PR fortran/44616 * gfortran.dg/abstract_type_8.f03: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161208 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-06-20 Tobias Burnus <burnus@net-b.de>burnus2010-06-211-0/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/40632 * interface.c (compare_parameter): Add gfc_is_simply_contiguous checks. * symbol.c (gfc_add_contiguous): New function. (gfc_copy_attr, check_conflict): Handle contiguous attribute. * decl.c (match_attr_spec): Ditto. (gfc_match_contiguous): New function. * resolve.c (resolve_fl_derived, resolve_symbol): Handle contiguous. * gfortran.h (symbol_attribute): Add contiguous. (gfc_is_simply_contiguous): Add prototype. (gfc_add_contiguous): Add prototype. * match.h (gfc_match_contiguous): Add prototype. * parse.c (decode_specification_statement, decode_statement): Handle contiguous attribute. * expr.c (gfc_is_simply_contiguous): New function. * dump-parse-tree.c (show_attr): Handle contiguous. * module.c (ab_attribute, attr_bits, mio_symbol_attribute): Ditto. * trans-expr.c (gfc_add_interface_mapping): Copy attr.contiguous. * trans-array.c (gfc_conv_descriptor_stride_get, gfc_conv_array_parameter): Handle contiguous arrays. * trans-types.c (gfc_build_array_type, gfc_build_array_type, gfc_sym_type, gfc_get_derived_type, gfc_get_array_descr_info): Ditto. * trans.h (gfc_array_kind): Ditto. * trans-decl.c (gfc_get_symbol_decl): Ditto. 2010-06-20 Tobias Burnus <burnus@net-b.de> PR fortran/40632 * gfortran.dg/contiguous_1.f90: New. * gfortran.dg/contiguous_2.f90: New. * gfortran.dg/contiguous_3.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161079 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-06-19 Janus Weil <janus@gcc.gnu.org>janus2010-06-201-1/+1
| | | | | | | | | | | | | | | PR fortran/44584 * resolve.c (resolve_fl_derived): Reverse ordering of conditions to avoid ICE. 2010-06-19 Janus Weil <janus@gcc.gnu.org> PR fortran/44584 * gfortran.dg/typebound_proc_15.f03: Modified. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161041 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-06-18 Tobias Burnus <burnus@net-b.de>burnus2010-06-181-4/+46
| | | | | | | | | | | | | | | PR fortran/44556 * resolve.c (resolve_allocate_deallocate): Properly check part-refs in stat=/errmsg= for invalid use. 2010-06-18 Tobias Burnus <burnus@net-b.de> PR fortran/44556 * gfortran.dg/allocate_alloc_opt_11.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161011 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-06-17 Janus Weil <janus@gcc.gnu.org>janus2010-06-171-2/+4
| | | | | | | | | | | | | | | PR fortran/44558 * resolve.c (resolve_typebound_function,resolve_typebound_subroutine): Return directly in case of an error. 2010-06-17 Janus Weil <janus@gcc.gnu.org> PR fortran/44558 * gfortran.dg/typebound_call_15.f03: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@160948 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-06-15 Janus Weil <janus@gcc.gnu.org>janus2010-06-151-20/+23
| | | | | | | | | | | | | | | | | | | | PR fortran/43388 * gfortran.h (gfc_expr): Add new member 'mold'. * match.c (gfc_match_allocate): Implement the MOLD tag. * resolve.c (resolve_allocate_expr): Ditto. * trans-stmt.c (gfc_trans_allocate): Ditto. 2010-06-15 Janus Weil <janus@gcc.gnu.org> PR fortran/43388 * gfortran.dg/allocate_alloc_opt_8.f90: New. * gfortran.dg/allocate_alloc_opt_9.f90: New. * gfortran.dg/allocate_alloc_opt_10.f90: New. * gfortran.dg/class_allocate_2.f03: Modified an error message. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@160801 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/fortran/:dfranke2010-06-121-29/+88
| | | | | | | | | | | | | | | | 2010-06-12 Daniel Franke <franke.daniel@gmail.com> * resolve.c (resolve_global_procedure): Improved checking if an explicit interface is required. gcc/testsuite/: 2010-06-12 Daniel Franke <franke.daniel@gmail.com> * gfortran.dg/whole_file_20.f03: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@160663 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-06-10 Janus Weil <janus@gcc.gnu.org>janus2010-06-111-5/+8
| | | | | | | | | | | | | | PR fortran/44207 * resolve.c (conformable_arrays): Handle allocatable components. 2010-06-10 Janus Weil <janus@gcc.gnu.org> PR fortran/44207 * gfortran.dg/allocate_alloc_opt_7.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@160589 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-06-10 Steven G. Kargl <kargl@gcc.gnu.org>kargl2010-06-111-2/+2
| | | | | | | * resolve.c (resolve_operator): Fix whitespace. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@160584 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-06-10 Daniel Kraft <d@domob.eu>domob2010-06-101-7/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/38936 * gfortran.h (enum gfc_statement): Add ST_ASSOCIATE, ST_END_ASSOCIATE. (struct gfc_symbol): New field `assoc'. (struct gfc_association_list): New struct. (struct gfc_code): New struct `block' in union, move `ns' there and add association list. (gfc_free_association_list): New method. (gfc_has_vector_subscript): Made public; * match.h (gfc_match_associate): New method. * parse.h (enum gfc_compile_state): Add COMP_ASSOCIATE. * decl.c (gfc_match_end): Handle ST_END_ASSOCIATE. * interface.c (gfc_has_vector_subscript): Made public. (compare_actual_formal): Rename `has_vector_subscript' accordingly. * match.c (gfc_match_associate): New method. (gfc_match_select_type): Change reference to gfc_code's `ns' field. * primary.c (match_variable): Don't allow names associated to expr here. * parse.c (decode_statement): Try matching ASSOCIATE statement. (case_exec_markers, case_end): Add ASSOCIATE statement. (gfc_ascii_statement): Hande ST_ASSOCIATE and ST_END_ASSOCIATE. (parse_associate): New method. (parse_executable): Handle ST_ASSOCIATE. (parse_block_construct): Change reference to gfc_code's `ns' field. * resolve.c (resolve_select_type): Ditto. (resolve_code): Ditto. (resolve_block_construct): Ditto and add comment. (resolve_select_type): Set association list in generated BLOCK to NULL. (resolve_symbol): Resolve associate names. * st.c (gfc_free_statement): Change reference to gfc_code's `ns' field and free association list. (gfc_free_association_list): New method. * symbol.c (gfc_new_symbol): NULL new field `assoc'. * trans-stmt.c (gfc_trans_block_construct): Change reference to gfc_code's `ns' field. 2010-06-10 Daniel Kraft <d@domob.eu> PR fortran/38936 * gfortran.dg/associate_1.f03: New test. * gfortran.dg/associate_2.f95: New test. * gfortran.dg/associate_3.f03: New test. * gfortran.dg/associate_4.f08: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@160550 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-06-09 Janus Weil <janus@gcc.gnu.org>janus2010-06-091-0/+6
| | | | | | | | | | | | | | | PR fortran/44211 * resolve.c (resolve_typebound_function,resolve_typebound_subroutine): Resolve references. 2010-06-09 Janus Weil <janus@gcc.gnu.org> PR fortran/44211 * gfortran.dg/typebound_call_14.f03: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@160478 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-06-09 Kai Tietz <kai.tietz@onevision.com>ktietz2010-06-091-1/+2
| | | | | | | | | | * fortran/resolve.c (resolve_deallocate_expr): Avoid warning about possible use of iunitialized sym. (resolve_allocate_expr): Pre-initialize sym by NULL. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@160464 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-06-07 Tobias Burnus <burnus@net-b.de>burnus2010-06-081-0/+13
| | | | | | | | | | | | | | | | PR fortran/44446 * symbol.c (check_conflict): Move protected--external/procedure check ... * resolve.c (resolve_select_type): ... to the resolution stage. 2010-06-07 Tobias Burnus <burnus@net-b.de> PR fortran/44446 * gfortran.dg/proc_ptr_27.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@160424 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-06-05 Paul Thomas <pault@gcc.gnu.org>janus2010-06-061-42/+56
| | | | | | | | | | | | | | | | | | | | | | | Janus Weil <janus@gcc.gnu.org> PR fortran/43945 * resolve.c (get_declared_from_expr): Move to before resolve_typebound_generic_call. Make new_ref and class_ref ignorable if set to NULL. (resolve_typebound_generic_call): Once we have resolved the generic call, check that the specific instance is that which is bound to the declared type. (resolve_typebound_function,resolve_typebound_subroutine): Avoid freeing 'class_ref->next' twice. 2010-06-05 Paul Thomas <pault@gcc.gnu.org> PR fortran/43945 * gfortran.dg/generic_23.f03: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@160335 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-05-30 Janus Weil <janus@gcc.gnu.org>janus2010-05-301-40/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | * gcc/fortran/gfortran.h (CLASS_DATA): New macro for accessing the $data component of a class container. * gcc/fortran/decl.c (attr_decl1): Use macro CLASS_DATA. * gcc/fortran/expr.c (gfc_check_pointer_assign,gfc_check_assign_symbol, gfc_has_ultimate_allocatable,gfc_has_ultimate_pointer): Ditto. * gcc/fortran/interface.c (matching_typebound_op): Ditto. * gcc/fortran/match.c (gfc_match_allocate, gfc_match_deallocate): Ditto. * gcc/fortran/parse.c (parse_derived): Ditto. * gcc/fortran/primary.c (gfc_match_varspec, gfc_variable_attr, gfc_expr_attr): Ditto. * gcc/fortran/resolve.c (resolve_structure_cons, find_array_spec, resolve_deallocate_expr, resolve_allocate_expr, resolve_select_type, resolve_fl_var_and_proc, resolve_typebound_procedure, resolve_fl_derived): Ditto. * gcc/fortran/symbol.c (gfc_type_compatible): Restructured. * gcc/fortran/trans-array.c (structure_alloc_comps): Use macro CLASS_DATA. * gcc/fortran/trans-decl.c (gfc_get_symbol_decl, gfc_trans_deferred_vars): Ditto. * gcc/fortran/trans-stmt.c (gfc_trans_allocate): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@160060 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-05-26 Paul Thomas <pault@gcc.gnu.org>pault2010-05-261-14/+15
| | | | | | | | | | | | | | PR fortran/40011 * resolve.c (resolve_global_procedure): Resolve the gsymbol's namespace before trying to reorder the gsymbols. 2010-05-26 Paul Thomas <pault@gcc.gnu.org> PR fortran/40011 * gfortran.dg/whole_file_19.f90 : New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159852 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/fortran/:dfranke2010-05-251-6/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2010-05-25 Daniel Franke <franke.daniel@gmail.com> PR fortran/30668 PR fortran/31346 PR fortran/34260 * resolve.c (resolve_global_procedure): Add check for global procedures with implicit interfaces and assumed-shape or optional dummy arguments. Verify that function return type, kind and string lengths match. gcc/testsuite/: 2010-05-25 Daniel Franke <franke.daniel@gmail.com> PR fortran/30668 PR fortran/31346 PR fortran/34260 * gfortran.dg/pr40999.f: Fix function type. * gfortran.dg/whole_file_5.f90: Likewise. * gfortran.dg/whole_file_6.f90: Likewise. * gfortran.dg/whole_file_16.f90: New. * gfortran.dg/whole_file_17.f90: New. * gfortran.dg/whole_file_18.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159838 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-05-22 Janus Weil <janus@gcc.gnu.org>janus2010-05-221-0/+16
| | | | | | | | | | | | | | | | | | PR fortran/44212 * match.c (gfc_match_select_type): On error jump back out of the local namespace. * parse.c (parse_derived): Defer creation of vtab symbols to resolution stage, more precisely to ... * resolve.c (resolve_fl_derived): ... this place. 2010-05-22 Janus Weil <janus@gcc.gnu.org> PR fortran/44212 * gfortran.dg/class_22.f03: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159745 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-05-22 Janus Weil <janus@gcc.gnu.org>janus2010-05-221-1/+4
| | | | | | | | | | | | | | | PR fortran/44213 * resolve.c (ensure_not_abstract): Allow abstract types with non-abstract ancestors. 2010-05-22 Janus Weil <janus@gcc.gnu.org> PR fortran/44213 * gfortran.dg/abstract_type_7.f03: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159695 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/fortran/:dfranke2010-05-191-20/+5
| | | | | | | | | | | | | | | | | | | | | | | | | 2010-05-19 Daniel Franke <franke.daniel@gmail.com> PR fortran/42360 * gfortran.h (gfc_has_default_initializer): New. * expr.c (gfc_has_default_initializer): New. * resolve.c (has_default_initializer): Removed, use gfc_has_default_initializer() instead. Updated all callers. * trans-array.c (has_default_initializer): Removed, use gfc_has_default_initializer() instead. Updated all callers. * trans-decl.c (generate_local_decl): Do not check the first component only to check for initializers, but use gfc_has_default_initializer() instead. gcc/testsuite/: 2010-05-19 Daniel Franke <franke.daniel@gmail.com> PR fortran/42360 * gfortran.dg/warn_intent_out_not_set.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159562 138bc75d-0d04-0410-961f-82ee72b054a4