This commit is contained in:
Jakub Jelinek 2007-04-25 09:44:58 +00:00
parent 6215650c5f
commit ed083d28ab
7 changed files with 280 additions and 10 deletions

View File

@ -1 +1 @@
gcc-4.1.2-20070418.tar.bz2
gcc-4.1.2-20070424.tar.bz2

View File

@ -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:

65
gcc41-pr30558.patch Normal file
View File

@ -0,0 +1,65 @@
2007-04-24 Jakub Jelinek <jakub@redhat.com>
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 <typename T> struct F
+{
+ ~F ();
+ F (T);
+ const T &operator[] (unsigned i) const;
+};
+
+template <typename T> F<T> foo (const F<T> &x)
+{
+ return F<T> (x[1]);
+}
+
+struct G
+{
+ G () { bar (2); }
+ F<int> &operator () (F<int> x);
+ void bar (int);
+};
+
+int
+main ()
+{
+ try
+ {
+ G g;
+#pragma omp parallel for
+ for (int i = 0; i < 10; ++i)
+ {
+ F<int> j (i);
+ F<int> f = g (j);
+ F<int> h = foo (f);
+ }
+ }
+ catch (int &e)
+ {
+ }
+}

96
gcc41-pr31598.patch Normal file
View File

@ -0,0 +1,96 @@
2007-04-24 Jakub Jelinek <jakub@redhat.com>
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 <Theodore.Papadopoulo@sophia.inria.fr>
+
+int i;
+template <typename> struct A { A() {} };
+template <typename> struct C { C() { i++; } C(const C &) { i += 2; } };
+struct D { D() {} };
+
+struct M { typedef double E; };
+
+template <typename T>
+struct R
+{
+ R()
+ {
+ typedef A<typename T::E> B;
+ B b;
+ #pragma omp parallel for firstprivate(b) schedule(guided)
+ for (int t = 0; t < 10; ++t)
+ ;
+ }
+};
+
+template <typename T>
+struct S
+{
+ S()
+ {
+ typedef C<typename T::E> 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<M> r;
+ S<M> s;
+ U u;
+ return 0;
+}

97
gcc41-rh235008.patch Normal file
View File

@ -0,0 +1,97 @@
2007-04-12 Jakub Jelinek <jakub@redhat.com>
* 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 "ДвоÑ<C2BE>Ñруки атрибут %S наведен код %L"
+msgstr "ДвоÑ<C2BE>Ñруки атрибут %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

View File

@ -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 <jakub@redhat.com> 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 <jakub@redhat.com> 4.1.2-10
- fix folding of comparisions against min, min+1, max-1, max
(#236711, PR tree-optimization/31632)

View File

@ -1 +1 @@
d315aa245a891a2b44415851d93afa54 gcc-4.1.2-20070418.tar.bz2
0a2c2aaf18c3227cfb4a6f85ec68847d gcc-4.1.2-20070424.tar.bz2