1. 09 Sep, 2005 8 commits
    • re PR fortran/21104 (Segmentation fault on correct code) · 62ab4a54
      	PR fortran/21104
      	* trans.h (gfc_interface_sym_mapping, gfc_interface_mapping): Moved
      	from trans-expr.c.
      	(gfc_init_interface_mapping, gfc_free_interface_mapping)
      	(gfc_add_interface_mapping, gfc_finish_interface_mapping)
      	(gfc_apply_interface_mapping): Declare.
      	* trans-array.h (gfc_set_loop_bounds_from_array_spec): Declare.
      	(gfc_trans_allocate_temp_array): Add pre and post block arguments.
      	* trans-array.c (gfc_set_loop_bounds_from_array_spec): New function.
      	(gfc_trans_allocate_array_storage): Replace loop argument with
      	separate pre and post blocks.
      	(gfc_trans_allocate_temp_array): Add pre and post block arguments.
      	Update call to gfc_trans_allocate_array_storage.
      	(gfc_trans_array_constructor, gfc_conv_loop_setup): Adjust for new
      	interface to gfc_trans_allocate_temp_array.
      	* trans-expr.c (gfc_interface_sym_mapping, gfc_interface_mapping):
      	Moved to trans.h.
      	(gfc_init_interface_mapping, gfc_free_interface_mapping)
      	(gfc_add_interface_mapping, gfc_finish_interface_mapping)
      	(gfc_apply_interface_mapping): Make extern.
      	(gfc_conv_function_call): Build an interface mapping for array
      	return values too.  Call gfc_set_loop_bounds_from_array_spec.
      	Adjust call to gfc_trans_allocate_temp_array so that code is
      	added to SE rather than LOOP.
      
      From-SVN: r104075
      Richard Sandiford committed
    • re PR fortran/12840 ([4.0 only] Unable to find scalarization loop specifier) · ec25720b
      	PR fortran/12840
      	* trans.h (gfor_fndecl_internal_realloc): Declare.
      	(gfor_fndecl_internal_realloc64): Declare.
      	* trans-decl.c (gfor_fndecl_internal_realloc): New variable.
      	(gfor_fndecl_internal_realloc64): New variable.
      	(gfc_build_builtin_function_decls): Initialize them.
      	* trans-array.h (gfc_trans_allocate_temp_array): Add a fourth argument.
      	* trans-array.c (gfc_trans_allocate_array_storage): Add an argument
      	to say whether the array can grow later.  Don't allocate the array
      	on the stack if so.  Don't call malloc for zero-sized arrays.
      	(gfc_trans_allocate_temp_array): Add a similar argument here.
      	Pass it along to gfc_trans_allocate_array_storage.
      	(gfc_get_iteration_count, gfc_grow_array): New functions.
      	(gfc_iterator_has_dynamic_bounds): New function.
      	(gfc_get_array_constructor_element_size): New function.
      	(gfc_get_array_constructor_size): New function.
      	(gfc_trans_array_ctor_element): Replace pointer argument with
      	a descriptor tree.
      	(gfc_trans_array_constructor_subarray): Likewise.  Take an extra
      	argument to say whether the variable-sized part of the constructor
      	must be allocated using realloc.  Grow the array when this
      	argument is true.
      	(gfc_trans_array_constructor_value): Likewise.
      	(gfc_get_array_cons_size): Delete.
      	(gfc_trans_array_constructor): If the loop bound has not been set,
      	split the allocation into a static part and a dynamic part.  Set
      	loop->to to the bounds for static part before allocating the
      	temporary.  Adjust call to gfc_trans_array_constructor_value.
      	(gfc_conv_loop_setup): Allow any constructor to determine the
      	loop bounds.  Check whether the constructor has a dynamic size
      	and prefer to use something else if so.  Expect the loop bound
      	to be set later.  Adjust call to gfc_trans_allocate_temp_array.
      	* trans-expr.c (gfc_conv_function_call): Adjust another call here.
      
      From-SVN: r104073
      Richard Sandiford committed
    • re PR c++/23180 (Segfault on const initializer with bogus pointer arithmetics) · 84bb243d
              PR c++/23180
              * g++.dg/init/pr23180-1.C: New test.
              * g++.dg/init/pr23180-2.C: New test.
      
      From-SVN: r104070
      Josh Conner committed
    • re PR c++/23180 (Segfault on const initializer with bogus pointer arithmetics) · d047a201
              PR c++/23180
              * expr.c (expand_expr_addr_expr_1): Don't invoke
              expand_simple_binop for EXPAND_INITIALIZER.
      
      From-SVN: r104069
      Josh Conner committed
    • re PR debug/23190 (debug info omitted for uninitialized variables (stabs)) · db5f8b93
              PR debug/23190
              * toplev.c (wrapup_global_declaration_1): Split out ...
              (wrapup_global_declaration_2): ... from ...
              (wrapup_global_declarations): ... here.  Return bool.
              (check_global_declaration_1): Split out ...
              (check_global_declarations): from here.
              (emit_debug_global_declarations): New.
              * toplev.h (wrapup_global_declaration_1, wrapup_global_declaration_2,
              check_global_declaration_1, emit_debug_global_declarations): Declare.
              * c-decl.c (c_write_global_declarations_1): Don't create a vector
              of decls.  Call wrapup_global_declaration_1,
              wrapup_global_declaration_2, check_global_declaration_1 directly.
              (c_write_global_declarations_2): New.
              (ext_block): New.
              (c_write_global_declarations): Call c_write_global_declarations_2.
              * langhooks.c (write_global_declarations): Call
              emit_debug_global_declarations.
              * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Don't
              remove decls that have DECL_RTL_SET_P.
              * passes.c (rest_of_decl_compilation): Invoke
              cgraph_varpool_finalize_decl for all but functions.
      cp/
              * decl.c (wrapup_globals_for_namespace): Call
              emit_debug_global_declarations.
              * decl2.c (cp_finish_file): Likewise.
      
      From-SVN: r104065
      Richard Henderson committed
    • 19990905-0.f: Remove XFAIL... · 41306174
      2005-09-09  Paul Thomas  <pault@gcc.gnu.org>
      
      	* gfortran.dg/g77/19990905-0.f: Remove XFAIL, rearrange
      	equivalences and add comment to connect the test with
      	the PR. - forgotten in previous.
      
      From-SVN: r104061
      Paul Thomas committed
    • re PR fortran/18878 ([4.0 only] erronous error message on vaild USE statement) · 30aabb86
      2005-09-09  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/18878
      	* module.c (find_use_name_n): Based on original
      	find_use_name. Either counts number of use names for a
      	given real name or returns use name n.
      	(find_use_name, number_use_names): Interfaces to the
      	function find_use_name_n.
      	(read_module): Add the logic and calls to these functions,
      	so that mutiple reuses of the same real name are loaded.
      
      2005-09-09  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/22304
      	PR fortran/23270
      	PR fortran/18870
      	PR fortran/16511
      	PR fortran/17917
      	* gfortran.h: Move definition of BLANK_COMMON_NAME from trans-
      	common.c so that it is accessible to module.c. Add common_head
      	field to gfc_symbol structure. Add field for the equivalence
      	name AND new attr field, in_equivalence.
      	* match.c (gfc_match_common, gfc_match_equivalence): In loops
      	that flag common block equivalences, emit an error if the
      	common blocks are different, using sym->common_head as the
      	common block identifier. Ensure that symbols that are equivalence
      	associated with a common block are marked as being in_common.
      	* module.c (write_blank_common): New.
      	(write_common): Use unmangled common block name.
      	(load_equiv): New function ported from g95.
      	(read_module): Call load_equiv.
      	(write_equiv): New function ported from g95. Correct
      	string referencing for gfc functions. Give module
      	equivalences a unique name.
      	(write_module): Call write_equiv and write_blank_common.
      	* primary.c (match_variable) Old gfc_match_variable, made
      	static and third argument provided to indicate if parent
      	namespace to be visited or not.
      	(gfc_match_variable) New. Interface to match_variable.
      	(gfc_match_equiv_variable) New. Interface to match_variable.
      	* trans-common.c (finish_equivalences): Provide the call
      	to create_common with a gfc_common_header so that
      	module equivalences are made external, rather than local.
      	(find_equivalences): Ensure that all members in common block
      	equivalences are marked as used. This prevents the subsequent
      	call to this function from making local unions.
      	* trans-decl.c (gfc_generate_function_code): Move the call to
      	gfc_generate_contained_functions to after the call to
      	gfc_trans_common so the use-associated, contained common
      	blocks produce the correct references.
      	(gfc_create_module_variable): Return for equivalenced symbols
      	with existing backend declaration.
      
      2005-09-09  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/18878
      	* gfortran.dg/module_double_reuse.f90: New.
      
      2005-09-09  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/23270
      	PR fortran/22304
      	PR fortran/18870
      	PR fortran/17917
      	PR fortran/16511
      	* gfortran.dg/common_equivalence_1.f: New.
      	* gfortran.dg/common_equivalence_2.f: New.
      	* gfortran.dg/common_equivalence_3.f: New.
      	* gfortran.dg/contained_equivalence_1.f90: New.
      	* gfortran.dg/module_blank_common.f90: New.
      	* gfortran.dg/module_commons_1.f90: New.
      	* gfortran.dg/module_equivalence_1.f90: New.
      	* gfortran.dg/nested_modules_1.f90: New.
      	* gfortran.dg/g77/19990905-0.f: Remove XFAIL, rearrange
      	equivalences and add comment to connect the test with
      	the PR.
      
      From-SVN: r104060
      Paul Thomas committed
    • Daily bump. · 7afd4c37
      [[Split portion of a mixed commit.]]
      
      From-SVN: r104056.2
      GCC Administrator committed
  2. 08 Sep, 2005 14 commits
  3. 07 Sep, 2005 14 commits
  4. 06 Sep, 2005 4 commits