Commit Graph

83748 Commits

Author SHA1 Message Date
Alexandre Oliva
e9705dc5e5 re PR tree-optimization/33572 (wrong code with -O)
gcc/ChangeLog:
PR tree-optimization/33572
* tree-cfg.c (verify_stmts): Check for missing PHI defs.
* tree-inline.c (update_ssa_across_eh_edges): Renamed to...
(update_ssa_across_abnormal_edges): ... this.  Set slots in the
return PHI node.
(copy_edges_for_bb): Handle nonlocal label edges.
(make_nonlocal_label_edges): Deleted.
(optimize_inline_calls): Don't call it.
gcc/testsuite/ChangeLog:
PR tree-optimization/33572
* g++.dg/torture/pr33572.C: New.

From-SVN: r129051
2007-10-06 11:43:56 +00:00
Tobias Schlüter
ac5ba37373 re PR fortran/25076 (FORALL triplet subscript must not reference any index-name)
PR fortran/25076
fortran/
* resolve.c (gfc_find_forall_index): Move towards top,
renaming to ...
(find_forall_index): ... this.  Add check for NULL expr.
(resolve_forall_iterators): Verify additional constraint.
(resolve_forall): Remove checks obsoleted by new code in
resolve_forall_iterators.
testsuite/
* gfortran.dg/forall_11.f90: New.

From-SVN: r129050
2007-10-06 10:55:30 +02:00
Benjamin Kosnik
6116ca65dd Fixes for --disable-libstdcxx-pch.
2007-10-05  Benjamin Kosnik  <bkoz@redhat.com>

	Fixes for --disable-libstdcxx-pch.
	* include/ext/rc_string_base.h: Include stl_iterator_base_funcs.h.
	* include/ext/vstring_util.h: Include stl_iterator.h and
	numeric_traits.h.
	* include/tr1/functional: Include new.
	* testsuite/util/testsuite_api.h: Include exception.
	* testsuite/lib/libstdc++.exp (libstdc++_init): Set
	PCH_CXXFLAGS via cxxpchflags.

	* testsuite/25_algorithms/binary_search/requirements/
	explicit_instantiation/2.cc: Same.: Fix includes.
	* testsuite/25_algorithms/count_if/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/equal_range/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/find_end/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/find_first_of/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/find_if/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/for_each/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/includes/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/inplace_merge/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/lexicographical_compare/
	requirements/explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/lower_bound/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/make_heap/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/max_element/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/max/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/merge/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/min_element/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/min/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/next_permutation/
	requirements/explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/nth_element/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/partial_sort_copy/
	requirements/explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/partial_sort/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/partition/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/pop_heap/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/prev_permutation/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/push_heap/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/random_shuffle/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/remove_copy_if/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/remove_if/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/replace_copy_if/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/replace_if/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/search_n/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/search/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/set_difference/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/set_intersection/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/set_symmetric_difference/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/set_union/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/sort_heap/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/sort/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/stable_partition/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/stable_sort/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/transform/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/unique_copy/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/unique/requirements/
	explicit_instantiation/2.cc: Same.
	* testsuite/25_algorithms/upper_bound/requirements/
	explicit_instantiation/2.cc: Same.

	* testsuite/25_algorithms/remove/requirements/
	explicit_instantiation/pod.cc: Provide a hint to the compiler.

From-SVN: r129049
2007-10-06 03:06:37 +00:00
Paolo Carlini
f63bc637f6 moveable.cc: Remove dg-require-rvalref.
2007-10-05  Paolo Carlini  <pcarlini@suse.de>

	* testsuite/23_containers/map/moveable.cc: Remove dg-require-rvalref.
	* testsuite/23_containers/multimap/moveable.cc: Likewise.
	* testsuite/23_containers/set/moveable.cc: Likewise. 
	* testsuite/23_containers/multiset/moveable.cc: Likewise.
	* testsuite/23_containers/deque/moveable.cc: Likewise. 
	* testsuite/23_containers/list/moveable.cc: Likewise. 
	* testsuite/23_containers/vector/moveable.cc: Likewise. 
	* include/std/utility: Use _GLIBCXX_BEGIN_NAMESPACE.

2007-10-05  Paolo Carlini  <pcarlini@suse.de>
	    Chris Jefferson  <chris@bubblescope.net>

	* include/bits/stl_iterator.h (class move_iterator,
	make_move_iterator): Add.

Co-Authored-By: Chris Jefferson <chris@bubblescope.net>

