* unwind-dw2.c (MD_FROB_UPDATE_CONTEXT): Define.
(uw_update_context_1): Use it.
* config/rs6000/rs6000.c (insn_after_throw): Remove.
(rs6000_aix_emit_builtin_unwind_init): Save $r2 to its location
in parent frame if _Unwind_* called directly instead of through
.plt.
(rs6000_emit_eh_toc_restore): Remove.
(rs6000_emit_prologue): Update stack pointer before doing any saving
if current_function_calls_eh_return. Generate unwind info for $r2.
(rs6000_emit_epilogue): Restore stack pointer after doing all
restoring if current_function_calls_eh_return. Restore $r2.
* config/rs6000/rs6000-protos.h (rs6000_emit_eh_toc_restore): Remove.
* config/rs6000/rs6000.md (eh_return): Remove call to
rs6000_emit_eh_toc_restore.
* config/rs6000/linux64.h (MD_FROB_UPDATE_CONTEXT): Define.
* config/rs6000/aix.h (MD_FROB_UPDATE_CONTEXT): Define.
* gcc.dg/cleanup-8.c: New test.
* gcc.dg/cleanup-9.c: New test.
From-SVN: r69450
* expr.c (emit_block_move): Don't move anything if size is const 0.
(clear_storage): Test against const0_rtx instead of comparing INTVAL
against 0.
From-SVN: r69441
2003-07-15 David S. Miller <davem@redhat.com>
* config/sparc/sparc.c (sparc_nonflat_function_epilogue): Only
emit nop if the last real insn is CALL_INSN.
From-SVN: r69440
* g++.dg/ext/dll-MI1.h: New file.
* g++.dg/ext/dllexport-MI1.C: New file.
* g++.dg/ext/dllimport-MI1.C: New file.
ChangeLog: Remove 'testsuite/' from 2003-07-04 entry.
From-SVN: r69432
* config/i386/winnt.c (associated_type): Artificial methods are not
affected by the import/export status of their class unless they are
COMDAT.
(i386_pe_dllimport_p): Do not mark artificial methods as dllimport.
* config/i386/winnt.c: Fix GCC copyright comment.
From-SVN: r69431
2003-07-15 J"orn Rennecke <joern.rennecke@superh.com>
* dwarf2out.c (expand_builtin_init_dwarf_reg_sizes):
If DWARF_FRAME_RETURN_COLUMN doesn't have a register mode, use Pmode.
2003-07-15 J"orn Rennecke <joern.rennecke@superh.com>
Richard Henderson <rth@redhat.com>
* unwind-dw2.c (_Unwind_GetGR): Use dwarf_reg_size_table
to decide if to access a _Unwind_Ptr or a _Unwind_Word.
(_Unwind_SetGR): Likewise.
(_Unwind_GetPtr, _Unwind_SetSpColumn): New functions.
(Unwind_SpTmp): New typedef.
(uw_update_context_1): Use _Unwind_SetSpColumn and _Unwind_GetPtr.
(uw_update_context): Use _Unwind_GetPtr.
(init_dwarf_reg_size_table): Move above uw_init_context_1.
(uw_init_context_1): Initialize dwarf_reg_size_table if necessary.
Use _Unwind_SetSpColumn.
(uw_install_context_1): Don't initialize dwarf_reg_size_table.
Use _Unwind_GetPtr.
Co-Authored-By: Richard Henderson <rth@redhat.com>
From-SVN: r69424
PR debug/11473
* dbxout.c (dbxout_type): Use TYPE_SIZE to determine the sizes of
base classes.
PR debug/11473
* g++.dg/debug/debug8.C: New test.
From-SVN: r69414
PR target/10795
* config/i386/i386.c (ix86_expand_carry_flag_compare): Don't
swap comparison operands if doing so would generate an
unrecognizable insn.
From-SVN: r69407
PR optimization/11320
* sched-int.h (struct deps) [reg_conditional_sets]: New field.
(struct sched_info) [compute_jump_reg_dependencies]: New prototype.
* sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
current_sched_info->compute_jump_reg_dependencies. Record which
registers are used and which registers are set by the jump.
Clear deps->reg_conditional_sets after a barrier.
Set deps->reg_conditional_sets if the insn is a COND_EXEC.
Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
(init_deps): Initialize reg_conditional_sets.
(free_deps): Clear reg_conditional_sets.
* sched-ebb.c (compute_jump_reg_dependencies): New prototype.
Mark registers live on entry of the fallthrough block and conditionally
set as set by the jump. Mark registers live on entry of non-fallthrough
blocks as used by the jump.
* sched-rgn.c (compute_jump_reg_dependencies): New prototype.
Mark new parameters as unused.
From-SVN: r69401
* gcc.dg/pch/inline-3.c: New file.
* gcc.dg/pch/inline-3.hs: New file.
* gcc.dg/pch/inline-4.c: New file.
* gcc.dg/pch/inline-4.hs: New file.
From-SVN: r69378
* fixinc/inclhack.def (avoid_bool_define, avoid_bool_type): Bypass
with __cplusplus, not "we must use the C++ compiler's type"
* fixinc/inclhack.def (void_null): Note that Interix needs this.
* fixinc/fixincl.x: Regenerate.
From-SVN: r69373
* unwind-dw2-fde-darwin.c (live_image_destructor): Get seen_objects
and unseen_objects from the global data before calling
__deregister_frame_info_bases.
(examine_objects): Insert objects into the seen_objects list,
not unseen_objects.
(_Unwind_Find_FDE): Always unlock the global object lists, even if
we couldn't allocate a data structure to put in it.
From-SVN: r69366
* objc/objc-act.h (CLASS_SUPER_NAME): Add a little typechecking.
(TYPE_PROTOCOL_LIST): Share use of type.context with C frontend.
(SET_TYPE_PROTOCOL_LIST): New.
* objc/objc-act.c (get_static_reference): Use SET_TYPE_PROTOCOL_LIST.
(get_object_reference): Likewise.
From-SVN: r69364
PR c++/11509
* pt.c (dependent_scope_ref_p): New function.
(value_dependent_expression_p): Use it.
(type_dependent_expression_p): Likewise.
* pt.c (tsubst_friend_function): Use reregister_specialization.
PR c++/11509
* g++.dg/template/crash6.C: New test.
From-SVN: r69363
* config/mips/mips.c (mips_expand_prologue): Use a single insn to
allocate 32768 bytes of stack. Use addition rather than subtraction
when a single insn is enough.
* config/mips/mips.md: Remove insns and splitters for subtracting
constants.
(subsi3): Only accept register operands.
(subsi3_internal): Likewise. Use for TARGET_MIPS16 as well.
(subdi3_internal_3, subsi3_internal_2): Likewise.
(casesi): Use expand_binop to subtract the lower bound.
From-SVN: r69357