PR c++/19159
* decl2.c (import_export_decl): Use non-COMDAT external linkage
for virtual tables, typeinfo, etc. that will be emitted in only
one translation unit on systems without weak symbols.
From-SVN: r97635
PR libfortran/20755
* write.c (write_float): A G edit descriptor may locally change
the scale factor, but it needs to be restored afterwards.
* gfortran.dg/pr20755.f: New test.
From-SVN: r97627
* config/bfin/bfin-modes.def: New file.
* config/bfin/bfin-protos.h: New file.
* config/bfin/bfin.c: New file.
* config/bfin/bfin.h: New file.
* config/bfin/bfin.md: New file.
* config/bfin/bfin.opt: New file.
* config/bfin/crti.s: New file.
* config/bfin/crtn.s: New file.
* config/bfin/elf.h: New file.
* config/bfin/lib1funcs.asm: New file.
* config/bfin/predicates.md: New file.
* config/bfin/t-bfin: New file.
* config/bfin/t-bfin-elf: New file.
* doc/extend.texi (exception_handler, kspisusp, nesting, nmi_handler):
Document new attributes.
(interrupt, interrupt_handler, saveall): Update documentation for
these attributes.
* doc/install.texi (Specific): Add entry for the Blackfin.
* doc/invoke.texi (Blackfin Options): New section.
* doc/md.texi (Blackfin family): New section to document constraints.
* config.gcc: Add bfin*-* and bfin*-elf configurations.
From-SVN: r97622
* include/tr1/memory, include/tr1/boost_shared_ptr.h: Use mutex
to make _Sp_counted_base::add_ref_lock() thread-safe. Check whether
to destroy resources by testing for equality, not inequality. Add
empty critical sections to solve memory visibility issues.
* testsuite/tr1/2_general_utilities/memory/
shared_ptr/cons/auto_ptr_neg.cc: Use dg-excess-errors instead of
explicitly listing line numbers which need to be kept in sync.
* testsuite/tr1/2_general_utilities/memory/
shared_ptr/assign/auto_ptr_neg.cc: Same.
* testsuite/tr1/2_general_utilities/memory/
shared_ptr/assign/auto_ptr_rvalue_neg.cc: Same.
* testsuite/tr1/2_general_utilities/memory/
shared_ptr/cons/weak_ptr_expired.cc: Make XFAIL for consistency when
-fno-exceptions.
* testsuite/tr1/2_general_utilities/memory/
enable_shared_from_this/not_shared.cc: Add explanatory comments.
* testsuite/tr1/2_general_utilities/memory/
enable_shared_from_this/not_shared2.cc: Same.
* testsuite/tr1/2_general_utilities/memory/
enable_shared_from_this/not_shared3.cc: Same.
From-SVN: r97620
* config/mips/iris6.h (DWARF_FRAME_RETURN_COLUMN): Redefine to
match what the system unwinder expects.
* config/mips/mips.c (mips_frame_set): If we're saving the return
address register and the dwarf return address column number differs
from the hard register number, adjust the note reg to refer to the
former.
From-SVN: r97617
2005-04-05 Feng Wang <fengwang@nudt.edu.cn>
PR fortran/15959
PR fortran/20713
* array.c (resolve_character_array_constructor): New function. Set
constant character array's character length.
(gfc_resolve_array_constructor): Use it.
* decl.c (add_init_expr_to_sym): Set symbol and initializer character
length.
(gfc_set_constant_character_len): New function. Set constant character
expression according the given length.
* match.h (gfc_set_constant_character_len): Add prototype.
2005-04-05 Feng Wang <fengwang@nudt.edu.cn>
* gfortran.dg/pr15959.f90: New test.
* gfortran.dg/string_pad_trunc.f90: New test.
From-SVN: r97613
PR tree-optimization/19903
* tree-chrec.c (chrec_convert): Return chrec_dont_know for constants
that don't fit in their type after conversion.
Co-Authored-By: Sebastian Pop <sebastian.pop@cri.ensmp.fr>
From-SVN: r97607
2005-04-05 Kelley Cook <kcook@gcc.gnu.org>
* linkage.m4 (GLIBCXX_CHECK_BUILTIN_MATH_DEC): Use m4 translit macro
to convert to uppercase instead of shelling out to tr.
* acconfig.h: Remove now redundant HAVE__BUILTINS_*.
* configure, config.h.in: Regenerate.
From-SVN: r97597
* c-typeck.c (struct c_switch): Rename switch_stmt field to
switch_expr.
(c_start_case): Build SWITCH_EXPR, not SWITCH_STMT.
(do_case): Use SWITCH_COND rather than SWITCH_STMT_COND.
(c_finish_case): Use SWITCH_BODY rather than SWITCH_STMT_BODY.
Call c_do_switch_expr_warnings rather than c_do_switch_warnings.
* c-common.c (c_do_switch_warnings_1): New static function broken
out of c_do_switch_warnings.
(c_do_switch_warnings): Call c_do_switch_warnings_1.
(c_do_switch_expr_warnings): New function.
* c-common.h (c_do_switch_expr_warnings): Declare.
From-SVN: r97593
* config/cris/cris.md: Change all 0 in unspec 0 to
CRIS_UNSPEC_PLT.
(CRIS_UNSPEC_PLT, CRIS_UNSPEC_FRAME_DEALLOC): New constants.
("*cris_load_multiple", "cris_frame_deallocated_barrier"): New
patterns.
("return"): Change to define_expand. Call cris_expand_return for
actual expansion.
("*return_expanded"): New pattern.
("epilogue"): New define_expand.
* config/cris/cris.h (PREDICATE_CODES): Add
cris_load_multiple_op.
* config/cris/cris.c (ASSERT_PLT_UNSPEC): Correct test for unspec
type.
(enum cris_retinsn_type): New.
(struct machine_function): New member return_type.
(TARGET_ASM_FUNCTION_EPILOGUE): Don't override.
(cris_target_asm_function_epilogue): Remove, moving RTLified
contents to...
(cris_expand_epilogue): New function.
(cris_reg_saved_in_regsave_area, cris_movem_load_rest_p,
(cris_gen_movem_load, cris_load_multiple_op)
(cris_return_address_on_stack_for_return, cris_expand_return): New
functions.
(cris_target_asm_function_prologue)
(cris_initial_frame_pointer_offset): Call
cris_reg_saved_in_regsave_area instead of complicated expression.
Call cris_return_address_on_stack instead of an expression.
(cris_print_operand) <case 'o', case 'O'>: New cases.
(cris_return_address_on_stack): Change return-type to bool.
(cris_simple_epilogue): Ditto. Return false if registers are
saved.
* config/cris/cris-protos.h (cris_simple_epilogue)
(cris_return_address_on_stack): Adjust prototype return type.
(cris_gen_movem_load, cris_expand_epilogue, cris_expand_return)
(cris_return_address_on_stack_for_return): New prototypes.
From-SVN: r97580
* Makefile.in (tree-ssa-loop-ivopts.o): Depend on langhooks.h.
* tree-ssa-loop-ivopts.c: Include langhooks.h.
(add_standard_iv_candidates_for_size): New function, extracting code
from add_standard_iv_candidates and parameterizing it by type size.
(add_standard_iv_candidates): Use add_standard_iv_candidates_for_size.
From-SVN: r97571
PR target/20446
* config/sparc/sparc.h (NEED_INDICATE_EXEC_STACK): Define to 0.
* config/sparc/linux.h (TARGET_ASM_FILE_END): Delete.
(NEED_INDICATE_EXEC_STACK): Define to 1.
* config/sparc/linux64.h (TARGET_ASM_FILE_END): Delete.
(NEED_INDICATE_EXEC_STACK): Define to 1.
* config/sparc/sparc.c (TARGET_ASM_FILE_END): Set to sparc_file_end.
(add_pc_to_pic_symbol): Rename into pic_helper_symbol.
(add_pc_to_pic_symbol_name): Rename into pic_helper_symbol_name.
(pic_helper_emitted_p): New global.
(emit_pic_helper): New function extracted from...
(load_pic_register): ...here. Add 'delay_pic_helper' parameter.
Do not call emit_pic_helper if delay_pic_helper is true.
(sparc_expand_prologue): Pass 'false' to load_pic_register.
(sparc_output_mi_thunk): Pass 'true' to load_pic_register.
(sparc_file_end): New function.
From-SVN: r97550