From-SVN: r129048
2007-10-06 02:33:12 +00:00
GCC Administrator
02c9a7a7fc Daily bump.
From-SVN: r129045
2007-10-06 00:17:36 +00:00
Hans-Peter Nilsson
3913862e3c * gthr-single.h: Revert last change.
From-SVN: r129040
2007-10-05 22:02:19 +00:00
Michael Matz
1a309dfb7a re PR middle-end/33667 (RTL sharing with divmod)
gcc/
 PR middle-end/33667
 * lower-subreg.c (decompose_multiword_subregs): Use
 validate_unshare_change().

testsuite/
 * gcc.dg/pr33667.c: New testcase.

From-SVN: r129038
2007-10-05 17:56:52 +00:00
Peter Bergner
b4da855a9e ra-conflict.c: Include "sparseset.h".
* ra-conflict.c: Include "sparseset.h".
	(conflicts): Change to HOST_WIDEST_FAST_INT.
	(allocnos_live): Redefine variable as a sparseset.
	(SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE, GET_ALLOCNO_LIVE): Delete macros.
	(allocno_row_words): Removed global variable.
	(partial_bitnum, max_bitnum, adjacency_pool, adjacency): New variables.
	(CONFLICT_BITNUM, CONFLICT_BITNUM_FAST): New defines.
	(conflict_p, set_conflict_p, set_conflicts_p): New functions.
	(record_one_conflict_between_regnos): Cache allocno values and reuse.
	Use set_conflict_p.
	(record_one_conflict): Update uses of allocnos_live to use
	the sparseset routines.  Use set_conflicts_p.
	(mark_reg_store): Likewise.
	(set_reg_in_live): Likewise.
	(global_conflicts): Update uses of allocnos_live.
	Use the new adjacency list to visit an allocno's neighbors
	rather than iterating over all possible allocnos.
	Call set_conflicts_p to setup conflicts rather than adding
	them manually.
	* global.c: Comments updated.  
	(CONFLICTP): Delete define.
	(regno_compare): New function.  Add prototype.
	(global_alloc): Sort the allocno to regno mapping according to
	which basic blocks the regnos are referenced in.  Modify the
	conflict bit matrix to a compressed triangular bitmatrix.
	Only allocate the conflict bit matrix and adjacency lists if
	we are actually going to allocate something.
	(expand_preferences): Use conflict_p.  Update uses of allocnos_live.
	(prune_preferences): Use the FOR_EACH_CONFLICT macro to visit an
	allocno's neighbors rather than iterating over all possible allocnos.
	(mirror_conflicts): Removed function.
	(dump_conflicts): Iterate over regnos rather than allocnos so
	that all dump output will be sorted by regno number.
	Use the FOR_EACH_CONFLICT macro.
	* ra.h: Comments updated.
	(conflicts): Update prototype to HOST_WIDEST_FAST_INT.
	(partial_bitnum, max_bitnum, adjacency, adjacency_pool): Add prototypes.
	(ADJACENCY_VEC_LENGTH, FOR_EACH_CONFLICT): New defines.
	(adjacency_list_d, adjacency_iterator_d): New types.
	(add_neighbor, adjacency_iter_init, adjacency_iter_done,
	adjacency_iter_next, regno_basic_block): New static inline functions.
	(EXECUTE_IF_SET_IN_ALLOCNO_SET): Removed define.
	(conflict_p): Add function prototype.
	* sparseset.h, sparseset.c: New files.
	* Makefile.in (OBJS-common): Add sparseset.o.
	(sparseset.o): New rule.

From-SVN: r129037
2007-10-05 12:55:18 -05:00
Richard Guenther
6aa12f4ffb re PR middle-end/33666 (Type verification failure with pointer to long long conversion)
2007-10-05  Richard Guenther  <rguenther@suse.de>

	PR middle-end/33666
	* fold-const.c (fold_unary): Do not fold (long long)(int)ptr
	to (long long)ptr.

	* gcc.dg/pr33666.c: New testcase.

From-SVN: r129036
2007-10-05 16:33:25 +00:00
Michael Matz
1596d61e6e re PR inline-asm/33600 (Breakage caused by the fix to PR33552)
gcc/
 PR inline-asm/33600
 * function.c (match_asm_constraints_1): Check for input
 being used in the outputs.

testsuite/
 * gcc.target/i386/pr33600.c: New testcase.

