From ed083d28abdff306cc9a0ee816b05e455f537074 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Wed, 25 Apr 2007 09:44:58 +0000 Subject: [PATCH] 4.1.2-11 --- .cvsignore | 2 +- README.libgcjwebplugin.so | 2 +- gcc41-pr30558.patch | 65 ++++++++++++++++++++++++++ gcc41-pr31598.patch | 96 ++++++++++++++++++++++++++++++++++++++ gcc41-rh235008.patch | 97 +++++++++++++++++++++++++++++++++++++++ gcc41.spec | 26 ++++++++--- sources | 2 +- 7 files changed, 280 insertions(+), 10 deletions(-) create mode 100644 gcc41-pr30558.patch create mode 100644 gcc41-pr31598.patch create mode 100644 gcc41-rh235008.patch diff --git a/.cvsignore b/.cvsignore index d20769a..2c490bb 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -gcc-4.1.2-20070418.tar.bz2 +gcc-4.1.2-20070424.tar.bz2 diff --git a/README.libgcjwebplugin.so b/README.libgcjwebplugin.so index 6acf439..d0c9090 100644 --- a/README.libgcjwebplugin.so +++ b/README.libgcjwebplugin.so @@ -42,7 +42,7 @@ sufficiently mature that they're able to run many applets deployed on the web. If you're interested in trying gcjwebplugin, you can do so by creating a symbolic link in ~/.mozilla/plugins like so: -ln -s /usr/lib/gcj-4.1.1/libgcjwebplugin.so ~/.mozilla/plugins/ +ln -s /usr/lib/gcj-@VERSION@/libgcjwebplugin.so ~/.mozilla/plugins/ Type about:plugins in Firefox's URL bar to confirm that the plugin has been loaded. To see gcjwebplugin debugging output, run: diff --git a/gcc41-pr30558.patch b/gcc41-pr30558.patch new file mode 100644 index 0000000..10581b4 --- /dev/null +++ b/gcc41-pr30558.patch @@ -0,0 +1,65 @@ +2007-04-24 Jakub Jelinek + + PR tree-optimization/30558 + * tree-eh.c (lower_eh_filter): If EH_FILTER_MUST_NOT_THROW + clear this_state.prev_try. + + * g++.dg/gomp/pr30558.C: New test. + +--- gcc/tree-eh.c.jj 2007-03-12 17:18:17.000000000 +0100 ++++ gcc/tree-eh.c 2007-04-24 17:32:16.000000000 +0200 +@@ -1497,6 +1497,10 @@ lower_eh_filter (struct leh_state *state + EH_FILTER_TYPES (inner)); + this_state = *state; + this_state.cur_region = this_region; ++ /* For must not throw regions any cleanup regions inside it ++ can't reach outer catch regions. */ ++ if (EH_FILTER_MUST_NOT_THROW (inner)) ++ this_state.prev_try = NULL; + + lower_eh_constructs_1 (&this_state, &TREE_OPERAND (*tp, 0)); + +--- gcc/testsuite/g++.dg/gomp/pr30558.C.jj 2007-04-24 17:41:47.000000000 +0200 ++++ gcc/testsuite/g++.dg/gomp/pr30558.C 2007-04-24 17:42:24.000000000 +0200 +@@ -0,0 +1,41 @@ ++// PR tree-optimization/30558 ++// { dg-do compile } ++// { dg-options "-fopenmp" } ++ ++template struct F ++{ ++ ~F (); ++ F (T); ++ const T &operator[] (unsigned i) const; ++}; ++ ++template F foo (const F &x) ++{ ++ return F (x[1]); ++} ++ ++struct G ++{ ++ G () { bar (2); } ++ F &operator () (F x); ++ void bar (int); ++}; ++ ++int ++main () ++{ ++ try ++ { ++ G g; ++#pragma omp parallel for ++ for (int i = 0; i < 10; ++i) ++ { ++ F j (i); ++ F f = g (j); ++ F h = foo (f); ++ } ++ } ++ catch (int &e) ++ { ++ } ++} diff --git a/gcc41-pr31598.patch b/gcc41-pr31598.patch new file mode 100644 index 0000000..30232a9 --- /dev/null +++ b/gcc41-pr31598.patch @@ -0,0 +1,96 @@ +2007-04-24 Jakub Jelinek + + PR c++/31598 + * tree-inline.c (copy_body_r): Don't touch TREE_TYPE of OMP_CLAUSE. + + * semantics.c (finish_omp_clauses): Don't create CP_OMP_CLAUSE_INFO + for type dependent OMP_CLAUSE_DECLs. + + * g++.dg/gomp/pr31598.C: New test. + +--- gcc/tree-inline.c.jj 2007-04-14 14:55:25.000000000 +0200 ++++ gcc/tree-inline.c 2007-04-24 11:33:19.000000000 +0200 +@@ -650,7 +650,8 @@ copy_body_r (tree *tp, int *walk_subtree + (NULL_TREE, + id->eh_region_offset + TREE_INT_CST_LOW (TREE_OPERAND (*tp, 0))); + +- TREE_TYPE (*tp) = remap_type (TREE_TYPE (*tp), id); ++ if (TREE_CODE (*tp) != OMP_CLAUSE) ++ TREE_TYPE (*tp) = remap_type (TREE_TYPE (*tp), id); + + /* The copied TARGET_EXPR has never been expanded, even if the + original node was expanded already. */ +--- gcc/cp/semantics.c.jj 2007-04-01 20:16:51.000000000 +0200 ++++ gcc/cp/semantics.c 2007-04-24 10:45:35.000000000 +0200 +@@ -3627,7 +3627,8 @@ finish_omp_clauses (tree clauses) + Save the results, because later we won't be in the right context + for making these queries. */ + if (CLASS_TYPE_P (inner_type) +- && (need_default_ctor || need_copy_ctor || need_copy_assignment)) ++ && (need_default_ctor || need_copy_ctor || need_copy_assignment) ++ && !type_dependent_expression_p (t)) + { + int save_errorcount = errorcount; + tree info; +--- gcc/testsuite/g++.dg/gomp/pr31598.C.jj 2007-04-24 10:47:50.000000000 +0200 ++++ gcc/testsuite/g++.dg/gomp/pr31598.C 2007-04-24 11:49:35.000000000 +0200 +@@ -0,0 +1,59 @@ ++// PR c++/31598 ++// { dg-do compile } ++// ++// Copyright (C) 2007 Free Software Foundation, Inc. ++// Contributed by Theodore.Papadopoulo ++// 16 Apr 2007 ++ ++int i; ++template struct A { A() {} }; ++template struct C { C() { i++; } C(const C &) { i += 2; } }; ++struct D { D() {} }; ++ ++struct M { typedef double E; }; ++ ++template ++struct R ++{ ++ R() ++ { ++ typedef A B; ++ B b; ++ #pragma omp parallel for firstprivate(b) schedule(guided) ++ for (int t = 0; t < 10; ++t) ++ ; ++ } ++}; ++ ++template ++struct S ++{ ++ S() ++ { ++ typedef C B; ++ B b; ++ #pragma omp parallel for firstprivate(b) ++ for (int t = 0; t < 10; ++t) ++ ; ++ } ++}; ++ ++struct U ++{ ++ U() ++ { ++ D b; ++ #pragma omp parallel for firstprivate(b) ++ for (int t = 0; t < 10; ++t) ++ ; ++ } ++}; ++ ++int ++main () ++{ ++ R r; ++ S s; ++ U u; ++ return 0; ++} diff --git a/gcc41-rh235008.patch b/gcc41-rh235008.patch new file mode 100644 index 0000000..c6045e3 --- /dev/null +++ b/gcc41-rh235008.patch @@ -0,0 +1,97 @@ +2007-04-12 Jakub Jelinek + + * fr.po: Use %s rather than %S. + * sr.po: Likewise. + * tr.po: Likewise. + * sv.po: Likewise. + * rw.po: Comment out translations with bogus format + strings. + +--- gcc/po/fr.po (revision 123636) ++++ gcc/po/fr.po (working copy) +@@ -31416,7 +31416,7 @@ msgstr "attribut %s ignor" + #~ msgstr "prise de l'adresse de la borne de l'expression d'un pointeur-vers-un membre" + + #~ msgid "%s from type `%T' to type `%T' casts away constness" +-#~ msgstr "%S partir du %T vers le type %T provoque un transtypage sans constante" ++#~ msgstr "%s partir du %T vers le type %T provoque un transtypage sans constante" + + #~ msgid "invalid reinterpret_cast from type `%T' to type `%T'" + #~ msgstr "reinterpret_cast invalide partir du type %T vers le type %T " +--- gcc/po/sr.po (revision 123636) ++++ gcc/po/sr.po (working copy) +@@ -8516,7 +8516,7 @@ msgstr "Не могу се промен + #: fortran/symbol.c:592 + #, no-c-format + msgid "Duplicate %s attribute specified at %L" +-msgstr "Двоструки атрибут %S наведен код %L" ++msgstr "Двоструки атрибут %s наведен код %L" + + #: fortran/symbol.c:733 + #, no-c-format +--- gcc/po/tr.po (revision 123636) ++++ gcc/po/tr.po (working copy) +@@ -6951,7 +6951,7 @@ msgstr "INTERFACE gövdesinde umulmadık + #: fortran/parse.c:1604 + #, no-c-format + msgid "%s statement must appear in a MODULE" +-msgstr "%S deyimi bir MODULE'de görünmemeli" ++msgstr "%s deyimi bir MODULE'de görünmemeli" + + #: fortran/parse.c:1611 + #, no-c-format +--- gcc/po/rw.po (revision 123636) ++++ gcc/po/rw.po (working copy) +@@ -2168,8 +2168,8 @@ msgstr "" + + #: tlink.c:480 + #, fuzzy, c-format +-msgid "renaming .rpo file" +-msgstr "Gufungura %s%S Ibisohoka IDOSIYE" ++#~ msgid "renaming .rpo file" ++#~ msgstr "Gufungura %s%S Ibisohoka IDOSIYE" + + #: tlink.c:534 + #, c-format +@@ -17500,8 +17500,8 @@ msgstr "-Umutekano" + + #: c-opts.c:1040 + #, fuzzy, gcc-internal-format +-msgid "opening output file %s: %m" +-msgstr "Gufungura %s%S Ibisohoka IDOSIYE" ++#~ msgid "opening output file %s: %m" ++#~ msgstr "Gufungura %s%S Ibisohoka IDOSIYE" + + #: c-opts.c:1045 + #, fuzzy, gcc-internal-format +@@ -17515,8 +17515,8 @@ msgstr "" + + #: c-opts.c:1177 + #, fuzzy, gcc-internal-format +-msgid "opening dependency file %s: %m" +-msgstr "Gufungura %s%S IDOSIYE" ++#~ msgid "opening dependency file %s: %m" ++#~ msgstr "Gufungura %s%S IDOSIYE" + + #: c-opts.c:1187 + #, fuzzy, gcc-internal-format +--- gcc/po/sv.po 2007-02-20 22:38:45.000000000 +0100 ++++ gcc/po/sv.po 2007-04-13 00:18:11.000000000 +0200 +@@ -3328,7 +3328,7 @@ msgstr "ogiltig operand till %%R" + #: config/sh/sh.c:773 + #, c-format + msgid "invalid operand to %%S" +-msgstr "ogiltig operand till %%R" ++msgstr "ogiltig operand till %%S" + + #: config/sh/sh.c:7679 + msgid "created and used with different architectures / ABIs" +@@ -8019,7 +8019,7 @@ msgstr "PROCEDURE-attribut i konflikt me + #: fortran/resolve.c:4943 + #, no-c-format + msgid "Parameter array '%s' at %L cannot be automatic or assumed shape" +-msgstr "Parametervektor \"%S\" vid %L kan inte ha automatisk eller antagen form" ++msgstr "Parametervektor \"%s\" vid %L kan inte ha automatisk eller antagen form" + + #: fortran/resolve.c:4955 + #, no-c-format diff --git a/gcc41.spec b/gcc41.spec index 4df86d1..38a472b 100644 --- a/gcc41.spec +++ b/gcc41.spec @@ -1,6 +1,6 @@ -%define DATE 20070418 +%define DATE 20070424 %define gcc_version 4.1.2 -%define gcc_release 10 +%define gcc_release 11 %define _unpackaged_files_terminate_build 0 %define multilib_64_archs sparc64 ppc64 s390x x86_64 %define include_gappletviewer 1 @@ -139,9 +139,10 @@ Patch27: gcc41-libjava-visibility.patch Patch28: gcc41-pr31187.patch Patch29: gcc41-rh231818.patch Patch30: gcc41-rh234515.patch -Patch31: gcc41-pr31632.patch +Patch31: gcc41-pr30558.patch Patch32: gcc41-rh236895.patch -Patch33: gcc41-rh237067.patch +Patch33: gcc41-pr31598.patch +Patch34: gcc41-rh235008.patch %define _gnu %{nil} %ifarch sparc @@ -451,9 +452,10 @@ which are required to run programs compiled with the GNAT. %patch28 -p0 -b .pr31187~ %patch29 -p0 -b .rh231818~ %patch30 -p0 -b .rh234515~ -%patch31 -p0 -b .pr31632~ +%patch31 -p0 -b .pr30558~ %patch32 -p0 -b .rh236895~ -%patch33 -p0 -b .rh237067~ +%patch33 -p0 -b .pr31598~ +%patch34 -p0 -b .rh235008~ sed -i -e 's/4\.1\.3/4.1.2/' gcc/BASE-VER gcc/version.c sed -i -e 's/" (Red Hat[^)]*)"/" (Red Hat %{version}-%{gcc_release})"/' gcc/version.c @@ -641,7 +643,7 @@ cd .. mkdir -p rpm.doc/gfortran rpm.doc/objc mkdir -p rpm.doc/boehm-gc rpm.doc/fastjar rpm.doc/libffi rpm.doc/libjava mkdir -p rpm.doc/changelogs/{gcc/cp,gcc/java,gcc/ada,libstdc++-v3,libobjc,libmudflap,libgomp} -cp -p %{SOURCE2} rpm.doc/README.libgcjwebplugin.so +sed -e 's,@VERSION@,%{gcc_version},' %{SOURCE2} > rpm.doc/README.libgcjwebplugin.so for i in {gcc,gcc/cp,gcc/java,gcc/ada,libstdc++-v3,libobjc,libmudflap,libgomp}/ChangeLog*; do cp -p $i rpm.doc/changelogs/$i @@ -1577,6 +1579,16 @@ fi %doc rpm.doc/changelogs/libmudflap/ChangeLog* %changelog +* Wed Apr 25 2007 Jakub Jelinek 4.1.2-11 +- update from gcc-4_1-branch (-r123951:124100) + - PRs middle-end/31448, preprocessor/30468, target/28623, target/31641 +- Java fixes + - PRs classpath/31626, classpath/31646, #236895 +- fix a couple of translation bugs that could lead to ICEs (#235008) +- fix ICE with #pragma omp parallel inside of a try catch construct + (PR tree-optimization/30558) +- fix OpenMP clause handling in templates (PR c++/31598) + * Thu Apr 19 2007 Jakub Jelinek 4.1.2-10 - fix folding of comparisions against min, min+1, max-1, max (#236711, PR tree-optimization/31632) diff --git a/sources b/sources index 4b05219..249d2cb 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -d315aa245a891a2b44415851d93afa54 gcc-4.1.2-20070418.tar.bz2 +0a2c2aaf18c3227cfb4a6f85ec68847d gcc-4.1.2-20070424.tar.bz2