Commit Graph

66155 Commits

Author SHA1 Message Date
Paolo Carlini
442dca704c type_traits: Implemenet is_polymorphic.
2005-03-03  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/type_traits: Implemenet is_polymorphic.
	(is_empty): Minor tweaks.
	* testsuite/testsuite_tr1.h: Add test types.
	* testsuite/tr1/4_metaprogramming/type_properties/
	is_polymorphic/is_polymorphic.cc: New.
	* testsuite/tr1/4_metaprogramming/type_properties/
	is_polymorphic/typedefs.cc: Likewise.
	* testsuite/tr1/4_metaprogramming/composite_type_traits/
	is_union_or_class/is_union_or_class.cc: Add tests.

From-SVN: r95829
2005-03-03 13:52:20 +00:00
Hans-Peter Nilsson
2a60a1b116 Fix my last entry
From-SVN: r95825
2005-03-03 04:41:55 +00:00
Hans-Peter Nilsson
f60c7155c1 Describe special registers SRP and MOF as allocatable registers.
* config/cris/cris.c (cris_md_asm_clobbers): New function.
	(TARGET_MD_ASM_CLOBBERS): Define to cris_md_asm_clobbers.
	(cris_conditional_register_usage): Enable CRIS_MOF_REGNUM if
	TARGET_HAS_MUL_INSNS.
	(cris_print_operand) <case 'd'>: New case.
	<case REG>: Allow CRIS_MOF_REGNUM and CRIS_SRP_REGNUM.
	* config/cris/cris.h (CRIS_PC_REGNUM, CRIS_SRP_REGNUM): Don't
	define.
	(FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS)
	(REG_ALLOC_ORDER): Update for MOF.
	(enum reg_class): New members MOF_REGS, GENERAL_REGS and
	SPECIAL_REGS.
	(GENERAL_REGS): No longer a define of ALL_REGS.
	(REGNO_REG_CLASS, REG_CLASS_CONTENTS, REG_CLASS_NAMES)
	(PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
	Adjust accordingly.
	(CRIS_SPECIAL_REGS_CONTENTS): New macro.
	(REG_CLASS_FROM_LETTER): Allocate 'h' and 'x'.
	(SECONDARY_RELOAD_CLASS): Define.
	(STACK_POINTER_REGNUM): Define as CRIS_SP_REGNUM.
	(FRAME_POINTER_REGNUM): Define as CRIS_FP_REGNUM.
	(ARG_POINTER_REGNUM): Define as CRIS_AP_REGNUM.
	(STATIC_CHAIN_REGNUM): Define as CRIS_STATIC_CHAIN_REGNUM.
	(REGISTER_MOVE_COST): Define.
	(PIC_OFFSET_TABLE_REGNUM): Define in terms of CRIS_GOT_REGNUM.
	* config/cris/cris.md (CRIS_GOT_REGNUM, CRIS_STATIC_CHAIN_REGNUM)
	(CRIS_FP_REGNUM, CRIS_SP_REGNUM, CRIS_SRP_REGNUM, CRIS_AP_REGNUM)
	(CRIS_MOF_REGNUM): New define_constants.
	("*movsi_internal", "movhi", "movqi", "movsf"): Add alternatives for
	special registers.
	("reload_inhi", "reload_outhi", "reload_inqi",
	("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3")
	("mulsidi3", "umulsidi3", "smulsi3_highpart", "umulsi3_highpart"):
	Adjust for MOF being properly described as a register.
	(indir_to_reg_split): Name this split.  Conditionalize on the
	destination register being a general register.
	(movei): Conditionalize on on operands 0 and 1 having the same
	register class.

From-SVN: r95823
2005-03-03 03:53:29 +00:00
Alan Modra
768875a86f re PR target/20277 (-mcpu=power4 vs. -maltivec)
PR target/20277
	* config/rs6000/rs6000.c (rs6000_override_options): Don't allow
	-mcpu to override any other explicitly given flags.

From-SVN: r95820
2005-03-03 11:33:28 +10:30
Kaveh R. Ghazi
cea914801f jcf-io.c (caching_stat): Use __extension__ to avoid pedantic warning.
* jcf-io.c (caching_stat): Use __extension__ to avoid pedantic
	warning.
	* Make-lang.in: Don't elide warnings in jcf-io.c.

From-SVN: r95819
2005-03-03 00:27:03 +00:00
GCC Administrator
79a8dc5b6a Daily bump.
From-SVN: r95817
2005-03-03 00:17:15 +00:00
J"orn Rennecke
0a63483247 recog.c (verify_changes, [...]): New functions, broken out of apply_change_group.
* recog.c (verify_changes, confirm_change_group): New functions,
	broken out of apply_change_group.
	(apply_change_group): Use them.
	* recog.h (verify_change, confirm_change_group): Declare.
	* rtl.h (redirect_jump_2): Declare.
	* jump.c (redirect_exp, invert_exp): Delete.
	(invert_exp_1): Take second parameter.  Return value.  Changed caller.
	(redirect_jump_2): New function, broken out of redirect_jump.
	(redirect_jump): Use redirect_jump_1 and redirect_jump_2.
	(invert_jump): Use invert_jump_1 and redirect_jump_2.
	* ifcvt.c (dead_or_predicable): Use redirect_jump_2.

From-SVN: r95813
2005-03-02 22:02:32 +00:00
Geoffrey Keating
7df74013f1 varasm.c (named_section): Use xstrdup rather than doing it by hand.
* varasm.c (named_section): Use xstrdup rather than doing it by
	hand.

From-SVN: r95812
2005-03-02 21:33:44 +00:00
Geoffrey Keating
0aca3a6145 * config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.
From-SVN: r95805
2005-03-02 20:33:45 +00:00
Devang Patel
2af51b8831 Undo PR tree-optimization/18815 fix.
From-SVN: r95803
2005-03-02 12:07:45 -08:00
Alexandre Oliva
713101a65e name-lookup.c (push_overloaded_decl): Don't error if the new decl matches the old one.
gcc/cp/ChangeLog:
* name-lookup.c (push_overloaded_decl): Don't error if the new
decl matches the old one.
* decl.c (redeclaration_error_message): Likewise.
gcc/testsuite/ChangeLog:
* g++.dg/overload/using2.C: New.

From-SVN: r95798
2005-03-02 19:55:52 +00:00
Devang Patel
ac0bd8018d re PR tree-optimization/18815 (Tree if-conversion screws up cfg very badly)
PR tree-optimization/18815
       * tree-if-conv.c (combine_blocks): Adjust loop header edges for
       loops with zero exit edges.

From-SVN: r95796
2005-03-02 11:45:25 -08:00
David Ayers
270a1283e6 re PR libobjc/19024 (name collisions libobjc/libmysqlclient)
2005-03-02  David Ayers  <d.ayers@inode.at>

        PR libobjc/19024
        * Makefile.in (OBJS): Add hash_compat.lo.
        (OBJS_GC): Add hash_compat_gc.lo.
        (hash_compat_gc.lo): New target and rule.
        * objc/hash.h (hash_new, hash_delete, hash_add, hash_remove)
        (hash_next, hash_value_for_key, hash_is_key_in_hash)
        (hash_ptr, hash_string, compare_ptrs, compare_strings): Prefix
        with objc_.  Add deprecated non prefixed inlined versions.
        (OBJC_IGNORE_DEPRECATED_API): New macro to hide deprecated
        declarations.
        * hash.c (hash_new, hash_delete, hash_add, hash_remove, hash_next)
        (hash_value_for_key, hash_is_key_in_hash): Prefix with objc_ and
        update callers.
        * hash_compat.c: New file.
        * archive.c: Update callers.
        * init.c: Likewise.
        * selector.c: Likewise.
        * libobjc.def: Add objc_ versions of hash functions.

From-SVN: r95793
2005-03-02 11:37:03 -08:00
Kazu Hirata
13396b14c0 tree-ssa-dom.c (tree_ssa_dominator_optimize): Call free_dominance_info only when needed.
* tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
	free_dominance_info only when needed.

From-SVN: r95791
2005-03-02 19:12:55 +00:00
Kazu Hirata
adf4a335e3 cfg.c (connect_src, [...]): New.
* cfg.c (connect_src, connect_dest, disconnect_src,
	disconnct_dest): New.
	(unchecked_make_edge, remove_edge, redirect_edge_succ,
	redirect_edge_pred): Use the new functions.

From-SVN: r95790
2005-03-02 19:09:03 +00:00
David Edelsohn
94dcded2d4 re PR target/20276 (64bit PPC target uses __adddi3)
PR target/20276
	* config/rs6000/predicates.md (reg_or_cint64_operand): Fix typo.
	(reg_or_sub_cint64_operand): Same.

From-SVN: r95789
2005-03-02 13:57:30 -05:00
Jeff Law
6802357028 tree-ssa-dom.c (tree_ssa_dominator_optimize): Fix setting of CFG_ALTERED in the main DOM iteration loop.
* tree-ssa-dom.c (tree_ssa_dominator_optimize): Fix setting of
        CFG_ALTERED in the main DOM iteration loop.

From-SVN: r95788
2005-03-02 11:54:34 -07:00
Mark Mitchell
9560cbde52 re PR c++/19916 (Segmentation fault in __static_initialization_and_destruction_0)
PR c++/19916
	* varasm.c (initializer_constant_valid_p): Allow conversions
	between OFFSET_TYPEs.  Tidy.

	PR c++/19916
	* g++.dg/init/ptrmem2.C: New test.

From-SVN: r95787
2005-03-02 17:13:09 +00:00
Hans-Peter Nilsson
bf95bc65e0 cris.md ("return"): Remove epilogue delay list sanity check.
* config/cris/cris.md ("return"): Remove epilogue delay list
	sanity check.

From-SVN: r95786
2005-03-02 16:48:29 +00:00
Daniel Jacobowitz
f92ba6d110 linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT) for Thumb.
* config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
	for Thumb.
	* config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.

From-SVN: r95785
2005-03-02 16:27:42 +00:00
Kazu Hirata
659d8efa54 fold-const.c (fold_unary): New.
* fold-const.c (fold_unary): New.
	(fold): Call fold_unary on unary expressions.

From-SVN: r95783
2005-03-02 16:07:47 +00:00
Kazu Hirata
92fb2d32d5 PR middle-end/18029 and PR middle-end/18030
PR middle-end/18029 and PR middle-end/18030
	* expr.c (optimize_bitfield_assignment_op): Add a special case
	to handle BIT_IOR_EXPR and BIT_XOR_EXPR.

From-SVN: r95782
2005-03-02 16:04:50 +00:00
Kazu Hirata
613c5cd0c6 cfgloop.h, [...]: Update copyright.
* cfgloop.h, cfgloopanal.c, cfgloopmanip.c, conflict.c,
	loop-init.c, loop-unroll.c, print-tree.c, reg-notes.def,
	config/m68k/m68k.c, config/mips/mips.h,
	config/rs6000/rs6000-protos.h, doc/contrib.texi,
	doc/include/gcc-common.texi: Update copyright.

From-SVN: r95781
2005-03-02 14:03:44 +00:00
Douglas Gregor
3c2350009b functional (_Has_result_type): Cleanup.
2005-03-02  Douglas Gregor  <doug.gregor@gmail.com>

        * include/tr1/functional (_Has_result_type): Cleanup.
        (_Result_of_impl): Handle member data pointers correctly.
        (reference_wrapper): Support invocation.
        Move repetition code into new file include/tr1/repeat.h.
        * include/tr1/functional_iterate.h (reference_wrapper): Support
        invocation.  Cleanup long lines.
        * include/tr1/ref_wrap_iterate.h (reference_wrapper): Declare
        invocation operators.
        * include/tr1/repeat.h: Code repetition header.
        * include/Makefile.am: Add ref_wrap_iterate.h, repeat.h
        * include/Makefile.in: Add ref_wrap_iterate.h, repeat.h
        * testsuite/tr1/3_function_objects/reference_wrapper/invoke.cc:
        New test of reference_wrapper invocation.
        * testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc:
        New test of reference_wrapper typedefs and base classes.
        * testsuite/tr1/3_function_objects/result_of.cc: Trivial cleanup
        (e-mail address).

2005-03-02  Douglas Gregor  <doug.gregor@gmail.com>

        * include/tr1/function (result_of): New class template.
        * include/tr1/functional/iterator.h: Implementation of TR1
        result_of.
        * testsuite/tr1/3_function_objects/result_of.cc: New test

From-SVN: r95778
2005-03-02 12:56:28 +00:00
Richard Guenther
2563c2248f cgraph.h (struct cgraph_edge): Add prev_caller and prev_callee fields.
2005-03-02  Richard Guenther  <rguenth@gcc.gnu.org>

	* cgraph.h (struct cgraph_edge): Add prev_caller and
	prev_callee fields.
	(cgraph_node_remove_callees): Export.
	* cgraph.c (cgraph_create_edge): Initialize prev_caller
	and prev_callee.
	(cgraph_edge_remove_callee): New function.
	(cgraph_edge_remove_caller): Likewise.
	(cgraph_remove_edge): Use.
	(cgraph_redirect_edge_callee): Likewise.
	(cgraph_node_remove_callees): New function.
	(cgraph_node_remove_callers): Likewise.
	(cgraph_remove_node): Use.
	* tree-optimize.c (tree_rest_of_compilation): Use
	cgraph_node_remove_callees instead of manual loop.
	* cgraphunit.c (cgraph_finalize_function): Likewise.
	(cgraph_expand_function): Likewise.
	(cgraph_remove_unreachable_nodes): Likewise.

From-SVN: r95777
2005-03-02 11:09:48 +00:00
Vladimir Merzliakov
ceccf46b10 * testsuite/26_numerics/cmath/c99_classification_macros_c.cc: Tweak.
From-SVN: r95774
2005-03-02 03:02:45 +00:00
Joseph Myers
766beb4020 re PR c/8927 (Gcc give error for wrong line of C code.)
PR c/8927
	* c-tree.h (undeclared_variable, build_external_ref): Add extra
	argument.
	* c-decl.c (undeclared_variable): Take location as argument.
	* c-typeck.c (build_external_ref): Likewise.
	* c-parser.c (c_parser_postfix_expression): Pass location of
	identifier to build_external_ref.

testsuite:
	* gcc.dg/pr8927-1.c: New test.

From-SVN: r95773
2005-03-02 02:50:25 +00:00
Per Bothner
176a0aad11 decl.c (finish_function): Use SET_EXPR_LOCATION instead of unavailable annotate_with_file_line...
* decl.c (finish_function): Use SET_EXPR_LOCATION instead of
	unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.

From-SVN: r95772
2005-03-01 16:23:47 -08:00
GCC Administrator
58a30fef7b Daily bump.
From-SVN: r95770
2005-03-02 00:17:35 +00:00
Kelley Cook
e5aa6a0ae6 Makefile.in, [...]: Regenerate.
2005-03-01  Kelley Cook  <kcook@gcc.gnu.org>

	* Makefile.in, include/Makefile.in: Regenerate.

From-SVN: r95762
2005-03-01 23:25:50 +00:00
Alexandre Oliva
e73ed25c41 re PR libgcj/20160 (link errors building libgcj tests)
PR libgcj/20160
* ltmain.sh: Avoid creating archives with components that have
duplicate basenames.

From-SVN: r95756
2005-03-01 22:27:43 +00:00
David Edelsohn
364849ee36 rs6000.md (cceq splitter): Use operand mode, not CCEQ mode for branch_positive_comparison_operator test.
* config/rs6000/rs6000.md (cceq splitter): Use operand mode, not
	CCEQ mode for branch_positive_comparison_operator test.
	* config/rs6000/predicates (branch_comparison_operator): Revert to
	define_predicate.
	(scc_comparison_operator): Same.
	(branch_positive_comparison_operator): Same.

From-SVN: r95755
2005-03-01 17:23:28 -05:00
Hans-Peter Nilsson
b6c8b41297 * config/cris/cris.c (cris_eligible_for_epilogue_delay)
(cris_delay_slots_for_epilogue): Remove.
	(save_last): Move into cris_target_asm_function_epilogue.
	(cris_target_asm_function_epilogue): Remove tests for file being
	NULL.
	* config/cris/cris-protos.h (cris_eligible_for_epilogue_delay)
	(cris_delay_slots_for_epilogue): Remove prototypes.
	* config/cris/cris.h (DELAY_SLOTS_FOR_EPILOGUE)
	(ELIGIBLE_FOR_EPILOGUE_DELAY): Do not define.

From-SVN: r95754
2005-03-01 20:37:30 +00:00
David Edelsohn
4a80dc8213 predicates.md (branch_comparison_operator): Change to define_special_predicate.
* config/rs6000/predicates.md (branch_comparison_operator): Change
	to define_special_predicate.
	(scc_comparison_operator): Same.
	(branch_positive_comparison_operator): Same.

From-SVN: r95752
2005-03-01 13:22:07 -05:00
Daniel Berlin
ec1e9f7c14 Grrr, stupid patch program
From-SVN: r95751
2005-03-01 18:12:39 +00:00
Daniel Berlin
fa55525216 Makefile.in (tree-ssa-sink.o): New.
2005-03-01  Daniel Berlin <dberlin@dberlin.org>

	* Makefile.in (tree-ssa-sink.o): New.
	(OBJS-common): Add tree-ssa-sink.o.
	* common.opt: Add -ftree-sink
	* opts.c (decode_options): flag_tree_sink is set at O1 or higher.
	* timevar.def (TV_TREE_SINK): new timevar.
	* tree-flow.h (is_hidden_global_store): Prototype.
	* tree-optimize.c (init_tree_optimization_passes): Add
	pass_sink_code.
	* tree-pass.h (pass_sink_code): New.
	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move checking
	for non-obvious global store store to is_hidden_global_store, and
	call that new function.
	* tree-ssa-sink.c: New file.
	* doc/invoke.texi: Document -fdump-tree-sink and -ftree-sink.
	* doc/passes.texi: Document forward store motion.
	* testsuite/gcc.dg/tree-ssa/ssa-sink-1.c: New test
	* testsuite/gcc.dg/tree-ssa/ssa-sink-2.c: New test
	* testsuite/gcc.dg/tree-ssa/ssa-sink-3.c: New test
	* testsuite/gcc.dg/tree-ssa/ssa-sink-4.c: New test

From-SVN: r95750
2005-03-01 17:59:06 +00:00
Per Bothner
7cea62b4f5 re PR java/8608 (segmentation fault on compiling bad program)
PR java/8608
	* check-init.c (wfl): Remove static.
	(final_assign_error, check_init): Replace calls to parse_error_context
	by plain error.
	(check_init): Save, set, and restore input_location for each exp.

From-SVN: r95749
2005-03-01 09:24:52 -08:00
Per Bothner
837491bcc8 jcf-reader.c (get_attribute): Handle SourceDebugExtension (JSR 45) if HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE...
* jcf-reader.c (get_attribute): Handle SourceDebugExtension (JSR 45)
	if HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE is defined.

From-SVN: r95748
2005-03-01 09:03:45 -08:00
Per Bothner
027b7c36fb java-tree.h (IDENTIFIER_HANDLECLASS_VALUE): Remove ancient macro.
* java-tree.h (IDENTIFIER_HANDLECLASS_VALUE): Remove ancient macro.
Also improve commenst for IDENTIFIER_CLASS_VALUE.

From-SVN: r95747
2005-03-01 08:45:19 -08:00
Per Bothner
255508ddad diagnostic.c (diagnostic_build_prefix): If USE_MAPPED_LOCATION and we have a non-zero column-number, add it to the message.
* diagnostic.c (diagnostic_build_prefix): If USE_MAPPED_LOCATION
	and we have a non-zero column-number, add it to the message.
	Also factor out the diagnostic_kind_text.

From-SVN: r95746
2005-03-01 08:37:45 -08:00
Hans-Peter Nilsson
17c1e03735 Correct cmphi comment in PR target/19065 change
From-SVN: r95742
2005-03-01 15:13:22 +00:00
Zdenek Dvorak
70388d9433 cfgloop.c (flow_loop_entry_edges_find, [...]): Removed.
* cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
	flow_loop_pre_header_scan, flow_loop_pre_header_find,
	flow_loop_scan): Removed.
	(flow_loop_dump): Do not dump removed fields.
	(flow_loop_free): Do not free removed fields.
	(flow_loops_find): Flags argument removed.  Do not call flow_loop_scan.
	(loop_exit_edge_p): New function.
	* cfgloop.h (struct loop): Removed fields pre_header, pre_header_edges,
	num_pre_header_edges, entry_edges, num_entries, exit_edges,
	num_exits, exits_doms.
	(LOOP_TREE, LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
	LOOP_EDGES, LOOP_ALL): Removed.
	(flow_loop_scan): Declaration removed.
	(loop_exit_edge_p, mark_loop_exit_edges): Declare.
	* cfgloopmanip.c (create_loop_notes): Do not pass flags to
	flow_loops_find.
	* ifcvt.c (mark_loop_exit_edges): Moved to cfgloopanal.c.
	(if_convert): Call flow_loops_find and flow_loops_free
	when calling mark_loop_exit_edges.
	* cfgloopanal.c (mark_loop_exit_edges): Moved from
	ifcvt.c.  Removed the flow_loops_find, flow_loops_free and
	free_dominance_info calls.
	* loop-init.c (flow_loops_find): Ditto.
	* passes.c (rest_of_handle_branch_prob): Ditto.
	* lambda-code.c (perfect_nestify): Do not call flow_loops_find.
	* loop-unroll.c (analyze_insns_in_loop): Do not use
	EDGE_LOOP_EXIT.
	* predict.c (predict_loops): Do not call flow_loop_scan.
	Use get_loop_exit_edges.
	(tree_estimate_probability): Do not pass flags to flow_loops_find.
	* tree-if-conv.c (bb_with_exit_edge_p): Take loop as argument.
	Do not use EDGE_LOOP_EXIT.
	(tree_if_convert_cond_expr, if_convertible_modify_expr_p): Pass loop
	to bb_with_exit_edge_p.
	(if_convertible_loop_p): Do not call flow_loop_scan.  Use
	loop->single_exit.  Do not use EDGE_LOOP_EXIT.  Pass loop
	to bb_with_exit_edge_p.
	(combine_blocks): Pass loop to bb_with_exit_edge_p.  Do not use
	EDGE_LOOP_EXIT.
	* tree-loop-linear.c (linear_transform_loops): Do not call
	flow_loop_scan.  Use loop->single_exit.
	* tree-vect-analyze.c (vect_analyze_operations): Use loop->single_exit.
	(vect_analyze_loop_form): Do not call flow_loop_scan.
	* tree-vect-transform.c (vect_update_ivs_after_vectorizer): Use
	loop->single_exit.
	(vect_do_peeling_for_loop_bound): Use loop_preheader_edge and
	loop->single_exit.
	* tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
	slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
	slpeel_tree_duplicate_loop_to_edge_cfg,
	slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
	Use loop_preheader_edge and loop->single_exit.  Do not call
	flow_loop_scan.