From-SVN: r129035
2007-10-05 15:36:16 +00:00
Francois-Xavier Coudert
ca39e6f200 gfortran.h (gfc_get_data_variable, [...]): Move to decl.c.
* gfortran.h (gfc_get_data_variable, gfc_get_data_value,
	gfc_get_data): Move to decl.c.
	(global_used): Rename into gfc_global_used.
	(gfc_formalize_init_value, gfc_get_section_index,
	gfc_assign_data_value, gfc_assign_data_value_range,
	gfc_advance_section): Move to data.h.
	(gfc_set_in_match_data): Remove.
	* decl.c (gfc_get_data_variable, gfc_get_data_value,
	gfc_get_data): Move here.
	(gfc_set_in_match_data): Rename into set_in_match_data.
	(gfc_match_data): Likewise.
	(add_global_entry): Rename global_used into gfc_global_used.
	* data.c: Include data.h.
	* trans.h (gfc_todo_error): Remove.
	* trans-array.c (gfc_trans_array_constructor,
	gfc_conv_ss_startstride, gfc_conv_loop_setup): Change
	gfc_todo_error into assertions.
	* resolve.c (resolve_global_procedure): Rename global_used into
	gfc_global_used.
	* parse.c (gfc_global_used, parse_module, add_global_procedure,
	add_global_program): Likewise.
	* trans-intrinsic.c (gfc_walk_intrinsic_function): Rename
	global_used into gfc_global_used.
	* Make-lang.in: Add dependencies on fortran/data.h.
	* data.h: New file.

From-SVN: r129034
2007-10-05 12:33:07 +00:00
Richard Guenther
b691d4b02a tree-cfg.c (verify_gimple_expr): Accept OBJ_TYPE_REF.
2007-10-05  Richard Guenther  <rguenther@suse.de>

	* tree-cfg.c (verify_gimple_expr): Accept OBJ_TYPE_REF.

	* g++.dg/tree-ssa/obj-type-ref.C: New testcase.

From-SVN: r129033
2007-10-05 12:20:18 +00:00
Richard Sandiford
1c0f477776 Add NOMIPS16 to last commit (will be in gcc-patches@ message).
From-SVN: r129032
2007-10-05 08:39:58 +00:00
Richard Sandiford
96f38a34e9 re PR target/33635 (Bootstrap broken on mips-sgi-irix6.5)
gcc/
	PR target/33635
	* config/mips/mips.c (mips_register_move_cost): Rewrite to use
	subset checks.  Make the cost of FPR -> FPR moves depend on
	mips_mode_ok_for_mov_fmt_p.

gcc/testsuite/
	PR target/33635
	* gcc.target/mips/pr33635-1.c: New test.

From-SVN: r129031
2007-10-05 08:34:01 +00:00
Doug Kwan
afd82ef5ab gthr-posix.h (__gthread_cond_broadcast, [...]): Add to extend interface for POSIX conditional variables.
2007-09-13  Doug Kwan  <dougkwan@google.com>

        * gcc/gthr-posix.h (__gthread_cond_broadcast, __gthread_cond_wait,
        __gthread_cond_wait_recursive): Add to extend interface for POSIX
        conditional variables. (__GTHREAD_HAS_COND): Macro defined to signify
        support of conditional variables.
        * gcc/gthr-posix95.h (__gthread_cond_broadcast, __gthread_cond_wait,
        __gthread_cond_wait_recursive): Add to extend interface for POSIX
        conditional variables. (__GTHREAD_HAS_COND): Macro defined to signify
        support of conditional variables.
        * gcc/gthr-single.h (__gthread_cond_broadcast, __gthread_cond_wait,
        __gthread_cond_wait_recursive): Add to extend interface for POSIX
        conditional variables.
        * gcc/gthr.h: Update comments to document new interface.
        * libstdc++-v3/include/ext/concurrent.h (class __mutex,
        class __recursive_mutex): Add new method gthread_mutex to access
        inner gthread mutex.
        [__GTHREAD_HAS_COND] (class __concurrence_broadcast_error,
        class __concurrence_wait_error, class __cond): Add.
        * guard.cc (recursive_push, recursive_pop): Delete.
        (init_in_progress_flag, set_init_in_progress_flag): Add to
        replace recursive_push and recursive_pop.
        (throw_recursive_init_exception): Add.
        (acquire, __cxa_guard_acquire, __cxa_guard_abort and
        __cxa_guard_release): [__GTHREAD_HAS_COND] Use a conditional
        for synchronization of static variable initialization.
        The global mutex is only held briefly when guards are
        accessed. [!__GTHREAD_HAS_COND] Fall back to the old code,
        which deadlocks.
        * testsuite/thread/guard.cc: Add new test. It deadlocks with the
        old locking code in libstdc++-v3/libsup++/guard.cc.

