François-Xavier Coudert [Thu, 8 Dec 2005 17:16:41 +0000 (17:16 +0000)]
* ChangeLog: correct typo in date.
From-SVN: r108242
Erik Edelmann [Thu, 8 Dec 2005 16:56:10 +0000 (16:56 +0000)]
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
Volker Reichelt [Thu, 8 Dec 2005 15:46:09 +0000 (15:46 +0000)]
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
Andrew Haley [Thu, 8 Dec 2005 15:32:44 +0000 (15:32 +0000)]
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
Andrew Haley [Thu, 8 Dec 2005 14:19:13 +0000 (14:19 +0000)]
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
Andrew Haley [Thu, 8 Dec 2005 13:52:39 +0000 (13:52 +0000)]
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
Nathan Sidwell [Thu, 8 Dec 2005 13:46:18 +0000 (13:46 +0000)]
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
Paolo Carlini [Thu, 8 Dec 2005 11:32:37 +0000 (11:32 +0000)]
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
Zdenek Dvorak [Thu, 8 Dec 2005 09:34:26 +0000 (10:34 +0100)]
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
Eric Botcazou [Thu, 8 Dec 2005 09:29:54 +0000 (10:29 +0100)]
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
Théodore Papadopoulo [Thu, 8 Dec 2005 09:09:08 +0000 (09:09 +0000)]
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
Gabriel Dos Reis [Thu, 8 Dec 2005 09:01:22 +0000 (09:01 +0000)]
* tree.h (DECL_EXTERNAL): Clarify documentation.
From-SVN: r108221
Andreas Krebbel [Thu, 8 Dec 2005 08:56:24 +0000 (08:56 +0000)]
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
Daniel Jacobowitz [Thu, 8 Dec 2005 06:40:37 +0000 (06:40 +0000)]
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
Kaveh R. Ghazi [Thu, 8 Dec 2005 01:26:45 +0000 (01:26 +0000)]
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
GCC Administrator [Thu, 8 Dec 2005 00:17:36 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r108205
Paolo Carlini [Wed, 7 Dec 2005 23:51:31 +0000 (23:51 +0000)]
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
J"orn Rennecke [Wed, 7 Dec 2005 23:49:43 +0000 (23:49 +0000)]
* expr.c (force_operand): Use convert_to_mode for conversions.
From-SVN: r108196
J"orn Rennecke [Wed, 7 Dec 2005 23:41:19 +0000 (23:41 +0000)]
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
Volker Reichelt [Wed, 7 Dec 2005 21:55:19 +0000 (21:55 +0000)]
* expr.c (cxx_expand_expr): Call gcc_unreachable instead of abort.
From-SVN: r108193
Volker Reichelt [Wed, 7 Dec 2005 21:50:00 +0000 (21:50 +0000)]
* cp-gimplify.c (gimplify_cp_loop): Use fold_build3.
From-SVN: r108192
Richard Sandiford [Wed, 7 Dec 2005 21:47:27 +0000 (21:47 +0000)]
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
Ben Elliston [Wed, 7 Dec 2005 21:38:02 +0000 (21:38 +0000)]
* newcvsroot: Remove.
From-SVN: r108190
Volker Reichelt [Wed, 7 Dec 2005 21:16:21 +0000 (21:16 +0000)]
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
Daniel Berlin [Wed, 7 Dec 2005 20:24:09 +0000 (20:24 +0000)]
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
Adrian Straetling [Wed, 7 Dec 2005 20:01:30 +0000 (20:01 +0000)]
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
Adrian Straetling [Wed, 7 Dec 2005 19:56:32 +0000 (19:56 +0000)]
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
Adrian Straetling [Wed, 7 Dec 2005 19:41:37 +0000 (19:41 +0000)]
Fix incorrect dates in ChangeLog.
From-SVN: r108175
Daniel Berlin [Wed, 7 Dec 2005 16:39:33 +0000 (16:39 +0000)]
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
Alan Modra [Wed, 7 Dec 2005 16:07:08 +0000 (16:07 +0000)]
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
Thiemo Seufer [Wed, 7 Dec 2005 14:56:38 +0000 (14:56 +0000)]
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
J"orn Rennecke [Wed, 7 Dec 2005 13:31:41 +0000 (13:31 +0000)]
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
Richard Sandiford [Wed, 7 Dec 2005 13:25:08 +0000 (13:25 +0000)]
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
Richard Sandiford [Wed, 7 Dec 2005 11:52:28 +0000 (11:52 +0000)]
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
Rafael Ávila de Espíndola [Wed, 7 Dec 2005 11:40:30 +0000 (22:10 +1030)]
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
Rafael Ávila de Espíndola [Wed, 7 Dec 2005 11:24:48 +0000 (21:54 +1030)]
Makefile.in: Document the use of stamps.
* Makefile.in: Document the use of stamps.
From-SVN: r108156
Alan Modra [Wed, 7 Dec 2005 11:22:18 +0000 (21:52 +1030)]
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
Richard Sandiford [Wed, 7 Dec 2005 09:43:39 +0000 (09:43 +0000)]
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
Richard Sandiford [Wed, 7 Dec 2005 09:17:01 +0000 (09:17 +0000)]
* config/darwin.h: Guard section variables with #ifndef IN_LIBGCC2.
From-SVN: r108153
Richard Sandiford [Wed, 7 Dec 2005 07:53:14 +0000 (07:53 +0000)]
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
Alan Modra [Wed, 7 Dec 2005 07:02:35 +0000 (07:02 +0000)]
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
Adam Nemet [Wed, 7 Dec 2005 03:46:23 +0000 (03:46 +0000)]
* MAINTAINERS: Change email address.
From-SVN: r108149
Tom Tromey [Wed, 7 Dec 2005 00:31:58 +0000 (00:31 +0000)]
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
GCC Administrator [Wed, 7 Dec 2005 00:17:27 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r108140
Jon Grimm [Tue, 6 Dec 2005 23:13:15 +0000 (23:13 +0000)]
cpplib.h (CPP_N_DFLOAT): New.
* include/cpplib.h (CPP_N_DFLOAT): New.
* expr.c (interpret_float_suffix): Identify df, dd, and dl
suffixes as decimal floating point constants.
(cpp_classify_number): Disallow hexadecimal DFP constants.
Co-Authored-By: Ben Elliston <bje@au.ibm.com>
From-SVN: r108133
Janis Johnson [Tue, 6 Dec 2005 20:50:27 +0000 (20:50 +0000)]
* lib/gcc-dg.exp (cleanup-dump): Remove options from test name.
From-SVN: r108129
Geoffrey Keating [Tue, 6 Dec 2005 20:06:35 +0000 (20:06 +0000)]
* config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): New.
From-SVN: r108128
Aldy Hernandez [Tue, 6 Dec 2005 19:45:00 +0000 (19:45 +0000)]
re PR c++/24138 (ICE with the code in PR 20407)
PR C++/24138
* tree.c (integer_all_onesp): Always return true if all bits on.
* cp/decl.c (reshape_init_array_1): Handle max_index of -1.
* testsuite/g++.dg/init/array0.C: New.
From-SVN: r108126
Paolo Carlini [Tue, 6 Dec 2005 17:19:30 +0000 (17:19 +0000)]
basic_string.h (insert(iterator, _CharT), [...]): Avoid troubles with ADL, user defined operators and __normal_iterator.
2005-12-06 Paolo Carlini <pcarlini@suse.de>
* include/bits/basic_string.h (insert(iterator, _CharT),
erase(iterator), erase(iterator, iterator)): Avoid troubles
with ADL, user defined operators and __normal_iterator.
* include/bits/stl_iterator.h (operator-(const __normal_iterator
<_Iterator, _Container>&, const __normal_iterator<_Iterator,
_Container>&)): Add overload for left and right iterators of
the same type.
* include/debug/safe_iterator.h (operator-(const _Safe_iterator
<_Iterator, _Sequence>&, const _Safe_iterator<_Iterator,
_Sequence>&)): Likewise.
* testsuite/21_strings/basic_string/types/1.cc: New.
From-SVN: r108123
Adrian Straetling [Tue, 6 Dec 2005 15:15:36 +0000 (15:15 +0000)]
md.texi: Adapt to implementation.
2005-12-06 Adrian Straetling <straetling@de.ibm.com>
* doc/md.texi: Adapt to implementation.
From-SVN: r108121
Roger Sayle [Tue, 6 Dec 2005 14:05:58 +0000 (14:05 +0000)]
typeck.c (build_binary_op): Issue warning if either operand of a comparison operator is a string literal...
* typeck.c (build_binary_op): Issue warning if either operand of a
comparison operator is a string literal, except for testing equality
or inequality against NULL.
* g++.dg/warn/Wstring-literal-comparison-1.C: New test case.
* g++.dg/warn/Wstring-literal-comparison-2.C: Likewise.
* g++.dg/warn/Wstring-literal-comparison-3.C: Likewise.
* g++.dg/warn/Wstring-literal-comparison-4.C: Likewise.
From-SVN: r108120
Roger Sayle [Tue, 6 Dec 2005 14:00:09 +0000 (14:00 +0000)]
re PR c++/25263 (ICE on invalid array bound: int x[1/0];)
PR c++/25263
* decl.c (compute_array_index_type): Check that itype is an
INTEGER_CST node before testing/clearing TREE_OVERFLOW.
* g++.dg/other/array2.C: New test case.
From-SVN: r108119
Joseph Myers [Tue, 6 Dec 2005 13:40:58 +0000 (13:40 +0000)]
* vi.po: Update.
From-SVN: r108117
Andreas Schwab [Tue, 6 Dec 2005 11:27:09 +0000 (11:27 +0000)]
* opts.c (decode_options): Fix typo in message.
From-SVN: r108115
Alan Modra [Tue, 6 Dec 2005 09:55:04 +0000 (09:55 +0000)]
re PR other/13873 (gcc/longlong.h uses test for PPC)
PR other/13873
* longlong.h: Merge PPC tests from upstream.
From-SVN: r108110
Richard Guenther [Tue, 6 Dec 2005 09:12:50 +0000 (09:12 +0000)]
fold-const.c (fold_convert): Do not build and fold CONVERT_EXPR, but always use NOP_EXPR.
2005-12-06 Richard Guenther <rguenther@suse.de>
* fold-const.c (fold_convert): Do not build and fold
CONVERT_EXPR, but always use NOP_EXPR.
From-SVN: r108107
Jan Beulich [Tue, 6 Dec 2005 09:07:23 +0000 (09:07 +0000)]
i386.c (builtin_description): Use MASK_SSE2 for __builtin_ia32_paddq and __builtin_ia32_subq.
2005-12-06 Jan Beulich <jbeulich@novell.com>
* config/i386/i386.c (builtin_description): Use MASK_SSE2 for
__builtin_ia32_paddq and __builtin_ia32_subq.
(ix86_init_mmx_sse_builtins): Use MASK_SSE|MASK_3DNOW_A for
__builtin_ia32_pshufw.
* config/i386/i386.md (mmx_adddi3, mmx_subdi3): Depend on TARGET_SSE2.
From-SVN: r108106
James E Wilson [Tue, 6 Dec 2005 05:31:39 +0000 (21:31 -0800)]
re PR target/24934 (profilebootstrap failure)
PR target/24934
* opts.c (decode_options): Turn off partitioning if flag_unwind_tables
is set.
From-SVN: r108103
Daniel Berlin [Tue, 6 Dec 2005 04:22:11 +0000 (04:22 +0000)]
In gcc/ 2005-12-05 Daniel Berlin <dberlin@dberlin.org>
In gcc/
2005-12-05 Daniel Berlin <dberlin@dberlin.org>
* print-tree.c (print_node): Ditto.
* tree-dfa.c (add_referenced_var): Tag's don't have DECL_INITIAL.
* tree-dump.c (dequeue_and_dump): Check for decl_common structure
before accessing DECL_ARTIFICIAL.
Handle new tag tree codes.
* tree-flow-inline.h (clear_call_clobbered): Update for tag
changes.
(unmodifiable_var_p): Ditto.
* tree-flow.h (mem_tag_kind): Remove.
(struct var_ann_d): Remove mem_tag_kind member.
* tree-gimple.c (is_gimple_reg): Tags are not gimple registers.
* tree-pretty-print.c (dump_generic_node): Handle memory tags.
* tree-ssa-alias.c (init_alias_info): Update for memory tag changes.
(group_aliases): Ditto.
(setup_pointers_and_addressables): Ditto.
(is_escape_site): Ditto.
(may_alias_p): Ditto.
(create_tag_raw): New function.
(create_memory_tag): Use it.
(dump_alias_info): Update for tags.
(may_be_aliased): Ditto.
(add_type_alias): Ditto.
(new_type_alias): Ditto.
(create_sft): Ditto.
(create_structure_vars): Ditto.
* tree-ssa-ccp.c (get_default_value): Ditto.
* tree-ssa-operands.c (get_expr_operands): Ditto.
(add_stmt_operand): Ditto.
(add_call_clobber_ops): Remove duplicated condition.
* tree-ssa.c (verify_flow_insensitive_alias_info): Update for
tags.
* tree-tailcall.c (suitable_for_tail_opt_p): Ditto.
* tree-vect-transform.c (vect_create_data_ref_ptr): Ditto.
* tree.c (init_ttree): Update structures for new tree codes.
(tree_code_size): Update sizes for new tree codes.
(make_node_stat): Don't try to set common things on minimal
structures.
(tree_node_structure): Update for tags.
(is_global_var): Ditto.
* tree.def: Add new tree codes.
* tree.h (MTAG_P): New macro.
(TREE_MEMORY_TAG_CHECK): Ditto.
(SSA_VAR_P): Update for tags.
(struct tree_memory_tag): New structure.
(MTAG_GLOBAL): New macro.
(union tree_node): Add memory tag member.
* treestruct.def (TS_MEMORY_TAG): New.
In gcc/cp
2005-12-05 Daniel Berlin <dberlin@dberlin.org>
* ptree.c (cxx_print_decl): Update to check for decl_common
structure.
From-SVN: r108102
Tom Tromey [Tue, 6 Dec 2005 02:30:11 +0000 (02:30 +0000)]
parse.y (patch_new_array_init): Don't set length on array.
gcc/java:
* parse.y (patch_new_array_init): Don't set length on array.
libjava:
* testsuite/libjava.compile/rh174912.java: New file.
From-SVN: r108099
GCC Administrator [Tue, 6 Dec 2005 00:17:34 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r108086
Dale Johannesen [Mon, 5 Dec 2005 23:04:28 +0000 (23:04 +0000)]
re PR target/24323 (_MM_TRANSPOSE4_PS could be improved)
2005-12-05 Dale Johannesen <dalej@apple.com>
* config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS): Fix to match
what was approved (PR 24323).
From-SVN: r108080
Gabriel Dos Reis [Mon, 5 Dec 2005 22:21:29 +0000 (22:21 +0000)]
c-tree.texi (Function Bodies): Remove description of RETURN_INIT.
* doc/c-tree.texi (Function Bodies): Remove description of
RETURN_INIT.
From-SVN: r108078
Joseph Myers [Mon, 5 Dec 2005 21:48:17 +0000 (21:48 +0000)]
libgcc.texi (__floatunsisf, [...]): Document.
* doc/libgcc.texi (__floatunsisf, __floatunsidf, __floatunsitf,
__floatunsixf, __floatundisf, __floatundidf, __floatunditf,
__floatundixf, __floatuntisf, __floatuntidf, __floatuntitf,
__floatuntixf, __powisf2, __powidf2, __powixf2, __mulsc3,
__muldc3, __multc3, __mulxc3, __divsc3, __divdc3, __divtc3,
__divxc3): Document.
From-SVN: r108077
Geoffrey Keating [Mon, 5 Dec 2005 21:38:27 +0000 (21:38 +0000)]
Index: gcc/ChangeLog
2005-12-05 Geoffrey Keating <geoffk@apple.com>
* config/darwin.c (machopic_select_section): It's not defined
as weak if it's only marked as weak_import.
Index: gcc/testsuite/ChangeLog
2005-12-05 Geoffrey Keating <geoffk@apple.com>
* gcc.dg/darwin-weakimport-3.c: New.
From-SVN: r108076
Geoffrey Keating [Mon, 5 Dec 2005 20:38:37 +0000 (20:38 +0000)]
Index: gcc/ChangeLog
2005-12-05 Geoffrey Keating <geoffk@apple.com>
* varasm.c (default_binds_local_p_1): Weakrefs don't bind locally.
A hidden weak object does bind locally. Strong linkonce data
counts like any other strong symbol for binding.
(weak_finish_1): Don't specially handle weakrefs, they no longer
arrive here.
(assemble_alias): Weakrefs can't be TREE_PUBLIC yet.
* c-common.c (handle_alias_attribute): Allow static aliases
of variables.
(handle_weakref_attribute): Don't call declare_weak on weakrefs.
* gthr-dce.h: Make weakrefs static.
* gthr-tpf.h: Likewise.
* gthr-solaris.h: Likewise.
* gthr-posix.h: Likewise.
* gthr-posix95.h: Likewise.
* config/darwin.c (darwin_encode_section_info): static weakref
variables are not necessarily defined in this translation unit.
* doc/extend.texi (Function Attributes): Mention that an alias
attribute creates a definition for the thing it's attached to.
Change the documentation for weakref to say that the thing
it's attached to must be static.
Index: gcc/testsuite/ChangeLog
2005-12-05 Geoffrey Keating <geoffk@apple.com>
* g++.old-deja/g++.abi/vtable2.C: Make weakrefs static.
* gcc.dg/attr-weakref-1.c: Modify to not try to test public weakrefs,
and to work on Darwin.
* gcc.dg/attr-weakref-1b.c: New file.
* gcc.dg/attr-weakref-2.c: New test.
* gcc.dg/darwin-weakref-1.c: New test.
From-SVN: r108074
Geoffrey Keating [Mon, 5 Dec 2005 19:37:11 +0000 (19:37 +0000)]
host-darwin.c (segv_handler): Unblock SEGV so we don't go into an infinite loop.
* config/rs6000/host-darwin.c (segv_handler): Unblock SEGV so
we don't go into an infinite loop.
From-SVN: r108070
Janis Johnson [Mon, 5 Dec 2005 19:06:11 +0000 (19:06 +0000)]
re PR testsuite/25247 (syntax error in target selector for gcc.dg/torture/fp-int-convert-float128-timode.c)
PR testsuite/25247
* lib/target-supports-dg.exp (dg-skip-if): Fix target selector for
use in selector expressions.
(dg-xfail-if): Ditto.
* gcc.test-framework/dg-dot-run-sif-exp-P.c: New test.
* gcc.test-framework/dg-dot-run-sif-exp-U.c: New test.
* gcc.test-framework/dg-dot-run-xif-exp-P.c: New test.
* gcc.test-framework/dg-dot-run-xif-exp-XP.c: New test.
* gcc.test-framework/test-framework.exp: Skip generated tests if
CHECK_TEST_FRAMEWORK is not 1.
From-SVN: r108069
Eric Botcazou [Mon, 5 Dec 2005 18:53:04 +0000 (19:53 +0100)]
re PR tree-optimization/24963 (gcc.dg/vect/vect-62.c scan-tree-dump-times not vectorized: redundant loop. no profit to vectorize. 1 fails)
PR tree-optimization/24963
* gcc.dg/vect/vect-62.c: Remove outdated dg-line.
PR target/24108
* gcc.dg/vect/vect-76.c: Do not XFAIL on vect_no_align platforms.
PR target/18580
* gcc.dg/vect/vect-reduc-1char.c: XFAIL on vect_no_int_max platforms.
* gcc.dg/vect/vect-reduc-2short.c: Likewise.
* gcc.dg/vect/vect-reduc-1short.c: Likewise.
* gcc.dg/vect/vect-reduc-2char.c: Likewise.
From-SVN: r108067
Paolo Bonzini [Mon, 5 Dec 2005 17:20:49 +0000 (17:20 +0000)]
predicates.md (logical_const_operand): Split out of logical_operand.
2005-12-05 Paolo Bonzini <bonzini@gnu.org>
* config/rs6000/predicates.md (logical_const_operand): Split
out of logical_operand.
(logical_operand): Use it.
* config/rs6000/rs6000.md (cmp -> xor peephole2): Use
logical_const_operand.
From-SVN: r108065
Paolo Carlini [Mon, 5 Dec 2005 16:39:18 +0000 (16:39 +0000)]
sso_string_base.h (__sso_string_base<>::_M_assign): Simplify, avoid pointless reallocations.
2005-12-05 Paolo Carlini <pcarlini@suse.de>
* include/ext/sso_string_base.h (__sso_string_base<>::_M_assign):
Simplify, avoid pointless reallocations.
From-SVN: r108063
Richard Guenther [Mon, 5 Dec 2005 16:24:47 +0000 (16:24 +0000)]
utils.c (convert): Use fold_convert where appropriate.
2005-12-05 Richard Guenther <rguenther@suse.de>
* utils.c (convert): Use fold_convert where appropriate.
From-SVN: r108061
Paolo Bonzini [Mon, 5 Dec 2005 15:00:27 +0000 (15:00 +0000)]
configure.in (CONFIGURED_BISON, [...]): Remove "CONFIGURED_" from the AC_CHECK_PROGS invocation.
toplevel:
2005-12-05 Paolo Bonzini <bonzini@gnu.org>
* configure.in (CONFIGURED_BISON, CONFIGURED_YACC, CONFIGURED_M4,
CONFIGURED_FLEX, CONFIGURED_LEX, CONFIGURED_MAKEINFO): Remove
"CONFIGURED_" from the AC_CHECK_PROGS invocation. Move below.
Find in-tree tools if available.
(EXPECT, RUNTEST, LIPO, STRIP): Find them and substitute them.
(CONFIGURED_*_FOR_TARGET): Don't set nor substitute.
(*_FOR_TARGET): Set them with GCC_TARGET_TOOL.
(COMPILER_*_FOR_TARGET): New.
* Makefile.tpl (HOST_EXPORTS): Add *_FOR_TARGET symbols that gcc needs.
(BASE_TARGET_EXPORTS): Use COMPILER_*_FOR_TARGET symbols.
(CONFIGURED_*, USUAL_*): Remove.
(BISON, YACC, FLEX, LEX, M4, MAKEINFO, EXPECT, RUNTEST, LIPO,
STRIP): Use autoconf substitutions.
(COMPILER_AS_FOR_TARGET, COMPILER_LD_FOR_TARGET,
COMPILER_NM_FOR_TARGET): New.
(EXTRA_HOST_FLAGS): Pass LIPO and STRIP.
(all): Make all-host and all-target in parallel.
(do-[+make_target+], do-check, install, [+compare-target+]): Ensure
that $$r and $$s are set before invoking a recursive make.
(stage[+id+]-bubble): Likewise, and invoke the comparison at the end.
([+bootstrap-target+]): Inline most of the `all' target.
config:
2005-12-05 Paolo Bonzini <bonzini@gnu.org>
* acx.m4 (GCC_TARGET_TOOL): New.
From-SVN: r108059
Paolo Bonzini [Mon, 5 Dec 2005 14:40:27 +0000 (14:40 +0000)]
Makefile.in (FLAGS_TO_PASS): Add GCC_FOR_TARGET.
libada:
2005-12-05 Paolo Bonzini <bonzini@gnu.org>
* Makefile.in (FLAGS_TO_PASS): Add GCC_FOR_TARGET.
gcc/ada:
2005-12-05 Paolo Bonzini <bonzini@gnu.org>
* Makefile.in (gnatlib): Fix regex, using \. instead of . when
a period is meant.
From-SVN: r108058
Richard Guenther [Mon, 5 Dec 2005 10:01:06 +0000 (10:01 +0000)]
treetree.c (tree_code_if_start, [...]): Use fold_convert where appropriate.
2005-12-05 Richard Guenther <rguenther@suse.de>
* treetree.c (tree_code_if_start, tree_code_create_variable,
tree_code_generate_return, tree_code_get_expression,
tree_code_add_parameter): Use fold_convert where appropriate.
From-SVN: r108051
Jan Beulich [Mon, 5 Dec 2005 08:44:17 +0000 (08:44 +0000)]
i386.c (enum ix86_builtins): Remove IX86_BUILTIN_CMPNEPS and IX86_BUILTIN_CMPNESS.
2005-12-05 Jan Beulich <jbeulich@novell.com>
* config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_CMPNEPS
and IX86_BUILTIN_CMPNESS.
(ix86_init_mmx_sse_builtins): Remove ti_ftype_ti_ti.
* config/i386/i386.h (ALIGN_MODE_128): Don't check TFmode explicitly.
* config/i386/i386.md (movti_internal): Correct type attribute.
Simplify mode attribute.
(movti_rex64, movsf_1, movdf_nointeger, movdf_integer, movtf_internal):
Correct type attribute.
(absxf2): Correct operator.
* config/i386/mmx.md (mov<mode>_internal_rex64, mov<mode>_internal,
movv2sf_internal_rex64, movv2sf_internal): Correct type attribute.
* config/i386/sse.md (mov<mode>_internal, movv2df_internal): Simplify
mode attribute.
(sse2_vmsqrtv2df2): Correct mode attribute.
From-SVN: r108048
Jan Beulich [Mon, 5 Dec 2005 08:38:20 +0000 (08:38 +0000)]
ia64.md (rotlsi3_internal): Don't split if rotating by 16 bits.
2005-12-05 Jan Beulich <jbeulich@novell.com>
* config/ia64/ia64.md (rotlsi3_internal): Don't split if rotating by
16 bits. Provide insn pattern for this case.
From-SVN: r108047
Jan Beulich [Mon, 5 Dec 2005 08:34:25 +0000 (08:34 +0000)]
libgcc2.c (__popcountSI2): Don't use wide type for iterator and result.
2005-12-05 Jan Beulich <jbeulich@novell.com>
* libgcc2.c (__popcountSI2): Don't use wide type for iterator and
result.
(__popcountDI2): Likewise.
From-SVN: r108046
Jakub Jelinek [Mon, 5 Dec 2005 07:46:40 +0000 (08:46 +0100)]
movq-2.c: Add -mtune=pentium4 to dg-options.
* gcc.target/i386/movq-2.c: Add -mtune=pentium4 to
dg-options.
From-SVN: r108042
John David Anglin [Mon, 5 Dec 2005 03:23:37 +0000 (03:23 +0000)]
re PR target/25166 (FAIL: gcc.c-torture/execute/conversion.c compilation)
PR target/25166
* pa/pa.c (pa_hpux_init_libfuncs): Add _U_Qfcnvxf_usgl_to_quad and
_U_Qfcnvxf_udbl_to_quad to set of initialized libfuncs.
* pa/quadlib.c (_U_Qfcnvxf_usgl_to_quad, _U_Qfcnvxf_udbl_to_quad): New
functions.
From-SVN: r108039
Paolo Carlini [Mon, 5 Dec 2005 01:57:59 +0000 (01:57 +0000)]
sso_string_base.h (__sso_string_base<>::_M_reserve): Simplify.
2005-12-04 Paolo Carlini <pcarlini@suse.de>
* include/ext/sso_string_base.h (__sso_string_base<>::_M_reserve):
Simplify.
From-SVN: r108036
Paolo Carlini [Mon, 5 Dec 2005 00:32:31 +0000 (00:32 +0000)]
vstring.h (__versa_string<>::operator+, [...]): Move out of line...
2005-12-04 Paolo Carlini <pcarlini@suse.de>
* include/ext/vstring.h (__versa_string<>::operator+, all
versions): Move out of line...
* include/ext/vstring.tcc (__versa_string<>::operator+): ...
here; consistently use reserve for the benefit of sso_string_base;
prefer push_back to single-char append when appropriate.
* include/ext/vstring.h (__versa_string<>::push_back): Don't
call _M_reserve, _M_mutate instead.
(reserve): Just forward to _M_reserve.
* include/ext/vstring.tcc (__versa_string<>::_M_reserve): Remove.
* include/ext/rc_string_base.h (__rc_string_base<>::_M_reserve): Also
do the initial checks (first on length, in case __res == capacity).
* include/ext/sso_string_base.h (__sso_string_base<>::_M_reserve:
Likewise; don't call _M_set_length unnecessarily.
2005-12-04 Paolo Carlini <pcarlini@suse.de>
* include/ext/vstring.h (__versa_string<>::_M_append): New.
(append(const __versa_string&), append(const __versa_string&,
size_type, size_type), append(const _CharT*, size_type),
append(const _CharT*)): Use it.
(append(size_type, _CharT)): Delegate to _M_replace_aux.
(assign(const __versa_string&, size_type, size_type),
assign(const _CharT*), replace(size_type, size_type,
const _CharT*, size_type)): Forward to _M_replace.
* include/ext/vstring.tcc (__versa_string<>::_M_append):
Define, core append functionality.
(_M_replace): Simplify, move __s == 0 case to _M_replace_aux.
(_M_replace_aux): Reorganize, don't call _M_replace.
2005-12-04 Paolo Carlini <pcarlini@suse.de>
* include/ext/vstring.tcc (__versa_string<>::_M_replace):
Perform _M_check_length at the beginning and remove it from ...
(replace, _M_replace_dispatch, _M_replace_aux, assign): ... here.
(assign): Now move inline.
(resize): Don't call _M_check_length redundantly, append does.
2005-12-04 Paolo Carlini <pcarlini@suse.de>
* include/ext/sso_string_base.h (__sso_string_base<>::_M_get_allocator):
Add non const version.
* include/ext/rc_string_base.h (__rc_string_base<>::_M_get_allocator):
Likewise.
* include/ext/sso_string_base.h (__sso_string_base<>::_M_erase): Add.
* include/ext/rc_string_base.h (__rc_string_base<>::_M_erase): Likewise.
(_M_leak_hard): Use it.
* include/ext/vstring.h (__versa_string<>::clear, erase, all
versions): Use it.
* include/ext/vstring.tcc (__versa_string<>::resize): Likewise.
* include/ext/vstring.h (__versa_string<>::_M_replace_safe):
Remove.
* include/ext/vstring.h (__versa_string<>::_M_replace): New, does
the in-place work or delegates to _M_mutate in case of reallocation.
* include/ext/vstring.tcc (__versa_string<>::_M_replace_safe):
Remove.
* include/ext/vstring.tcc (__versa_string<>::_M_replace): Define.
(assign, replace, _M_replace_dispatch, _M_replace_aux): Use it.
* include/ext/sso_string_base.h (__sso_string_base<>::_M_mutate):
Change to manage only reallocations.
* include/ext/rc_string_base.h (__rc_string_base<>::_M_mutate):
Likewise.
* include/ext/vstring.h (__versa_string<>::insert(size_type,
const __versa_string&), insert(size_type, const __versa_string&,
size_type, size_type), insert(size_type, const _CharT*, size_type),
insert(size_type, const _CharT*)): Delegate to replace.
* include/ext/vstring.h (__versa_string<>::reserve): Move out of
line.
* include/ext/vstring.tcc (__versa_string<>::reserve): Do the
checks and call _M_reserve.
* include/ext/vstring.h (__versa_string<>::append): Call _M_reserve
instead of reserve.
* include/ext/vstring.tcc (__versa_string<>::append, all versions):
Likewise.
* include/ext/sso_string_base.h (__sso_string_base<>::_M_reserve):
Adjust.
* include/ext/rc_string_base.h (__rc_string_base<>::_M_reserve):
Likewise.
From-SVN: r108034
GCC Administrator [Mon, 5 Dec 2005 00:17:32 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r108031
Ben Elliston [Sun, 4 Dec 2005 23:50:48 +0000 (23:50 +0000)]
Makefile.in (clean): Remove stray reference to libcpp.a.
* Makefile.in (clean): Remove stray reference to libcpp.a.
* decimal128.h, decContext.c, decRound.c, decimal32.c,
decNumber.c, decContext.h, decimal64.c, decimal32.h, decNumber.h,
decimal64.h, decUtility.c, decLibrary.c, configure.ac,
decNumberLocal.h, decUtility.h, decDPD.h, decimal128.c: Update FSF
office address.
From-SVN: r108024
Joseph Myers [Sun, 4 Dec 2005 23:04:59 +0000 (23:04 +0000)]
c-typeck.c (null_pointer_constant_p): New function.
* c-typeck.c (null_pointer_constant_p): New function.
(build_conditional_expr, build_c_cast, convert_for_assignment,
build_binary_op): Use it.
testsuite:
* gcc.dg/c90-const-expr-5.c, gcc.dg/c99-const-expr-5.c: New tests.
From-SVN: r108022
Joseph Myers [Sun, 4 Dec 2005 21:45:41 +0000 (21:45 +0000)]
c-common.c (binary_op_error): Do not allow NOP_EXPR.
* c-common.c (binary_op_error): Do not allow NOP_EXPR.
(c_common_truthvalue_conversion): Handle NOP_EXPR the same as
CONVERT_EXPR.
(check_function_arguments_recurse): Allow both NOP_EXPR and
CONVERT_EXPR but check conversions preserve precision.
* c-typeck.c (pointer_diff): Allow both NOP_EXPR and CONVERT_EXPR
but check conversions preserve precision.
(build_unary_op): Don't allow NOP_EXPR. Use gcc_unreachable () in
default case.
testsuite:
* gcc.dg/format/cast-1.c: New test.
From-SVN: r108020
Roger Sayle [Sun, 4 Dec 2005 19:58:37 +0000 (19:58 +0000)]
re PR c/7776 (const char* p = "foo"; if (p == "foo") ... is compiled without warning!)
PR c/7776
* doc/invoke.texi: Document new -Wstring-literal-comparison option.
From-SVN: r108019
Roger Sayle [Sun, 4 Dec 2005 19:56:47 +0000 (19:56 +0000)]
re PR c/7776 (const char* p = "foo"; if (p == "foo") ... is compiled without warning!)
PR c/7776
* common.opt (Wstring-literal-comparison): New command line option.
* c-opts.c (c_common_handle_option): Set it with -Wall.
* c-typeck.c (parser_build_binary_op): Issue warning if either
operand of a comparison operator is a string literal, except for
testing equality or inequality against NULL.
* doc/invoke.texi: Document new -Wstring-literal-comparison option.
* gcc.dg/Wstring-literal-comparison-1.c: New test case.
* gcc.dg/Wstring-literal-comparison-2.c: Likewise.
* gcc.dg/Wstring-literal-comparison-3.c: Likewise.
* gcc.dg/Wstring-literal-comparison-4.c: Likewise.
From-SVN: r108018
Francois-Xavier Coudert [Sun, 4 Dec 2005 18:13:59 +0000 (19:13 +0100)]
format.c: Removing unused code.
* io/format.c: Removing unused code.
* intrinsics/random.c: Likewise.
From-SVN: r108014
GCC Administrator [Sun, 4 Dec 2005 00:17:29 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r108007
Joseph Myers [Sat, 3 Dec 2005 18:58:43 +0000 (18:58 +0000)]
c-common.c (c_sizeof_or_alignof_type): Use fold_convert instead of building a NOP_EXPR.
* c-common.c (c_sizeof_or_alignof_type): Use fold_convert instead
of building a NOP_EXPR.
(c_alignof_expr): Likewise. Handle CONVERT_EXPR the same as
NOP_EXPR.
* c-convert.c (convert): Use fold_convert instead of building
NOP_EXPRs and CONVERT_EXPRs directly. Don't special case
c_objc_common_truthvalue_conversion returning a NOP_EXPR. Remove
#if 0 code.
* c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle
NOP_EXPR the same as CONVERT_EXPR.
* c-typeck.c (build_function_call): Use fold_convert instead of
building a NOP_EXPR directly.
(build_compound_expr): Handle NOP_EXPR the same as CONVERT_EXPR.
testsuite:
* gcc.dg/cast-pretty-print-1.c: New test.
From-SVN: r108001
Francois-Xavier Coudert [Sat, 3 Dec 2005 15:32:04 +0000 (16:32 +0100)]
re PR fortran/25106 ([4.0/4.1] statement label is zero)
PR fortran/25106
* parse.c (next_free): Use new prototype for gfc_match_st_label.
Correctly emit hard error if a label is zero.
* match.c (gfc_match_st_label): Never allow zero as a valid
label.
(gfc_match, gfc_match_do, gfc_match_goto): Use new prototype for
gfc_match_st_label.
* primary.c (): Use new prototype for gfc_match_st_label.
* io.c (): Likewise.
* match.h: Likewise.
From-SVN: r107999
Alan Modra [Sat, 3 Dec 2005 04:31:16 +0000 (15:01 +1030)]
typo fix
From-SVN: r107993
Alan Modra [Sat, 3 Dec 2005 04:26:37 +0000 (14:56 +1030)]
PR rtl-optimization 25197
PR rtl-optimization 25197
* dwarf2out.c (dwarf2out_frame_debug_expr <rule 12>): Assert we
have a reg.
From-SVN: r107992
Stuart Hastings [Sat, 3 Dec 2005 01:30:30 +0000 (01:30 +0000)]
* config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove -fpic warning.
From-SVN: r107991
Joseph Myers [Sat, 3 Dec 2005 01:25:42 +0000 (01:25 +0000)]
c-typeck.c (default_function_array_conversion, [...]): Allow for CONVERT_EXPR as well as NOP_EXPR.
* c-typeck.c (default_function_array_conversion,
build_function_call): Allow for CONVERT_EXPR as well as NOP_EXPR.
(build_conditional_expr): Apply integer_zerop to orig_op1 and
orig_op2. Don't check them for NOP_EXPR.
(build_c_cast, convert_for_assignment): Don't check for NOP_EXPR
around integer zero.
testsuite:
* gcc.dg/c90-const-expr-4.c, gcc.dg/c99-const-expr-4.c: New tests.
From-SVN: r107990
Joseph Myers [Sat, 3 Dec 2005 01:02:39 +0000 (01:02 +0000)]
* zh_CN.po: Update.
From-SVN: r107984
Mark Mitchell [Sat, 3 Dec 2005 01:02:33 +0000 (01:02 +0000)]
re PR c++/24173 (ICE with garbage collection)
PR c++/24173
* decl.c (duplicate_decls): Don't rely on DECL_TEMPLATE_INFO after
clobbering newdecl.
PR c++/24173
* g++.dg/template/friend40.C: New test.
From-SVN: r107983
Joseph Myers [Sat, 3 Dec 2005 01:00:19 +0000 (01:00 +0000)]
* zh_CN.po: New file.
From-SVN: r107981
Mike Stump [Sat, 3 Dec 2005 00:20:15 +0000 (00:20 +0000)]
Fixup some spacing
From-SVN: r107973