1. 09 Sep, 2005 24 commits
    • 2005-09-09 Thomas Koenig <Thomas.Koenig@online.de> · e27edcd4
      	gfortran.texi:  Document IOSTAT= specifier.
      
      From-SVN: r104104
      Thomas Koenig committed
    • re PR c++/22252 (pragma interface/implementation still break synthesized methods) · 1ef0df47
      	PR c++/22252
      	* decl.c (start_preparsed_function): Do not pay attention to
      	#pragma interface for implicitly-defined methods.
      	* decl2.c (cp_finish_file): Do not complain about uses of inline
      	functions that have bodies, even if we decided not to emit the
      	body in this translation unit.
      	* semantics.c (note_decl_for_pch): Do not mess with linkage.
      	(expand_or_defer_fn): Make inline, non-template functions COMDAT
      	at this point.
      
      	PR c++/22252
      	* g++.dg/ext/interface1.C: New test.
      	* g++.dg/ext/interface1.h: Likewise.
      	* g++.dg/ext/interface1a.cc: Likewise.
      
      From-SVN: r104103
      Mark Mitchell committed
    • gfortran.h: Add iomsg to gfc_open, gfc_close, gfc_filepos, gfc_inquire and gfc_dt. · 7aba8abe
      2005-09-09  Thomas Koenig  <Thomas.Koenig@online.de>
      
      	* gfortran.h:  Add iomsg to gfc_open, gfc_close, gfc_filepos,
      	gfc_inquire and gfc_dt.
      	* dump-parse-tree.c (gfc_show_code_node):  Add iomsg
      	for open, close, file positioning, inquire and namelist.
      	* io.c (io_tag):  Add tag_iomsg.
      	(resolve_tag): Add standards warning for iomsg.
      	(match_open_element):  Add iomsg.
      	(gfc_free_open):  Add iomsg.
      	(gfc_resolve_open):  Add iomsg.
      	(gfc_free_close):  Add iomsg.
      	(match_close_element):  Add iomsg.
      	(gfc_resolve_close):  Add iomsg.
      	(gfc_free_filepos):  Add iomsg.
      	(match_file_element):  Add iomsg.
      	(gfc_resolve_filepos):  Add iostat and iomsg.
      	(match-dt_element):  Add iomsg.
      	(gfc_free_dt):  Add iomsg.
      	(gfc_resolve_dt):  Add iomsg.
      	(gfc_free_inquire):  Add iomsg.
      	(match_inquire_element):  Add iomsg.
      	(gfc_resolve_inquire):  Add iomsg.
      	* trans_io.c:  Add ioparm_iomsg and ioparm_iomsg_len.
      	(gfc_build_io_library_fndecls):  Add iomsg as last field.
      	(gfc_trans_open):  Add iomsg.
      	(gfc_trans_close):  Add iomsg.
      	(build_fileos):  Call set_string for iomsg.
      	(gfc_trans_inquire):  Add iomsg.
      	(build_dt):  Add iomsg.
      
      2005-09-09  Thomas Koenig  <Thomas.Koenig@online.de>
      
      	* io/io.h:  Add iomsg as last field of st_parameter.
      	* runtime/error.c (generate_error):  If iomsg is present, copy
      	the message there.
      
      2005-09-09  Thomas Koenig  <Thomas.Koenig@online.de>
      
      	* gfortran.dg/iomsg_1.f90:  New test case.
      
      From-SVN: r104102
      Thomas Koenig committed
    • re PR tree-optimization/23509 (ICE with ivopts) · 2360a4c1
      	PR tree-optimization/23509
      	* tree-cfg.c (replace_uses_by): Use replace_exp.
      	* tree-ssa-loop-ivopts.c (get_ref_tag): Assert that dereferenced
      	pointers have name_mem_tag or type_mem_tag set.
      
      From-SVN: r104099
      Zdenek Dvorak committed
    • re PR libgcj/23182 (instanceof sometimes fails if compiled with -findirect-dispatch) · 8f096083
      2005-09-09  Andrew Haley  <aph@redhat.com>
      
              PR libgcj/23182
              * expr.c (pop_type_0): If the expected type is object or ptr
              (i.e. void*), return the type of the object we just popped from
              the stack.
      
      From-SVN: r104098
      Andrew Haley committed
    • Fix for 23180 also fixes 21135 - added to change description. · 70e9e3d6
      From-SVN: r104097
      Josh Conner committed
    • URLClassLoader.java (addURLImpl): Synchronize on the loader. · 13d7d874
      2005-09-08  Andrew Haley  <aph@redhat.com>
      
      	* java/net/URLClassLoader.java (addURLImpl): Synchronize on the
      	loader.
      	(toString): Likewise.
      
      From-SVN: r104095
      Andrew Haley committed
    • re PR libgcj/22084 (Divide_1 test case hangs) · ddef7173
      2005-09-08  Andrew Haley  <aph@redhat.com>
      
      	PR java/22084
      	* include/i386-signal.h (HANDLE_DIVIDE_OVERFLOW): Bump IP by 1 if
      	R/M field in instruction is 100.
      
      From-SVN: r104094
      Andrew Haley committed
    • tree-chrec.c (evolution_function_is_invariant_rec_p): Use CHREC_LEFT and… · 7ce7896c
      tree-chrec.c (evolution_function_is_invariant_rec_p): Use CHREC_LEFT and CHREC_RIGHT for accessing chrec components instead of...
      
      	* tree-chrec.c (evolution_function_is_invariant_rec_p): Use
      	CHREC_LEFT and CHREC_RIGHT for accessing chrec components instead
      	of wrongly accessing operands.
      
      From-SVN: r104093
      Sebastian Pop committed
    • Makefile.in (tree-chrec.o): Depends on SCEV_H. · 18aed06a
      	* Makefile.in (tree-chrec.o): Depends on SCEV_H.
      	* tree-chrec.c: Include tree-scalar-evolution.h.
      	(chrec_convert): Instantiate the base and step before calling
      	scev_probably_wraps_p that would fail on parametric evolutions.
      	Collect all the fails into a single section failed_to_convert,
      	print a diagnostic, and return chrec_dont_know instead of calling
      	fold_convert.
      	* tree-scalar-evolution.c (loop_closed_phi_def): New.
      	(instantiate_parameters_1): Avoid instantiation of loop closed ssa
      	phi nodes.
      	(scev_const_prop): Don't replace the definition of a loop closed ssa
      	phi node by itself, or by another loop closed ssa phi node.
      	* tree-ssa-loop-niter.c (scev_probably_wraps_p, convert_step): Check
      	that base and step are defined.
      
      From-SVN: r104092
      Sebastian Pop committed
    • debug.cc (iterator_base_mutex): Make static for internal linkage. · 35885ceb
      
      2005-09-09  Benjamin Kosnik  <bkoz@redhat.com>
                  Jakub Jelinek  <jakub@redhat.com>
      
      	* src/debug.cc (iterator_base_mutex): Make static for internal
      	linkage.
      	* src/locale_init.cc (locale_mutex): Same.
      	* src/mt_allocator.cc (freelist_mutex): Same.
      	* src/pool_allocator.cc (palloc_init_mutex): Same.
      
      Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
      
      From-SVN: r104090
      Benjamin Kosnik committed
    • re PR c++/23624 (ICE: internal compiler error: in invert_truthvalue, at fold-const.c:2697) · 3dac16bd
      2005-09-09  Richard Guenther  <rguenther@suse.de>
      
      	PR c++/23624
      	* fold-const.c (fold_ternary): Check truth_value_p before
      	calling invert_truthvalue.
      
      	* g++.dg/tree-ssa/pr23624.C: New testcase.
      
      From-SVN: r104083
      Richard Guenther committed
    • Makefile.in (LIBGCC_DEPS): Add libgcc2.h. · dcfae47c
      * Makefile.in (LIBGCC_DEPS): Add libgcc2.h.
      * libgcc2.c (__clz_tab[], __popcount_tab[]): Set the fixed dimension of
        these arrays.
      * libgcc2.h (__clz_tab[], __popcount_tab[]): Add exports of these arrays.
      * longlong.h: Only provide a prototype for the __clz_tab[] array if this
        header has not been included from libgcc2.h.
      * config/stormy16/stormy16-lib2.c: Include libgcc2.h rather than defining
        own types.
        Provide prototypes for exported functions.
        Use the __clz_tab[] and __popcount_tab[] arrays provided by libgcc2.c.
      
      From-SVN: r104081
      Nick Clifton committed
    • * match.h (gfc_match_equiv_variable): Declare. · a174b2f8
      From-SVN: r104080
      Richard Sandiford committed
    • Fix filenames in last entry. · 9b79bf13
      From-SVN: r104078
      Richard Sandiford committed
    • re PR fortran/19239 ([4.0 only] gfortran ICE on vector subscript expressions) · 7a70c12d
      	PR fortran/19239
      	* Makefile.in (fortran/trans-expr.o): Depend on dependency.h.
      	* dependency.h (gfc_ref_needs_temporary_p): Declare.
      	* dependency.c (gfc_ref_needs_temporary_p): New function.
      	(gfc_check_fncall_dependency): Use it instead of inlined check.
      	By so doing, take advantage of the fact that character substrings
      	within an array reference also need a temporary.
      	* trans.h (GFC_SS_VECTOR): Adjust comment.
      	* trans-array.c (gfc_free_ss): Remove GFC_SS_VECTOR case.
      	(gfc_set_vector_loop_bounds): New function.
      	(gfc_add_loop_ss_code): Call it after evaluating the subscripts of
      	a GFC_SS_SECTION.  Deal with the GFC_SS_VECTOR case by evaluating
      	the vector expression and caching its descriptor for use within
      	the loop.
      	(gfc_conv_array_index_ref, gfc_conv_vector_array_index): Delete.
      	(gfc_conv_array_index_offset): Handle scalar, vector and range
      	dimensions as separate cases of a switch statement.  In the vector
      	case, use the loop variable to calculate a vector index and use the
      	referenced element as the dimension's index.  Perform bounds checking
      	on this final index.
      	(gfc_conv_section_upper_bound): Return null for vector indexes.
      	(gfc_conv_section_startstride): Give vector indexes a start value
      	of 0 and a stride of 1.
      	(gfc_conv_ss_startstride): Adjust for new GFC_SS_VECTOR representation.
      	(gfc_conv_expr_descriptor): Expand comments.  Generalize the
      	handling of the !want_pointer && !direct_byref case.  Use
      	gfc_ref_needs_temporary_p to decide whether the variable case
      	needs a temporary.
      	(gfc_walk_variable_expr): Handle DIMEN_VECTOR by creating a
      	GFC_SS_VECTOR index.
      	* trans-expr.c: Include dependency.h.
      	(gfc_trans_arrayfunc_assign): Fail if the target needs a temporary.
      
      2005-09-09  Richard Sandiford  <richard@codesourcery.com>
      
      	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: r104077
      Richard Sandiford committed
    • 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 2 commits