From-SVN: r129030
2007-10-05 01:35:46 -04:00
GCC Administrator
90e965bb84 Daily bump.
From-SVN: r129028
2007-10-05 00:17:11 +00:00
Geoffrey Keating
79f4ede464 cgraphunit.c (cgraph_build_static_cdtor): Don't set DECL_IGNORED_P.
* cgraphunit.c (cgraph_build_static_cdtor): Don't set
	DECL_IGNORED_P.

From-SVN: r129024
2007-10-04 21:24:03 +00:00
Anatoly Sokolov
8819eb78ee * config/avr/avr.c (expand_epilogue): Don't set RTX_FRAME_RELATED_P.
From-SVN: r129023
2007-10-05 01:18:12 +04:00
Thomas Koenig
815cd40643 re PR fortran/33539 (Too much noise for zero-length character strings)
2007-10-04  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/33539
	* resolve.c: Only warn if the string length is
	less than zero.

2007-10-04  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/33539
	* zero_length_2.f90:  Omit warning for zero-length string.
	* repeat_2.f90:  Likewise.
	* repeat_4.f90:  Likewise.
	* char_length_2.f90:  Likewise.

From-SVN: r129022
2007-10-04 20:26:24 +00:00
Seongbae Park
789e4e2825 MAINTAINERS (Register allocation reviewer): Add myself.
2006-10-04  Seongbae Park <seongbae.park@gmail.com>

	* MAINTAINERS (Register allocation reviewer): Add myself.

From-SVN: r129021
2007-10-04 18:58:49 +00:00
Jason Merrill
42f02385bd re PR c++/20416 (Incorrect lifetime for temporary with static const reference)
PR c++/20416
        * call.c (initialize_reference): Handle local static reference
        temps properly.

From-SVN: r129020
2007-10-04 13:58:07 -04:00
Jerry DeLisle
37b22c8283 re PR libfortran/33253 (namelist: reading back a string with apostrophe)
2007-10-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/33253
	* gfortran.dg/namelist_39.f90: Revise to use long names.

From-SVN: r129018
2007-10-04 16:02:42 +00:00
Jerry DeLisle
fed2a4733b Fix ChangeLog.
From-SVN: r129017
2007-10-04 15:59:54 +00:00
Jerry DeLisle
808a2225f9 re PR libfortran/33253 (namelist: reading back a string with apostrophe)
2007-10-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/33253
	* io/list_read.c (read_character): Use line_buffer to scan ahead for
	object name or string when no delimiter is found.

From-SVN: r129016
2007-10-04 15:57:28 +00:00
H.J. Lu
d17cd69f66 re PR fortran/33646 (Gcc 4.3 revision 128954 failed tonto in SPEC CPU 2006)
2007-10-04  H.J. Lu  <hongjiu.lu@intel.com>

	PR fortran/33646
	* gfortran.dg/pr33646.f90: New file.

From-SVN: r129015
2007-10-04 08:39:11 -07:00
François-Xavier Coudert
34e366b39c re PR fortran/32021 (Fix,document,remove GFORTRAN_* environment variables)
PR libfortran/32021

	* runtime/environ.c (init_mem, show_mem, init_round, show_round,
	init_precision, show_precision, init_signal, show_signal): Remove.
	(variable_table): Remove GFORTRAN_MEM_INIT, GFORTRAN_MEM_CHECK,
	GFORTRAN_SIGHUP, GFORTRAN_SIGINT, GFORTRAN_FPU_ROUND and
	GFORTRAN_FPU_PRECISION.
	* libgfortran.h (options_t): Remove mem_check, fpu_round,
	fpu_precision, sighup, sigint, allocate_init_flag and
	allocate_init_value.

From-SVN: r129014
2007-10-04 15:18:48 +00:00
Paolo Carlini
78b36b70be [multiple changes]
2007-10-04  Paolo Carlini  <pcarlini@suse.de>

	* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
	Adjust dg-error line number.
	* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
	Likewise.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_2_neg.cc: Likewise.
	* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
	Adjust dg-error line number.
	* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
	Likewise.
	* testsuite/23_containers/deque/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/deque/requirements/dr438/
	constructor_2_neg.cc: Likewise.
	* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
	Adjust dg-error line number.
	* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
	Likewise.
	* testsuite/23_containers/list/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/list/requirements/dr438/
	constructor_2_neg.cc: Likewise.

