1. 12 Sep, 2005 5 commits
    • * objcp-lang.c (objcxx_init_ts): Remove ALIAS_DECL. · 7928df2e
      From-SVN: r104165
      Richard Henderson committed
    • [multiple changes] · 2f9f6cef
      
      2005-09-11  Benjamin Kosnik  <bkoz@redhat.com>
      
      	PR libstdc++/19265
      	PR libstdc++/22309
      	* include/ext/mt_allocator.h
      	(__gnu_cxx::__create_handler): Remove.
      	(__pool<true>::_M_destroy_thread_key): Compatibility only.
      	(__pool<true>::_M_initialize(__destroy): Same.
      	(__pool<true>::_M_initialize): New.
      	(__pool<true>::_M_initialize_once): Nothing fancy.
      	(__pool<true>::_M_once): Remove.
      	(__common_pool): New.
      	(__common_pool_base): New.
      	(__per_type_pool): New.
      	(__per_type_pool_base): New.
      	* src/mt_allocator.cc: Same.
      	* config/linker-map.gnu (__pool<true>::_M_initialize()): Add.
      
      2005-09-11  Jakub Jelinek  <jakub@redhat.com>
      
      	PR libstdc++/19265
      	PR libstdc++/22309
      	* src/mt_allocator.cc (__gnu_internal::freelist_mutex): Make static.
      	(__gnu_internal::__freelist): New type.
      	(__gnu_internal::freelist): New variable.
      	(__gnu_internal::_M_destroy_thread_key): New function.
      	(__gnu_cxx::__pool<true>::_M_destroy): Don't delete
      	_M_thread_freelist_initial.
      	(__gnu_cxx::__pool<true>::_M_initialize): Make argument nameless.
      	Don't use _M_thread_freelist and _M_thread_freelist_initial
      	__pool<true> fields, instead use __gnu_internal::freelist fields, call
      	gthread_key_create just once.  Use
      	__gnu_internal::_M_destroy_thread_key as key destructor.
      	(__gnu_cxx::__pool<true>::_M_get_thread_id): Store size_t id
      	rather than _Thread_record* in the thread specific value.  Don't
      	use _M_thread_freelist __pool<true> field, instead use
      	__gnu_internal::freelist fields.
      	(__gnu_cxx::__pool<true>::_M_destroy_thread_key): Do nothing.
      
      2005-09-11  Benjamin Kosnik  <bkoz@redhat.com>
                  Jakub Jelinek  <jakub@redhat.com>
      
      	PR libstdc++/19265
      	PR libstdc++/22309
      	* testsuite/testsuite_shared.cc: New.
      	* testsuite/lib/dg-options.exp (dg-require-sharedlib): New.
      	* testsuite/lib/libstdc++.exp (libstdc++_init): Look for shared
      	library, and set v3-sharedlib based on this.
      	(check_v3_target_sharedlib): New.
      	(proc v3-build_support): Build shared objects.
      	* testsuite/ext/mt_allocator/22309_thread.cc: New, use above.
      
      From-SVN: r104161
      Benjamin Kosnik committed
    • decl2.c (build_anon_union_vars): Copy attributes from the base addr. · 56b4ea3d
              * decl2.c (build_anon_union_vars): Copy attributes from the base addr.
              * pt.c (tsubst_decl): Substitute in DECL_VALUE_EXPR.
      
              * g++.dg/other/error8.C: Update expected diagnostic text.
      
      From-SVN: r104160
      Richard Henderson committed
    • rs6000.c (get_next_active_insn): Rewrite using CALL_P... · f489aff8
      	* config/rs6000/rs6000.c (get_next_active_insn): Rewrite using
      	CALL_P, JUMP_P and NONJUMP_INSN_P, so that barriers and labels
      	are omitted.  Exclude stack_tie insn too.
      
      From-SVN: r104159
      Alan Modra committed
    • Daily bump. · e7126cc5
      [[Split portion of a mixed commit.]]
      
      From-SVN: r104147.2
      GCC Administrator committed
  2. 11 Sep, 2005 7 commits
    • re PR rtl-optimization/23098 (store of 0.0 to float) · 8308679f
              PR rtl-optimization/23098
              * config/rs6000/predicates.md (easy_fp_constant): SFmode constant
              0.0f is easy.
              * config/rs6000/rs6000.md (movdf splitter): Use
              const_double_operand predicate for TARGET_POWERPC64.
              * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Expand
              SYMBOL_REF method to ABI_V4.
      
              * config/rs6000/altivec.md (build_vector_mask_for_load): Use
              replace_equiv_address.
              * config/rs6000/rs6000.c (rs6000_emit_eh_reg_restore): Mark MEM as
              rs6000_sr_alias_set and MEM_NOTRAP.
              (rs6000_aix_emit_builtin_unwind_init): Use gen_frame_mem().
      
      From-SVN: r104145
      David Edelsohn committed
    • tree.c (contains_placeholder_p): Properly handle CALL_EXPR again. · 4c223d6a
      	* tree.c (contains_placeholder_p) <tcc_expression>: Properly
      	handle CALL_EXPR again.
      
      From-SVN: r104144
      Eric Botcazou committed
    • re PR libfortran/19872 ([4.0 only] closed and re-opened file not overwriten) · 91002f1b
      	PR libfortran/19872
      	* gfortran.dg/overwrite_1.f: New test.
      
      From-SVN: r104143
      Francois-Xavier Coudert committed
    • re PR libfortran/20179 (cannot mix C and Fortran I/O) · b65b81f9
      	PR libfortran/20179
      	* io/unix.c (is_preconnected): Add function to test if a stream
      	corresponds to a preconnected unit.
      	* io/io.h: Add prototype for is_preconnected.
      	* io/transfer.c (data_transfer_init): Do not truncate
      	preconnected units.
      
      From-SVN: r104141
      Francois-Xavier Coudert committed
    • re PR libstdc++/23781 (Implicit conversion from NULL to list<T>::iterator) · e182017e
      2005-09-11  Paolo Carlini  <pcarlini@suse.de>
      
      	PR libstdc++/23781
      	* include/bits/stl_list.h (_List_iterator<>::
      	_List_iterator(_List_node_base*), _List_const_iterator<>::
      	_List_const_iterator(const _List_node_base*)): Make explicit.
      	(list<>::begin(), list<>::end(), list<>::pop_back()): Adjust
      	consistently.
      	* include/bits/list.tcc (list<>::insert, list<>::erase): Adjust
      	consistently.
      	* include/bits/stl_tree.h (_Rb_tree_iterator<>::
      	_Rb_tree_iterator(_Link_type), _Rb_tree_const_iterator<>::
      	_Rb_tree_const_iterator(_Link_type)): Make explicit.
      	(_Rb_tree<>::begin(), _Rb_tree<>::end()): Adjust consistently.
      	* include/ext/slist (_Slist_iterator<>::_Slist_iterator(_Node*)):
      	Make explicit.
      	(slist<>::erase(iterator), slist<>::erase(iterator, iterator)):
      	Adjust consistently.
      	* include/tr1/hashtable (hashtable_iterator<>::
      	hashtable_iterator(hash_node<>**)): Make explicit.
      	* testsuite/23_containers/list/23781.cc: New.
      	* testsuite/23_containers/map/23781.cc: Likewise.
      	* testsuite/23_containers/multimap/23781.cc: Likewise.
      	* testsuite/23_containers/multiset/23781.cc: Likewise.
      	* testsuite/23_containers/set/23781.cc: Likewise.
      	* testsuite/ext/slist/23781.cc: Likewise.
      	* testsuite/tr1/6_containers/unordered/23781.cc: Likewise.
      	* testsuite/23_containers/map/operators/1_neg.cc: Adjust dg-error
      	line numbers.
      	* testsuite/23_containers/set/operators/1_neg.cc: Likewise.
      
      	* include/tr1/array (array<>::begin(), array<>::end()): Adjust
      	stylistically for consistency with the other containers.
      
      From-SVN: r104139
      Paolo Carlini committed
    • * arm/predicates.md (alignable_memory_operand): Delete. · 2347f5c9
      From-SVN: r104138
      Richard Earnshaw committed
    • Daily bump. · c6fbca45
      [[Split portion of a mixed commit.]]
      
      From-SVN: r104133.2
      GCC Administrator committed
  3. 10 Sep, 2005 6 commits
  4. 09 Sep, 2005 22 commits
    • 20010124-1.c: Removed and split into two new files which are ... · 15336b9e
      2005-09-09  David Daney <ddaney@avtrex.com>
      
      	* gcc.c-torture/execute/20010124-1.c:  Removed and split into two new
      	files which are ...
      	* gcc.c-torture/execute/builtins/20010124-1: ... here and ...
      	* gcc.c-torture/execute/builtins/20010124-1-lib.c: ... here.
      
      From-SVN: r104116
      David Daney committed
    • parser.c (cp_parser_translation_unit): Simplify. · a30efae8
              * parser.c (cp_parser_translation_unit): Simplify.  The while-block
              was actually executed at most once.
      
      From-SVN: r104115
      Gabriel Dos Reis committed
    • * gfortran.dg/iostat_2.f90: New test. · 4f886942
      From-SVN: r104110
      Francois-Xavier Coudert committed
    • re PR libfortran/23784 (close doesn't reset ioparm on error exit) · e0fd73d4
      	PR libfortran/23784
      	* io/close.c (st_close): Call library_end even in case of error.
      
      From-SVN: r104108
      Francois-Xavier Coudert committed
    • dbxout.c: Include expr.h. · 9bfa80fb
              * dbxout.c: Include expr.h.
              (dbxout_global_decl): Don't suppress for DECL_RTL unset.
              (dbxout_symbol): Handle DECL_VALUE_EXPR.
              * Makefile.in (dbxout.o): Add EXPR_H.
      cp/
              * cp-tree.def (ALIAS_DECL): Remove.
              * cp-lang.c (cp_init_ts): Remove support for it.
              * error.c (dump_decl): Likewise.
              * name-lookup.c (pushdecl): Likewise.
              * semantics.c (finish_id_expression): Likewise.
              * decl2.c (build_anon_union_vars): Use a VAR_DECL with
              DECL_VALUE_EXPR instead.
      
      From-SVN: r104106
      Richard Henderson committed
    • 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