Paolo Carlini [Sat, 1 Jan 2005 23:18:47 +0000 (23:18 +0000)]
13189.cc: Fix, first include testsuite_hooks.h, to know whether including ext/enc_filebuf.h.
2005-01-01 Paolo Carlini <pcarlini@suse.de>
* testsuite/ext/enc_filebuf/char/13189.cc: Fix, first include
testsuite_hooks.h, to know whether including ext/enc_filebuf.h.
* testsuite/ext/enc_filebuf/wchar_t/13189.cc: Likewise.
Roger Sayle [Thu, 30 Dec 2004 20:23:28 +0000 (20:23 +0000)]
re PR middle-end/19175 (RTL checking failures on i686-pc-linux-gnu)
PR middle-end/19175
* loop-unroll.c (expand_bct): Pass the code_label to the function
do_compare_rtx_and_jump, not the label ref. Clean-up style issues.
Jakub Jelinek [Tue, 28 Dec 2004 20:57:56 +0000 (21:57 +0100)]
PR c++/18384, c++/18327
PR c++/18384, c++/18327
* decl.c (reshape_init_array): Use UHWI type for max_index_cst
and index. Convert max_index to size_type_node if it isn't
host_integerp (, 1).
Steven Bosscher [Tue, 28 Dec 2004 05:25:59 +0000 (05:25 +0000)]
vax.h (CASE_DROPS_THROUGH): Don't define.
rtl-optimization/12863
* config/vax/vax.h (CASE_DROPS_THROUGH): Don't define.
* config/vax/vax.md (casesi): Emit a test-and-branch to make sure
that the case is in range, to make sure the casesi insn is always
in range and never falls through.
(casesi1): Add comment to explain why casesi never falls through.
Remove the unnamed special case casesi pattern.
Co-Authored-By: John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
From-SVN: r92661
Alexandre Oliva [Thu, 23 Dec 2004 20:06:11 +0000 (20:06 +0000)]
re PR c++/18962 (specialization of template class with inner template members and parameter)
gcc/cp/ChangeLog:
PR c++/18962
* pt.c (check_explicit_specialization): Use the argument list from
the definition in a template function specialization definition.
gcc/testsuite/ChangeLog:
* g++.dg/template/spec19.C: New.
re PR target/19102 (-march=pentium3 breaks linux kernel compiles w/ gcc-3_4-branch as of 2004/12/20)
PR target/19102
* config/i386/i386.c (x86_inter_unit_moves): Disable.
(ix86_hard_regno_mode_ok): Disallow SSE2 and MMX scalar modes
in SSE registers when only SSE1 enabled.
Andrew Pinski [Mon, 20 Dec 2004 22:34:18 +0000 (22:34 +0000)]
re PR libobjc/12035 (Patch for libobjc/gc.c that fixes compilation error of Objective-C with garbage collector enabled)
2004-12-20 Andrew Pinski <pinskia@physics.uc.edu>
PR libobjc/12035
* gc.c: Remove definition of LOGWL, modWORDSZ, and divWORDSZ since
they are not used.
Include limits.h and stdlib.h.
Define BITS_PER_WORD.
Roger Sayle [Sun, 19 Dec 2004 20:01:36 +0000 (20:01 +0000)]
re PR middle-end/19068 ([3.3 only] Wrong code for MIN_EXPR and MAX_EXPR)
PR middle-end/19068
* expr.c (expand_expr_real_1) <MAX_EXPR>: Ensure that target, op0
and op1 are all registers (or constants) before expanding the RTL
comparison sequence [to avoid reg_overlap_mentioned (target, op1)].
Eric Botcazou [Thu, 16 Dec 2004 10:23:32 +0000 (10:23 +0000)]
re PR middle-end/18882 (wrong results with complex long double)
PR middle-end/18882
* function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
when passed -2 as 'align'.
(put_var_into_stack): Use 'bool' as the type for the three local
predicates. Adjust calls to put_reg_into_stack.
When passed a CONCAT, instruct put_reg_into_stack to use
a consecutive stack slot for the second part.
(put_reg_into_stack): Remove 'promoted_mode' parameter, add
'consecutive_p' parameter. Turn the three predicates into 'bool'
parameters. Retrieve the register mode from 'reg'.
When consecutive_p is true, instruct assign_stack_local_1 to use
BITS_PER_UNIT alignment.
(put_addressof_into_stack): Use 'bool' as the type for the two
local predicates. Adjust call to put_reg_into_stack.
Eric Botcazou [Wed, 15 Dec 2004 12:34:40 +0000 (13:34 +0100)]
re PR other/18665 (-ftrapv borks up simple integer arithmetic)
PR other/18665
* libgcc-std.ver (GCC_3.4.4): Inherit from GCC_3.4.2.
Export __absvti2, __addvti3, __mulvti3, __negvti2 and __subvti3.
* libgcc-darwin.ver (GCC_3.4.4): Inherit from GCC_3.4.
Export __absvti2, __addvti3, __mulvti3, __negvti2 and __subvti3.
* libgcc2.c (__addvsi3): Rename to __addvSI3.
New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC.
(__addvdi3): Rename to __addvDI3.
(__subvsi3): Rename to __subvSI3. Use word type for the result.
New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC.
(__subvdi3): Rename to __subvDI3.
(_mulvsi3): Rename to _mulvSI3.
New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC.
(_mulvdi3): Rename to _mulvDI3.
(__negvsi2): Rename to __negvSI2.
New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC.
(__negvdi2): Rename to __negvDI2.
(__absvsi2): Rename to __absvSI2.
New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC.
(__absvdi2): Rename to __absvDI2.
* libgcc2.h (64-bit targets): Define COMPAT_SIMODE_TRAPPING_ARITHMETIC.
(__absvSI2, __addvSI3, __subvSI3, __mulvSI3, __negvSI2, __absvDI2,
__addvDI3, __subvDI3, __mulvDI3, __negvDI2): Define to the appropriate
symbol and declare.
(__absvsi2, __addvsi3, __subvsi3, __mulvsi3, __negvsi2): Declare if
COMPAT_SIMODE_TRAPPING_ARITHMETIC.
re PR middle-end/18730 (cppexp.c:1076: error: unrecognizable insn)
PR middle-end/18730
* emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn): When
the first/last insn is a sequence, return the first/last insn of the
sequence.
Roger Sayle [Tue, 14 Dec 2004 01:47:30 +0000 (01:47 +0000)]
re PR target/18002 ('while' loop performace regression on avr target)
PR target/18002
PR middle-end/18424
Backport from mainline
2004-03-20 Richard Sandiford <rsandifo@redhat.com>
* Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
(GTFILES): Add $(srcdir)/dojump.h.
(gt-dojump.h): New dependency.
* dojump.c (and_reg, and_test, shift_test): New static variables.
(prefer_and_bit_test): New function.
(do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
2004-03-21 Andrew Pinski <pinskia@gcc.gnu.org>
* dojump.c (prefer_and_bit_test): Fix which part of
the and_test is replaced.
2004-12-10 Roger Sayle <roger@eyesopen.com>
* dojump.c (do_jump): When attempting to reverse the effects of
fold_single_bit_test, we need to STRIP_NOPS and narrowing type
conversions, and handle BIT_XOR_EXPR that's used to invert the
sense of the single bit test.
re PR target/18932 (ICE in copyprop_hardreg_forward_1, at regrename.c)
PR target/18932
* config/i386/i386.md (all splits and peepholes): Use flags_reg_operand
and compare_operator to propagate the input CC mode to the output.
* config/i386/i386.c (compare_operator): New.
* config/i386/i386.h (PREDICATE_CODES): Add it.
* config/i386/i386-protos.h: Update.
re PR target/18841 (setjmp and eh receivers can mis-schedule)
PR target/18841
* config/alpha/alpha.md (UNSPECV_SETJMPR_ER): New.
(builtin_setjmp_receiver_er_sl_1): Use it.
(builtin_setjmp_receiver_er_1): Likewise.
(builtin_setjmp_receiver_er, exception_receiver_er): Remove.
(builtin_setjmp_receiver): Don't split for explicit relocs until
after reload.
(exception_receiver): Likewise.