aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/resolve.c
AgeCommit message (Collapse)AuthorFilesLines
2007-04-13re PR fortran/18937 (quadratic behaviour with many label "spaghetti" code)Tobias Schlüter1-47/+89
PR fortran/18937 fortran/ * resolve.c: Include obstack.h and bitmap.h. New variable labels_obstack. (code_stack): Add tail and reachable_labels fields. (reachable_labels): New function. (resolve_branch): Rework to use new fields in code_stack. (resolve_code): Call reachable_labels. (resolve_codes): Allocate and free labels_obstack. testsuite/ * gfortran.dg/goto_2.f90: New. * gfortran.dg/goto_3.f90: New. * gfortran.dg/pr17708.f90: Rename to ... * gfortran.dg/goto_4.f90: ... this, add comment pointing to PR. From-SVN: r123789
2007-04-12re PR fortran/31250 (Initialization expr as constant character length rejected)Tobias Schlüter1-3/+14
PR fortran/31250 fortran/ * decl.c (match_char_spec): Move check for negative CHARACTER length ... * resolve.c (resolve_charlen): ... here. (resolve_types): Resolve CHARACTER lengths earlier. teststuite/ * gfortran.dg/char_length_2.f90: New. From-SVN: r123763
2007-04-12re PR fortran/31266 (Spurious(?) warning about character truncation)Tobias Schlüter1-2/+3
PR fortran/31266 fortran/ * primary.c (gfc_variable_attr): Don't copy string length if it doesn't make sense. * resolve.c (resolve_code): Clarify error message. testsuite/ * gfortran.dg/char_assign_1.f90: New. From-SVN: r123759
2007-04-07re PR fortran/30880 (Derived types with default value -- function with ↵Paul Thomas1-3/+7
ENTRY: rejected at compile time) 2007-04-07 Paul Thomas <pault@gcc.gnu.org> PR fortran/30880 * resolve.c (resolve_fl_variable): Set flag to 2 for automatic arrays. Make condition for automatic array error explicit. If a dummy, no error on an INTENT(OUT) derived type. 2007-04-07 Paul Thomas <pault@gcc.gnu.org> PR fortran/30880 * gfortran.dg/used_dummy_types_8.f90: New test. From-SVN: r123645
2007-03-25re PR fortran/30877 (Extending intrinsic operators)Francois-Xavier Coudert1-5/+12
PR fortran/30877 * fortran/interface.c (check_operator_interface): Implement the standard checks on user operators extending intrinsic operators. * fortran/resolve.c (resolve_operator): If the ranks of operators don't match, don't error out but try the user-defined ones first. * gfortran.dg/operator_1.f90: New test. * gfortran.dg/operator_2.f90: New test. From-SVN: r123196
2007-03-24re PR fortran/30655 (Undue out-of-bounds warning)Francois-Xavier Coudert1-33/+38
PR fortran/30655 * expr.c (check_dimension): Fix logic of comparisons. * gfortran.dg/bounds_check_6.f90: New test. From-SVN: r123187
2007-03-18re PR fortran/30531 ([4.2 only] allocatable component and intent(out) yield ↵Paul Thomas1-19/+4
ICE in fold_convert) 2007-03-18 Paul Thomas <pault@gcc.gnu.org> PR fortran/30531 PR fortran/31086 * symbo.c : Add gfc_derived_types. (gfc_free_dt_list): Free derived type list gfc_derived_types. (gfc_free_namespace): Remove call to gfc_free_dt_list. (gfc_symbol_done_2): Call gfc_free_dt_list. * gfortran.h : Declare gfc_derived_types to be external. Remove derived types field from gfc_namespace. * resolve.c (resolve_fl_derived): Refer to gfc_derived types rather than namespace derived_types. (resolve_fntype): Remove special treatment for module derived type functions. * trans-types.c (gfc_get_derived_type): Remove search for like derived types. Finish by copying back end declaration to like derived types in the derived type list gfc_derived_types. 2007-03-18 Paul Thomas <pault@gcc.gnu.org> PR fortran/30531 * gfortran.dg/used_types_14.f90: New test. PR fortran/31086 * gfortran.dg/used_types_15.f90: New test. From-SVN: r123037
2007-03-15[multiple changes]Paul Thomas1-4/+18
2007-03-15 Tobias Burnus <burnus@gcc.gnu.org> Paul Thomas <pault@gcc.gnu.org> PR fortran/30922 * decl.c (gfc_match_import): If the parent of the current name- space is null, try looking for an imported symbol in the parent of the proc_name interface. * resolve.c (resolve_fl_variable): Do not check for blocking of host association by a same symbol, if the symbol is in an interface body. 2007-03-15 Paul Thomas <pault@gcc.gnu.org> PR fortran/30879 * decl.c (match_data_constant): Before going on to try to match a name, try to match a structure component. PR fortran/30870 * resolve.c (resolve_actual_arglist): Do not reject a generic actual argument if it has a same name specific interface. PR fortran/31163 * trans-array.c (parse_interface): Do not nullify allocatable components if the symbol has the saved attribute. 2007-03-15 Paul Thomas <pault@gcc.gnu.org> PR fortran/30922 * gfortran.dg/import5.f90.f90: New test. PR fortran/30879 * gfortran.dg/data_components_1.f90: New test. PR fortran/30870 * gfortran.dg/generic_13.f90: New test. PR fortran/31163 * gfortran.dg/alloc_comp_basics_5.f90: New test. From-SVN: r122944
2007-02-28re PR fortran/30888 (%VAL construct fails with argument procedures)Tobias Burnus1-11/+3
2007-02-28 Tobias Burnus <burnus@net-b.de> Paul Thomas <pault@gcc.gnu.org> PR fortran/30888 PR fortran/30887 * resolve.c (resolve_actual_arglist): Allow by-value arguments and non-default-kind for %VAL(). * trans-expr.c (conv_arglist_function): Allow non-default-kind for %VAL(). testsuite/ 2007-02-28 Tobias Burnus <burnus@net-b.de> Paul Thomas <pault@gcc.gnu.org> PR fortran/30888 PR fortran/30887 * c_by_val_1.f: Test %VAL() with non-default kind. * c_by_val.c: Ditto. * c_by_val_4.f: New test. Co-Authored-By: Paul Thomas <pault@gcc.gnu.org> From-SVN: r122409
2007-02-23re PR fortran/30660 (Allocatable components of a derived type "require" the ↵Paul Thomas1-3/+16
SAVE attribute.) 2007-02-23 Paul Thomas <pault@gcc.gnu.org> PR fortran/30660 * resolve.c (has_default_initializer): New function. (resolve_fl_variable): Call has_default_initializer to determine if the derived type has a default initializer to its ultimate components. 2007-02-23 Paul Thomas <pault@gcc.gnu.org> PR fortran/30660 * gfortran.dg/alloc_comp_basics_4.f90: Add component with an allocatable component. From-SVN: r122263
2007-02-20re PR fortran/30783 ("character(*), value" produces SEGV at runtime)Tobias Burnus1-1/+13
2007-02-20 Tobias Burnus <burnus@net-b.de> PR fortran/30783 * resolve.c (resolve_symbol): Add character dummy VALUE check. From-SVN: r122156
2007-02-03re PR fortran/30514 ([4.1 only] zero-sized array wrongly rejected: integer ↵Paul Thomas1-8/+14
:: i(1:-1)) 2007-02-03 Paul Thomas <pault@gcc.gnu.org> 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. From-SVN: r121541
2007-02-03re PR fortran/30683 ([4.2 only] internal compiler error: Segmentation fault)Steven G. Kargl1-1/+1
2007-02-02 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/30683 * resolve.c (resolve_generic_f): Check for non-NULL sym. * gfortran.dg/interface_10.f90: New test. From-SVN: r121531
2007-01-27re PR fortran/30407 ([4.1 only] Elemental functions in WHERE assignments ↵Paul Thomas1-0/+14
wrongly rejected) 2007-01-27 Paul Thomas <pault@gcc.gnu.org> 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. From-SVN: r121235
2007-01-20openmp.c, [...]: Next installment in the massive whitespace patch.Steven G. Kargl1-797/+771
* openmp.c, matchexp.c, module.c, scanner.c, resolve.c, st.c, parse.c, primary.c, options.c, misc.c, simplify.c: Next installment in the massive whitespace patch. From-SVN: r121012
2007-01-15re PR fortran/28172 ([4.2 and 4.1 only] alternate return in contained ↵Paul Thomas1-3/+25
procedure segfaults) 2007-01-15 Paul Thomas <pault@gcc.gnu.org> 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. From-SVN: r120790
2007-01-10[multiple changes]Jerry DeLisle1-4/+5
2007-01-09 Paul Thomas <pault@gcc.gnu.org> 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. From-SVN: r120632
2007-01-05re PR fortran/23232 ([4.1 only] DATA implied DO variables)Paul Thomas1-18/+73
2007-01-05 Paul Thomas <pault@gcc.gnu.org> 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. From-SVN: r120485
2007-01-05re PR fortran/29624 (Fortran 2003: Support intent for pointers)Tobias Burnus1-44/+62
fortran/ 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. From-SVN: r120472
2007-01-02re PR fortran/20896 (ambiguous interface not detected)Paul Thomas1-1/+1
2007-01-02 Paul Thomas <pault@gcc.gnu.org> 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. From-SVN: r120342
2006-12-31re PR fortran/27900 ([4.1 only] ICE using intrinsics as arguments)Paul Thomas1-0/+37
2006-12-31 Paul Thomas <pault@gcc.gnu.org> 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. From-SVN: r120296
2006-12-31re PR fortran/23060 (%VAL, %REF and %DESCR constructs not implemented)Paul Thomas1-8/+71
2006-12-31 Paul Thomas <pault@gcc.gnu.org> 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. From-SVN: r120295
2006-12-28re PR fortran/30034 ([4.1 only] pure subroutine requires intent for ↵Paul Thomas1-13/+7
procedure argument) 2006-12-28 Paul Thomas <pault@gcc.gnu.org> 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. From-SVN: r120244
2006-12-27re PR fortran/20896 (ambiguous interface not detected)Paul Thomas1-12/+1
2006-12-27 Paul Thomas <pault@gcc.gnu.org> 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. From-SVN: r120218
2006-12-22re PR fortran/25818 ([4.1 only] Problem with handling optional and entry ↵Paul Thomas1-0/+32
master arguments) 2006-12-22 Paul Thomas <pault@gcc.gnu.org> 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. From-SVN: r120155
2006-12-20re PR fortran/29992 ([4.1 only] INTERFACE equivalent to MODULE PROCEDURE?!)Paul Thomas1-5/+7
2006-12-20 Paul Thomas <pault@gcc.gnu.org> 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. From-SVN: r120072
2006-12-10re PR fortran/23994 (PROTECTED attribute (F2003) is not implemented)Tobias Burnus1-1/+15
fortran/ 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. From-SVN: r119709
2006-12-09re PR other/29975 ([meta-bugs] ICEs with CP2K)Paul Thomas1-0/+4
2006-12-09 Paul Thomas <pault@gcc.gnu.org> 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. Co-Authored-By: Tobias Burnus <burnus@gcc.gnu.org> From-SVN: r119697
2006-12-09re PR fortran/29941 ([4.1 only] gfortran reports error with len of assumed ↵Paul Thomas1-5/+8
size character array) 2006-12-09 Paul Thomas <pault@gcc.gnu.org> 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. From-SVN: r119695
2006-12-05Revert accidental change.Aldy Hernandez1-13/+0
From-SVN: r119547
2006-12-05Merge gimple-tuples-branch into mainline.Aldy Hernandez1-0/+13
From-SVN: r119546
2006-12-04[multiple changes]Paul Thomas1-1/+8
2006-12-04 Paul Thomas <pault@gcc.gnu.org> 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. From-SVN: r119504
2006-12-04re PR fortran/29916 ([4.1 only] Dimension of a function result as host ↵Paul Thomas1-0/+9
association does not work) fortran/ 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. From-SVN: r119489
2006-12-03re PR fortran/29642 (Fortran 2003: VALUE Attribute (call by value not call ↵Paul Thomas1-1/+9
by reference for actual arguments)) 2006-12-03 Paul Thomas <pault@gcc.gnu.org> 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. From-SVN: r119461
2006-11-28re PR fortran/20880 (USE association of procedure's own interface)Paul Thomas1-1/+3
2006-11-28 Paul Thomas <pault@gcc.gnu.org> 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. From-SVN: r119272
2006-11-24re PR fortran/20880 (USE association of procedure's own interface)Paul Thomas1-0/+9
2006-11-24 Paul Thomas <pault@gcc.gnu.org> 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. From-SVN: r119173
2006-11-24resolve.c (resolve_actual_arglist): Remove the special case for CHAR.Francois-Xavier Coudert1-6/+0
* resolve.c (resolve_actual_arglist): Remove the special case for 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. From-SVN: r119170
2006-11-22re PR fortran/25087 (Error for missing explicit interface needed.)Paul Thomas1-8/+14
2006-11-22 Paul Thomas <pault@gcc.gnu.org> 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. From-SVN: r119077
2006-11-20re PR fortran/24783 ([4.1 and 4.2 only] Implicit none in module overwrite ↵Bernhard Fischer1-5/+3
explicit in procedure) fortran/ChangeLog 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. From-SVN: r119016
2006-11-19resolve.c (resolve_ref): Check for ALLOCATABLEs to the right of nonzero rank ↵Erik Edelmann1-7/+17
part references too. fortran/ 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. From-SVN: r118999
2006-11-19module.c (gfc_use_module): Uncomment the ISO_FORTRAN_ENV code.Francois-Xavier Coudert1-1/+1
* module.c (gfc_use_module): Uncomment the ISO_FORTRAN_ENV code. 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. From-SVN: r118998
2006-11-15data.c: Remove trailing periods from error messages.Brooks Moses1-4/+4
* data.c: Remove trailing periods from error messages. * 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. From-SVN: r118880
2006-11-10re PR fortran/29454 (Slightly wrong error message for IF statement)Tobias Burnus1-1/+1
2006-11-10 Tobias Burnus <burnus@net-b.de> PR fortran/29454 * resolve.c (gfc_resolve_blocks): Fix error message. From-SVN: r118661
2006-11-09re PR fortran/29699 (ICE in trans-decl.c)Paul Thomas1-4/+11
2006-11-09 Paul Thomas <pault@gcc.gnu.org> 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. From-SVN: r118624
2006-11-07re PR fortran/29601 (VOLATILE attribute and statement)Tobias Burnus1-1/+1
fortran/ 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. From-SVN: r118545
2006-11-07decl.c (match_attr_spec, [...]): Unify gfc_notify_std message for GFC_STD_F2003.Tobias Burnus1-1/+1
fortran/ 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. From-SVN: r118542
2006-10-19[multiple changes]Paul Thomas1-1/+89
2006-10-19 Paul Thomas <pault@gcc.gnu.org> 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. From-SVN: r117879
2006-10-16trans-stmt.c: Fix a typoTobias Burnus1-1/+1
2006-10-16 Tobias Burnus <burnus@net-b.de> * 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 From-SVN: r117781
2006-10-15re PR fortran/24767 (gfortran: -Wno-unused-label does not work properly)Bernhard Fischer1-1/+1
fortran/ChangeLog 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. From-SVN: r117743
2006-10-13re PR fortran/29373 (implicit type declaration and contained function clash)Paul Thomas1-10/+40
2006-10-13 Paul Thomas <pault@gcc.gnu.org> 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. From-SVN: r117692