re PR middle-end/11767 (different code behaviour with -fnon-call-exceptions -fprofile-arcs)
PR middle-end/11767
* optabs.c (prepare_cmp_insn): Force trapping memories to registers
before the compare, if flag_non_call_exceptions.
* g++.dg/other/profile1.C: New.
backport: re PR debug/14328 (gcc3.2.2 generates incorrect debugging enum values)
Backport from 3.4.0:
2004-02-29 Mark Mitchell <mark@codesourcery.com>
PR debug/14328
* dwarf2out.c (gen_enumeration_type_die): Output all
enumeration
constants as signed values.
re PR bootstrap/14348 ([3.3 only] Cannot bootstrap GCC-3.3.x with GCC-3.5 (experimental))
include/
PR bootstrap/14348
Backport
2003-10-22 Joseph S. Myers <jsm@polyomino.org.uk>
* obstack.h: Merge the following change from gnulib:
2003-10-21 Paul Eggert <eggert@twinsun.com>
* obstack.h (obstack_1grow_fast): Properly parenthesize arg.
(obstack_ptr_grow_fast, obstack_int_grow_fast):
Don't use lvalue casts, as GCC plans to remove support for
them
in GCC 3.5. Reported by Joseph S. Myers. This bug
was also present in the non-GCC version, indicating that this
code had always been buggy and had never been widely used.
(obstack_1grow, obstack_ptr_grow, obstack_int_grow,
obstack_blank):
Use the fast variant of each macro, rather than copying the
definiens of the fast variant; that way, we'll be more likely
to
catch future bugs in the fast variants.
libobjc/
PR bootstrap/14348
Backport
2003-10-20 Joseph S. Myers <jsm@polyomino.org.uk>
* objc/hash.h (hash_string): Don't use a cast as an lvalue.
re PR target/14346 ([3.3 only] With -fpic/-fPIC, thunks jump through PLT, not directly to thunked function)
PR target/14346
* config/cris/cris.c (cris_asm_output_mi_thunk): For PIC, prepend
TAB to jumping "add.d" insn. Avoid PLT indirection by equating a
local symbol and jumping through it.
Ian Lance Taylor [Sat, 28 Feb 2004 13:36:28 +0000 (13:36 +0000)]
re PR rtl-optimization/7871 (ICE on legal code, global register variables problems)
PR optimization/7871
* flow.c (mark_set_1): Don't add LOG_LINKS for global registers
from or to call insns.
(propagate_one_insn): Interpret calls as setting global registers,
not merely clobbering them.
Bob Wilson [Tue, 24 Feb 2004 19:44:12 +0000 (19:44 +0000)]
backport: xtensa_reorg instead; remove irrelevant portions of the patch)
Backport from mainline (changes to xtensa_expand_prologue go into
xtensa_reorg instead; remove irrelevant portions of the patch)
2004-02-09 Bob Wilson <bob.wilson@acm.org>:
* config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
(init_cumulative_args): Likewise.
(a7_overlap_mentioned_p): Delete prototype.
* config/xtensa/xtensa.c (struct machine_function): Replace
incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
Add set_frame_ptr_insn field.
(xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
(xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
if the operand is an argument in a7. If so, copy a7 to a new pseudo
at the function entry and replace the operand with the pseudo.
(init_cumulative_args): Remove unused arguments. Add new "incoming"
argument and record this flag in CUMULATIVE_ARGS.
(function_arg): Remove result_mode and special-case code to handle
arguments in a7. Instead, set need_a7_copy flag when there is an
incoming argument in a7.
(xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
and use the value recorded in cfun->machine->set_frame_ptr_insn.
(xtensa_builtin_saveregs): Check for negative gp_left value. Set
need_a7_copy and vararg_a7 flags. Use move_block_from_reg instead of
special-case code.
(a7_overlap_mentioned_p): Delete.
* config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
(INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
arguments to init_cumulative_args and pass "incoming" flag instead.
(BLOCK_REG_PADDING): Delete.
* config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
checks for reload_in_progress and reload_completed. Update calls to
xtensa_copy_incoming_a7.
(ashlsi3): Rename existing insn to ashlsi3_internal. Add expander
to call xtensa_copy_incoming_a7.
Gabriel Dos Reis [Sun, 22 Feb 2004 17:02:12 +0000 (17:02 +0000)]
backport: re PR c++/14083 (ICE in conditional expression operator with throw)
Backport from mainline
2004-02-13 Mark Mitchell <mark@codesourcery.com>
PR c++/14083
* call.c (build_conditional_expr): Call force_rvalue on the
non-void operand in the case that one result is a throw-expression
and the other is not.
Gabriel Dos Reis [Sun, 22 Feb 2004 16:42:33 +0000 (16:42 +0000)]
backport: re PR c++/14033 (tree check: expected class 't', have 'x' (error_mark) in initialize_inlined_parameters, at tree-inline.c:829)
Backport from mainline
2003-02-06 Giovanni Bajo <giovannibajo@gcc.gnu.org>
PR c++/14033
* decl.c (require_complete_types_for_parms): Do not insert
error_mark_node in the parameter list.
Gabriel Dos Reis [Sun, 22 Feb 2004 16:27:38 +0000 (16:27 +0000)]
backport: re PR c++/13932 (duplicate warning message for conversion)
Backport from mainline
2004-02-04 Mark Mitchell <mark@codesourcery.com>
PR c++/13932
* call.c (convert_like_real): Use "converting" rather than
"argument" as the descriptive keyword to
dubious_conversion_warnings.
* typeck.c (convert_for_assignment): Do not call
dubious_conversion_warnings.
re PR target/14209 (Bug in cris.md, shrinking access size of postincrement.)
PR target/14209
* config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
constraints to not match postincrement. Adjust the predicate to
exclude a volatile memory reference.
("*andsi_clear"): Tweak constraints to not match postincrement.
Adjust the predicate to exclude a volatile memory reference.
("*andhi_clear"): Ditto. Rename from "*andhi_clear_signed".
("*andhi_clear_unsigned"): Remove, non-matching pattern.
Benjamin Kosnik [Thu, 5 Feb 2004 20:24:48 +0000 (20:24 +0000)]
basic_file_stdio.cc (__gnu_internal::fopen_mode): New function.
2004-02-04 Benjamin Kosnik <bkoz@redhat.com>
Zack Weinberg <zack@codesourcery.com>
* config/io/basic_file_stdio.cc (__gnu_internal::fopen_mode):
New function.
(__basic_file<char>::sys_open, __basic_file<char>::open): Use it.
(__basic_file<char>::_M_open_mode): Use it. Mark deprecated.
* testsuite/27_io/filebuf_members.cc (test_06, test_07):
Correct flags to filebuf::open calls.
Zack Weinberg [Tue, 3 Feb 2004 08:20:16 +0000 (08:20 +0000)]
* g++.dg/eh/forced1.C, g++.dg/eh/forced2.C, g++.dg/eh/forced3.C
* g++.dg/eh/forced4.C: XFAIL ia64-hp-hpux11.*.
* g++.dg/eh/ia64-1.C: Test branch regs only #ifdef __LP64__.
* gcc.dg/cleanup-5.c: Run only on Linux targets.
Roger Sayle [Thu, 29 Jan 2004 18:58:13 +0000 (18:58 +0000)]
re PR java/13824 (gcj SEGV with simple .java program)
PR java/13824
* tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
recursion.
PR optimization/12440
* loop.c: Include ggc.h.
(loop_optimize): Run garbage collector between optimization of
loops.
* Makefile.in (loop.o): Add GGC_H dependency.