2007-10-04  Chris Jefferson  <chris@bubblescope.net>
	    Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_list.h (list<>::list(list&&),
	list<>::operator=(list&&)): Add.
	(list<>::swap): Adjust.
	(swap(list&&, list& __y), swap(list&, list&& __y)): Add.
	* include/bits/stl_vector.h (vector<>::vector(vector&&),
	vector<>::operator=(vector&&)): Add.
	(vector<>::swap): Adjust.
	(swap(vector&&, vector& __y), swap(vector&, vector&& __y)): Add.
	* include/bits/stl_bvector.h (vector<>::vector(vector&&),
	vector<>::operator=(vector&&)): Add.
	(vector<>::swap): Adjust.
	* include/bits/stl_deque.h (deque<>::deque(deque&&),
	deque<>::operator=(deque&&)): Add.
	(deque<>::swap): Adjust.
	(swap(deque&&, deque& __y), swap(deque&, deque&& __y)): Add.
	* include/bits/stl_set.h (set<>::set(set&&),
	set<>::operator=(set&&)): Add.
	(set<>::swap): Adjust.
	(swap(set&&, set& __y), swap(set&, set&& __y)): Add.
	* include/bits/stl_map.h (map<>::map(map&&),
	map<>::operator=(map&&)): Add.
	(map<>::swap): Adjust.
	(swap(map&&, map& __y), swap(map&, map&& __y)): Add.
	* include/bits/stl_multiset.h (multiset<>::multiset(multiset&&),
	multiset<>::operator=(multiset&&)): Add.
	(smultiet<>::swap): Adjust.
	(swap(multiset&&, multiset& __y),
	swap(multiset&, multiset&& __y)): Add.
	* include/bits/stl_multimap.h (multimap<>::multimap(multimap&&),
	multimap<>::operator=(multimap&&)): Add.
	(multimap<>::swap): Adjust.
	(swap(multimap&&, multimap& __y),
	swap(multimap&, multimap&& __y)): Add.

2007-10-04  Paolo Carlini  <pcarlini@suse.de>

	Avoid copying some allocator objects.
	* include/bits/stl_list.h (_List_impl::_List_impl(),
	_List_base::_List_base(), list<>::list()): Add.
	* include/bits/stl_vector.h  (_Vector_impl::_Vector_impl(),
	_Vector_base::_Vector_base(), vector<>::vector()): Add.
	* include/bits/stl_bvector.h (_Bvector_impl::_Bvector_impl(),
	_Bvector_base::_Bvector_base(), vector<>::vector()): Add.
	* include/bits/stl_deque.h  (_Deque_impl::_Deque_impl(),
	_Deque_base::_Deque_base(), deque<>::deque()): Add.
	* include/bits/stl_tree.h (_Rb_tree_impl<>::_Rb_tree_impl(),
	_Rb_tree_impl<>::_M_initialize): Add.
	(_Rb_tree<>::_Rb_tree(const _Compare&, const allocator_type&),
	_Rb_tree(const _Rb_tree&)): Adjust.
	* include/bits/stl_set.h (set<>::set(),
	set(_InputIterator, _InputIterator)): Use _M_t default constructor. 
	* include/bits/stl_map.h (map<>::map(), set(_InputIterator,
	_InputIterator)): Use _M_t default constructor. 
	* include/bits/stl_multiset.h (multiset<>::multiset(),
	multiset(_InputIterator, _InputIterator)): Use _M_t default
	constructor. 
	* include/bits/stl_multimap.h (multimap<>::multimap(),
	multimap(_InputIterator, _InputIterator)): Use _M_t default
	constructor.

From-SVN: r129013
2007-10-04 15:12:34 +00:00
Francois-Xavier Coudert
187de1ed2b re PR fortran/33529 (Non-litteral CHARACTER kind values matching is wrong)
PR fortran/33529

	* decl.c (match_char_kind): New function.
	(match_char_spec): Use match_char_kind.

	* gfortran.dg/char_type_len_2.f90: Adjust error message.
	* gfortran.dg/char_decl_2.f90: New test.

