aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/expr.c
AgeCommit message (Collapse)AuthorFilesLines
2006-12-10re PR fortran/23994 (PROTECTED attribute (F2003) is not implemented)Tobias Burnus1-0/+7
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-1/+2
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-04re PR fortran/29962 (Initialization expressions)Tobias Burnus1-3/+5
fortran/ 2006-12-04 Tobias Burnus <burnus@net-b.de> PR fortran/29962 * expr.c (check_intrinsic_op): Allow noninteger exponents for F2003. testsuite/ 2006-12-04 Tobias Burnus <burnus@net-b.de> PR fortran/29962 * initialization_4.f90: Test noninteger exponents (-std=f95). * initialization_5.f90: New test for noninteger exponents with -std=f2003 From-SVN: r119505
2006-12-04re PR fortran/29916 ([4.1 only] Dimension of a function result as host ↵Paul Thomas1-2/+3
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-11-15data.c: Remove trailing periods from error messages.Brooks Moses1-1/+1
* 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-15re PR fortran/28974 (Extremely slow compilation of enumerated DATA statements.)Bud Davis1-2/+3
2006-11-15 Bud Davis <bdavis9659@sbcglobal.net> PR fortran/28974 * gfortran.h (gfc_expr): Add element which holds a splay-tree for the exclusive purpose of quick access to a constructor by offset. * data.c (find_con_by_offset): Use the splay tree for the search. (gfc_assign_data_value): Use the splay tree. (gfc_assign_data_value_range): ditto. * expr.c (gfc_get_expr): Initialize new element to null. (gfc_free_expr): Delete splay tree when deleting gfc_expr. From-SVN: r118844
2006-11-06re PR fortran/29630 ("Unclassifiable statement" with vector subscripts in ↵Erik Edelmann1-61/+110
initialization) fortran/ 2006-11-06 Erik Edelmann <eedelman@gcc.gnu.org> PR fortran/29630 PR fortran/29679 * expr.c (find_array_section): Support vector subscripts. Don't add sizes for dimen_type == DIMEN_ELEMENT to the shape array. testsuite/ 2006-11-06 Erik Edelmann <eedelman@gcc.gnu.org> PR fortran/29630 PR fortran/29679 * gfortran.dg/initialization_2.f90: Test PRs 29630 and 29679 too. * gfortran.dg/initialization_3.f90: New. From-SVN: r118528
2006-11-04re PR fortran/29713 (ICE in gfc_set_constant_character_len decl.c:762)Francois-Xavier Coudert1-1/+1
PR fortran/29713 * expr.c (gfc_simplify_expr): Correct memory allocation. * gfortran.dg/pr29713.f90: New test. From-SVN: r118483
2006-10-31re PR fortran/29067 (gfc_resolve_expr(): Bad expression type)Francois-Xavier Coudert1-1/+1
PR fortran/29067 * decl.c (gfc_set_constant_character_len): NULL-terminate the character constant string. * data.c (create_character_intializer): Likewise. * expr.c (gfc_simplify_expr): NULL-terminate the substring character constant. * primary.c (match_hollerith_constant): NULL-terminate the character constant string. * gfortran.dg/pr29067.f: New test. From-SVN: r118338
2006-10-24re PR fortran/29393 (Vector subscript rejected)Erik Edelmann1-0/+2
fortran/ 2006-10-24 Erik Edelmann <eedelman@gcc.gnu.org> PR fortran/29393 * expr.c (simplify_parameter_variable): Keep rank of original expression. Testsuite/ 2006-10-24 Erik Edelmann <eedelman@gcc.gnu.org> PR fortran/29393 * gfortran.dg/initialize_2.f90: New. From-SVN: r118008
2006-10-08[multiple changes]Paul Thomas1-1/+8
2006-10-05 Erik Edelmann <edelmann@gcc.gnu.org> 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. From-SVN: r117558
2006-09-10re PR fortran/28923 (Bad triplet interpretation in initialization)Paul Thomas1-12/+3
2006-09-10 Paul Thomas <pault@gcc.gnu.org> PR fortran/28923 expr.c (find_array_section): Only use the array lower and upper bounds for the start and end of the sections, where the expr is NULL. 2006-09-10 Paul Thomas <pault@gcc.gnu.org> PR libfortran/28923 gfortran.dg/array_initializer_2.f90: Fill in missing index start value. gfortran.dg/array_initializer_3.f90: New test. From-SVN: r116815
2006-08-20re PR fortran/28601 (ICE on reexport of renamed type)Paul Thomas1-5/+9
2006-08-20 Paul Thomas <pault@gcc.gnu.org> 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. From-SVN: r116268
2006-06-20re PR fortran/25049 (TRANSPOSE not allowed in initialisation expression)Paul Thomas1-27/+309
2006-06-20 Paul Thomas <pault@gcc.gnu.org> PR fortran/25049 PR fortran/25050 * check.c (non_init_transformational): New function. (find_substring_ref): New function to signal use of disallowed transformational intrinsic in an initialization expression. (gfc_check_all_any): Call previous if initialization expr. (gfc_check_count): The same. (gfc_check_cshift): The same. (gfc_check_dot_product): The same. (gfc_check_eoshift): The same. (gfc_check_minloc_maxloc): The same. (gfc_check_minval_maxval): The same. (gfc_check_gfc_check_product_sum): The same. (gfc_check_pack): The same. (gfc_check_spread): The same. (gfc_check_transpose): The same. (gfc_check_unpack): The same. PR fortran/18769 *intrinsic.c (add_functions): Add gfc_simplify_transfer. *intrinsic.h : Add prototype for gfc_simplify_transfer. *simplify.c (gfc_simplify_transfer) : New function to act as placeholder for eventual implementation. Emit error for now. PR fortran/16206 * expr.c (find_array_element): Eliminate condition on length of offset. Add bounds checking. Rearrange exit. Return try and put gfc_constructor result as an argument. (find_array_section): New function. (find_substring_ref): New function. (simplify_const_ref): Add calls to previous. (simplify_parameter_variable): Return on NULL expr. (gfc_simplify_expr): Only call gfc_expand_constructor for full arrays. PR fortran/20876 * match.c (gfc_match_forall): Add missing locus to gfc_code. 2006-06-20 Paul Thomas <pault@gcc.gnu.org> PR libfortran/28005 * m4/matmul.m4: aystride = 1 does not uniquely detect the presence of a temporary transpose; an array element in the first dimension produces the same signature. Detect this using the rank of a and add specific code. * generated/matmul_r4.c: Regenerate. * generated/matmul_r8.c: Regenerate. * generated/matmul_r10.c: Regenerate. * generated/matmul_r16.c: Regenerate. * generated/matmul_c4.c: Regenerate. * generated/matmul_c8.c: Regenerate. * generated/matmul_c10.c: Regenerate. * generated/matmul_c16.c: Regenerate. * generated/matmul_i4.c: Regenerate. * generated/matmul_i8.c: Regenerate. * generated/matmul_i16.c: Regenerate. 2006-06-20 Paul Thomas <pault@gcc.gnu.org> PR fortran/16206 * gfortran.dg/array_initializer_1.f90: New test. PR fortran/28005 * gfortran.dg/matmul_3.f90: New test. From-SVN: r114802
2006-06-07re PR fortran/23091 (ICE in gfc_trans_auto_array_allocation)Paul Thomas1-0/+2
2006-06-07 Paul Thomas <pault@gcc.gnu.org> PR fortran/23091 * resolve.c (resolve_fl_variable): Error if an automatic object has the SAVE attribute. PR fortran/24168 * expr.c (simplify_intrinsic_op): Transfer the rank and the locus to the simplified expression. PR fortran/25090 PR fortran/25058 * gfortran.h : Add int entry_id to gfc_symbol. * resolve.c : Add static variables current_entry_id and specification_expr. (resolve_variable): During code resolution, check if a reference to a dummy variable in an executable expression is preceded by its appearance as a parameter in an entry. Likewise check its specification expressions. (resolve_code): Update current_entry_id on EXEC_ENTRY. (resolve_charlen, resolve_fl_variable): Set and reset specifiaction_expr. (is_non_constant_shape_array): Do not return on detection of a variable but continue to resolve all the expressions. (resolve_codes): set current_entry_id to an out of range value. 2006-06-07 Paul Thomas <pault@gcc.gnu.org> PR fortran/23091 * gfortran.dg/saved_automatic_1.f90: New test. PR fortran/24168 * gfortran.dg/array_simplify_1.f90: New test. PR fortran/25090 * gfortran.dg/entry_dummy_ref_1.f90: New test. PR fortran/25058 * gfortran.dg/entry_dummy_ref_2.f90: New test. From-SVN: r114461
2006-05-28check.c, [...]: Fix comment typos.Kazu Hirata1-1/+1
* check.c, expr.c, resolve.c, trans-common.c, trans-intrinsic.c, trans-stmt.c, trans-types.c: Fix comment typos. From-SVN: r114170
2006-04-16re PR fortran/26822 (Scalarization of non-elemental intrinsic: __logical_4_l4)Paul Thomas1-5/+41
2006-04-16 Paul Thomas <pault@gcc.gnu.org> PR fortran/26822 * intrinsic.c (add_functions): Mark LOGICAL as elemental. PR fortran/26787 * expr.c (gfc_check_assign): Extend scope of error to include assignments to a procedure in the main program or, from a module or internal procedure that is not that represented by the lhs symbol. Use VARIABLE rather than l-value in message. PR fortran/27096 * trans-array.c (gfc_trans_deferred_array): If the backend_decl is not a descriptor, dereference and then test and use the type. PR fortran/25597 * trans-decl.c (gfc_trans_deferred_vars): Check if an array result, is also automatic character length. If so, process the character length. PR fortran/18803 PR fortran/25669 PR fortran/26834 * trans_intrinsic.c (gfc_walk_intrinsic_bound): Set data.info.dimen for bound intrinsics. * trans_array.c (gfc_conv_ss_startstride): Pick out LBOUND and UBOUND intrinsics and supply their shape information to the ss and the loop. PR fortran/27124 * trans_expr.c (gfc_trans_function_call): Add a new block, post, in to which all the argument post blocks are put. Add this block to se->pre after a byref call or to se->post, otherwise. 2006-04-16 Paul Thomas <pault@gcc.gnu.org> PR fortran/26787 * gfortran.dg/proc_assign_1.f90: New test. * gfortran.dg/procedure_lvalue.f90: Change message. * gfortran.dg/namelist_4.f90: Add new error. PR fortran/27096 * gfortran.dg/auto_pointer_array_result_1.f90 PR fortran/27089 * gfortran.dg/specification_type_resolution_1.f90 PR fortran/18803 PR fortran/25669 PR fortran/26834 * gfortran.dg/bounds_temporaries_1.f90: New test. PR fortran/27124 * gfortran.dg/array_return_value_1.f90: New test. From-SVN: r112981
2006-04-01re PR fortran/25358 (vector assignment to assumed-size Cray Pointee error)Asher Langton1-1/+1
2006-03-31 Asher Langton <langton2@llnl.gov> PR fortran/25358 *expr.c (gfc_check_assign): Allow cray pointee to be assumes-size. 2006-03-31 Asher Langton <langton2@llnl.gov> PR fortran/25358 gfortran.dg/cray_pointers_6.f90: New test. From-SVN: r112594
2006-03-19re PR fortran/26716 (gfortran: incorrect choice of overloaded function)Paul Thomas1-1/+1
2006-03-19 Paul Thomas <pault@gcc.gnu.org> PR fortran/26716 *expr.c (external_spec_function): Permit elemental functions. PR fortran/26716 *interface.c (compare_actual_formal): Detect call for procedure usage and require rank checking, in this case, for assumed shape and deferred shape arrays. (gfc_procedure_use): Revert to pre-PR25070 call to compare_actual_formal that does not require rank checking.. 2006-03-19 Paul Thomas <pault@gcc.gnu.org> PR fortran/26716 * gfortran.dg/elemental_initializer_1.f90: New test. PR fortran/26716 * gfortran.dg/assumed_shape_ranks_2: New test. From-SVN: r112210
2006-02-10re PR fortran/20858 (NULL doesn't get its argument type (kind))Steven G. Kargl1-8/+12
2006-02-05 Steven G. Kargl <kargls@comcast.net> PR fortran/20858 *decl.c (variable_decl): Improve error message. Remove initialization typespec. Wrap long line. *expr.c (gfc_check_pointer_assign): Permit checking of type, kind type, and rank. *simplify.c (gfc_simplify_null): Ensure type, kind type, and rank are set. gfortran.dg/null_1.f90: New test. From-SVN: r110845
2006-02-10re PR fortran/14771 (frontend doesn't record parentheses)Tobias Schlüter1-0/+3
fortran/ PR fortran/14771 * arith.c (eval_intrinsic): Accept INTRINSIC_PARENTHESES. * expr.c (check_intrinsic_op): Likewise. * module.c (mio_expr): Likewise. testsuite/ PR fortran/14771 * gfortran.dg/parens_4.f90: New. * gfortran.dg/parens_5.f90: New. From-SVN: r110840
2006-02-10re PR fortran/14771 (frontend doesn't record parentheses)Tobias Schlüter1-0/+1
fortran/ 2006-02-09 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de> PR fortran/14771 * gfortran.h (gfc_intrinsic_op): Add INTRINSIC_PARENTHESES. * dump-parse-tree (gfc_show_expr): Handle INTRINSIC_PARENTHESES. * expr.c (simplify_intrinsic_op): Treat INTRINSIC_PARENTHESES as if it were INTRINSIC_UPLUS. * resolve.c (resolve_operator): Handle INTRINSIC_PARENTHESES. * match.c (intrinsic_operators): Add INTRINSIC_PARENTHESES. * matchexp.c (match_primary): Record parentheses surrounding numeric expressions. * module.c (intrinsics): Add INTRINSIC_PARENTHESES for module dumping. * trans-expr.c (gfc_conv_expr_op): Handle INTRINSIC_PARENTHESES. testsuite/ 2006-02-09 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de> Paul Thomas <pault@gcc.gnu.org> PR fortran/14771 * gfortran.dg/parens_1.f90: New. * gfortran.dg/parens_2.f90: New. * gfortran.dg/parens_3.f90: New. From-SVN: r110819
2006-01-31re PR fortran/26039 (ICE with maxval)Thomas Koenig1-1/+1
2006-01-31 Thomas Koenig <Thomas.Koenig@online.de> PR fortran/26039 expr.c (gfc_check_conformance): Reorder error message to avoid plural. check.c(gfc_check_minloc_maxloc): Call gfc_check_conformance for checking arguments array and mask. (check_reduction): Likewise. 2006-01-31 Thomas Koenig <Thomas.Koenig@online.de> PR fortran/26039 maxval_maxloc_conformance_1.f90: New test. From-SVN: r110453
2006-01-29[multiple changes]Paul Thomas1-0/+27
2006-01-28 Paul Thomas <pault@gcc.gnu.org> PR fortran/17911 * expr.c (gfc_check_assign, gfc_check_pointer_assign): Emit error if the lvalue is a use associated procedure. PR fortran/20895 PR fortran/25030 * expr.c (gfc_check_pointer_assign): Emit error if lvalue and rvalue character lengths are not the same. Use gfc_dep_compare_expr for the comparison. * gfortran.h: Add prototype for gfc_dep_compare_expr. * dependency.h: Remove prototype for gfc_dep_compare_expr. 2006-01-29 Paul Thomas <pault@gcc.gnu.org> PR fortran/17911 * gfortran.dg/procedure_lvalue.f90: New test. PR fortran/20895 PR fortran/25030 * gfortran.dg/char_pointer_assign_2.f90: New test. * gfortran.dg/char_result_1.f90: Correct unequal charlen pointer assignment to be consistent with standard. * gfortran.dg/char_result_2.f90: The same. * gfortran.dg/char_result_8.f90: The same. From-SVN: r110365
2006-01-05re PR fortran/23675 (ICE in gfc_finish_var_decl (string manipulation))Erik Edelmann1-2/+72
2006-01-05 Erik Edelmann <eedelman@gcc.gnu.org> PR fortran/23675 * expr.c (gfc_expr_set_symbols_referenced): New function. * gfortran.h: Add a function prototype for it. * resolve.c (resolve_function): Use it for use associated character functions lengths. * expr.c, gfortran.h, resolve.c: Updated copyright years. testsuite/ 2006-01-05 Erik Edelmann <eedelman@gcc.gnu.org> PR fortran/23675 gfortran.dg/char_result_11.f90: New. From-SVN: r109368
2005-12-22re PR fortran/18990 (ICE in gfc_get_derived_type, at fortran/trans-types.c)Tobias Schlüter1-0/+2
fortran/ PR fortran/18990 * gfortran.h (gfc_charlen): Add resolved field. * expr.c (gfc_specification_expr): Accept NULL argument. * resolve.c (gfc_resolve_charlen, gfc_resolve_derived): New. (gfc_resolve_symbol): Resolve derived type definitions. Use resolve_charlen to resolve character lengths. testsuite/ PR fortran/18990 * gfortran.dg/der_charlen_1.f90: New. From-SVN: r108946
2005-12-18re PR fortran/25018 (Segfault with simple expression)Paul Thomas1-6/+26
2005-12-18 Paul Thomas <pault@gcc.gnu.org> PR fortran/25018 *expr.c(check_inquiry): Return FAILURE if there is no symtree to provide a name. Error/warning for assumed character length argument to LEN for an initialization expression, using GFC_GNU_STD. Add an argument to flag that the expression is not restricted. (check_init_expr): Improve the message for a failing variable. (gfc_match_init_expr): Call check_enquiry again to make sure that unsimplified expressions are not causing unnecessary errors. 2005-12-18 Paul Thomas <pault@gcc.gnu.org> PR fortran/25018 *gfortran.dg/initialization_1.f90: New test. *gfortran.dg/enum_5.f90: Change dg-error to new message. *gfortran.dg/g77/980616-0.f: The same. From-SVN: r108753
2005-11-06re PR fortran/24534 (PUBLIC derived types with private components)Paul Thomas1-0/+24
2005-11-06 Paul Thomas <pault@gcc.gnu.org> PR fortran/24534 * resolve.c (resolve_symbol): Exclude case of PRIVATE declared within derived type from error associated with PRIVATE type components within derived type. PR fortran/20838 PR fortran/20840 * gfortran.h: Add prototype for gfc_has_vector_index. * io.c (gfc_resolve_dt): Error if internal unit has a vector index. * expr.c (gfc_has_vector_index): New function to check if any of the array references of an expression have vector inidices. (gfc_check_pointer_assign): Error if internal unit has a vector index. PR fortran/17737 * data.c (gfc_assign_data_value): Remove gcc_assert that caused the ICE and replace by a standard dependent warning/error if overwriting an existing initialization. * decl.c (gfc_data_variable): Remove old error for already initialized variable and the unused error check for common block variables. Add error for hots associated variable and standard dependent error for common block variables, outside of blockdata. * symbol.c (check_conflict): Add constraints for DATA statement. 2005-11-06 Paul Thomas <pault@gcc.gnu.org> PR fortran/24534 gfortran.dg/private_type_2.f90: Modified to check that case with PRIVATE declaration within derived type is accepted. PR fortran/20838 gfortran.dg/pointer_assign_1.f90: New test. PR fortran/20840 * gfortran.dg/arrayio_0.f90: New test. PR fortran/17737 gfortran.dg/data_initialized.f90: New test. gfortran.dg/data_constraints_1.f90: New test. gfortran.dg/data_constraints_2.f90: New test. From-SVN: r106567
2005-10-24Commit for Asher LangtonAsher Langton1-0/+10
PR fortran/17031 PR fortran/22282 fortran/ * check.c (gfc_check_loc) : New function * decl.c (variable_decl): New variables cp_as and sym. Added a check for variables that have already been declared as Cray Pointers, so we can get the necessary attributes without adding a new symbol. (attr_decl1): Added code to catch pointee symbols and "fix" their array specs. (cray_pointer_decl): New method. (gfc_match_pointer): Added Cray pointer parsing code. (gfc_mod_pointee_as): New method. * expr.c (gfc_check_assign): added a check to catch vector-type assignments to pointees with an unspecified final dimension. * gfortran.h: (GFC_ISYM_LOC): New. (symbol_attribute): Added cray_pointer and cray_pointee bits. (gfc_array_spec): Added cray_pointee and cp_was_assumed bools. (gfc_symbol): Added gfc_symbol *cp_pointer. (gfc_option): Added flag_cray_pointer. (gfc_add_cray_pointee): Declare. (gfc_add_cray_pointer ): Declare. (gfc_mod_pointee_as): Declare. * intrinsic.c (add_functions): Add code for loc() intrinsic. * intrinsic.h (gfc_check_loc): Declare. (gfc_resolve_loc): Declare. * iresolve.c (gfc_resolve_loc): New. * lang.opt: Added fcray-pointer flag. * options.c (gfc_init_options): Intialized gfc_match_option.flag_cray_pointer. (gfc_handle_option): Deal with -fcray-pointer. * parse.c:(resolve_equivalence): Added code prohibiting Cray pointees in equivalence statements. * resolve.c (resolve_array_ref): Added code to prevent bounds checking for Cray Pointee arrays. (resolve_equivalence): Prohibited pointees in equivalence statements. * symbol.c (check_conflict): Added Cray pointer/pointee attribute checking. (gfc_add_cray_pointer): New (gfc_add_cray_pointee): New (gfc_copy_attr): New code for Cray pointers and pointees * trans-array.c (gfc_trans_auto_array_allocation): Added code to prevent space from being allocated for pointees. (gfc_conv_array_parameter): Added code to catch pointees and correctly set their base address. * trans-decl.c (gfc_finish_var_decl): Added code to prevent pointee declarations from making it to the back end. (gfc_create_module_variable): Same. * trans-expr.c (gfc_conv_variable): added code to detect and translate pointees. (gfc_conv_cray_pointee): New. * trans-intrinsic.c (gfc_conv_intrinsic_loc): New. (gfc_conv_intrinsic_function): added entry point for loc translation. * trans.h (gfc_conv_cray_pointee): Declare. * gfortran.texi: Added section on Cray pointers, removed Cray pointers from list of proposed extensions * intrinsic.texi: Added documentation for loc intrinsic. * invoke.texi: Documented -fcray-pointer flag testsuite/ PR fortran/17031 PR fortran/22282 * gfortran.dg/cray_pointers_1.f90: New test. * gfortran.dg/cray_pointers_2.f90: New test. * gfortran.dg/cray_pointers_3.f90: New test. * gfortran.dg/loc_1.f90: New test. * gfortran.dg/loc_2.f90: New test. From-SVN: r105859
2005-10-17re PR fortran/23446 (Valid internal subprogram array argument declaration is ↵Paul Thomas1-1/+5
not accepted.) 2005-10-17 Paul Thomas <pault@gcc.gnu.org> PR fortran/23446 * gfortran.h: Primitive for gfc_is_formal_arg. * resolve.c(gfc_is_formal_arg): New function to signal across several function calls that formal argument lists are being processed. (resolve_formal_arglist): Set/reset the flag for gfc_is_formal_arg. *expr.c(check_restricted): Add check, via gfc_is_formal_arg, if symbol is part of an formal argument declaration. PR fortran/21459 * decl.c (add_init_expr_to_sym): Make a new character length for each variable, when the expression is NULL and link to cl_list. PR fortran/20866 * match.c (recursive_stmt_fcn): New function that tests if a statement function resurses through itself or other other statement functions. (gfc_match_st_function): Call recursive_stmt_fcn to check if this is recursive and to raise error if so. PR fortran/20849 PR fortran/20853 * resolve.c (resolve_symbol): Errors for assumed size arrays with default initializer and for external objects with an initializer. PR fortran/20837 * decl.c (match_attr_spec): Prevent PUBLIC from being used outside a module. 2005-10-17 Paul Thomas <pault@gcc.gnu.org> PR fortran/23446 * gfortran.dg/host_dummy_index_1.f90: New test. PR fortran/21459 gfortran.dg/automatic_char_len_2.f90: New test. PR fortran/20866 gfortran.dg/recursive_statement_functions.f90: New test. PR fortran/20853 gfortran.dg/assumed_size_dt_dummy.f90: New test. PR fortran/20849 gfortran.dg/external_initializer.f90: New test. PR fortran/20837 non_module_public.f90: New test. From-SVN: r105518
2005-10-16re PR fortran/22273 (problem to declare a character variable link to an ↵Erik Edelmann1-5/+4
intent(out) object) 2005-10-16 Erik Edelmann <erik.edelmann@iki.fi> fortran/ PR 22273 * expr.c (check_inquiry): Add "len" to inquiry_function. testsuite/ PR fortran/22273 * gfortran.dg/spec_expr_2.f90: New. From-SVN: r105460
2005-09-17re PR fortran/15586 (gfortran should support i18n in its compiler messages)Francois-Xavier Coudert1-9/+12
PR fortran/15586 * arith.c (gfc_arith_error): Add translation support for error messages. * array.c (gfc_match_array_ref): Likewise. (gfc_match_array_spec): Likewise. * check.c (must_be): Add msgid convention to third argument. (same_type_check): Add translation support for error message. (rank_check): Likewise. (kind_value_check): Likewise. (gfc_check_associated): Correct typo. (gfc_check_reshape): Add translation support for error message. (gfc_check_spread): Likewise. * error.c (error_printf): Add nocmsgid convention to argument. (gfc_warning, gfc_notify_std, gfc_warning_now, gfc_warning_check) (gfc_error, gfc_error_now): Likewise. (gfc_status): Add cmsgid convention to argument. * expr.c (gfc_extract_int): Add translation support for error messages. (gfc_check_conformance): Add msgid convention to argument. (gfc_check_pointer_assign): Correct tabbing. * gfortran.h: Include intl.h header. Remove prototype for gfc_article. * gfortranspec.c: Include intl.h header. (lang_specific_driver): Add translation support for --version. * io.c (check_format): Add translation support for error message. (format_item_1): Likewise. (data_desc): Likewise. * matchexp.c: Likewise. * misc.c (gfc_article): Remove function. * module.c (bad_module): Use msgid convention. Add translation support for error messages. (require_atom): Add translation support for error messages. * parse.c (gfc_ascii_statement): Likewise. (gfc_state_name): Likewise. * primary.c (match_boz_constant): Reorganise error messages for translations. * resolve.c (resolve_entries): Likewise. (resolve_operator): Add translation support for error messages. (gfc_resolve_expr): Use msgid convention. Reorganise error messages for translations. (resolve_symbol): Add translation support for error messages. * symbol.c (gfc_add_procedure): Remove use of gfc_article function. * trans-const.c (gfc_build_string_const): Use msgid convention. * exgettext: Add a new nocmsgid convention for arguments that should be marked as no-c-format. * gcc.pot: Regenerate. From-SVN: r104372
2005-08-02re PR fortran/22491 (character array parameters do not reduce)David Edelsohn1-2/+24
PR fortran/22491 * expr.c (simplify_parameter_variable): Do not copy the subobject references if the expression value is a constant. * expr.c (gfc_simplify_expr): Evaluate constant substrings. From-SVN: r102676
2005-07-07For the 60th anniversary of Chinese people��s Anti-Japan war victory.Feng Wang1-1/+21
2005-07-07 Feng Wang <fengwang@nudt.edu.cn> PR fortran/16531 PR fortran/15966 PR fortran/18781 * arith.c (gfc_hollerith2int, gfc_hollerith2real, gfc_hollerith2complex, gfc_hollerith2character, gfc_hollerith2logical): New functions. (eval_intrinsic): Don't evaluate if Hollerith constant arguments exist. * arith.h (gfc_hollerith2int, gfc_hollerith2real, gfc_hollerith2complex, gfc_hollerith2character, gfc_hollerith2logical): Add prototypes. * expr.c (free_expr0): Free memery allocated for Hollerith constant. (gfc_copy_expr): Allocate and copy string if Expr is from Hollerith. (gfc_check_assign): Enable conversion from Hollerith to other. * gfortran.h (bt): Add BT_HOLLERITH. (gfc_expr): Add from_H flag. * intrinsic.c (gfc_type_letter): Return 'h' for BT_HOLLERITH. (add_conversions): Add conversions from Hollerith constant to other. (do_simplify): Don't simplify if Hollerith constant arguments exist. * io.c (resolve_tag): Enable array in FORMAT tag under GFC_STD_GNU. * misc.c (gfc_basetype_name): Return "HOLLERITH" for BT_HOLLERITH. (gfc_type_name): Print "HOLLERITH" for BT_HOLLERITH. * primary.c (match_hollerith_constant): New function. (gfc_match_literal_constant): Add match Hollerith before Integer. * simplify.c (gfc_convert_constant): Add conversion from Hollerith to other. * trans-const.c (gfc_conv_constant_to_tree): Use VIEW_CONVERT_EXPR to convert Hollerith constant to tree. * trans-io.c (gfc_convert_array_to_string): Get array's address and length to set string expr. (set_string): Deal with array assigned Hollerith constant and character array. * gfortran.texi: Document Hollerith constants as extention support. 2005-07-07 Feng Wang <fengwang@nudt.edu.cn> PR fortran/16531 PR fortran/15966 PR fortran/18781 * gfortran.dg/hollerith.f90: New. * gfortran.dg/hollerith2.f90: New. * gfortran.dg/hollerith3.f90: New. * gfortran.dg/hollerith4.f90: New. * gfortran.dg/hollerith_f95.f90: New. * gfortran.dg/hollerith_legacy.f90: New. * gfortran.dg/g77/cpp4.F: New. Port from g77. 2005-07-07 Feng Wang <fengwang@nudt.edu.cn> PR fortran/16531 * io/transfer.c (formatted_transfer): Enable FMT_A on other types to support Hollerith constants. From-SVN: r101688
2005-06-25Update FSF address.Kelley Cook1-2/+2
From-SVN: r101310
2005-04-06expr.c (gfc_check_assign): Don't allow NULL as rhs in a non-pointer assignment.Tobias Schlüter1-5/+6
fortran/ * expr.c (gfc_check_assign): Don't allow NULL as rhs in a non-pointer assignment. testsuite/ * gfortran.dg/pr15754.f90: Change annotations to dg-error. From-SVN: r97740
2005-03-04* expr.c (gfc_copy_shape_excluding): Change && to ||.Steven G. Kargl1-1/+1
From-SVN: r95891
2005-02-23gfortran.h (gfc_expr): Move 'operator'...Tobias Schlüter1-46/+45
* gfortran.h (gfc_expr): Move 'operator', 'op1', 'op2', and 'uop' fields into new struct 'op' inside the 'value' union. * arith.c (eval_intrinsic): Adapt all users. * dependency.c (gfc_check_dependency): Likewise. * dump-parse-tree.c (gfc_show_expr): Likewise. * expr.c (gfc_get_expr): Don't clear removed fields. (free_expr0, gfc_copy_expr, gfc_type_convert_binary, gfc_is_constant_expr, simplify_intrinsic_op, check_init_expr, check_intrinsic_op): Adapt to new field names. * interface.c (gfc_extend_expr): Likewise. Also explicitly nullify 'esym' and 'isym' fields of new function call. * iresolve.c (gfc_resolve_dot_product, gfc_resolve_matmul): Adapt to renamed structure fields. * matchexp.c (build_node, match_level_1, match_expr): Likewise. * module.c (mio_expr): Likewise. * resolve.c (resolve_operator): Likewise. (gfc_find_forall_index): Likewise. Only look through operands if dealing with EXPR_OP * trans-array.c (gfc_walk_op_expr): Adapt to renamed fields. * trans-expr.c (gfc_conv_unary_op, gfc_conv_power_op, gfc_conv_concat_op, gfc_conv_expr_op): Likewise. From-SVN: r95471
2005-02-20* expr.c (gfc_type_convert_binary): Typo in comment.Steven G. Kargl1-1/+1
From-SVN: r95307
2005-02-08expr.c (gfc_copy_expr): Don't copy 'op1' and 'op2' for EXPR_SUBSTRING.Tobias Schlüter1-11/+7
fortran/ * expr.c (gfc_copy_expr): Don't copy 'op1' and 'op2' for EXPR_SUBSTRING. (gfc_is_constant_expr): Check 'ref' to determine if substring reference is constant. (gfc_simplify_expr): Simplify 'ref' instead of 'op1' and 'op2'. (check_init_expr, check_restricted): Check 'ref' instead of 'op1' and 'op2'. * module.c (mio_expr): Read / write 'ref' instead of 'op1' and 'op2'. testsuite/ * gfortran.dg/substr_1.f90: New test. From-SVN: r94735
2005-01-29re PR fortran/19589 (Regression: Error on Data assignment with LOGICAL*1)Steven G. Kargl1-0/+3
2005-01-29 Steven G. Kargl <kargls@comcast.net> PR fortran/19589 * expr.c (gfc_check_assign): Check for conformance of logical operands testsuite/ * gfortran.dg/logical_data_1.f90: New test. From-SVN: r94409
2005-01-18arith.c, [...]: Update copyright.Kazu Hirata1-1/+1
* arith.c, array.c, check.c, decl.c, expr.c, f95-lang.c, gfortran.h, interface.c, intrinsic.c, io.c, iresolve.c, match.c, matchexp.c, misc.c, module.c, options.c, parse.c, scanner.c, simplify.c, symbol.c, trans-array.c, trans-expr.c, trans-io.c, trans-stmt.c, trans.c: Update copyright. From-SVN: r93830
2005-01-03arith.c: Add system.h; remove string.hSteven G. Kargl1-4/+1
* arith.c: Add system.h; remove string.h * decl.c: Ditto * matchexp.c: Ditto * parse.c: Ditto * resolve.c: Ditto * st.c: Ditto * check.c: Remove stdlib.h and stdarg.h * error.c: Remove stdlib.h, stdarg.h, stdio.h, string.h * expr.c: Add system.h; remove stdarg.h, stdio.h, and string.h * f95-lang.c: Add system.h; remove stdio.h * interface.c: Add system.h; remove stdlib.h and string.h * intrinsic.c: Remove stdarg.h, stdio.h, and string.h * io.c: Remove string.h * simplify.c: Ditto * match.c: Remove stdarg.h and string.h * misc.c: Update copyright; add system.h; remove stdlib.h, string.h, and sys/stat.h * module.c: Add system.h; remove string.h, stdio.h, errno.h, unistd.h, and time.h * option.c: Remove string.h and stdlib.h * primary.c: Ditto * scanner.c: Update copyright; add system.h; remove stdlib.h, stdio.h, string.h, and strings.h * symbol.c: Add system.h; remove stdlib.h, stdio.h, and string.h * trans-array.c: Remove stdio.h and gmp.h * trans-const.c: Ditto * trans-expr.c: Ditto * trans-io.c: Ditto * trans-stmt.c: Ditto * trans.c: Ditto * trans-intrinsic.c: Remove stdio.h and string.h From-SVN: r92866
2004-11-08arith.c, [...]: Fix comment formatting.Kazu Hirata1-1/+1
* arith.c, array.c, decl.c, expr.c, f95-lang.c, gfortran.h, gfortranspec.c, interface.c, intrinsic.c, iresolve.c, match.c, module.c, parse.c, parse.h, primary.c, resolve.c, scanner.c, trans-array.c, trans-array.h, trans-expr.c, trans-intrinsic.c, trans-io.c, trans-stmt.c, trans.h: Fix comment formatting. From-SVN: r90266
2004-08-29re PR fortran/13910 (Cannot initialize variables with declation as allowed ↵Tobias Schlüter1-0/+27
by g77) fortran/ PR fortran/13910 * decl.c (free_variable, free_value, gfc_free_data, var_list, var_element, top_var_list, match_data_constant, top_val_list, gfc_match_data): Move here from match.c. (match_old_style_init): New function. (variable_decl): Match old-style initialization. * expr.c (gfc_get_variable_expr): New function. * gfortran.h (gfc_get_variable_expr): Add prototype. * gfortran.texi: Start documentation for supported extensions. * match.c: Remove the functions moved to decl.c. * match.h (gfc_match_data): Move prototype to under decl.c. * symbol.c (gfc_find_sym_tree, gfc_find_symbol): Add/correct comments. testsuite/ PR fortran/13910 * gfortran.dg/oldstyle_1.f90: New test. From-SVN: r86729
2004-08-27gfortran.h (gfc_default_*_kind): Remove prototypes, add extern variable ↵Tobias Schlüter1-2/+2
declaration of same name. * gfortran.h (gfc_default_*_kind): Remove prototypes, add extern variable declaration of same name. * arith.c, check.c, decl.c, dump_parse_tree.c, expr.c, intrinsic.c, io.c, iresolve.c, match.c, options.c, primary.c, resolve.c, simplify.c, symbol.c, trans-const.c, trans-io.c: Replace all calls to gfc_default_*_kind with variable accesses. * trans-types.c: Same as above. (gfc_default_*_kind_1): Rename to gfc_default_*_kind, remove static qualifier. Replace all occurences. (gfc_default_*_kind): Remove functions. From-SVN: r86662
2004-08-26expr.c (gfc_check_assign): Add comment.Tobias Schlüter1-0/+9
fortran/ * expr.c (gfc_check_assign): Add comment. Add new warning. * trans-expr.c (gfc_conv_function_call): Correctly dereference result of pointer valued function when not in pointer assignment. testsuite/ * gfortran.dg/assignment_1.f90: New test. From-SVN: r86585
2004-08-08simplify.c (gfc_simplify_shape): Bugfix.Victor Leikehman1-0/+44
2004-08-08 Victor Leikehman <lei@il.ibm.com> * simplify.c (gfc_simplify_shape): Bugfix. * expr.c (gfc_copy_shape_excluding): New function. * gfortran.h (gfc_get_shape): Bugfix. (gfc_copy_shape_excluding): Added declaration. * iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count, gfc_resolve_cshift, gfc_resolve_eoshift, gfc_resolve_lbound, gfc_resolve_ubound, gfc_resolve_transpose): Added compile time resolution of shape. From-SVN: r85685
2004-08-06arith.c: Add #define for model numbers.Steven G. Kargl1-6/+11
2004-08-06 Steven G. Kargl <kargls@comcast.net> * arith.c: Add #define for model numbers. Remove global GMP variables. (natural_logarithm,common_logarithm,exponential,sine, cosine,arctangent,hypercos,hypersine ): Remove. (gfc_mpfr_to_mpz,gfc_set_model_kind,gfc_set_model): New functions. (arctangent2,gfc_arith_init_1,gfc_arith_done_1 gfc_check_real_range, gfc_constant_result, gfc_range_check, gfc_arith_uminus,gfc_arith_plus, gfc_arith_minus, gfc_arith_times, gfc_arith_divide,complex_reciprocal,complex_pow_ui, gfc_arith_power,gfc_compare_expr,compare_complex,gfc_convert_real, gfc_convert_complex,gfc_int2real,gfc_int2complex, gfc_real2int,gfc_real2real,gfc_real2complex, gfc_complex2int,gfc_complex2real,gfc_complex2complex): Convert GMP to MPFR, use new functions. * arith.h: Remove extern global variables. (natural_logarithm,common_logarithm,exponential, sine, cosine, arctangent,hypercos,hypersine): Remove prototypes. (arctangent2): Update prototype from GMP to MPFR. (gfc_mpfr_to_mpz, gfc_set_model_kind,gfc_set_model): Add prototypes. * dump-parse-tree.c (gfc_show_expr): Convert GMP to MPFR. * expr.c (free_expr0,gfc_copy_expr): Convert GMP to MPFR. * gfortran.h (GFC_REAL_BITS): Remove. (arith): Add ARITH_NAN. Include mpfr.h. Define GFC_RND_MODE. Rename GCC_GFORTRAN_H GFC_GFC_H. (gfc_expr): Convert GMP to MPFR. * module.c: Add arith.h, correct type in comment. (mio_gmp_real): Convert GMP to MPFR. (mio_expr): Use gfc_set_model_kind(). * primary.c: Update copyright date with 2004. (match_real_constant,match_const_complex_part): Convert GMP to MPFR. * simplify.c: Remove global GMP variables (gfc_simplify_abs,gfc_simplify_acos,gfc_simplify_aimag, gfc_simplify_aint,gfc_simplify_dint,gfc_simplify_anint, gfc_simplify_dnint,gfc_simplify_asin,gfc_simplify_atan, gfc_simplify_atan2,gfc_simplify_ceiling,simplify_cmplx, gfc_simplify_conjg,gfc_simplify_cos,gfc_simplify_cosh, gfc_simplify_dim,gfc_simplify_dprod,gfc_simplify_epsilon, gfc_simplify_exp,gfc_simplify_exponent,gfc_simplify_floor, gfc_simplify_fraction,gfc_simplify_huge,gfc_simplify_int, gfc_simplify_ifix,gfc_simplify_idint,gfc_simplify_log, gfc_simplify_log10,simplify_min_max,gfc_simplify_mod, gfc_simplify_modulo,gfc_simplify_nearest,simplify_nint, gfc_simplify_rrspacing,gfc_simplify_scale, gfc_simplify_set_exponent,gfc_simplify_sign,gfc_simplify_sin, gfc_simplify_sinh,gfc_simplify_spacing,gfc_simplify_sqrt, gfc_simplify_tan,gfc_simplify_tanh,gfc_simplify_tiny, gfc_simplify_init_1,gfc_simplify_done_1): Convert GMP to MPFR. Use new functions. * trans-const.c (gfc_conv_mpfr_to_tree): Rename from gfc_conv_mpf_to_tree. Convert it to use MPFR (gfc_conv_constant_to_tree): Use it. * trans-const.h: Update prototype for gfc_conv_mpfr_to_tree(). * trans-intrinsic.c: Add arith.h, remove gmp.h (gfc_conv_intrinsic_aint,gfc_conv_intrinsic_mod): Convert GMP to MPFR. From-SVN: r85652
2004-07-12expr.c (gfc_check_assign_symbol): Handle pointer assignments.Paul Brook1-2/+5
* expr.c (gfc_check_assign_symbol): Handle pointer assignments. * trans-array.c (gfc_trans_auto_array_allocation): Remove initialization code. * trans-common.c (create_common): Use gfc_conv_initializer. * trans-decl.c (gfc_get_symbol_decl): Use gfc_conv_initializer. * trans-expr.c (gfc_conv_initializer): New function. (gfc_conv_structure): Use it. * trans.h (gfc_conv_initializer): Add prototype. testsuite/ * gfortran.dg/pointer_init_1.f90: New test. From-SVN: r84542