summaryrefslogtreecommitdiffstats
path: root/gcc/fortran/resolve.c
Commit message (Collapse)AuthorAgeFilesLines
* 2007-02-03 Paul Thomas <pault@gcc.gnu.org>pault2007-02-031-8/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/30514 * array.c (match_array_element_spec): If the length of an array is negative, adjust the upper limit to make it zero length. PR fortran/30660 * resolve.c (pure_function, resolve_function): Initialize name to null to clear up build warnings. (resolve_fl_variable): Look at components explicitly to check for default initializer, rather than using gfc_default_initializer. 2007-02-03 Paul Thomas <pault@gcc.gnu.org> PR fortran/30514 * gfortran.dg/zero_sized_2.f90: New test. PR fortran/30660 * gfortran.dg/alloc_comp_basics_4.f90: New test. PR fortran/29820 * gfortran.dg/actual_array_interface_1.f90: Copy source to empty file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@121541 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-02-02 Steven G. Kargl <kargl@gcc.gnu.org>kargl2007-02-031-1/+1
| | | | | | | | | | | PR fortran/30683 * resolve.c (resolve_generic_f): Check for non-NULL sym. * gfortran.dg/interface_10.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@121531 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-01-27 Paul Thomas <pault@gcc.gnu.org>pault2007-01-271-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/30407 * trans-expr.c (gfc_conv_operator_assign): New function. * trans.h : Add prototype for gfc_conv_operator_assign. * trans-stmt.c (gfc_trans_where_assign): Add a gfc_symbol for a potential operator assignment subroutine. If it is non-NULL call gfc_conv_operator_assign instead of the first assignment. ( gfc_trans_where_2): In the case of an operator assignment, extract the argument expressions from the code for the subroutine call and pass the symbol to gfc_trans_where_assign. resolve.c (resolve_where, gfc_resolve_where_code_in_forall, gfc_resolve_forall_body): Resolve the subroutine call for operator assignments. 2007-01-27 Paul Thomas <pault@gcc.gnu.org> PR fortran/30407 * gfortran.dg/where_operator_assign_1.f90: New test. * gfortran.dg/where_operator_assign_2.f90: New test. * gfortran.dg/where_operator_assign_3.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@121235 138bc75d-0d04-0410-961f-82ee72b054a4
* * openmp.c, matchexp.c, module.c, scanner.c, resolve.c, st.c,kargl2007-01-201-797/+771
| | | | | | | | | parse.c, primary.c, options.c, misc.c, simplify.c: Next installment in the massive whitespace patch. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@121012 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-01-15 Paul Thomas <pault@gcc.gnu.org>pault2007-01-151-3/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/28172 * trans-stmt.c (gfc_trans_call): If it does not have one, get a backend_decl for an alternate return. PR fortran/29389 * resolve.c (pure_function): Statement functions are pure. Note that this will have to recurse to comply fully with F95. PR fortran/29712 * resolve.c (resolve_function): Only a reference to the final dimension of an assumed size array is an error in an inquiry function. PR fortran/30283 * resolve.c (resolve_function): Make sure that the function expression has a type. 2007-01-15 Paul Thomas <pault@gcc.gnu.org> PR fortran/28172 * gfortran.dg/altreturn_4.f90: New test. PR fortran/29389 * gfortran.dg/stfunc_4.f90: New test. PR fortran/29712 * gfortran.dg/bound_2.f90: Reinstate commented out line. * gfortran.dg/initialization_1.f90: Change warning. PR fortran/30283 * gfortran.dg/specification_type_resolution_2.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120790 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-01-09 Paul Thomas <pault@gcc.gnu.org>jvdelisle2007-01-101-4/+5
| | | | | | | | | | | | | | | | | PR fortran/30408 * resolve.c (resolve_code): Use the code->expr character length directly to set length of llen. 2007-01-09 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR fortran/30408 * lang.opt: Add Wcharacter_truncation option. * options.c (gfc_init_options): Initialize gfc_option.warn_character_truncation to zero. (gfc_handle_option): Add case for OPT_Wcharacter_truncation. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120632 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-01-05 Paul Thomas <pault@gcc.gnu.org>pault2007-01-051-18/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/23232 * decl.c (gfc_in_match_data, gfc_set_in_match_data): New functions to signal that a DATA statement is being matched. (gfc_match_data): Call gfc_set_in_match_data on entry and on exit. * gfortran.h : Add prototypes for above. * expr.c (check_init_expr): Avoid check on parameter or variable if gfc_in_match_data is true. (gfc_match_init_expr): Do not call error on non-reduction of expression if gfc_in_match_data is true. PR fortran/27996 PR fortran/27998 * decl.c (gfc_set_constant_character_len): Add boolean arg to flag array constructor resolution. Warn if string is being truncated. Standard dependent error if string is padded. Set new arg to false for all three calls to gfc_set_constant_character_len. * match.h : Add boolean arg to prototype for gfc_set_constant_character_len. * gfortran.h : Add warn_character_truncation to gfc_options. * options.c (set_Wall): Set warn_character_truncation if -Wall is set. * resolve.c (resolve_code): Warn if rhs string in character assignment has to be truncated. * array.c (gfc_resolve_character_array_constructor): Set new argument to true for call to gfc_set_constant_character_len. 2007-01-05 Paul Thomas <pault@gcc.gnu.org> PR fortran/23232 * gfortran.dg/data_implied_do_1.f90: New test. PR fortran/27996 PR fortran/27998 * gfortran.dg/char_length_1.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120485 138bc75d-0d04-0410-961f-82ee72b054a4
* fortran/burnus2007-01-051-44/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2007-01-05 Tobias Burnus <burnus@net-b.de> PR fortran/29624 * interface.c (compare_parameter_intent): New function. (check_intents): Support pointer intents. * symbol.c (check_conflict): Support pointer intents, better conflict_std message. * expr.c (gfc_check_assign,gfc_check_pointer_assign): Support pointer intents. * resolve.c (resolve_deallocate_expr,resolve_allocate_expr): Support pointer intents. testsuite/ 2006-01-05 Tobias Burnus <burnus@net-b.de> PR fortran/29624 * gfortran.dg/alloc_alloc_expr_1.f90: Add check for invalid deallocate. * gfortran.dg/allocatable_dummy_2.f90: Update dg-error. * gfortran.dg/protected_4.f90: Add pointer intent check. * gfortran.dg/protected_6.f90: Add pointer intent check. * gfortran.dg/pointer_intent_1.f90: New test. * gfortran.dg/pointer_intent_2.f90: New test. * gfortran.dg/pointer_intent_3.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120472 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-01-02 Paul Thomas <pault@gcc.gnu.org>pault2007-01-021-1/+1
| | | | | | | | | | | | | | | | | | PR fortran/20896 * interface.c (check_sym_interfaces): Remove call to resolve_global_procedure. gfortran.h : Remove prototype for resolve_global_procedure. resolve.c (resolve_global_procedure): Add static attribute to function declaration. 2007-01-02 Paul Thomas <pault@gcc.gnu.org> PR fortran/20896 * gfortran.dg/interface_10.f90: Remove. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120342 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-12-31 Paul Thomas <pault@gcc.gnu.org>pault2006-12-311-0/+37
| | | | | | | | | | | | | | | | | | | | | | PR fortran/27900 * resolve.c (resolve_actual_arglist): If all else fails and a procedure actual argument has no type, see if a specific intrinsic matches. PR fortran/24325 * resolve.c (resolve_function): If the function reference is FL_VARIABLE this is an error. 2006-12-31 Paul Thomas <pault@gcc.gnu.org> PR fortran/27900 * gfortran.dg/intrinsic_actual_4.f90: New test. PR fortran/24325 * gfortran.dg/func_decl_3.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120296 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-12-31 Paul Thomas <pault@gcc.gnu.org>pault2006-12-311-8/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/23060 * intrinsic.c (compare_actual_formal ): Distinguish argument list functions from keywords. * intrinsic.c (sort_actual): If formal is NULL, the presence of an argument list function actual is an error. * trans-expr.c (conv_arglist_function) : New function to implement argument list functions %VAL, %REF and %LOC. (gfc_conv_function_call): Call it. * resolve.c (resolve_actual_arglist): Add arg ptype and check argument list functions. (resolve_function, resolve_call): Set value of ptype before calls to resolve_actual_arglist. * primary.c (match_arg_list_function): New function. (gfc_match_actual_arglist): Call it before trying for a keyword argument. 2006-12-31 Paul Thomas <pault@gcc.gnu.org> PR fortran/23060 * gfortran.dg/c_by_val.c: Called by c_by_val_1.f. * gfortran.dg/c_by_val_1.f: New test. * gfortran.dg/c_by_val_2.f: New test. * gfortran.dg/c_by_val_3.f: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120295 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-12-28 Paul Thomas <pault@gcc.gnu.org>pault2006-12-281-13/+7
| | | | | | | | | | | | | | | | | | | | | | | PR fortran/30034 * resolve.c (resolve_formal_arglist): Exclude the test for pointers and procedures for subroutine arguments as well as functions. PR fortran/30237 * intrinsic.c (remove_nullargs): Do not pass up arguments with a label. If the actual has a label and the formal has a type then emit an error. 2006-12-28 Paul Thomas <pault@gcc.gnu.org> PR fortran/30034 * gfortran.dg/pure_formal_proc_1.f90: New test. PR fortran/30237 * gfortran.dg/intrinsic_actual_3.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120244 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-12-27 Paul Thomas <pault@gcc.gnu.org>pault2006-12-271-12/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/20896 * interface.c (check_sym_interfaces): Try to resolve interface reference as a global symbol, if it is not a nodule procedure. (compare_actual_formal): Remove call to gfc_find_symbol; if the expression is already a variable it is locally declared and this has precedence. gfortran.h : Add prototype for resolve_global_procedure. resolve.c (resolve_global_procedure): Remove static attribute from function declaration. (resolve_fl_procedure): Remove symtree declaration and the redundant check for an ambiguous procedure. PR fortran/25135 * module.c (load_generic_interfaces): If the symbol is present and is not generic it is ambiguous. 2006-12-27 Paul Thomas <pault@gcc.gnu.org> PR fortran/20896 * gfortran.dg/interface_10.f90: New test. * gfortran.dg/dummy_procedure_1.f90: Add error for call s1(z), since z is already, locally a variable. PR fortran/25135 * gfortran.dg/generic_11.f90: New test. * gfortran.dg/interface_7.f90: Remove name clash between module name and procedure 'x' referenced in the interface. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120218 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-12-22 Paul Thomas <pault@gcc.gnu.org>pault2006-12-221-0/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/25818 * trans-array.c (gfc_trans_g77_array): If the variable is optional or not always present, make the statement conditional on presence of the argument. * gfortran.h : Add symbol_attribute not_always_present. * resolve.c (check_argument_lists): New function to check if arguments are not present in all entries. PR fortran/30084 * module.c (mio_component_ref): Move treatment of unique name variables, during output, to fix_mio_expr. (fix_mio_expr): New function that fixes defective expressions before they are written to the module file. (mio_expr): Call the new function. (resolve_entries): Call check_argument_lists. 2006-12-22 Paul Thomas <pault@gcc.gnu.org> PR fortran/25818 * gfortran.dg/entry_array_specs_2.f: New test. PR fortran/30084 * gfortran.dg/nested_modules_6.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120155 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-12-20 Paul Thomas <pault@gcc.gnu.org>pault2006-12-201-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/29992 * interface.c (check_sym_interfaces): Module procedures in a generic must be use associated or contained in the module. * decl.c (gfc_match_modproc): Set attribute mod_proc. * gfortran.h (symbol_attribute): Add mod_proc atribute. PR fortran/30081 * resolve.c (resolve_generic_f, resolve_generic_s): Use gfc_intrinsic_name to find out if the function is intrinsic because it does not have to be a generic intrinsic to be overloaded. 2006-12-20 Paul Thomas <pault@gcc.gnu.org> PR fortran/29992 * gfortran.dg/generic_9.f90: New test. PR fortran/30081 * gfortran.dg/generic_10.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120072 138bc75d-0d04-0410-961f-82ee72b054a4
* fortran/burnus2006-12-101-1/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2006-12-10 Tobias Burnus <burnus@net-b.de> PR fortran/23994 * interface.c (compare_actual_formal): PROTECTED is incompatible with intent(out). * symbol.c (check_conflict): Check for PROTECTED conflicts. (gfc_add_protected): New function. (gfc_copy_attr): Copy PROTECTED attribute. * decl.c (match_attr_spec): Add PROTECTED support. (gfc_match_protected): New function. * dump-parse-tree.c (gfc_show_attr): Add PROTECTED support. * gfortran.h (gfc_symbol): Add protected flag. Add gfc_add_protected prototype. * expr.c (gfc_check_pointer_assign): Add PROTECTED support. * module.c (ab_attribute, attr_bits, mio_symbol_attribute, mio_symbol_attribute): Add PROTECTED support. * resolve.c (resolve_equivalence): Add PROTECTED support. * match.c (gfc_match_assignment,)gfc_match_pointer_assignment: Check PROTECTED attribute. * match.h: Add gfc_match_protected prototype. * parse.c (decode_statement): Match PROTECTED statement. * primary.c (match_variable): Add PROTECTED support. testsuite/ 2006-12-10 Tobias Burnus <burnus@net-b.de> PR fortran/23994 * gfortran.dg/protected_1.f90: New test. * gfortran.dg/protected_2.f90: New test. * gfortran.dg/protected_3.f90: New test. * gfortran.dg/protected_4.f90: New test. * gfortran.dg/protected_5.f90: New test. * gfortran.dg/protected_6.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119709 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-12-09 Paul Thomas <pault@gcc.gnu.org>pault2006-12-091-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/29975 PR fortran/30068 PR fortran/30096 * interface.c (compare_type_rank_if): Reject invalid generic interfaces. (check_interface1): Give a warning for nonreferred to ambiguous interfaces. (check_sym_interfaces): Check whether an ambiguous interface is referred to. Do not check host associated interfaces since these cannot be ambiguous with the local versions. (check_uop_interface, gfc_check_interfaces): Update call to check_interface1. * symbol.c (gfc_get_sym_tree, gfc_get_sym_tree): Allow adding unambiguous procedures to generic interfaces. * gfortran.h (symbol_attribute): Added use_only and ambiguous_interfaces. * module.c (load_need): Set the use_only flag, if needed. * resolve.c (resolve_fl_procedure): Warn for nonreferred interfaces. * expr.c (find_array_section): Fix initializer array contructor. 2006-12-09 Paul Thomas <pault@gcc.gnu.org> Tobias Burnus <burnus@gcc.gnu.org> PR fortran/29975 PR fortran/30068 * gfortran.dg/interface_4.f90: Test adding procedure to generic interface. * gfortran.dg/interface_5.f90: Test warning for not-referenced-to ambiguous interfaces. * gfortran.dg/interface_6.f90: Test invalid, ambiguous interface. * gfortran.dg/interface_7.f90: Test invalid, ambiguous interface. * gfortran.dg/interface_8.f90: Test warning for not-referenced-to ambiguous interfaces. * gfortran.dg/interface_1.f90: Change dg-error into a dg-warning. * gfortran.dg/array_initializer_2.f90: Add initializer array constructor test. PR fortran/30096 * gfortran.dg/interface_9.f90: Test that host interfaces are not checked for ambiguity with the local version. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119697 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-12-09 Paul Thomas <pault@gcc.gnu.org>pault2006-12-091-5/+8
| | | | | | | | | | | | | | | PR fortran/29941 * resolve.c (resolve_function): Add LEN to the functions not checked for assumed size actual args. 2006-12-09 Paul Thomas <pault@gcc.gnu.org> PR fortran/29941 * gfortran.dg/assumed_len.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119695 138bc75d-0d04-0410-961f-82ee72b054a4
* Revert accidental change.aldyh2006-12-051-13/+0
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119547 138bc75d-0d04-0410-961f-82ee72b054a4
* Merge gimple-tuples-branch into mainline.aldyh2006-12-051-0/+13
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119546 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-12-04 Paul Thomas <pault@gcc.gnu.org>pault2006-12-041-1/+8
| | | | | | | | | | | | | | | PR fortran/29821 * resolve.c (resolve_operator): Only return result of gfc_simplify_expr if expression is constant. 2006-12-04 Paul Thomas <pault@gcc.gnu.org> PR fortran/29821 * gfortran.dg/parameter_array_section_1.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119504 138bc75d-0d04-0410-961f-82ee72b054a4
* fortran/burnus2006-12-041-0/+9
| | | | | | | | | | | | | | | | | | | | 2006-12-04 Paul Thomas <pault@gcc.gnu.org> PR fortran/29916 * resolve.c (resolve_symbol): Allow host-associated variables in the specification expression of an array-valued function. * expr.c (check_restricted): Accept host-associated dummy array indices. testsuite/ 2006-12-04 Paul Thomas <pault@gcc.gnu.org> PR fortran/29916 * gfortran.dg/host_dummy_index_1.f90: Added additional test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119489 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-12-03 Paul Thomas <pault@gcc.gnu.org>pault2006-12-031-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/29642 * trans-expr.c (gfc_conv_variable): A character expression with the VALUE attribute needs an address expression; otherwise all other expressions with this attribute must not be dereferenced. (gfc_conv_function_call): Pass expressions with the VALUE attribute by value, using gfc_conv_expr. * symbol.c (check_conflict): Add strings for INTENT OUT, INOUT and VALUE. Apply all the constraints associated with the VALUE attribute. (gfc_add_value): New function. (gfc_copy_attr): Call it for VALUE attribute. * decl.c (match_attr_spec): Include the VALUE attribute. (gfc_match_value): New function. * dump-parse-tree.c (gfc_show_attr): Include VALUE. * gfortran.h : Add value to the symbol_attribute structure and add a prototype for gfc_add_value * module.c (mio_internal_string): Include AB_VALUE in enum. (attr_bits): Provide the VALUE string for it. (mio_symbol_attribute): Read or apply the VLUE attribute. * trans-types.c (gfc_sym_type): Variables with the VLAUE attribute are not passed by reference! * resolve.c (was_declared): Add value to those that return 1. (resolve_symbol): Value attribute requires dummy attribute. * match.h : Add prototype for gfc_match_public. * parse.c (decode_statement): Try to match a VALUE statement. 2006-12-03 Paul Thomas <pault@gcc.gnu.org> PR fortran/29642 * gfortran.dg/value_1.f90 : New test. * gfortran.dg/value_2.f90 : New test. * gfortran.dg/value_3.f90 : New test. * gfortran.dg/value_4.f90 : New test. * gfortran.dg/value_4.c : Called from value_4.f90. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119461 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-11-28 Paul Thomas <pault@gcc.gnu.org>pault2006-11-281-1/+3
| | | | | | | | | | | | | | PR fortran/20880 * resolve.c (resolve_fl_procedure): Error if procedure is ambiguous modified to require attr.referenced. 2006-11-28 Paul Thomas <pault@gcc.gnu.org> PR fortran/20880 * gfortran.dg/interface_3.f90: Modify errors. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119272 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-11-24 Paul Thomas <pault@gcc.gnu.org>pault2006-11-241-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | PR fortran/20880 * parse.c (parse_interface): Error if procedure name is that of encompassing scope. * resolve.c (resolve_fl_procedure): Error if procedure is ambiguous. PR fortran/29387 * interface.c (compare_actual_formal): Add missing condition that 'where' be present for error that asserts that actual arguments be definable. 2006-11-24 Paul Thomas <pault@gcc.gnu.org> PR fortran/20880 * gfortran.dg/interface_3.f90: New test. PR fortran/29387 * gfortran.dg/generic_8.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119173 138bc75d-0d04-0410-961f-82ee72b054a4
* * resolve.c (resolve_actual_arglist): Remove the special case forfxcoudert2006-11-241-6/+0
| | | | | | | | | | | | CHAR. * intrinsic.c (add_functions): Remove the special case for CHAR. * gfortran.dg/specifics_1.f90: Remove check for CHAR. * gfortran.dg/specifics_2.f90: Remove check for CHAR. * gfortran.dg/specifics_3.f90: Remove. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119170 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-11-22 Paul Thomas <pault@gcc.gnu.org>pault2006-11-221-8/+14
| | | | | | | | | | | | | | | PR fortran/25087 * resolve.c (resolve_fl_procedure): Add an error if an external automatic character length function does not have an explicit interface. 2006-11-22 Paul Thomas <pault@gcc.gnu.org> PR fortran/25087 * gfortran.dg/auto_char_len_4.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119077 138bc75d-0d04-0410-961f-82ee72b054a4
* fortran/ChangeLogaldot2006-11-201-5/+3
| | | | | | | | | | | | | | | | | | | | 2006-11-20 Bernhard Fischer <aldot@gcc.gnu.org> PR fortran/24783 * resolve.c (resolve_variable): Get the implicit type from the symbols namespace rather than the default namespace. Fix whitespace. (resolve_formal_arglist, resolve_equivalence): Fix typo. testsuite/ChangeLog 2006-11-20 Bernhard Fischer <aldot@gcc.gnu.org> PR fortran/24783 * gfortran.dg/implicit_10.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119016 138bc75d-0d04-0410-961f-82ee72b054a4
* fortran/eedelman2006-11-191-7/+17
| | | | | | | | | | | | | | | | | | 2006-11-19 Erik Edelmann <eedelman@gcc.gnu.org> * resolve.c (resolve_ref): Check for ALLOCATABLEs to the right of nonzero rank part references too. testsuite/ 2006-11-19 Erik Edelmann <eedelman@gcc.gnu.org> * gfortran.dg/alloc_comp_constraint_5.f90: New. * gfortran.dg/alloc_comp_assign_2.f90: Removed invalid code. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118999 138bc75d-0d04-0410-961f-82ee72b054a4
* * module.c (gfc_use_module): Uncomment the ISO_FORTRAN_ENV code.fxcoudert2006-11-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | Check that intrinsic and non-intrinsic modules don't conflict. (use_iso_fortran_env_module): New function. (create_int_parameter): New function. * trans-types.c (gfc_init_kinds): Choose values for gfc_numeric_storage_size and gfc_character_storage_size. (gfc_numeric_storage_size, gfc_character_storage_size): New variables. * resolve.c (resolve_symbol): Do no check intrinsic modules against the list of intrinsic symbols. * iso-fortran-env.def: New file. * gfortran.h (gfc_numeric_storage_size, gfc_character_storage_size): Add prototypes. * gfortran.dg/use_3.f90: Remove error message. * gfortran.dg/iso_fortran_env_1.f90: New test. * gfortran.dg/iso_fortran_env_2.f90: New test. * gfortran.dg/iso_fortran_env_3.f90: New test. * gfortran.dg/iso_fortran_env_4.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118998 138bc75d-0d04-0410-961f-82ee72b054a4
* * data.c: Remove trailing periods from error messages.brooks2006-11-161-4/+4
| | | | | | | | | | | | | | | | * decl.c: Likewise. * expr.c: Likewise. * io.c: Likewise. * match.c: Likewise. * module.c: Likewise. * options.c: Likewise. * resolve.c: Likewise. * symbol.c: Likewise. * trans-io.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118880 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-11-10 Tobias Burnus <burnus@net-b.de>burnus2006-11-101-1/+1
| | | | | | | | | PR fortran/29454 * resolve.c (gfc_resolve_blocks): Fix error message. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118661 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-11-09 Paul Thomas <pault@gcc.gnu.org>pault2006-11-091-4/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/29699 * trans-array.c (structure_alloc_comps): Detect pointers to arrays and use indirect reference to declaration. * resolve.c (resolve_fl_variable): Tidy up condition. (resolve_symbol): The same and only add initialization code if the symbol is referenced. * trans-decl.c (gfc_trans_deferred_vars): Call gfc_trans_ deferred_array before gfc_trans_auto_array_allocation. PR fortran/21730 * symbol.c (check_done): Remove. (gfc_add_attribute): Remove reference to check_done and remove the argument attr_intent. (gfc_add_allocatable, gfc_add_dimension, gfc_add_external, gfc_add_intrinsic, gfc_add_optional, gfc_add_pointer, gfc_add_cray_pointer, gfc_add_cray_pointee, gfc_add_result, gfc_add_target, gfc_add_in_common, gfc_add_elemental, gfc_add_pure, gfc_add_recursive, gfc_add_procedure, gfc_add_type): Remove references to check_done. * decl.c (attr_decl1): Eliminate third argument in call to gfc_add_attribute. * gfortran.h : Change prototype for gfc_add_attribute. 2006-11-09 Paul Thomas <pault@gcc.gnu.org> PR fortran/29699 * gfortran.dg/alloc_comp_auto_array_1.f90: New test. PR fortran/21730 * gfortran.dg/change_symbol_attributes_1.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118624 138bc75d-0d04-0410-961f-82ee72b054a4
* fortran/burnus2006-11-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2006-11-06 Tobias Burnus <burnus@net-b.de> PR fortran/29601 * symbol.c (check_conflict, gfc_add_volatile): Add volatile support. * decl.c (match_attr_spec, gfc_match_volatile): Add volatile support. * gfortran.h (symbol_attribute): Add volatile_ to struct. * resolve.c (was_declared): Add volatile support. * trans-decl.c (gfc_finish_var_decl): Add volatile support. * match.h: Declare gfc_match_volatile. * parse.c (decode_statement): Recognize volatile. * modules.c (ab_attribute, attr_bits, mio_symbol_attribute): Add volatile support. * dump-parse-tree.c (gfc_show_attr): Add volatile support. testsuite/ 2006-11-06 Tobias Burnus <burnus@net-b.de> PR fortran/29601 * gfortran.dg/volatile.f90: Add. * gfortran.dg/volatile2.f90: Add. * gfortran.dg/volatile3.f90: Add. * gfortran.dg/volatile4.f90: Add. * gfortran.dg/volatile5.f90: Add. * gfortran.dg/volatile6.f90: Add. * gfortran.dg/volatile7.f90: Add. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118545 138bc75d-0d04-0410-961f-82ee72b054a4
* fortran/burnus2006-11-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | 2006-11-06 Tobias Burnus <burnus@net-b.de> * decl.c (match_attr_spec, gfc_match_enum): Unify gfc_notify_std message for GFC_STD_F2003. * array.c (gfc_match_array_constructor): Unify gfc_notify_std message for GFC_STD_F2003. * io.c (check_io_constraints): Unify gfc_notify_std message for GFC_STD_F2003. * resolve.c (resolve_actual_arglist): Unify gfc_notify_std message for GFC_STD_F2003. testsuite/ 2006-11-06 Tobias Burnus <burnus@net-b.de> * gfortran.dg/io_constraints_2.f90: Adjust pattern for matching error messages. * gfortran.dg/specifics_3.f90: Adjust pattern for matching error messages. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118542 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-10-19 Paul Thomas <pault@gcc.gnu.org>pault2006-10-191-1/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/29216 PR fortran/29314 * gfortran.h : Add EXEC_INIT_ASSIGN. * dump-parse-tree.c (gfc_show_code_node): The same. * trans-openmp.c (gfc_trans_omp_array_reduction): Set new argument for gfc_trans_assignment to false. * trans-stmt.c (gfc_trans_forall_1): The same. * trans-expr.c (gfc_conv_function_call, gfc_trans_assign, gfc_trans_arrayfunc_assign, gfc_trans_assignment): The same. In the latter function, use the new flag to stop the checking of the lhs for deallocation. (gfc_trans_init_assign): New function. * trans-stmt.h : Add prototype for gfc_trans_init_assign. * trans.c (gfc_trans_code): Implement EXEC_INIT_ASSIGN. * trans.h : Add new boolean argument to the prototype of gfc_trans_assignment. * resolve.c (resolve_allocate_exp): Replace EXEC_ASSIGN by EXEC_INIT_ASSIGN. (resolve_code): EXEC_INIT_ASSIGN does not need resolution. (apply_default_init): New function. (resolve_symbol): Call it for derived types that become defined but which do not already have an initialization expression.. * st.c (gfc_free_statement): Include EXEC_INIT_ASSIGN. 2006-10-19 Paul Thomas <pault@gcc.gnu.org> PR fortran/29216 * gfortran.dg/result_default_init_1.f90: New test. PR fortran/29314 * gfortran.dg/automatic_default_init_1.f90: New test. * gfortran.dg/alloc_comp_basics_1.f90: Reduce deallocate count from 38 to 33. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117879 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-10-16 Tobias Burnus <burnus@net-b.de>burnus2006-10-161-1/+1
| | | | | | | | | | | | * trans-stmt.c: Fix a typo * invoke.texi: Fix typos * resolve.c: Fix a comment typo * trans-decl.c: Fix a comment typo * primary.c: Fix a comment typo git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117781 138bc75d-0d04-0410-961f-82ee72b054a4
* fortran/ChangeLogaldot2006-10-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | 2006-10-13 Bernhard Fischer <aldot@gcc.gnu.org> PR fortran/24767 * lang.opt (Wunused-labels): Remove. * options.c: Remove references to gfc_option.warn_unused_labels. * gfortran.h: Remove variable warn_unused_labels. * resolve.c (warn_unused_fortran_label) : Use warn_unused_label instead of gfc_option.warn_unused_labels. * invoke.texi: Remove documentation of -Wunused-labels. testsuite/ChangeLog 2006-10-13 Bernhard Fischer <aldot@gcc.gnu.org> PR fortran/24767 * gfortran.dg/label_4.f90: Adjust warning flag. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117743 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-10-13 Paul Thomas <pault@gcc.gnu.org>pault2006-10-131-10/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/29373 * decl.c (get_proc_name, gfc_match_function_decl): Add attr.implicit_type to conditions that throw error for existing explicit interface and that allow new type- spec to be applied. PR fortran/29407 * resolve.c (resolve_fl_namelist): Do not check for namelist/procedure conflict, if the symbol corresponds to a good local variable declaration. PR fortran/27701 * decl.c (get_proc_name): Replace the detection of a declared procedure by the presence of a formal argument list by the attributes of the symbol and the presence of an explicit interface. PR fortran/29232 * resolve.c (resolve_fl_variable): See if the host association of a derived type is blocked by the presence of another type I object in the current namespace. PR fortran/29364 * resolve.c (resolve_fl_derived): Check for the presence of the derived type for a derived type component. PR fortran/24398 * module.c (gfc_use_module): Check that the first words in a module file are 'GFORTRAN module'. PR fortran/29422 * resolve.c (resolve_transfer): Test functions for suitability for IO, as well as variables. PR fortran/29428 * trans-expr.c (gfc_trans_scalar_assign): Remove nullify of rhs expression. 2006-10-13 Paul Thomas <pault@gcc.gnu.org> PR fortran/29373 * gfortran.dg/implicit_9.f90: New test. PR fortran/29407 * gfortran.dg/namelist_25.f90: New test. PR fortran/27701 * gfortran.dg/same_name_2.f90: New test. PR fortran/29232 * gfortran.dg/host_assoc_types_1.f90: New test. PR fortran/29364 * gfortran.dg/missing_derived_type_1.f90: New test. * gfortran.dg/implicit_actual.f90: Comment out USE GLOBAL. PR fortran/29422 * gfortran.dg/alloc_comp_constraint_4.f90: New test. PR fortran/29428 * gfortran.dg/alloc_comp_assign_5.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117692 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-10-05 Erik Edelmann <edelmann@gcc.gnu.org>pault2006-10-081-14/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Paul Thomas <pault@gcc.gnu.org> PR fortran/20541 * interface.c (gfc_compare_derived_types): Add comparison of the allocatable field. * intrinsic.c (add_subroutines): Add MOVE_ALLOC. * trans-expr.c (gfc_conv_aliased_arg, gfc_trans_subarray_assign, gfc_trans_subcomponent_assign, gfc_conv_string_parameter, gfc_trans_scalar_assign): Add extra arguments l_is_temp and r_is_var to references to latter function. (gfc_conv_function_call): Add enum for types of argument and an associated variable parm_kind. Deallocate components of INTENT(OUT) and non-variable arrays. (gfc_trans_subcomponent_assign): Add block to assign arrays to allocatable components. (gfc_trans_scalar_assign): Add block to handle assignments of derived types with allocatable components, using the above new arguments to control allocation/deallocation of memory and the copying of allocated arrays. * trans-array.c (gfc_array_allocate): Remove old identification of pointer and replace with that of an allocatable array. Add nullify of structures with allocatable components. (gfc_conv_array_initializer): Treat EXPR_NULL. (gfc_conv_array_parameter): Deallocate allocatable components of non-variable structures. (gfc_trans_dealloc_allocated): Use second argument of library deallocate to inhibit, without error, freeing NULL pointers. (get_full_array_size): New function to return the size of a full array. (gfc_duplicate_allocatable): New function to allocate and copy allocated data. (structure_alloc_comps): New recursive function to deallocate, nullify or copy allocatable components. (gfc_nullify_alloc_comp, gfc_deallocate_alloc_comp, gfc_copy_alloc_comp): New interface functions to call previous. (gfc_trans_deferred_array): Add the code to nullify allocatable components, when entering scope, and to deallocate them on leaving. Do not call gfc_trans_static_array_pointer and return for structures with allocatable components and default initializers. * symbol.c (gfc_set_component_attr): Set allocatable field. (gfc_get_component_attr): Set the allocatable attribute. * intrinsic.h : Prototype for gfc_check_move_alloc. * decl.c (build_struct): Apply TR15581 constraints for allocatable components. (variable_decl): Default initializer is always NULL for allocatable components. (match_attr_spec): Allow, or not, allocatable components, according to the standard in force. * trans-array.h : Prototypes for gfc_nullify_alloc_comp, gfc_deallocate_alloc_comp, gfc_copy_alloc_comp and gfc_duplicate_allocatable. * gfortran.texi : Add mention of TR15581 extensions. * gfortran.h : Add attribute alloc_comp, add gfc_components field allocatable and add the prototype for gfc_expr_to_initialize. * trans-stmt.c (generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp, gfc_trans_where_assign, gfc_trans_where_3): Add extra arguments to calls to gfc_trans_scalar_assign and set appropriately. (gfc_trans_allocate): Nullify allocatable components. (gfc_trans_deallocate): Deallocate to ultimate allocatable components but stop at ultimate pointer components. * module.c (mio_symbol_attribute, mio_symbol_attribute, mio_component): Add module support for allocatable components. * trans-types.c (gfc_get_derived_type): Treat allocatable components. * trans.h : Add two boolean arguments to gfc_trans_scalar_assign. * resolve.c (resolve_structure_cons): Check conformance of constructor element and the component. (resolve_allocate_expr): Add expression to nullify the constructor expression for allocatable components. (resolve_transfer): Inhibit I/O of derived types with allocatable components. (resolve_fl_derived): Skip check of bounds of allocatable components. * trans-decl.c (gfc_get_symbol_decl): Add derived types with allocatable components to deferred variable. (gfc_trans_deferred_vars): Make calls for derived types with allocatable components to gfc_trans_deferred_array. (gfc_generate_function_code): Nullify allocatable component function result on entry. * parse.c (parse_derived): Set symbol attr.allocatable if allocatable components are present. * check.c (gfc_check_allocated): Enforce attr.allocatable for intrinsic arguments. (gfc_check_move_alloc): Check arguments of move_alloc. * primary.c (gfc_variable_attr): Set allocatable attribute. * intrinsic.texi : Add index entry and section for for move_alloc. PR fortran/29115 * resolve.c (resolve_structure_cons): It is an error if the pointer component elements of a derived type constructor are not pointer or target. PR fortran/29211 * trans-stmt.c (generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp): Provide a string length for the temporary by copying that of the other side of the scalar assignment. 2006-10-05 Paul Thomas <pault@gcc.gnu.org> Erik Edelmann <edelmann@gcc.gnu.org> PR libgfortran/20541 * Makefile.in : Add move_alloc. * intrinsics/move_alloc.c: New function. * Makefile.am : Add move_alloc. 2006-10-05 Erik Edelmann <edelmann@gcc.gnu.org> Paul Thomas <pault@gcc.gnu.org> PR fortran/20541 * gfortran.dg/alloc_comp_basics_1.f90: New test. * gfortran.dg/alloc_comp_basics_2.f90: New test. * gfortran.dg/alloc_comp_assign_1.f90: New test. * gfortran.dg/alloc_comp_assign_2.f90: New test. * gfortran.dg/alloc_comp_assign_3.f90: New test. * gfortran.dg/alloc_comp_assign_4.f90: New test. * gfortran.dg/alloc_comp_constraint_1.f90: New test. * gfortran.dg/alloc_comp_constraint_2.f90: New test. * gfortran.dg/alloc_comp_constraint_3.f90: New test. * gfortran.dg/alloc_comp_constructor_1.f90: New test. * gfortran.dg/alloc_comp_constructor_2.f90: New test. * gfortran.dg/alloc_comp_initializer_1.f90: New test. * gfortran.dg/alloc_comp_std.f90: New test. * gfortran.dg/move_alloc.f90: New test. PR fortran/29115 * gfortran.dg/derived_constructor_comps_2.f90: New test. PR fortran/29211 * gfortran.dg/forall_char_dependencies_1.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117558 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/16580fxcoudert2006-10-071-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/29288 * gcc/fortran/intrinsic.c (add_sym): Define the actual_ok when a gfc_intrinsic_sym structure is filled. (gfc_intrinsic_actual_ok): New function. (add_sym_0s, add_sym_1s, add_sym_2s, add_sym_3s, add_sym_4s, add_sym_5s): Intrinsic subroutines are not allowed as actual arguments, so we remove argument actual_ok. (add_functions): Correct the values for actual_ok of all intrinsics. (add_subroutines): Remove the actual_ok argument, which was never used. * gcc/fortran/intrinsic.h (gfc_intrinsic_actual_ok): New prototype. * gcc/fortran/gfortran.h (gfc_resolve_index_func): New prototype. * gcc/fortran/resolve.c (resolve_actual_arglist): Check whether an intrinsic used as an argument list is allowed there. * gcc/fortran/iresolve.c (gfc_resolve_index_func): New function. (gfc_resolve_len): Change intrinsic function name to agree with libgfortran. * gcc/fortran/trans-decl.c (gfc_get_extern_function_decl): Add new case, because some specific intrinsics take 3 arguments. * gcc/fortran/intrinsic.texi: DIMAG is a GNU extension. * libgfortran/Makefile.am: Add the new files to the build process, and rules to build them. * libgfortran/Makefile.in: Regenerate. * libgfortran/m4/misc_specifics.m4: New file. * libgfortran/m4/specific.m4: Add new special cases for function with complex argument and real result, like abs_c* and aimag_c*. * libgfortran/intrinsics/f2c_specifics.F90: Add specifics for AIMAG, ASINH, ACOSH and ATANH. * libgfortran/generated/_aimag_c4.F90: New file. * libgfortran/generated/_aimag_c8.F90: New file. * libgfortran/generated/_asinh_r10.F90: New file. * libgfortran/generated/_acosh_r16.F90: New file. * libgfortran/generated/_aimag_c10.F90: New file. * libgfortran/generated/_atanh_r16.F90: New file. * libgfortran/generated/_acosh_r4.F90: New file. * libgfortran/generated/_acosh_r8.F90: New file. * libgfortran/generated/_asinh_r4.F90: New file. * libgfortran/generated/_asinh_r8.F90: New file. * libgfortran/generated/_asinh_r16.F90: New file. * libgfortran/generated/_atanh_r4.F90: New file. * libgfortran/generated/_atanh_r8.F90: New file. * libgfortran/generated/_acosh_r10.F90: New file. * libgfortran/generated/misc_specifics.F90: New file. * libgfortran/generated/_aimag_c16.F90: New file. * libgfortran/generated/_atanh_r10.F90: New file. * gcc/testsuite/gfortran.fortran-torture/execute/specifics.f90: Add tests for using all possible intrinsics as actual arguments. * gcc/testsuite/gfortran.dg/specifics_1.f90: Add tests for using all possible intrinsics as actual arguments. * gcc/testsuite/gfortran.dg/specifics_2.f90: New file. * gcc/testsuite/gfortran.dg/specifics_3.f90: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117534 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-10-04 Paul Thomas <pault@gcc.gnu.org>pault2006-10-041-1/+6
| | | | | | | | | | | | | | | | | | PR fortran/29343 * resolve.c (resolve_allocate_expr): Exclude derived types from search for dependences between allocated variables and the specification expressions for other allocations in the same statement. 2006-10-04 Paul Thomas <pault@gcc.gnu.org> PR fortran/29343 * gfortran.dg/alloc_alloc_expr_2.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117435 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-10-04 Paul Thomas <pault@gcc.gnu.org>pault2006-10-041-4/+1
| | | | | | | | | | | | | | PR fortran/29098 * resolve.c (resolve_structure_cons): Do not return FAILURE if component expression is NULL. 2006-10-04 Paul Thomas <pault@gcc.gnu.org> PR fortran/29098 * gfortran.dg/default_initialization_2.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117424 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-10-03 Paul Thomas <pault@gcc.gnu.org>pault2006-10-031-18/+125
| | | | | | | | | | | | | | | | | | | | PR fortran/20779 PR fortran/20891 * resolve.c (find_sym_in_expr): New function that returns true if a symbol is found in an expression. (resolve_allocate_expr): Check whether the STAT variable is itself allocated in the same statement. Use the call above to check whether any of the allocated arrays are used in array specifications in the same statement. 2006-10-03 Paul Thomas <pault@gcc.gnu.org> PR fortran/20779 PR fortran/20891 * gfortran.dg/alloc_alloc_expr_1.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117415 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-10-03 Paul Thomas <pault@gcc.gnu.org>pault2006-10-031-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/29284 PR fortran/29321 PR fortran/29322 * trans-expr.c (gfc_conv_function_call): Check the expression and the formal symbol are present when testing the actual argument. PR fortran/25091 PR fortran/25092 * resolve.c (resolve_entries): It is an error if the entries of an array-valued function do not have the same shape. 2006-10-03 Paul Thomas <pault@gcc.gnu.org> PR fortran/29284 * gfortran.dg/optional_assumed_charlen_1.f90: New test. PR fortran/29321 PR fortran/29322 * gfortran.dg/missing_optional_dummy_2.f90: New test. PR fortran/25091 PR fortran/25092 * gfortran.dg/entry_array_specs_1.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117413 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-09-30 Bernhard Fischer <aldot@gcc.gnu.org>aldot2006-09-301-27/+27
| | | | | | | | * resolve.c: Fix commentary typo. Fix whitespace. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117332 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-09-11 Paul Thomas <pault@gcc.gnu.org>pault2006-09-111-0/+1
| | | | | | | | | | | | | | | | | | | | | | | PR fortran/28890 trans-expr.c (gfc_conv_function_call): Obtain the string length of a dummy character(*) function from the symbol if it is not already translated. For a call to a character(*) function, use the passed, hidden string length argument, which is available from the backend_decl of the formal argument. resolve.c (resolve_function): It is an error if a function call to a character(*) function is other than a dummy procedure or an intrinsic. 2006-09-11 Paul Thomas <pault@gcc.gnu.org> PR libfortran/28890 gfortran.dg/assumed_charlen_function_5.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116839 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-09-05 Paul Thomas <pault@gcc.gnu.org>pault2006-09-051-1/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/28908 REGRESSION FIX * gfortran.h : Restore the gfc_dt_list structure and reference to it in gfc_namespace. * resolve.c (resolve_fl_derived): Restore the building of the list of derived types for the current namespace. Modify the restored code so that a check is made to see if the symbol is already in the list. (resolve_fntype): Make sure that the specification block version of the derived type is used for a module function that returns that type. * symbol.c (gfc_free_dt_list): Restore. (gfc_free_namespace): Restore call to previous. * trans-types.c (copy_dt_decls_ifequal): Restore. (gfc_get_derived_type): Restore all the paraphenalia for association of derived types, including calls to previous. Modify the restored code such that all derived types are built if their symbols are found in the parent namespace; not just non-module types. Add backend_decls to like derived types in sibling namespaces, as well as that of the derived type. 2006-09-05 Paul Thomas <pault@gcc.gnu.org> PR fortran/28908 * gfortran.dg/used_types_7.f90: New test. * gfortran.dg/used_types_8.f90: New test. * gfortran.dg/used_types_9.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116690 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-08-30 Paul Thomas <pault@gcc.gnu.org>pault2006-08-301-27/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/28885 REGRESSION FIX * trans-expr.c (gfc_conv_aliased_arg): Ensure that the temp declaration is retained for INTENT(OUT) arguments. PR fortran/28873 REGRESSION FIX PR fortran/20067 * resolve.c (resolve_generic_f): Make error message more comprehensible. (resolve_generic_s): Restructure search for specific procedures to be similar to resolve_generic_f and change to similar error message. Ensure that symbol reference is refreshed, in case the search produces a NULL. (resolve_specific_s): Restructure search, as above and as resolve_specific_f. Ensure that symbol reference is refreshed, in case the search produces a NULL. PR fortran/25077 PR fortran/25102 * interface.c (check_operator_interface): Throw error if the interface assignment tries to change intrinsic type assigments or has less than two arguments. Also, it is an error if an interface operator contains an alternate return. PR fortran/24866 * parse.c (gfc_fixup_sibling_symbols): Do not modify the symbol if it is a dummy in the contained namespace. 2006-08-30 Paul Thomas <pault@gcc.gnu.org> PR fortran/28885 * gfortran.dg/aliasing_dummy_2.f90: New test. PR fortran/20067 * gfortran.dg/generic_5.f90: Change error message. PR fortran/28873 * gfortran.dg/generic_6.f90: New test. PR fortran/25077 * gfortran.dg/redefined_intrinsic_assignment.f90: New test. PR fortran/25102 * gfortran.dg/invalid_interface_assignment.f90: New test. PR fortran/24866 * gfortran.dg/module_proc_external_dummy.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116578 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-08-20 Paul Thomas <pault@gcc.gnu.org>pault2006-08-201-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/28601 PR fortran/28630 * gfortran.h : Eliminate gfc_dt_list structure and reference to it in gfc_namespace. * resolve.c (resolve_fl_derived): Remove the building of the list of derived types for the current namespace. * symbol.c (find_renamed_type): New function to find renamed derived types by symbol name rather than symtree name. (gfc_use_derived): Search parent namespace for identical derived type and use it, even if local version is complete, except in interface bodies. Ensure that renamed derived types are found by call to find_renamed_type. Recurse for derived type components. (gfc_free_dt_list): Remove. (gfc_free_namespace): Remove call to previous. * trans-types.c (copy_dt_decls_ifequal): Remove. (gfc_get_derived_type): Remove all the paraphenalia for association of derived types, including calls to previous. * match.c (gfc_match_allocate): Call gfc_use_derived to associate any derived types that are being allocated. PR fortran/20886 * resolve.c (resolve_actual_arglist): The passing of a generic procedure name as an actual argument is an error. PR fortran/28735 * resolve.c (resolve_variable): Check for a symtree before resolving references. PR fortran/28762 * primary.c (match_variable): Return MATCH_NO if the symbol is that of the program. PR fortran/28425 * trans-expr.c (gfc_trans_subcomponent_assign): Translate derived type component expressions other than another derived type constructor. PR fortran/28496 * expr.c (find_array_section): Correct errors in the handling of a missing start value for the index triplet in an array reference. PR fortran/18111 * trans-decl.c (gfc_build_dummy_array_decl): Before resetting reference to backend_decl, set it DECL_ARTIFICIAL. (gfc_get_symbol_decl): Likewise for original dummy decl, when a copy is made of an array. (create_function_arglist): Likewise for the _entry paramter in entry_masters. (build_entry_thunks): Likewise for dummies in entry thunks. PR fortran/28600 * trans-decl.c (gfc_get_symbol_decl): Ensure that the DECL_CONTEXT of the length of a character dummy is the same as that of the symbol declaration. PR fortran/28771 * decl.c (add_init_expr_to_sym): Remove setting of charlen for an initializer of an assumed charlen variable. PR fortran/28660 * trans-decl.c (generate_expr_decls): New function. (generate_dependency_declarations): New function. (generate_local_decl): Call previous if not either a dummy or a declaration in an entry master. 2006-08-20 Paul Thomas <pault@gcc.gnu.org> PR fortran/28630 * gfortran.dg/used_types_2.f90: New test. PR fortran/28601 * gfortran.dg/used_types_3.f90: New test. PR fortran/20886 * gfortran.dg/generic_actual_arg.f90: New test. PR fortran/28735 * gfortran.dg/module_private_array_refs_1.f90: New test. PR fortran/28762 * gfortran.dg/program_name_1.f90: New test. PR fortran/28425 * gfortran.dg/derived_constructor_comps_1.f90: New test. PR fortran/28496 * gfortran.dg/array_initializer_2.f90: New test. PR fortran/18111 * gfortran.dg/unused_artificial_dummies_1.f90: New test. PR fortran/28600 * gfortran.dg/assumed_charlen_function_4.f90: New test. PR fortran/28771 * gfortran.dg/assumed_charlen_in_main.f90: New test. PR fortran/28660 * gfortran.dg/dependent_decls_1.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116268 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud