2002-12-29 Paul Brook * trans-array.c: Document calling convention for arrays. 2002-12-19 Paul Brook * trans-intrinsic.c (g95_conv_intrsinsic_function): Remove incorrect assertion. Remove intrinsic subroutine G95_ISYM_* cases. Always pass optional parameters for some intrinsics. (g95_is_intrinsic_libcall): Add G95_ISYM_RESHAPE. * trans-expr.c (g95_conv_function_call): Pass NULL for absent optional parameters. * trans.h (g95_se): Add ignore_optional flag. 2002-12-15 Paul Brook * trans-array.c (g95_conv_array_parameter): Fix partial rank sections. * trans-decl.c (g95_generate_function_code): Use TDI_original. 2002-12-14 Paul Brook * trans-stmt.c (g95_trans_call): Use resolved symbol name. 2002-12-12 Paul Brook * trans-array.c (g95_trans_array_constructor_subarray): Fully initialize the scalarizer. (various): Update to new format of g95_expr->value.constructor. 2002-12-08 Paul Brook * trans-array.c (g95_put_offset_into_var): New function. (g95_trans_array_constructor_subarray): New function. (g95_trans_array_constructor_value): Use it. (g95_array_cons_size): Don't abort() on array components. 2002-12-08 Paul Brook * Make-lang.in (F95_ADDITIONAL_OBJS): Remove tree-dchain.o. * support.c: Update #includes. (statement_code_p, c_size_in_bytes, s_size_type_node): Remove. * trans-array.c: Update #includes. * trans.c: Ditto. * trans-const.c: Ditto. * trans-io.c: Ditto. * trans-types.c: Ditto. (g95_init_types): Set size_type_node. * trans-decl.c: Update #includes. (gfor_fndecl_adjust{l,r}): Declare and initialize. * trans-stmt.c: Update #includes. (g95_trans_do_while): Generate LABEL_EXPR, not GOTO_EXPR. (g95_trans_select): Fix check for unbounded ranges. * trans-expr.c: Update #includes. (g95_conv_string_tmp): New function. (g95_conv_concat_op): Use it. * trans.h (g95_conv_string_tmp, gfor_fndecl_adjust{l,r}): Declare. * Trans-intrisic.c: Update #includes. (g95_conv_intrinsic_strcmp): New function. (g95_conv_intrinsic_adjust): Ditto. (g95_conv_intrinsic_function: Use them. 2002-11-30 Paul Brook * trans-array.c (g95_walk_function_expr): Handle non-array return by reference. * trans-dec.c (g95_build_function_decl): Handle character return parammeters. (g95_get_fake_result_decl): Ditto. (g95_trans_deferred_vars): Ditto. * trans-expr.c (g95_conv_function_call): Ditto. (g95_trans_arrayfunc_assign) Limit to array valued functions. * trans-intrinsic.c (g95_conv_intrinsic_char): New function. (g95_conv_intrinsic_function): Use it. * trans-types.c (g95_sym_type): Handle functions returning strings. (g95_return_by_reference): Ditto. (g95_get_function_type): Ditto. 2002-11-18 Paul Brook * trans-stmt.c (g95_trans_if): Fix IF statements when the condition requires a temporary. (g95_trans_select): Handle computed gotos. * trans-types.c (g95_build_array_type): Warn about non-functional assumed shape arrays. * trans-expr.c (g95_trans_scalar_assign): Correctly handle post blocks. * trans-intrinsic.c (g95_conv_intrinsic_round): New function. (g95_conv_intrinsic_int): New function. (g95_conv_intrinsic_mod): New function. (g95_conv_intrinsic_ichar): New function. (g95_conv_intrinsic_function): Use them. (g95_conv_intrinsic_dim): Use g95_evaluate_now. 2002-11-17 Toon Moene * trans-types.c (g95_build_array_type): Assumed sized arrays can have rank > 1. * trans.c (g95_trans_code): Remove erroneous warning about CONTINUE. * trans-expr.c (g95_conv_variable): Remove erroneous assert. 2002-11-15 Paul Brook * trans-array.c (g95_conv_array_parameter): Check for NULL stride. 2002-10-31 Paul Brook * f95-tree.c: Remove tree copying stuff that's now in gimple.c * trans-expr.c (g95_conv_component_ref): Handle character string components. (g95_conv_string_parameter): Ditto. * trans-types.c (g95_get_derived_type): Add length decl to caracter string components. 2002-10-10 Paul Brook * trans-decl.c (gfor_fndecl_size?): Declare and initialize. * trans-expr.c (g95_conv_function_call): Remove unreliable return value check. * trans-intrinsic.c (g95_conv_intrinsic_size): New function. (g95_conv_intrinsic_function): Handle size and shape intrinsics. (g95_is_intrinsic_libcall): Add G95_ISYM_SHAPE. * trans-types.c (pvoid_type_node): Declare and initialize. * trans-array.c: Fix typo COMPONENT_REF->REF_COMPONENT (g95_array_allocate): Fix when base==data. (g95_conv_array_parameter): Correctly handle reduced rank sections. * trans-io.c (g95_trans_write): Correctly handle string modifiers. 2002-10-09 Paul Brook * (g95_conv_expr_reference): Handle character strings correctly. 2002-10-07 Paul Brook (g95_expand_decl): Rename from f95_expand_decl_stmt and use as langhook. * trans-array.c (g95_build_array_initializer): Remove. (g95_conv_array_initializer): New Function. (g95_trans_auto_arry_allocation): Cleanup. (g95_trans_init_character_array): Remove. * g95spec.c: Link in libgforbegin. * trans.c (g95_generate_code): Rename main function to MAIN__. (g95_create_var): New function. (g95_create_var_np): New function. (g95_evaluate_now): New function. (g95_start_block): New function. (g95_finish_block): New function. (g95_add_expr_to_block): New function. (g95_add_block_to_block): New function. * trans-expr.c (g95_conv_componen_ref): New function. * Make-lang.in (F95_ADDITIONAL_OBJS): Add gimplify.o. (F95_OBJS): Add dependency.o. * f95-lang.c (g95_is_simple_stmt): Remove. * f95-tree.c (mark_not_simple): New function. (unshare_all_trees): New function. (create_tmp_var, create_tmp_alias_var): Remove. * support.c (declare_tmp_vars, tree_last_decl): Remove. * trans*: Convert to new IR using GENERIC trees. Don't bother about SIMPLE/GIMPLE rules, this is now done by Lang-independant code. 2002-10-01 Paul Brook * trans-array.c: Add support for descriptorless arrays. (g95_conv_array_data): New function. (g95_conv_array_base): New function. * trans-array.h: Declare these here. * trans-decl.c(g95_create_mopdule_variable): Perform variable initialization and creation here. (g95_create_module_vars): Instead of here. * trans.h (G95_TYPE_ARRAY_*: Rename from G95_TYPE_DESCRIPTOR_*. * trans-intrinsic.c: Ditto. * trans-types.c (g95_is_nodesc_array): New function. (g95_get_nodesc_array_type): New function. (g95_sym_type, g95_get_derived_type): Use them. * trans-const.c (g95_conv_mpf_to_tree): Remove workaround. 2002-09-28 Paul Brook * trans-const.c (g95_conv_mpf_to_tree): Work around backend bug. * trans-intrinsic.c (g95_conv_intrinsic_abs): Correctly detect complex parameters. 2002-09-24 Paul Brook * f95-lang.c (listify): Remove declaration. (expand_function_body): Use optimize >=1 instead of flag_tree_saa. (listify) * f95-tree.c (get_name): New function. * trans.c (module_namespace): Remove. * trans-decl.c: Use g95_chainon_list rather than chainon(listify()). * trans-types.c: Ditto. 2002-09-19 Paul Brook * trans-array.c (g95_get_array_cons_size): New Function. (g95_con_ss_startstride): Handle Array constructors. (g95_conv_loop_setup): Ditto. (g95_conv_array_parameter): Ditto. * tras-decl.c (g95_finish_var_decl): Make initializes variables static. 2002-09-19 Paul Brook * trans.c (g95_simple_fold_tmp): Detect variables inside NON_LVALUE_EXPR. * trans-stmt.c (g95_trans_arithmetic_if): Implement this. 2002-09-18 Steven Bosscher * Make-lang.in (F95_ADDITIONAL_OBJS): Add tree-ssa-dce.o 2002-09-14 Paul Brook * trans.c (g95_create_module_variable): Move to trans-decl.c. * trans-const.c (g95_conv_string_init): New Function. * trans-const.h: Declare it. * trans-decl.c (g95_get_symbol_decl): Handle initializers for static variables. Don't bail on intrinsic symbols. (get_extern_function_decl): Handle specific intrinsic functions. * trans-types.c (g95_sym_type): Dummy functions don't return reference types. * trans-array.c (g95_build_array_initializer): New Function. (g95_trans_auto_array_allocation): Build initializer for static decls. Don't use mpz_addmul, it's GMP4 only. 2002-09-12 Paul Brook * trans-decl.c (g95_generate_code): Fix thinko with return variable. (g95_get_extern_function_decl, g95_build_function_decl): Mangle assembler names for module procedures. 2002-09-11 Tobias Schlueter * trans-array.c,h trans-expr.c, trans-stmt.c: Correct spelling of dependency/ 2002-09-10 Paul Brook * trans-array.c: Change format of G95_SS_TEMP strictures. (g95_check_fncall_dependancy): New function. (trans_dummy_array_bias): stride[n], not stride[n-1]. for calculating offsets. * trans-decl.c (g95_get_symbol_decl): move assertion after handling of result variables. (g95_build_function_decl): Don't assume result arrays are packed. (g95_trans-deferred-vars): Handle array result variables. (g95_generate_fuction_code): Clear saved_function_decls. * trans-expr.c (g95_conv_fnction_call): Handle direct array return by reference. (g95_trans_arrayfunc_assign): New function. (g95_trans_assignment): Use it. * trans.h (g95_ss): Add temp struct for G95_SS_TEMP. (g95_se): Add direct_byref. * trans-types.c: Use sym->result rather than sym where appropriate. * trans-intrinsic.c (g95_conv_intrinsic_funcall): New function. Update other functions to use this. (g95_is_intrinsic_libcall): New function. (g95_conv_intrinsic_function): Add MATMUL and PRODUCT intrinsics. (g95_walk_intrinsic_function): Ditto. 2002-09-08 Paul Brook * trans-types.c: Change rank field to dtype field in array descriptor. * trans-array.c: Implement filling of dtype array descriptor field. * trans-intrinsic.c: Fix broken LEN intrinsic. 2002-09-07 Paul Brook * trans-intrinsic.c: Remove outdated todo intrinsic list. (g95_get_symbol_for_expr): Remove hack for fortran based intrinsics. (g95_walk_intrinsic_function): Add MINLOC and MAXLOC. 2002-09-06 Paul Brook * Make-lang.in (F95_ADDITIONAL_OBJS): Add tree_alias_comon.o. (gt-f95-trans-types.h): Add dependancy information. * config-lang.in (gtfiles): Add trans-types.c * f95-lang.c (g95_be_parse_file): Pass error and warning counts back to top-level code. * trans-array.c, trans-types.c: Change format of array descriptor. (g95_conv_descriptor_dimension): New function. * trans-types.h (g95_conv_descriptor_rank): define. * trans-intrinsic.c: Implement PRODUCT, COUNT. MINLOC and MAXLOC intrinsics. 2002-09-02 Steven Bosscher * trans-array.c, trans-types.c: Add rank information to descriptor. 2002-09-06 Tobias Schlueter * trans-stmt.c (g95_trans_allocate): Fix when ref==NULL. 2002-09-04 Paul Brook * f95-lang.c (g95_create_decls): New function. (g95_init): Move initialization of external decls to above, and call from g95_be_parse_file. * trans.c (g95_finish_stmt): Don't amputate the decl chain. * trans-types.c (g95_init_types): Always name integer and char types. (g95_get_array_type_bounds): TYPE_NAME may be a TYPE_DECL. 2002-09-02 Steven Bosscher * Make-lang.in: Add options.c to F95_PARSER_OBJS 2002-09-02 Paul Brook * g95_generate_code: Clear the attr for __fortran_main. * trans-types.c (g95_finish_type): New function. * g95_init_io_state_type: Use g95_finish_type. * g95_conv_intrinsic_anyall: Fix thinko in result initialization. 2002-09-01 Paul Brook * README.backend: Warn about the dangers of extra config.h files. Remove obsolete libgfor stuff. * config-lang.in: Add target-libgfor dependancy. * g95_conv_mpf_to_tree: Use & free allocated buffer p rather than buff. 2002-09-01 Toon Moene * g95_conv_mpz_to_tree: Free storage pointed to by q, not by buff. 2002-08-30 Paul Brook * trans-intrinsic.c (g95_conv_intrinsic_function, g95_walk_intrinsic_function): Added ANY and ALL. (g95_conv_intrinsic_anyall): New function. * iresolve.c (g95_resolve_any, g95_resolve_all): Include rank in mangled name