Commit Graph

72559 Commits

Author SHA1 Message Date
Alan Modra
2c42e193fa re PR debug/24908 (ICE in dwarf2out for cpu2000 with -funroll-loops -fno-tree-copyrename)
PR debug/24908
	* dwarf2out.c (dwarf2out_frame_debug_expr): Don't assert that
	call_used_regs can't be used to save reg in another reg.

From-SVN: r108257
2005-12-09 10:13:40 +10:30
Jakub Jelinek
6d66414c17 re PR c++/19317 (removing a temporary return value when we cannot)
PR c++/19317
	* g++.dg/opt/pr19317-1.C: New test.
	* g++.dg/opt/pr19317-2.C: New test.
	* g++.dg/opt/pr19317-3.C: New test.

From-SVN: r108247
2005-12-08 22:50:38 +01:00
Jakub Jelinek
1412e0b515 re PR target/19005 (Error: bad register name `%sil')
PR target/19005
	* gcc.c-torture/execute/pr19005.c: New test.

From-SVN: r108246
2005-12-08 22:49:17 +01:00
Jakub Jelinek
5808045203 re PR target/17828 (-O2 -fPIC doesn't work with switches in linkonce functions and new binutils)
PR target/17828
	* g++.old-deja/g++.other/comdat5.C: New test.
	* g++.old-deja/g++.other/comdat5-aux.cc: New file.

From-SVN: r108245
2005-12-08 22:47:10 +01:00
Jakub Jelinek
e729a3855f struct-layout-1.exp: New file.
* g++.dg/compat/struct-layout-1.exp: New file.
	* g++.dg/compat/struct-layout-1.h: New.
	* g++.dg/compat/struct-layout-1_generate.c: New.
	* g++.dg/compat/struct-layout-1_x1.h: New.
	* g++.dg/compat/struct-layout-1_x2.h: New.
	* g++.dg/compat/struct-layout-1_y1.h: New.
	* g++.dg/compat/struct-layout-1_y2.h: New.

From-SVN: r108244
2005-12-08 22:45:22 +01:00
Jakub Jelinek
88a6bf5e19 * gcc.dg/20050330-2.c: New test.
From-SVN: r108243
2005-12-08 22:44:27 +01:00
François-Xavier Coudert
4416de0cf5 * ChangeLog: correct typo in date.
From-SVN: r108242
2005-12-08 17:16:41 +00:00
Erik Edelmann
58c0774f29 re PR fortran/25292 (ASSOCIATED( func() ) rejected ?)
fortran/
2005-12-08  Erik Edelmann  <eedelman@gcc.gnu.org>

        PR fortran/25292
        * check.c (gfc_check_associated): Allow function results
        as actual arguments to ASSOCIATED.  Moved a misplaced
        comment.


testsuite/
2005-12-08  Erik Edelmann  <eedelman@gcc.gnu.org>

        PR fortran/25292
        * gfortran.dg/associated_1.f90: New.

From-SVN: r108238
2005-12-08 16:56:10 +00:00
Volker Reichelt
dd2c9f7462 ipa-type-escape.c (analyze_variable): Use gcc_assert instead of abort.
* ipa-type-escape.c (analyze_variable): Use gcc_assert instead of
	abort.
	* except.c (output_ttype): Likewise.
	* tree-object-size.c (collect_object_sizes_for): Likewise.
	(check_for_plus_in_loops_1): Likewise.
	(check_for_plus_in_loops): Likewise.
	(compute_object_sizes): Use gcc_unreachable instead of abort.

Co-Authored-By: Christophe Jaillet <christophe.jaillet@wanadoo.fr>

From-SVN: r108237
2005-12-08 15:46:09 +00:00
Andrew Haley
ccd83be5d6 re PR libgcj/25265 (linking BC-compiled classes with incompatible changes)
2005-12-08  Andrew Haley  <aph@redhat.com>

        PR libgcj/25265
        * java-tree.h (enum java_tree_index): Add JTI_SOFT_NOSUCHFIELD_NODE.
        (soft_abstractmethod_node): New.
        * expr.c (build_field_ref): Add in-line check for missing field.
        * decl.c (java_init_decl_processing): Add soft_nosuchfield_node.

2005-12-08  Andrew Haley  <aph@redhat.com>

        PR libgcj/25265
        * java/lang/Object.h (throwNoSuchMethodError): New method.
        * java/lang/Object.java (throwNoSuchMethodError): New method.
        * include/jvm.h (_Jv_ThrowNoSuchFieldError): Declare.
        * link.cc (_Jv_ThrowNoSuchFieldError): New.
        (link_symbol_table): Don't throw a NoSuchFieldError if a field is
        missing.  Instead, set the otable entry to zero.
        (link_symbol_table): If we don't find a nonstatic method, insert
        the vtable offset of Object.throwNoSuchMethodError() into the
        otable.

From-SVN: r108235
2005-12-08 15:32:44 +00:00
Andrew Haley
9edd0f5e69 Object.h (throwNoSuchMethodError): New method.
2005-12-08  Andrew Haley  <aph@redhat.com>

        * java/lang/Object.h (throwNoSuchMethodError): New method.
        * java/lang/Object.java (throwNoSuchMethodError): New method.
        * include/jvm.h (_Jv_ThrowNoSuchFieldError): Declare.
        * link.cc (_Jv_ThrowNoSuchFieldError): New.
        (link_symbol_table): Don't throw a NoSuchFieldError if a field is
        missing.  Instead, set the otable entry to zero.
        (link_symbol_table): If we don't find a nonstatic method, insert
        the vtable offset of Object.throwNoSuchMethodError() into the
        otable.

From-SVN: r108231
2005-12-08 14:19:13 +00:00
Andrew Haley
e00388458d java-tree.h (enum java_tree_index): Add JTI_SOFT_NOSUCHFIELD_NODE.
2005-12-08  Andrew Haley  <aph@redhat.com>

	* java-tree.h (enum java_tree_index): Add JTI_SOFT_NOSUCHFIELD_NODE.
	(soft_abstractmethod_node): New.
	* expr.c (build_field_ref): Add in-line check for missing field.
	* decl.c (java_init_decl_processing): Add soft_nosuchfield_node.

2005-12-08  Andrew Haley  <aph@redhat.com>

	* java/lang/Object.h (throwNoSuchMethodError): New method.
	* java/lang/Object.java (throwNoSuchMethodError): New method.
	* include/jvm.h (_Jv_ThrowNoSuchFieldError): Declare.
	* link.cc (_Jv_ThrowNoSuchFieldError): New.
	(link_symbol_table): Don't throw a NoSuchFieldError if a field is
	missing.  Instead, set the otable entry to zero.
	(link_symbol_table): If we don't find a nonstatic method, insert
	the vtable offset of Object.throwNoSuchMethodError() into the
	otable.


[[Split portion of a mixed commit.]]

From-SVN: r108230.2
2005-12-08 13:52:39 +00:00
Nathan Sidwell
ac3ebe93b6 ms1.md (UNSPEC_LOOP): New constant.
* config/ms1/ms1.md (UNSPEC_LOOP): New constant.
	(loop_end, loop_init, doloop_end): New insns.
	* config/ms1/ms1.h (LOOP_FIRST, LOOP_LAST): New.
	(SPECIAL_REG_FIRST, FIRST_PSEUDO_REGISTER): Adjust.
	(FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
	(REG_CLASS_CONTENTS, REGISTER_NAMES): Adjust.
	* config/ms1/ms1.c: #include basic-block.h
	(struct machine_function): Add has_loops field.
	(ms1_add_loop): New.
	(MAX_LOOP_DEPTH, MAX_LOO_LENGTH): New.
	(struct loop_info, struct loop_work): New.
	(ms1_loop_nesting, ms1_block_length, ms1_scan_loop): New workers.
	(ms1_reorg_loops): New loop optimization.
	(ms1_machine_reorg): Call it.
	* config/ms1/ms1-protos.h (ms1_add_loop): Declare.

From-SVN: r108229
2005-12-08 13:46:18 +00:00
Paolo Carlini
bc9053abce re PR libstdc++/24617 (vector vs __erase_at_end)
2005-12-08  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_vector.h (vector<>::size, resize, capacity,
	operator[]): Avoid troubles with ADL, user defined operators
	and __normal_iterator.
	(_M_erase_at_end): Fix to take a pointer.
	(clear): Adjust call.
	* include/bits/vector.tcc (vector<>::insert(iterator, const
	value_type&), erase(iterator, iterator), operator=(const
	vector<>&), _M_assign_aux(input_iterator_tag), _M_insert_aux,
	_M_fill_insert, _M_range_insert): Likewise.
	(_M_fill_assign, _M_assign_aux(forward_iterator_tag)): Adjust
	_M_erase_at_end call.
	* testsuite/23_containers/vector/types/1.cc: New.

2005-12-08  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/24617
	* include/bits/stl_vector.h (vector<>::_M_erase_at_end): New.
	(vector<>::clear, resize): Use it.
	* include/bits/vector.tcc (vector<>::erase(iterator, iterator),
	_M_fill_assign, _M_assign_aux): Likewise.

	* testsuite/23_containers/vector/modifiers/erase/1.cc: New.

From-SVN: r108227
2005-12-08 11:32:37 +00:00
Zdenek Dvorak
b2a93c0a5a re PR middle-end/25248 (2.6.15-rc4 arch/powerpc/mm/hash_utils_64.c miscompiled)
PR tree-optimization/25248
	* tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Do not use
	evolution_of_loop from the failed attempt.  Remove handling
	of MULT_EXPR.

From-SVN: r108225
2005-12-08 09:34:26 +00:00
Eric Botcazou
fa8e245196 vect-5.f90: Expect alignment forcing only on ILP32 vect_no_align platforms.
* gfortran.dg/vect/vect-5.f90: Expect alignment forcing only on
	ILP32 vect_no_align platforms.

From-SVN: r108223
2005-12-08 09:29:54 +00:00
Théodore Papadopoulo
f55ae17213 call.c (build_conditional_expr): Print types in error messages.
2005-12-08  Théodore Papadopoulo  <Theodore.Papadopoulo@sophia.inria.fr>

        * call.c (build_conditional_expr): Print types in error
          messages.

From-SVN: r108222
2005-12-08 09:09:08 +00:00
Gabriel Dos Reis
9783dd389a * tree.h (DECL_EXTERNAL): Clarify documentation.
From-SVN: r108221
2005-12-08 09:01:22 +00:00
Andreas Krebbel
4989e88a3f re PR target/25268 (ICE on lshrdi3_31 pattern)
2005-12-08  Andreas Krebbel  <krebbel1@de.ibm.com>
            Jakub Jelinek  <jakub@redhat.com>

	PR target/25268
	* config/s390/s390.c (s390_decompose_shift_count): Remove BITS
	argument.  Don't drop outer ANDs.
	(s390_extra_constraint_str, print_shift_count_operand): Adjust callers.
	* config/s390/s390-protos.h (s390_decompose_shift_count): Adjust
	prototype.
	* config/s390/predicates.md (setmem_operand): Remove.
	(shift_count_operand): Rename to...
	(shift_count_or_setmem_operand): ... this.  Adjust
	s390_decompose_shift_count caller.
	* config/s390/s390.md (<shift>di3_31_and, <shift>di3_64_and,
	ashrdi3_cc_31_and, ashrdi3_cconly_31_and, ashrdi3_31_and,
	ashrdi3_cc_64_and, ashrdi3_cconly_64_and, ashrdi3_64_and,
	<shift>si3_and, ashrsi3_cc_and, ashrsi3_cconly_and, ashrsi3_and,
	rotl<mode>3_and, setmem_long_and): New insns.
	(<shift>di3_31, <shift>di3_64, ashrdi3_cc_31, ashrdi3_cconly_31,
	ashrdi3_31, ashrdi3_cc_64, ashrdi3_cconly_64, ashrdi3_64,
	<shift>si3, ashrsi3_cc, ashrsi3_cconly, ashrsi3, rotl<mode>3,
	<shift>di3, ashrdi3): Use shift_count_or_setmem_operand instead
	of shift_count_operand.
	(setmem_long): Use shift_count_or_setmem_operand instead of
	setmem_operand.

2005-12-08  Andreas Krebbel  <krebbel1@de.ibm.com>
            Jakub Jelinek  <jakub@redhat.com>

        PR target/25268
	* gcc.c-torture/compile/20051207-1.c: New test.



Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r108220
2005-12-08 08:56:24 +00:00
Daniel Jacobowitz
820715b8d2 Makefile.in (ALL_GTFILES_H): Replace sed statement with more portable tr expression.
2005-12-08  Daniel Jacobowitz  <dan@codesourcery.com>  
	    Andreas Tobler  <a.tobler@schweiz.ch>

	* Makefile.in (ALL_GTFILES_H): Replace sed statement with more portable
	tr expression.

Co-Authored-By: Andreas Tobler <a.tobler@schweiz.ch>

From-SVN: r108215
2005-12-08 07:40:37 +01:00
Kaveh R. Ghazi
9fecf30332 i386-1.C, [...]: Also test on x86_64.
2005-12-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* g++.dg/other/i386-1.C, gcc.c-torture/execute/990413-2.x,
	gcc.dg/torture/pr18582-1.c,
	gcc.target/i386/attributes-error.c: Also test on x86_64.

	* gcc.dg/pr18928-1.c: Test on all targets supporting pic.

From-SVN: r108209
2005-12-08 01:26:45 +00:00
GCC Administrator
d3ca869a0a Daily bump.
From-SVN: r108205
2005-12-08 00:17:36 +00:00
Paolo Carlini
638004ccd7 configopts.html ([--enable-libstdcxx-allocator]): Mention the SGI pooled allocator.
2005-12-07  Paolo Carlini  <pcarlini@suse.de>

	* docs/html/configopts.html ([--enable-libstdcxx-allocator]):
	Mention the SGI pooled allocator.

From-SVN: r108197
2005-12-07 23:51:31 +00:00
J"orn Rennecke
1fd5360d19 * expr.c (force_operand): Use convert_to_mode for conversions.
From-SVN: r108196
2005-12-07 23:49:43 +00:00
J"orn Rennecke
444aea52f6 reload.h (reg_equiv_invariant): Declare.
2005-12-07  J"orn Rennecke <joern.rennecke@st.com>

	* reload.h (reg_equiv_invariant): Declare.
	* reload.c (refers_to_regno_for_reload_p): Allow R to be a pseudo
	register also when reg_equiv_invariant[R] is set.

From-SVN: r108195
2005-12-07 23:41:19 +00:00
Volker Reichelt
c60fb9672a * expr.c (cxx_expand_expr): Call gcc_unreachable instead of abort.
From-SVN: r108193
2005-12-07 21:55:19 +00:00
Volker Reichelt
3a0fddeed4 * cp-gimplify.c (gimplify_cp_loop): Use fold_build3.
From-SVN: r108192
2005-12-07 21:50:00 +00:00
Richard Sandiford
c3e23a08b5 darwin.h: Guard section variables with #ifndef USED_FOR_TARGET.
2005-12-07  Richard Sandiford  <richard@codesourcery.com>
	    Andreas Tobler  <a.tobler@schweiz.ch>

	* config/darwin.h: Guard section variables with #ifndef USED_FOR_TARGET.

Co-Authored-By: Andreas Tobler <a.tobler@schweiz.ch>

From-SVN: r108191
2005-12-07 22:47:27 +01:00
Ben Elliston
7a77407957 * newcvsroot: Remove.
From-SVN: r108190
2005-12-08 08:38:02 +11:00
Volker Reichelt
b2fbe3f434 re PR c++/19397 (ICE with invalid typedef)
PR c++/19397
	* g++.dg/template/typedef3.C: New test.

	PR c++/19762
	PR c++/19764
	* g++.dg/template/dtor3.C: Fix error markers.

From-SVN: r108187
2005-12-07 21:16:21 +00:00
Daniel Berlin
ff3fdad27a tree-ssa-pre.c (bitmap_set_and): New function.
2005-12-07  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-pre.c (bitmap_set_and): New function.
	(bitmap_set_and_compl): New function.
	(bitmap_set_empty_p): New function.
	(insert_extra_phis): New function.
	(compute_avail): Use insert_extra_phis.

From-SVN: r108183
2005-12-07 20:24:09 +00:00
Adrian Straetling
45d18331f6 s390.c (s390_expand_atomic): New function.
2005-12-07  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390.c (s390_expand_atomic): New function.
	Adjust comment of helper functions.
	* config/s390/s390-protos.h (s390_expand_atomic): Declare.
	* config/s390/s390.md ("ATOMIC"): New code macro.
	("atomic"): Corresponding new code attribute.
	("sync_lock_test_and_set[hq]i", 
	"sync_{new_,old_,}{and,ior,xor,add,sub,nand}[hq]i"): New pattern.

From-SVN: r108180
2005-12-07 20:01:30 +00:00
Adrian Straetling
3093f076e1 s390.c (s390_expand_mask_and_shift, [...]): New.
2005-12-07  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390.c (s390_expand_mask_and_shift, 
	struct alignment_context, init_alignment_context, 
	s390_expand_cs_hqi): New.
	* config/s390/s390-protos.h (s390_expand_cs_hqi): Declare.
	* config/s390/s390.md ("sync_compare_and_swaphi",
	"sync_compare_and_swapqi"): New pattern.

	* lib/target-supports.exp (check_effective_target_sync_char_short):
	Add s390*.

From-SVN: r108178
2005-12-07 19:56:32 +00:00
Adrian Straetling
634010f7c8 Fix incorrect dates in ChangeLog.
From-SVN: r108175
2005-12-07 19:41:37 +00:00
Daniel Berlin
b0d008ab0e re PR tree-optimization/25291 (ICE in tree-check add_call_clobber_ops)
2005-12-07  Daniel Berlin <dberlin@dberlin.org>

	Fix PR tree-optimization/25291
	* tree-ssa-operands.c (add_call_clobber_ops): Remove
	redundant and crashing check.

From-SVN: r108168
2005-12-07 16:39:33 +00:00
Alan Modra
9024f4b86c re PR target/25212 (unrecognizable insn for facerec with odd optimization set)
PR target/25212
	* config/rs6000/rs6000.c (legitimate_indexed_address_p): Relax
	tests further when !strict && reload_in_progress.
	(print_operand): Check that both operands of indexed address are regs.
	(print_operand_address): Likewise.
	* config/rs6000/rs6000.h (INT_REG_OK_FOR_INDEX_P): Simplify.
	(INT_REG_OK_FOR_BASE_P): Correct.

From-SVN: r108167
2005-12-08 02:37:08 +10:30
Thiemo Seufer
8a39029d19 ffitarget.h: Remove obsolete sgidefs.h include.
2005-12-07  Thiemo Seufer  <ths@networkno.de>

	* src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add
	missing parentheses.
	* src/mips/o32.S (ffi_call_O32): Code formatting. Define
	and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations.
	(ffi_closure_O32): Likewise, but with newly defined A3_OFF2,
	A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2,
	V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2,
	FA_0_0_OFF2.
	* src/mips/ffi.c (ffi_prep_args): Code formatting. Fix
	endianness bugs.
	(ffi_prep_closure): Improve trampoline instruction scheduling.
	(ffi_closure_mips_inner_O32): Fix endianness bugs.

From-SVN: r108165
2005-12-07 14:56:38 +00:00
J"orn Rennecke
7f416ffb28 Preparation for PR rtl-optimization/20070 / part1
2005-12-07  J"orn Rennecke <joern.rennecke@st.com>

	Preparation for PR rtl-optimization/20070 / part1
	* basic-block.h (insns_match_p, flow_find_cross_jump): Declare.
	* cfgcleanup.c (condjump_equiv_p): New function, broken out of
	outgoing_edges_match.
	(outgoing_edges_match): Use condjump_equiv_p.
	(merge_memattrs, insns_match_p, flow_find_cross_jump): Move from here
	into..
	* struct-equiv.c: New file.
	(death_notes_match_p) New function, broken out of insns_match_p.
	* Makefile.in (OBJS-common): Add struct-equiv.o.
	(struct-equiv.o): New target.

From-SVN: r108164
2005-12-07 13:31:41 +00:00
Richard Sandiford
0e230dfa1d coretypes.h: Revert previous change.
* coretypes.h: Revert previous change.
	* config/darwin.h: Revert previous reversion.
	* config/avr/avr.h (progmem_section): Guard with #ifndef IN_LIBGCC2.

From-SVN: r108163
2005-12-07 13:25:08 +00:00
Richard Sandiford
911ffe72bf coretypes.h (section): Provide dummy definition for target files.
* coretypes.h (section): Provide dummy definition for target files.
	* config/darwin.h: Revert previous change.

From-SVN: r108159
2005-12-07 11:52:28 +00:00
Rafael Ávila de Espíndola
bd97af0659 sourcebuild.texi (all.build, [...]): Remove.
gcc/
	* doc/sourcebuild.texi (all.build, install-normal): Remove.
	* configure.ac: Remove all.build and install-normal from target_list
	* configure: Regenerate.
	* Makefile.in (install): Don't depend on install-normal.
gcc/java/
	* Make-lang.in (java.all.build, java.install-normal): Remove.
gcc/objc/
	* Make-lang.in (objc.all.build, objc.install-normal): Remove.
gcc/objcp/
	* Make-lang.in (obj-c++.all.build, obj-c++.install-normal): Remove.
gcc/cp/
	* Make-lang.in (c++.all.build, c++.install-normal): Remove.
gcc/ada/
	* Make-lang.in (ada.install-normal): Remove.
gcc/fortran/
	* Make-lang.in (fortran.all.build, fortran.install-normal): Remove.
gcc/treelang/
	* Make-lang.in (treelang.all.build, treelang.install-normal): Remove.

From-SVN: r108158
2005-12-07 22:10:30 +10:30
Rafael Ávila de Espíndola
f637f07220 Makefile.in: Document the use of stamps.
* Makefile.in: Document the use of stamps.

From-SVN: r108156
2005-12-07 21:54:48 +10:30
Alan Modra
2f4d2d181a gty.texi: Remove instructions for adding a dependency on s-gtype.
gcc/
	* doc/gty.texi: Remove instructions for adding a dependency on s-gtype.
	* Makefile.in: Add code to compute some dependencies on s-gtype
	automatically.  Remove the declaration of those dependencies.
gcc/java/
	* Make-lang.in: Remove all dependencies on s-gtype, except for
	gt-java-parse.h.
gcc/objc/
	* Make-lang.in: Remove all dependencies on s-gtype.
gcc/objcp/
	* Make-lang.in: Remove all dependencies on s-gtype.
gcc/cp/
	* Make-lang.in: Remove all dependencies on s-gtype.
gcc/ada/
	* Make-lang.in: Remove all dependencies on s-gtype.
gcc/fortran/
	* Make-lang.in: Remove all dependencies on s-gtype, except for
	gt-fortran-trans.h.
gcc/treelang/
	* Make-lang.in: Remove all dependencies on s-gtype.

From-SVN: r108155
2005-12-07 21:52:18 +10:30
Richard Sandiford
58477b5d26 reload.c (push_secondary_reload): Fix typo: s/insn_constraint/scratch_constraint/.
* gcc/reload.c (push_secondary_reload): Fix typo:
	s/insn_constraint/scratch_constraint/.

From-SVN: r108154
2005-12-07 09:43:39 +00:00
Richard Sandiford
fee67063c4 * config/darwin.h: Guard section variables with #ifndef IN_LIBGCC2.
From-SVN: r108153
2005-12-07 09:17:01 +00:00
Richard Sandiford
d6b5193bfc alpha.c (alpha_start_function): Use switch_to_section.
* config/alpha/alpha.c (alpha_start_function): Use switch_to_section.
	(alpha_elf_select_rtx_section): Return the selected section rather
	than emitting assembly code.
	(alpha_write_linkage): Emit a ".link" directive directly and then
	set in_section to NULL.
	(vms_asm_out_constructor): Use switch_to_section.
	(vms_asm_out_destructor): Likewise.
	(unicosmk_output_common): Set in_section to NULL instead of calling
	the dummy common_section function.
	(unicosmk_text_section): Delete in favor of...
	(unicosmk_output_text_section_asm_op): ...this new function.
	(unicosmk_data_section): Delete in favor of...
	(unicosmk_output_data_section_asm_op): ...this new function.
	(unicosmk_init_sections): New function.
	(unicosmk_output_deferred_case_vectors): Use switch_to_section.
	(unicosmk_output_ssib): Set in_section to NULL instead of calling
	the dummy ssib_section function.
	(unicosmk_section_buf): Delete.
	* config/alpha/alpha-protos.h (unicosmk_text_section): Delete.
	(unicosmk_data_section): Delete.
	* config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, sbss_section, sdata_section)
	(SECTION_FUNCTION_TEMPLATE): Delete.
	* config/alpha/unicosmk.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP)
	(READONLY_DATA_SECTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
	(common_section, COMMON_SECTION, ssib_section, SSIB_SECTION): Delete.
	(ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
	(TARGET_ASM_INIT_SECTIONS): Define.
	* config/alpha/vms.h (LINK_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP)
	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
	(link_section, literals_section): Delete.
	(ASM_OUTPUT_DEF): Emit the ".literal" directive directly and then
	set in_section to NULL.

	* config/arm/aof.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Delete.
	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, ZERO_INIT_SECTION): Delete.
	(COMMON_SECTION): Delete.
	(TARGET_ASM_INIT_SECTIONS): Define.
	(ASM_OUTPUT_COMMON): Set in_section to NULL rather than calling
	the dummy common_section function.
	* config/arm/aout.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
	* config/arm/arm.c (get_jump_table_size): Use pointer comparison
	between readonly_data_section and text_section to check whether
	read-only data is being put in the text section.
	(arm_output_function_epilogue): Use switch_to_section.
	(arm_elf_asm_constructor): Likewise.
	(thumb_call_via_reg): Replace call to in_text_section with
	a comparison between in_section and text_section.
	(arm_file_end): Use switch_to_section.
	(aof_text_section): Delete in favor of...
	(aof_output_text_section_asm_op): ...this new function.
	(aof_data_section): Delete in favor of...
	(aof_output_data_section_asm_op): ...this new function.
	(aof_asm_init_sections): New function.
	(zero_init_section): Moved from config/arm/aof.h.
	(aof_dump_imports, aof_file_start): Use switch_to_section.
	* config/arm/arm.h (thumb_call_via_label): Update comment.
	* config/arm/arm-protos.h (aof_text_section, aof_data_section): Delete.
	(common_section): Delete.
	* config/arm/pe.h (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
	(ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
	global switch_to_section function instead of the old port-local one.
	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION)
	(SWITCH_TO_SECTION_FUNCTION): Delete.
	(drectve_section): Redefine as a macro.
	* config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS):
	(ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use get_named_section and
	switch_to_section.

	* config/avr/avr.c (progmem_section): New variable.
	(avr_output_progmem_section_asm_op): New function.
	(avr_asm_init_sections): New function.
	(avr_output_addr_vec_elt): Use switch_to_section.
	* config/avr/avr.h (progmem_section): Declare.
	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
	(READONLY_DATA_SECTION): Delete.
	(TARGET_ASM_INIT_SECTIONS): Define.
	(ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
	* config/avr/avr-protos.h (progmem_section): Delete.

	* config/bfin/bfin.h (ASM_OUTPUT_LOCAL): Use switch_to_section.

	* config/c4x/c4x.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
	(INIT_SECTION_FUNCTION, FINI_SECTION_FUNCTION): Delete.

	* config/darwin-sections.def: New file.
	* config/darwin.c: Define all sections in darwin-sections.def.
	(output_objc_section_asm_op, darwin_init_sections): New functions.
	(machopic_output_indirection): Use switch_to_section.
	(machopic_select_section): Return the selected section rather than
	emitting assembly code.  Replace the static function table with
	inline conditional expressions.  Update the tests of last_text_section
	and move them into the FUNCTION_DECL block.
	(machopic_select_rtx_section): Return the selected section rather than
	emitting assembly code.
	(machopic_asm_out_constructor, machopic_asm_out_destructor)
	(darwin_file_end): Use switch_to_section.
	* config/darwin.h: Use darwin-sections.def to declare sections.
	(INIT_SECTION_ASM_OP): Remove empty definition.
	(HAS_INIT_SECTION): Define this instead.
	(SECTION_FUNCTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
	(READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.
	(TARGET_ASM_EH_FRAME_SECTION): Delete.
	(TARGET_ASM_INIT_SECTIONS): Define.
	* config/darwin-protos.h (darwin_init_sections): Declare.
	(machopic_picsymbol_stub_section, machopic_picsymbol_stub1_section)
	(machopic_symbol_stub_section, machopic_symbol_stub1_section): Delete.
	(machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
	(constructor_section, destructor_section, mod_init_section): Delete.
	(mod_term_section): Delete.
	(darwin_exception_section, darwin_eh_frame_section): Delete.
	(machopic_select_section): Return a section.
	(machopic_select_rtx_section): Likewise.
	(text_coal_section, text_unlikely_section, text_unlikely_coal_section)
	(const_section, const_coal_section, const_data_section): Delete.
	(const_data_coal_section, data_coal_section, cstring_section): Delete.
	(literal4_section, literal8_section, constructor_section): Delete.
	(mod_init_section, mod_term_section, destructor_section): Delete.
	(objc_class_section, objc_meta_class_section, objc_category_section)
	(objc_class_vars_section, objc_instance_vars_section): Delete.
	(objc_cls_meth_section, objc_inst_meth_section): Delete.
	(objc_cat_cls_meth_section, objc_cat_inst_meth_section): Delete.
	(objc_selector_refs_section, objc_selector_fixup_section): Delete.
	(objc_symbols_section, objc_module_info_section): Delete.
	(objc_image_info_section, objc_protocol_section): Delete.
	(objc_string_object_section, objc_constant_string_object_section)
	(objc_class_names_section, objc_meth_var_names_section): Delete.
	(objc_meth_var_types_section, objc_cls_refs_section): Delete.
	(machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
	(machopic_symbol_stub_section, machopic_picsymbol_stub_section)
	(darwin_exception_section, darwin_eh_frame_section): Delete.
	* config/t-darwin (darwin.o): Depend on config/darwin-sections.def.

	* config/frv/frv.c (frv_asm_out_constructor): Use switch_to_section.
	(frv_asm_out_destructor): Likewise.
	* config/frv/frv.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
	(SDATA_SECTION_FUNCTION, FIXUP_SECTION_FUNCTION): Delete.
	(ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use switch_to_section and
	get_named_section.
	(ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
	* config/frv/frv-protos.h (fixup_section, sdata_section, sbss_section)
	(data_section): Delete.

	* config/i386/cygming.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
	(DRECTVE_SECTION_FUNCTION): Delete.
	(drectve_section): Redefine as a macro that sets in_section after
	emitting the directive.
	(SWITCH_TO_SECTION_FUNCTION): Delete.
	* config/i386/darwin.h (ASM_OUTPUT_ALIGN): Replace call to
	in_text_section with comparison between in_section and text_section.
	* config/i386/i386.c (x86_64_elf_select_section): Return the section
	rather than emitting assembly code.  Use get_named_section.
	(x86_output_aligned_bss, ix86_file_end): Use switch_to_section and
	get_named_section.
	(machopic_output_stub): Use switch_to_section.
	* config/i386/nwld.c (nwld_named_section_asm_out_constructor)
	(nwld_named_section_asm_out_destructor): Use get_section and
	switch_to_section.

	* config/ia64/ia64.c (ia64_select_rtx_section): Return the section
	rather than emitting assembly code.
	(ia64_rwreloc_select_section): Likewise.
	(ia64_rwreloc_select_rtx_section): Likewise.
	* config/ia64/ia64-protos.h (sdata_section, sbss_section): Delete.
	* config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
	switch_to_section.
	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
	(SDATA_SECTION_FUNCTION, SBSS_SECTION_FUNCTION): Delete.

	* config/iq2000/iq2000.c (iq2000_select_rtx_section): Return the
	section rather than emitting assembly code.
	(iq2000_select_section): Likewise.
	* config/iq2000/iq2000.h (rdata_section, sdata_section): Delete.
	(sbss_section): Delete.

	* config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Use switch_to_section
	and get_named_section.
	* config/m32r/m32r-protos.h (sbss_section, sdata_section): Delete.

	* config/mcore/mcore-elf.h (EXPORTS_SECTION_ASM_OP): Delete.
	(SUBTARGET_EXTRA_SECTIONS, SUBTARGET_EXTRA_SECTION_FUNCTIONS): Delete.
	(EXPORT_SECTION_FUNCTION, SUBTARGET_SWITCH_SECTIONS): Delete.
	(MCORE_EXPORT_NAME): Emit the exports directive directly, then set
	in_section to NULL.
	(ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
	(ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
	global switch_to_section function instead of the old port-local one.
	* config/mcore/mcore.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
	(SWITCH_SECTION_FUNCTION): Delete.
	* config/mcore/mcore-pe.h (SUBTARGET_SWITCH_SECTIONS): Delete.
	(DRECTVE_SECTION_ASM_OP, SUBTARGET_EXTRA_SECTIONS): Delete.
	(SUBTARGET_EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION): Delete.
	(MCORE_EXPORT_NAME): Emit ".section .drectve" directly, then set
	in_section to NULL.
	(ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
	global switch_to_section function instead of the old port-local one.
	(ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.

	* config/mips/mips.c (mips_file_start): Update comment.
	(mips_output_aligned_bss): Use switch_to_section and get_named_section.
	(mips_output_aligned_decl_common): Use switch_to_section.
	(mips_select_rtx_section): Return the section rather than emitting
	assembly code.  Use get_named_section.
	(mips_function_rodata_section: Likewise get_section.
	(build_mips16_function_stub): Use switch_to_section.
	* config/mips/mips.h (ASM_OUTPUT_IDENT): Use switch_to_section.
	(SDATA_SECTION_ASM_OP): Delete.
	* config/mips/vxworks.h (EXTRA_SECTIONS): Delete.
	(EXTRA_SECTION_FUNCTIONS): Delete.

	* config/mmix/mmix.c (mmix_file_start, mmix_file_end)
	(mmix_asm_output_aligned_local): Use switch_to_section.

	* config/pa/pa.c (som_readonly_data_section, som_one_only_data_section)
	(som_one_only_readonly_data_section): New variables.
	(pa_output_function_epilogue): Set in_section to NULL instead of
	calling forget_section.
	(output_deferred_plabels): Use select_section.
	(pa_asm_output_mi_thunk): Likewise.  Set in_section to NULL instead
	of calling forget_section.
	(pa_asm_output_aligned_bss, pa_asm_output_aligned_common)
	(pa_asm_output_aligned_local): Use select_section.
	(som_text_section_asm_op): Delete in favor of...
	(som_output_text_section_asm_op): ...this new function.
	(pa_som_asm_init_sections): New function.
	(pa_select_section): Return the section rather than emitting
	assembly code.
	* config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
	(SOM_READONLY_DATA_SECTION_FUNCTION): Delete.
	(SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION): Delete.
	(SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): Delete.
	* config/pa/pa-protos.h (som_text_section_asm_op): Delete.
	(som_readonly_data_section, som_one_only_readonly_data_section)
	(som_one_only_data_section, forget_section): Delete.
	* config/pa/som.h (TEXT_SECTION_ASM_OP): Delete.
	(TARGET_ASM_INIT_SECTIONS): Define.
	(READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.

	* config/rs6000/rs6000.c (read_only_data_section): New variable.
	(private_data_section, read_only_private_data_section): New variables.
	(sdata2_section, toc_section): New variables.
	(rs6000_file_start): Use switch_to_section.
	(rs6000_assemble_integer): Use comparisons against in_section
	instead of calling in_toc_section and in_text_section.  Use
	unlikely_text_section_p.
	(rs6000_elf_output_toc_section_asm_op): New function, derived
	from the old rs6000/sysv4.h toc_section function.
	(rs6000_elf_asm_init_sections): New function.
	(rs6000_elf_select_rtx_section, rs6000_elf_select_section): Return
	the section rather than emitting assembly code.
	(machopic_output_stub): Use switch_to_section.
	(toc_section): Delete dummy function.
	(rs6000_elf_asm_out_constructor, rs6000_elf_asm_out_destructor): Use
	switch_to_section and get_section.
	(rs6000_xcoff_output_readonly_section_asm_op): New function.
	(rs6000_xcoff_output_readwrite_section_asm_op): New function.
	(rs6000_xcoff_output_toc_section_asm_op): New function, derived from
	the old rs6000/xcoff.h toc_section function.
	(rs6000_xcoff_asm_init_sections): New function.
	(rs6000_xcoff_select_section, rs6000_xcoff_select_rtx_section): Return
	the section rather than emitting assembly code.
	(rs6000_xcoff_file_start): Use switch_to_section.
	(rs6000_xcoff_file_end): Likewise.
	* config/rs6000/rs6000-protos.h (toc_section, sdata_section): Delete.
	(sdata2_section, sbss_section, private_data_section): Delete.
	(read_only_data_section, read_only_private_data_section): Delete.
	* config/rs6000/sysv4.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
	(TOC_SECTION_FUNCTION, SDATA_SECTION_FUNCTION, SDATA2_SECTION_FUNCTION)
	(SBSS_SECTION_FUNCTION, INIT_SECTION_FUNCTION): Delete.
	(FINI_SECTION_FUNCTION): Delete.
	(TARGET_ASM_INIT_SECTIONS): Define.
	(ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
	* config/rs6000/xcoff.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
	(READ_ONLY_DATA_SECTION_FUNCTION, PRIVATE_DATA_SECTION_FUNCTION)
	(READ_ONLY_PRIVATE_DATA_SECTION_FUNCTION, TOC_SECTION_FUNCTION)
	(READONLY_DATA_SECTION): Delete.
	(TARGET_ASM_INIT_SECTIONS): Define.
	(ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.  Set in_section
	to NULL rather than no_section.
	(TARGET_ASM_EXCEPTION_SECTION): Delete.

	* config/sh/sh.c (sh_file_start): Use switch_to_section.

	* config/sparc/sparc.c (emit_pic_helper): Use switch_to_section.
	(sparc_output_deferred_case_vectors): Likewise.  Remove argument
	from call to current_function_section.

	* config/stormy16/stormy16.c: Include ggc.h and gt-storm16.h.
	(bss100_section): New variable.
	(xstormy16_asm_output_aligned_common): Use switch_to_section.
	(xstormy16_asm_init_sections): New function.
	(xstormy16_asm_out_destructor, xstormy16_asm_out_constructor): Use
	switch_to_section and get_section.
	(xstormy16_output_addr_vec): Use switch_to_section.  Remove argument
	from calls to current_function_section.
	* config/stormy16/stormy16.h (EXTRA_SECTIONS): Delete.
	(XSTORMY16_SECTION_FUNCTION, EXTRA_SECTION_FUNCTIONS): Delete.
	(TARGET_ASM_INIT_SECTIONS): Define.
	* config/stormy16/stormy16-protos.h (bss100_section): Delete.

	* config/svr3.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, INIT_SECTION_FUNCTION)
	(FINI_SECTION_FUNCTION): Delete.

	* config/v850/v850.c: Include gt-v850.h.
	(rosdata_section, rozdata_section, tdata_section, zdata_section)
	(zbss_section): New variables.
	(v850_output_aligned_bss): Use switch_to_section.
	(v850_asm_init_sections): New function.
	(v850_select_section): Return the section rather than emitting
	assembly code.
	* config/v850/v850.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
	(ZDATA_SECTION_ASM_OP, ZBSS_SECTION_ASM_OP, TDATA_SECTION_ASM_OP)
	(ROSDATA_SECTION_ASM_OP, ROZDATA_SECTION_ASM_OP): Delete.
	(TARGET_ASM_INIT_SECTIONS): Define.
	* config/v850/v850-protos.h (sdata_section, rosdata_section): Delete.
	(sbss_section, tdata_section, zdata_section, rozdata_section): Delete.
	(zbss_section): Delete.

	* config/vax/vaxv.h (ASM_OUTPUT_LOCAL): Use switch_to_section.

	* config/vx-common.h (vxworks_exception_section): Delete.
	(TARGET_ASM_EXCEPTION_SECTION): Delete.

	* config/xtensa/xtensa.c (xtensa_select_rtx_section): Return the
	section rather than emitting assembly code.
	* config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Use
	switch_to_section.

	* Makefile.in (GTFILES): Add $(srcdir)/output.h.
	* coretypes.h (section): New union and typedef.
	* dbxout.c (FORCE_TEXT): Use switch_to_section.  Remove argument
	from call to current_function_section.
	(dbxout_function_end, dbxout_init, dbxout_source_file, dbxout_finish)
	(dbxout_symbol_location): Use switch_to_section.
	* dwarf2out.c (named_section_eh_frame_section): Delete, moving
	most of the code into...
	(default_eh_frame_section): ...here.  Return a section.
	(collect2_eh_frame_section): Delete, moving most of the code into..
	(switch_to_eh_frame_section): ...this new function.
	(debug_info_section, debug_abbrev_section, debug_aranges_section)
	(debug_macinfo_section, debug_line_section, debug_loc_section)
	(debug_pubnames_section, debug_str_section, debug_ranges_section): New
	variables.
	(output_call_frame_info): Call switch_to_eh_frame_section instead of
	eh_frame_section.  Use switch_to_section and get_section.
	(dwarf2out_begin_prologue): Use switch_to_section.
	(AT_string_form): Check the flags in debug_str_section instead of
	DEBUG_STR_SECTION_FLAGS.
	(output_comp_unit): Use switch_to_section, get_section, and
	debug_info_section.
	(output_line_info, secname_for_decl): Use unlikely_text_section_p.
	(dwarf2out_begin_block): Use switch_to_section.  Remove argument
	from call to current_function_section.
	(dwarf2out_var_location): Use unlikely_text_section_p.
	(dwarf2out_source_line): Use switch_to_section.  Remove argument
	from call to current_function_section.
	(dwarf2out_start_source_file, dwarf2out_end_source_file)
	(dwarf2out_define, dwarf2out_undef: Use switch_to_section and
	debug_macinfo_section.
	(dwarf2out_init): Initialize the new section variables.  Use them
	instead of calls to named_section_flags.  Use switch_to_section.
	(output_indirect_string): Use switch_to_section and debug_str_section.
	(dwarf2out_finish): Use switch_to_section and the new section
	variables.
	* except.c (default_exception_section): Return the section instead
	of emitting assembly code.
	(output_function_exception_table): Use the global exception_section
	variable instead of the target hook.  Use switch_to_section.  Remove
	argument from call to current_function_section.
	* final.c (HAVE_READONLY_DATA_SECTION): Delete.
	(shorten_branches): Use pointer comparisons to detect whether the
	text section is the same as readonly_data_section.
	(profile_function): Use switch_to_section.  Remove argument from
	call to current_function_section.
	(final_scan_insn): Likewise.  Update use of last_text_section.
	* gengtype.c (open_base_files): Add an include of output.h.
	* output.h (text_section, data_section, readonly_data_section)
	(ctors_section, dtors_section, bss_section, init_section)
	(fini_section, sdata_section): Turn into section pointers.
	(in_text_section, in_unlikely_text_section, exports_section)
	(drectve_section, named_section, mergeable_string_section)
	(last_text_section_name): Delete.
	(default_exception_section, default_eh_frame_section): Return sections.
	(SECTION_DECLARED, SECTION_NAMED): New macros.
	(SECTION_MACH_DEP): Bump value.
	(section_common, named_section, unnamed_section): New structures.
	(unnamed_section_callback): New typedef.
	(section): New union.
	(sbss_section, exception_section, eh_frame_section): New variables.
	(in_section, last_text_section): Turn into section pointers.
	(get_unnamed_section, get_section, get_named_section): New functions.
	(mergeable_constant_section, function_section): Return a section.
	(unlikely_text_section): Likewise.
	(current_function_section): Likewise.  Remove the decl argument.
	(unlikely_text_section_p, switch_to_section): New functions.
	(output_section_asm_op): New function.
	(set_named_section_flags, named_section_flags, named_section_real)
	(named_section_first_declaration): Delete.
	(default_select_section, default_elf_select_section): Return a section.
	(default_elf_select_section_1, default_function_rodata_section)
	(default_no_function_rodata_section, default_select_rtx_section)
	(default_elf_select_rtx_section): Likewise.
	* rtl.h (in_data_section): Delete.
	* sdbout.c (sdbout_one_type): Use switch_to_section.
	* system.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Poison.
	(READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Poison.
	(TARGET_ASM_EH_FRAME_SECTION): Poison.
	* target-def.h (TARGET_ASM_INIT_SECTIONS): New macro.
	(TARGET_ASM_EXCEPTION_SECTION, TARGET_ASM_EH_FRAME_SECTION): Delete.
	(TARGET_ASM_OUT): Update after above changes.
	* target.h (init_sections): New hook.
	(exception_section, eh_frame_section): Delete.
	(select_section, select_rtx_section, function_rodata_section): Return
	a section rather than emitting assembly code.
	* varasm.c (text_section, data_section, readonly_data_section)
	(ctors_section, dtors_section, bss_section, init_section)
	(fini_section): Turn into section pointers.
	(sdata_section, sbss_section, exception_section): New variables.
	(eh_frame_section): New variable.
	(in_section): Make global and turn into a section pointer.
	(last_text_section): Turn into a section pointer.
	(unnamed_sections): New variable.
	(in_named_name, last_text_section_name): Delete.
	(EXTRA_SECTION_FUNCTIONS): Delete.
	(in_named_entry): Delete.
	(section_htab): New variable, replacing...
	(in_named_htab): ...this deleted variable.
	(section_entry_eq, section_entry_hash): New functions, based on...
	(in_named_entry_eq, in_named_entry_hash): ...these deleted functions.
	(get_unnamed_section, get_section): New functions.
	(unlikely_text_section): Return a section instead of emitting
	assembly code.
	(in_text_section, in_unlikely_text_section, in_data_section): Delete.
	(get_named_section_flags, named_section_first_declaration): Delete.
	(unlikely_text_section_p): New function.
	(named_section_real, named_section): Delete.
	(get_named_section): New function.
	(asm_output_bss, asm_output_aligned_bss): Use switch_to_section.
	(function_section): Return a section rather than emitting
	assembly code.
	(current_function_section): Likewise.  Remove argument.  Use
	last_text_section if nonnull, otherwise use function_section.
	(default_function_rodata_section): Return a section rather than
	emitting assembly code.  Use get_section.
	(default_no_function_rodata_section): Return a section rather than
	emitting assembly code.
	(variable_section): Use switch_to_section and get_named_section.
	(mergeable_string_section): Return a section rather than emitting
	assembly code.  Use get_section.  Make static.  Don't take special
	countermeasures for empty strings.
	(mergeable_constant_section): Return a section rather than emitting
	assembly code.  Use get_section.
	(default_named_section_asm_out_destructor): Use switch_to_section
	and get_section.
	(default_dtor_section_asm_out_destructor): Use switch_to_section.
	(default_named_section_asm_out_constructor): Use switch_to_section
	and get_section.
	(default_ctor_section_asm_out_constructor): Use switch_to_section.
	(assemble_start_function): Likewise.  Set last_text_section to
	NULL rather than no_section.  Change the type of save_section.
	(assemble_zeros, assemble_variable): Use the section flags to detect
	whether or not a section is text.
	(assemble_static_space): Use switch_to_section.
	(assemble_trampoline_template): Likewise.
	(output_constant_def_contents): Use switch_to_section and
	get_named_section.
	(output_constant_pool_1): Use switch_to_section.  Use the section
	flags to see whether sections contain mergeable data.
	(init_varasm_once): Initialize section_htab instead of in_named_htab.
	Initialize new section variables.  Call TARGET_ASM_INIT_SECTIONS.
	(default_elf_asm_named_section): Use SECTION_DECLARED to detect
	whether a section has already been declared.
	(default_select_section, default_elf_select_section): Return a
	section rather than emitting assembly code.
	(default_elf_select_section_1): Likewise.  Use bss_section for
	SECCAT_BSS if nonnull.  Use get_named_section.
	(default_select_rtx_section): Return a section rather than
	emitting assembly code.
	(default_elf_select_rtx_section): Likewise.  Use get_named_section.
	(file_end_indicate_exec_stack): Use switch_to_section and get_section.
	(output_section_asm_op, switch_to_section): New functions.
	* vmsdbgout.c (vmsdbgout_finish): Use switch_to_section and
	get_named_section.

	* doc/tm.texi: Expand the introduction to the sections documentation.
	(TRAMPOLINE_SECTION): Document new interface.
	(SDATA_SECTION_ASM_OP): Document new macro.
	(READONLY_DATA_SECTION): Delete.
	(SDATA_SECTION_ASM_OP): Document new macro.
	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
	(TARGET_ASM_INIT_SECTIONS): Document new hook.
	(TARGET_ASM_SELECT_SECTION, TARGET_ASM_FUNCTION_RODATA_SECTION)
	(TARGET_ASM_SELECT_RTX_SECTION): Adjust for new interface.
	(TARGET_EXCEPTION_SECTION, TARGET_EH_FRAME_SECTION): Delete.

gcc/java/
	* class.c (build_utf8_ref, emit_register_classes): Use
	switch_to_section and get_section.

From-SVN: r108152
2005-12-07 07:53:14 +00:00
Alan Modra
5e4f1974e4 gcc.c (init_gcc_specs): Match braces inside conditionally compiled strings.
* gcc.c (init_gcc_specs): Match braces inside conditionally
	compiled strings.

From-SVN: r108151
2005-12-07 17:32:35 +10:30
Adam Nemet
a6d6377007 * MAINTAINERS: Change email address.
From-SVN: r108149
2005-12-07 03:46:23 +00:00
Tom Tromey
53bbb42e57 re PR java/25283 (gcj generates invalid signature)
PR java/25283:
	* parse.y (patch_new_array_init): Revert previous patch.
	(lookup_method_invoke): Use size-less array type when creating an
	anonymous constructor.

From-SVN: r108143
2005-12-07 00:31:58 +00:00
GCC Administrator
67c4e19e47 Daily bump.
From-SVN: r108140
2005-12-07 00:17:27 +00:00