From-SVN: r95738
2005-03-01 13:44:46 +00:00
Nick Clifton
b279b20ab3 (thumb_find_work_register): Check all of the argument registers to see if they are free...
(thumb_find_work_register): Check all of the argument registers to see if they
are free, and a couple of special cases where the last argument register but
can be proved to be available during the function's prologue.
(print_multi_reg, arm_compute_save_reg0_reg12_mask, output_return_instruction,
emit_multi_reg_push, thumb_pushpop, thumb_unexpanded_epilogue): Use unsigned
long as the type for the register bit-mask.
(thumb_compute_save_reg_mask): Likewise.  Also use thumb_find_work_register()
to ensure that there is agreement about which work register is going to be
used in the prologue.
(thumb_output_function_prologue): Use unsigned long as the type	for the
register bit-mask.  Also delay pushing the link register if other high
registers are going to be pushed.
(thumb_compute_save_reg_mask, emit_multi_reg_push, print_multi-reg,
number_of_first_bit_set, thumb_pushpop): Remove redundant prototypes.

From-SVN: r95736
2005-03-01 10:22:53 +00:00
Nathan Sidwell
742f25b311 re PR c++/20232 (ICE with covariancy)
cp:
	PR c++/20232
	* class.c (update_vtable_entry_for_fn): Don't crash on invalid
	covariancy.

	* cp-tree.g (THUNK_TARGET): Expand comment.
	* method.c (use_thunk): Make sure we also use the target, if that
	is a thunk.