From-SVN: r129012
2007-10-04 15:08:14 +00:00
Francois-Xavier Coudert
9e8a672069 re PR fortran/33502 (gfortran with .F suffix and -g3 option chokes on preprocessor syntax)
PR fortran/33502
	* scanner.c (gfc_advance_line): Call debug_hooks->end_source_file
	and debug_hooks->start_source_file when appropriate, and set
	dbg_emitted.
	(gfc_define_undef_line): New function.
	(load_file): Don't error out on #define and #undef lines.
	* parse.c (next_statement): Call gfc_define_undef_line.
	(gfc_parse_file): Call debug_hooks->start_source_file and
	debug_hooks->end_source_file for the main source file if
	required.
	* gfortran.h (gfc_linebuf): Add dbg_emitted field.
	(gfc_define_undef_line): New prototype.

From-SVN: r129011
2007-10-04 15:04:09 +00:00
Richard Guenther
7dc83ebc4a re PR middle-end/33641 (perlbmk gets type mismatch in pointer plus expression)
2007-10-04  Richard Guenther  <rguenther@suse.de>

	PR middle-end/33641
	* tree-cfg.c (verify_gimple_expr): Operand one of POINTER_PLUS_EXPR
	does not need to be of INTEGER_TYPE.
	(verify_gimple_2): New function split out from ...
	(verify_gimple_1): ... here.  ICE if there was an error during
	verification.

	* gcc.c-torture/compile/pr33641.c: New testcase.

From-SVN: r129010
2007-10-04 14:35:32 +00:00
H.J. Lu
fa33a305e2 Mention PR fortran/33646 in revision 129000.
From-SVN: r129008
2007-10-04 06:42:48 -07:00
Michael Matz
b88e26b0f9 re PR rtl-optimization/33653 (volatile memory access optimized away)
PR rtl-optimization/33653
        * gcc.dg/pr33653.c: New.

From-SVN: r129007
2007-10-04 13:35:06 +00:00
Michael Matz
0a64eecaf4 re PR rtl-optimization/33653 (volatile memory access optimized away)
PR rtl-optimization/33653
        * dce.c (deletable_insn_p_1): Use volatile_refs_p().
        * dse.c (scan_insn): Same.

From-SVN: r129006
2007-10-04 13:34:09 +00:00
Kazu Hirata
cf909b0d8c * config.gcc: Remove USE_GAS for m68k targets.
From-SVN: r129005
2007-10-04 12:59:49 +00:00
Richard Guenther
dc5752338b re PR tree-optimization/33627 (ICE in verify_stmts compiling abiword)
2007-10-04  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/33627
	* tree-gimple.h (canonicalize_cond_expr_cond): Declare.
	* tree-gimple.c (canonicalize_cond_expr_cond): New function,
	split out from ...
	* tree-ssa-forwprop.c (combine_cond_expr_cond): ... here.
	* tree-ssa-ifcombine.c (ifcombine_iforif): Use it.

	* g++.dg/torture/pr33627.C: New testcase.

From-SVN: r129004
2007-10-04 09:37:04 +00:00
Jason Merrill
65567efaa8 re PR c++/32470 (fvisibility=hidden without effect in some cases)
PR c++/32470
        * name-lookup.c (push_namespace_with_attrs): Fold back into...
        (push_namespace): Here.
        (handle_namespace_attrs): New fn for the attr code.
        (leave_scope): Don't pop_visibility.
        * name-lookup.h (struct cp_binding_level): Remove has_visibility.
        * parser.c (cp_parser_namespace_definition): Call
        handle_namespace_attrs and pop_visibility as appropriate.

From-SVN: r129003
2007-10-04 04:48:23 -04:00
Tobias Schlüter
dcdc83a185 re PR fortran/33626 (Parentheses get wrong kind during matching)
PR fortran/33626
fortran/
* resolve.c (resolve_operator): Always copy the type for
expressions in parentheses.
testsuite/
* gfortran.dg/parens_6.f90: New.

From-SVN: r129002
2007-10-04 09:34:38 +02:00
Anatoly Sokolov
40700892a0 avr.c (commands_in_file, [...]): Remove variables.
* config/avr/avr.c (commands_in_file, commands_in_prologues, 
	commands_in_epilogues): Remove variables.
	(avr_file_start): Remove unneded initializations of commands_in_file,
	commands_in_prologues and commands_in_epilogues variables.
	(avr_file_end): Remove dead code.

From-SVN: r129001
2007-10-04 10:51:38 +04:00
Paul Thomas
ee332da9f7 re PR fortran/33542 (gfortran does not detect ambigious specific names if they are the same as generic names)
2007-10-04  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/33542
	* interface.c (check_interface1): Revert patch of 2007-10-02.
	
