backport: re PR c++/14724 (Destructor not called on backwards goto past initialization)
Backport from gcc-3_4-branch:
2004-03-30 Mark Mitchell <mark@codesourcery.com>
PR c++/14724
* decl.c (start_decl_1): Do not decide whether or not to
create a
new cleanup level until after the type has been completed.
* expr.c (expand_expr_real) <NOP_EXPR>: Return a new
pseudo when converting from a sub-word source to a
larger-than-word register which conflicts with the source.
- Checkin the updated patch:
* expr.c (convert_move): Copy the source to a new pseudo
when converting from a sub-word source to a larger-than-word
register which conflicts with the source.
backport: re PR rtl-optimization/14235 (ICE in verify_local_live_at start (flow.c:546))
2004-04-29 Matthias Klose <doko@debian.org>
Backport:
2004-03-04 Eric Botcazou <ebotcazou@libertysurf.fr>
PR optimization/14235
* expr.c (expand_expr_real) <NOP_EXPR>: Return a new
pseudo when converting from a sub-word source to a
larger-than-word register which conflicts with the source.
2004-04-29 Matthias Klose <doko@debian.org>
Backport:
2004-03-04 Eric Botcazou <ebotcazou@libertysurf.fr>
H.J. Lu [Wed, 28 Apr 2004 17:00:03 +0000 (17:00 +0000)]
re PR target/15084 (-O/-O2 generate wrong code on structure modification)
2004-04-28 H.J. Lu <hongjiu.lu@intel.com>
PR target/15084
* config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
and renamed to movdi_insv_1_rex64.
(insv): Support SImode for 32bit and DImode for 64bit.
re PR bootstrap/14671 (caller-save.c:491: internal compiler error: Segmentation fault)
PR bootstrap/14671
* alias.c (alias_invariant, alias_invariant_size): Mark GTY.
(reg_known_value, reg_known_value_size): Likewise; make static.
(reg_known_equiv_p): Make static.
(clear_reg_alias_info): Update for new indexing.
(get_reg_known_value, set_reg_known_value): New.
(get_reg_known_equiv_p, set_reg_known_equiv_p): New.
(canon_rtx): Use them.
(init_alias_analysis): Likewise. Allocate reg_known_value with gc.
Don't play queer offsetting games with reg_known_value and
reg_known_equiv_p.
(end_alias_analysis): Don't free reg_known_value.
* rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
* sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
(deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
functions instead.
pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
* pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
* pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
SAR register. Fix comment.
(ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
(%cr11).
Paul Brook [Tue, 20 Apr 2004 10:29:19 +0000 (10:29 +0000)]
re PR c++/2123 (Array initializer)
PR 2123
* g++.dg/expr/anew1.C: XFAIL and make reproducible. Call abort on
failure and exit(0) on success.
* g++.dg/expr/anew2.C: Ditto.
* g++.dg/expr/anew3.C: Ditto.
* g++.dg/expr/anew4.C: Ditto.
Matthias Klose [Tue, 30 Mar 2004 20:43:45 +0000 (20:43 +0000)]
backport: [multiple changes]
2004-03-30 Matthias Klose <doko@debian.org>
Backport:
2004-01-14 Richard Earnshaw <rearnsha@arm.com>
PR bootstrap/12527
* config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
Move linux-gas.h and linux-elf.h before aout.h.
* arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
* arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
2003-05-15 Philip Blundell <philb@gnu.org>
* config/arm/arm.c (arm_is_xscale): Rename to arm_arch_xscale.
All uses updated.
(arm_tune_xscale): New variable.
(arm_override_options): Set it.
(arm_adjust_cost): Use it in place of arm_arch_xscale.
(arm_gen_load_multiple): Likewise.
(arm_gen_store_multiple): Likewise.
* config/arm/arm.md (is_xscale): Likewise.
* config/arm/arm.h (arm_tune_xscale): Declare.
Eric Botcazou [Mon, 22 Mar 2004 18:39:55 +0000 (19:39 +0100)]
re PR tree-optimization/14470 ([tree-ssa] trouble with post-increment)
PR middle-end/14470
* expr.c (mark_queue): New function.
(emit_insns_enqueued_after_mark): New function replacing
emit_queue. Clear the body of emitted queued insns.
(emit_queue): Call emit_insns_enqueued_after_mark.
(store_expr): Mark the increment queue on entry. Emit
only the incrementations queued when expanding the source.
Gerald Pfeifer [Sun, 21 Mar 2004 11:17:53 +0000 (11:17 +0000)]
g77.texi (Aligned Data): Remove obsolete paragraph including a broken link.
* g77.texi (Aligned Data): Remove obsolete paragraph including a
broken link.
(Floating-point Errors): Remove links to http://www.validgh.com/
which was "hijacked".
(Language): Fix link to Fortran books.
(Projects): Remove obsolete paragraph including a broken link to
ftp://alpha.gnu.org/gnu/g77/projects/.
(Trouble): Remove obsolete paragraph including a broken link to
ftp://alpha.gnu.org/g77.plan.
* invoke.texi (Overall Options): Remove broken reference to
rat7.uue (which was of dubious copyright status anyways).
Ian Lance Taylor [Wed, 17 Mar 2004 20:13:20 +0000 (20:13 +0000)]
backport: c-typeck.c (pedantic_lvalue_warning): Deprecate compound expressions as lvalues.
Backport:
2003-11-08 Joseph S. Myers <jsm@polyomino.org.uk>
* c-typeck.c (pedantic_lvalue_warning): Deprecate compound
expressions as lvalues.
* doc/extend.texi: Document that all extended lvalues are now
deprecated.
2003-11-05 Joseph S. Myers <jsm@polyomino.org.uk>
* c-typeck.c (pedantic_lvalue_warning): Deprecate use of
conditional expressions as lvalues.
2003-10-22 Joseph S. Myers <jsm@polyomino.org.uk>
* c-typeck.c (pedantic_lvalue_warning): Unconditionally warn of
deprecation of casts as lvalues.
* fixinc/inclhack.def (obstack_lvalue_cast): New fix.
* fixinc/fixincl.x: Regenerate.