testsuite:
	PR c++/20232
	* g++.dg/inherit/covariant12.C: New.

From-SVN: r95733
2005-03-01 09:57:45 +00:00
Jan Beulich
c363985db8 libiberty.h: Declare unlink_if_ordinary.
include/
2005-03-01  Jan Beulich  <jbeulich@novell.com>

	* libiberty.h: Declare unlink_if_ordinary.

libiberty/
2005-03-01  Jan Beulich  <jbeulich@novell.com>

	* Makefile.in (CFILES): Add unlink-if-ordinary.c
	(REQUIRED_OFILES): Add unlink-if-ordinary.o.
	Add dependencies and rule for unlink-if-ordinary.o.
	* unlink-if-ordinary.c: New.

From-SVN: r95732
2005-03-01 09:23:26 +00:00
John David Anglin
d7459fa85f re PR target/19819 (ICE when compiling aegis 4.20)
PR target/19819
	* pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
	and after reload in REG+REG indexed addresses without REG_POINTER
	set in the base and not set in the index.

From-SVN: r95729
2005-03-01 04:34:00 +00:00
Benjamin Kosnik
44dd2da22c cons/auto_ptr_neg.cc: Correct line numbers.
2005-02-28  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/tr1/2_general_utilities/memory/shared_ptr/
	cons/auto_ptr_neg.cc: Correct line numbers.

	* testsuite/testsuite_abi.cc: Add CXXABI_1.3.1.