2007-10-04  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/33542
	* gfortran.dg/ambiguous_specific_1.f90: Remove.

From-SVN: r129000
2007-10-04 04:45:41 +00:00
Jason Merrill
231d066518 re PR c++/11756 (ICE's when using typeof in template function parameter type declarations)
PR c++/11756
        * mangle.c (write_type) [TYPEOF_TYPE]: Just sorry.

From-SVN: r128999
2007-10-03 21:01:00 -04:00
GCC Administrator
a4510cfbba Daily bump.
From-SVN: r128997
2007-10-04 00:17:15 +00:00
Kazu Hirata
1fae2d8044 m68k.c (m68k_output_movem): Use the MOTOROLA if MOTOROLA is to true.
* config/m68k/m68k.c (m68k_output_movem): Use the MOTOROLA if
	MOTOROLA is to true.

From-SVN: r128994
2007-10-03 23:42:32 +00:00
Francois-Xavier Coudert
f7a13f717a re PR fortran/26682 (gfortran fails with -fwhole-program optimization)
PR fortran/26682
	* trans-decl.c (build_function_decl): Set "externally_visible"
	attribute on the MAIN program decl.

From-SVN: r128993
2007-10-03 21:27:39 +00:00
Alexandre Oliva
fea10e3647 decl.c (duplicate_decls): Preserve linkage flags for mere redeclarations of gnu_inline definitions.
2007-10-01  Alexandre Oliva  <aoliva@redhat.com>

	* decl.c (duplicate_decls): Preserve linkage flags for mere
	redeclarations of gnu_inline definitions.

	* g++.dg/ext/gnu-inline-global-redecl.C: New.

From-SVN: r128992
2007-10-03 21:38:01 +02:00
Richard Sandiford
0064fbe9b6 re PR target/33635 (Bootstrap broken on mips-sgi-irix6.5)
gcc/
	PR target/33635
	* config/mips/mips-protos.h (mips_split_64bit_move): Rename to...
	(mips_split_doubleword_move): ...this.
	* config/mips/mips.c (mips_subword): Extend to handle 64-bit words;
	use natural endianness for multi-format FPR values.
	(mips_split_64bit_move): Rename to...
	(mips_split_doubleword_move): ...this and extend to 64-bit words.
	Use move_doubleword_fpr* patterns for moves involving FPRs.
	(mips_save_reg): Update the call to mips_split_64bit_move.
	(mips_secondary_reload_class): Return NO_REGS for any reload of a
	nonzero constant into an FPR if the constant can be forced to memory.
	* config/mips/mips.md: Update the splitter calls to
	mips_split_64bit_move.
	(UNSPEC_LOAD_DF_LOW): Rename to...
	(UNSPEC_LOAD_LOW): ...this.
	(UNSPEC_LOAD_DF_HIGH): Rename to...
	(UNSPEC_LOAD_HIGH): ...this.
	(UNSPEC_STORE_DF_HIGH): Rename to...
	(UNSPEC_STORE_WORD): ...this.
	(SPLITF): New mode iterator.
	(HALFMODE): New mode attribute.
	(movtf): New expander.
	(*movtf_internal): New define_insn_and_split.
	(move_doubleword_fpr<mode>): New expander.
	(load_df_low, load_df_high, store_df_high, mthc1, mfhc1): Replace
	with...
	(load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
	(mfhc1<mode>): ...these more general patterns.

gcc/testsuite/
	PR target/33635
	* gcc.target/mips/mips.exp (setup_mips_tests): Set mips_isa_rev
	and mips_forced_be.
	(dg-mips-options): Handle -EL and -mel.  Make -mfp64 imply
	-mhard-float and a suitable ISA.  Improve handling of -mipsXrY
	options.
	* gcc.target/mips/fpr-moves-1.c: New test.
	* gcc.target/mips/fpr-moves-2.c: Likewise.
	* gcc.target/mips/fpr-moves-3.c: Likewise.
	* gcc.target/mips/fpr-moves-4.c: Likewise.
	* gcc.target/mips/fpr-moves-5.c: Likewise.
	* gcc.target/mips/fpr-moves-6.c: Likewise.
	* gcc.target/mips/mips32r2-mxhc1.c: Remove -march=mips32r2

From-SVN: r128991
2007-10-03 18:39:30 +00:00
Chris Jefferson
f5783e34f9 moveable.cc: New.
2007-10-03  Chris Jefferson  <chris@bubblescope.net>
	    Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/20_util/pair/moveable.cc: New. Merge from 
	libstdcxx_so_7-branch.
	* testsuite/23_containers/deque/capacity/moveable.cc: Same.
	* testsuite/23_containers/deque/cons/moveable.cc: Same.
	* testsuite/23_containers/deque/modifiers/moveable.cc: Same.
	* testsuite/23_containers/deque/moveable.cc: Same.
	* testsuite/23_containers/list/moveable.cc: Same.
	* testsuite/23_containers/map/moveable.cc: Same.
	* testsuite/23_containers/multimap/moveable.cc: Same.
	* testsuite/23_containers/multiset/moveable.cc: Same.
	* testsuite/23_containers/set/moveable.cc: Same.
	* testsuite/23_containers/vector/cons/moveable.cc: Same.
	* testsuite/23_containers/vector/modifiers/moveable.cc: Same.
	* testsuite/23_containers/vector/moveable.cc: Same.
	* testsuite/23_containers/vector/resize/moveable.cc: Same.
	* testsuite/25_algorithms/heap/moveable.cc: Same.
	* testsuite/25_algorithms/nth_element/moveable.cc: Same.
	* testsuite/25_algorithms/partial_sort/moveable.cc: Same.
	* testsuite/25_algorithms/partition/moveable.cc: Same.
	* testsuite/25_algorithms/remove_if/moveable.cc: Same.
	* testsuite/25_algorithms/remove/moveable.cc: Same.
	* testsuite/25_algorithms/reverse/moveable.cc: Same.
	* testsuite/25_algorithms/rotate/moveable.cc: Same.
	* testsuite/25_algorithms/sort/moveable.cc: Same.
	* testsuite/25_algorithms/swap_ranges/moveable.cc: Same.
	* testsuite/25_algorithms/unique/moveable.cc: Same.
	* testsuite/util/testsuite_rvalref.h: New.

	* testsuite/25_algorithms/equal/equal.cc: Move to...
	* testsuite/25_algorithms/equal/no_operator_ne.cc: ...this.
	* testsuite/25_algorithms/heap/heap.cc: Move to...
	* testsuite/25_algorithms/heap/1.cc: ...this.
	* testsuite/25_algorithms/lower_bound/lower_bound.cc: Move to...
	* testsuite/25_algorithms/lower_bound/no_operator_ne.cc: ...this.
	* testsuite/25_algorithms/partition/partition.cc: Move to...
	* testsuite/25_algorithms/partition/1.cc: ...this.
	* testsuite/25_algorithms/stable_partition/1.cc: ... and this.
	
	* testsuite/25_algorithms/search/1.cc: Update from merge.
	* testsuite/25_algorithms/search/check_type.cc: Same.

	* testsuite/lib/dg-options.exp (dg-require-rvalref): New.
	* testsuite/lib/libstdc++.exp (check_v3_target_rvalref): New.
	

Co-Authored-By: Benjamin Kosnik <bkoz@redhat.com>

From-SVN: r128990
2007-10-03 17:27:18 +00:00
Francois-Xavier Coudert
53f8671f97 * gfortran.dg/default_format_1.f90: XFAIL on all darwin targets.
From-SVN: r128989
2007-10-03 17:08:19 +00:00
Alexandre Oliva
92ddef6949 * cfgrtl.c (rtl_block_ends_with_call_p): Skip notes at the end.
From-SVN: r128988
2007-10-03 16:58:25 +00:00
Alexandre Oliva
02a4823b86 gcse.c (hash_scan_set): Insert set in insn before note at the end of basic block.
* gcse.c (hash_scan_set): Insert set in insn before note at
the end of basic block.

From-SVN: r128987
2007-10-03 16:57:21 +00:00
Sebastian Pop
05023ea487 re PR tree-optimization/33576 (segfault in extract_muldiv for cpu2006 benchmark)
2007-10-03  Sebastian Pop  <sebastian.pop@amd.com>

        PR tree-optimization/33576
        * testsuite/gcc.dg/tree-ssa/pr33576.c: New.
        * tree-loop-linear.c (linear_transform_loops): Call remove_iv.
        * lambda.h (lambda_loopnest_to_gcc_loopnest): New parameter.
        (remove_iv): Declared.
        * lambda-code.c (remove_iv): Not static.
        (lambda_loopnest_to_gcc_loopnest): New parameter remove_ivs.
        Don't remove ivs there, save ivs in the buffer.

From-SVN: r128986
2007-10-03 15:45:10 +00:00