diff options
author | 2008-06-22 11:00:01 +0000 | |
---|---|---|
committer | 2008-06-22 11:00:01 +0000 | |
commit | dbd04aa83b38eee68f21a3442f9321c130691fef (patch) | |
tree | 6c1d068009da68a45847178fb19486334188efcc /3.2.2 | |
parent | initial 4.3.1 patchset based on last 4.3.0 patchset (diff) | |
download | gcc-patches-dbd04aa83b38eee68f21a3442f9321c130691fef.tar.gz gcc-patches-dbd04aa83b38eee68f21a3442f9321c130691fef.tar.bz2 gcc-patches-dbd04aa83b38eee68f21a3442f9321c130691fef.zip |
move from $FILESDIR
Diffstat (limited to '3.2.2')
-rw-r--r-- | 3.2.2/gentoo/21_all_gcc32-pr7768.patch | 65 | ||||
-rw-r--r-- | 3.2.2/gentoo/22_all_gcc32-pr8213.patch | 69 | ||||
-rw-r--r-- | 3.2.2/gentoo/23_all_gcc-3.2.2-cross-compile.patch | 11 | ||||
-rw-r--r-- | 3.2.2/gentoo/24_all_gcc-3.2.2-no-COPYING-cross-compile.patch | 40 |
4 files changed, 185 insertions, 0 deletions
diff --git a/3.2.2/gentoo/21_all_gcc32-pr7768.patch b/3.2.2/gentoo/21_all_gcc32-pr7768.patch new file mode 100644 index 0000000..72b4910 --- /dev/null +++ b/3.2.2/gentoo/21_all_gcc32-pr7768.patch @@ -0,0 +1,65 @@ +2002-09-14 Nathan Sidwell <nathan@codesourcery.com> + + PR c++/7768 + * pt.c (build_template_decl): Copy DECL_DESTRUCTOR_P. + +2002-09-15 Nathan Sidwell <nathan@codesourcery.com> + + * g++.dg/template/pretty1.C: New test. + +--- gcc-3.2.1/gcc/cp/pt.c.pr7768 2003-01-20 14:14:15.000000000 +0100 ++++ gcc-3.2.1/gcc/cp/pt.c 2003-02-08 14:42:15.000000000 +0100 +@@ -2108,6 +2108,7 @@ build_template_decl (decl, parms) + DECL_VIRTUAL_CONTEXT (tmpl) = DECL_VIRTUAL_CONTEXT (decl); + DECL_STATIC_FUNCTION_P (tmpl) = DECL_STATIC_FUNCTION_P (decl); + DECL_CONSTRUCTOR_P (tmpl) = DECL_CONSTRUCTOR_P (decl); ++ DECL_DESTRUCTOR_P (tmpl) = DECL_DESTRUCTOR_P (decl); + DECL_NONCONVERTING_P (tmpl) = DECL_NONCONVERTING_P (decl); + DECL_ASSIGNMENT_OPERATOR_P (tmpl) = DECL_ASSIGNMENT_OPERATOR_P (decl); + if (DECL_OVERLOADED_OPERATOR_P (decl)) +--- gcc-3.2.1/gcc/testsuite/g++.dg/template/pretty1.C.pr7768 2003-02-08 14:42:03.000000000 +0100 ++++ gcc-3.2.1/gcc/testsuite/g++.dg/template/pretty1.C 2003-02-08 14:41:52.000000000 +0100 +@@ -0,0 +1,43 @@ ++// { dg-do run } ++ ++// Copyright (C) 2002 Free Software Foundation, Inc. ++// Contributed by Nathan Sidwell 14 Sep 2002 <nathan@codesourcery.com> ++ ++// PR 7768 template dtor pretty function wrong ++ ++#include <string.h> ++ ++static size_t current = 0; ++static bool error = false; ++ ++static char const *names[] = ++{ ++ "X<T>::X() [with T = void]", ++ "X<T>::~X() [with T = void]", ++ 0 ++}; ++ ++void Verify (char const *ptr) ++{ ++ error = strcmp (ptr, names[current++]); ++} ++ ++template <typename T> ++struct X ++{ ++ X() { Verify (__PRETTY_FUNCTION__); } ++ ~X() { Verify (__PRETTY_FUNCTION__); } ++}; ++ ++int main() ++{ ++ { ++ X<void> x; ++ ++ if (error) ++ return current; ++ } ++ if (error) ++ return current; ++ return 0; ++} diff --git a/3.2.2/gentoo/22_all_gcc32-pr8213.patch b/3.2.2/gentoo/22_all_gcc32-pr8213.patch new file mode 100644 index 0000000..762d198 --- /dev/null +++ b/3.2.2/gentoo/22_all_gcc32-pr8213.patch @@ -0,0 +1,69 @@ +2002-10-30 Jan Hubicka <jh@suse.cz> + + PR target/8213 + * config/i386/i386.c (ix86_expand_int_movcc): Fix RTL sharing problem. + +2002-11-04 Gwenole Beauchesne <gbeauchesne@mandrakesoft.com> + + * testsuite/gcc.c-torture/execute/20021104.c: New test. + +--- gcc-3.2/gcc/config/i386/i386.c.pr8213 2002-11-04 12:56:37.000000000 -0500 ++++ gcc-3.2/gcc/config/i386/i386.c 2002-11-04 13:21:22.000000000 -0500 +@@ -8274,11 +8274,11 @@ ix86_expand_int_movcc (operands) + /* On x86_64 the lea instruction operates on Pmode, so we need to get arithmetics + done in proper mode to match. */ + if (diff == 1) +- tmp = out; ++ tmp = copy_rtx (out); + else + { + rtx out1; +- out1 = out; ++ out1 = copy_rtx (out); + tmp = gen_rtx_MULT (mode, out1, GEN_INT (diff & ~1)); + nops++; + if (diff & 1) +@@ -8302,12 +8302,12 @@ ix86_expand_int_movcc (operands) + clob = gen_rtx_REG (CCmode, FLAGS_REG); + clob = gen_rtx_CLOBBER (VOIDmode, clob); + +- tmp = gen_rtx_SET (VOIDmode, out, tmp); ++ tmp = gen_rtx_SET (VOIDmode, copy_rtx (out), tmp); + tmp = gen_rtx_PARALLEL (VOIDmode, gen_rtvec (2, copy_rtx (tmp), clob)); + emit_insn (tmp); + } + else +- emit_insn (gen_rtx_SET (VOIDmode, out, tmp)); ++ emit_insn (gen_rtx_SET (VOIDmode, copy_rtx (out), tmp)); + } + if (out != operands[0]) + emit_move_insn (operands[0], copy_rtx (out)); +--- gcc-3.2/gcc/testsuite/gcc.c-torture/execute/20021104.c.pr8213 2002-11-04 13:22:33.000000000 -0500 ++++ gcc-3.2/gcc/testsuite/gcc.c-torture/execute/20021104.c 2002-11-04 13:24:12.000000000 -0500 +@@ -0,0 +1,26 @@ ++/* PR target/8213 ++ This testcase, distilled from GNU gmp 4.1, was miscompiled on x86-64 ++ because of RTL sharing problems. */ ++ ++int f(long x, long y) ++{ ++ if ((x < 0) == (y < 0)) ++ { ++ if (x == 0) ++ return -(y != 0); ++ if (y == 0) ++ return x != 0; ++ } ++ else ++ { ++ return x >= 0 ? 1 : -1; ++ } ++} ++ ++int main(void) ++{ ++ if (f(-1, 1) != -1) ++ abort(); ++ ++ return 0; ++} diff --git a/3.2.2/gentoo/23_all_gcc-3.2.2-cross-compile.patch b/3.2.2/gentoo/23_all_gcc-3.2.2-cross-compile.patch new file mode 100644 index 0000000..076cbf1 --- /dev/null +++ b/3.2.2/gentoo/23_all_gcc-3.2.2-cross-compile.patch @@ -0,0 +1,11 @@ +--- gcc/configure.orig 2005-08-20 04:28:13.000000000 -0400 ++++ gcc/configure 2005-08-20 04:28:38.000000000 -0400 +@@ -6790,7 +6790,7 @@ + # This prevents libgcc2 from containing any code which requires libc + # support. + inhibit_libc= +-if test x$host != x$target && test x$with_headers = x; then ++if test x$host != x$target && { test "x$with_headers" = x || test "x$with_headers" = xno ; } ; then + inhibit_libc=-Dinhibit_libc + else + if test x$with_newlib = xyes; then diff --git a/3.2.2/gentoo/24_all_gcc-3.2.2-no-COPYING-cross-compile.patch b/3.2.2/gentoo/24_all_gcc-3.2.2-no-COPYING-cross-compile.patch new file mode 100644 index 0000000..6f42e74 --- /dev/null +++ b/3.2.2/gentoo/24_all_gcc-3.2.2-no-COPYING-cross-compile.patch @@ -0,0 +1,40 @@ +--- gcc-3.2.2/configure.in ++++ gcc-3.2.2/configure.in +@@ -517,37 +517,6 @@ + esac + fi + +-# Handle ${copy_dirs} +-set fnord ${copy_dirs} +-shift +-while [ $# != 0 ]; do +- if [ -f $2/COPIED ] && [ x"`cat $2/COPIED`" = x"$1" ]; then +- : +- else +- echo Copying $1 to $2 +- +- # Use the install script to create the directory and all required +- # parent directories. +- if [ -d $2 ]; then +- : +- else +- echo >config.temp +- ${srcdir}/install-sh -c -m 644 config.temp $2/COPIED +- fi +- +- # Copy the directory, assuming we have tar. +- # FIXME: Should we use B in the second tar? Not all systems support it. +- (cd $1; tar -cf - .) | (cd $2; tar -xpf -) +- +- # It is the responsibility of the user to correctly adjust all +- # symlinks. If somebody can figure out how to handle them correctly +- # here, feel free to add the code. +- +- echo $1 > $2/COPIED +- fi +- shift; shift +-done +- + # Configure extra directories which are host specific + + case "${host}" in |