From-SVN: r95727
2005-03-01 03:52:37 +00:00
Kaz Kojima
65f527e0a5 linux.h (MD_EXEC_PREFIX, [...]): Don't undefine here.
* config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
	Don't undefine here.
	(HANDLE_PRAGMA_PACK_PUSH_POP): Delete.
	(NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): Likewise.
	(TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
	(LIB_SPEC, LINK_EH_SPEC, STARTFILE_SPEC, ENDFILE_SPEC,
	LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED, TARGET_C99_FUNCTIONS):
	Delete.
	* config.gcc (sh*-*-linux*): Use config/linux.h.

From-SVN: r95726
2005-03-01 03:39:03 +00:00
Dale Johannesen
0b5383eba0 Rewrite of 64-bit Darwin structure-by-value pass/return.
2005-02-28  Dale Johannesen  <dalej@apple.com>
            Stan Shebs  <shebs@apple.com>

        Rewrite of 64-bit Darwin structure-by-value pass/return.
        * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
        intoffset, use_stack, named.
        * config/rs6000/rs6000.c (rs6000_darwin64_function_arg):  Remove.
        (rs6000_darwin64_record_arg_advance_flush):  New.
        (rs6000_darwin64_record_arg_advance_recurse): New.
        (rs6000_darwin64_record_arg_flush):  New.
        (rs6000_darwin64_record_arg_recurse):  New.
        (rs6000_darwin64_record_arg):  New.
        (rs6000_return_in_memory):  Remove AGGREGATE_TYPE_P check.
        (function_arg_boundary):  Handle 128-bit aligned structs.
        (function_arg_advance):  Rewrite darwin64 struct handling.
        (function_arg):  Call rs6000_darwin64_record_arg.
        (function_arg_partial_nregs):  Handle darwin64 structs.
        (rs6000_darwin64_function_value):  Remove.
        (rs6000_function_value):  Call rs6000_darwin64_record_arg.

Co-Authored-By: Stan Shebs <shebs@apple.com>

From-SVN: r95723
2005-03-01 02:56:35 +00:00
Roger Sayle
1a9dddada3 re PR tree-optimization/20216 (Simple loop runs out of stack at -O1)
PR tree-optimization/20216
	* tree-chrec.c (tree_fold_factorial): Delete.
	(tree_fold_binomial): Change argument list to take a return type
	and change the type of K to unsigned int.  Rewrite to avoid explicit
	evaluation of factorials, and (recursively) calling fold to perform
	compile-time arithmetic.  Return NULL on (internal) overflow.
	(chrec_evaluate): Change type of K to an unsigned int.  Avoid
	calling tree_fold_binomial unnecessarily.  Return chrec_dont_know
	if any intermediate calculation overflows.
	(chrec_apply): Update call to chrec_evaluate.

From-SVN: r95722
2005-03-01 02:43:49 +00:00