4.3.0-0.8
This commit is contained in:
parent
f659baaab5
commit
cbffc05bdd
@ -1,2 +1,2 @@
|
||||
gcc-4.3.0-20080130.tar.bz2
|
||||
gcc-4.3.0-20080212.tar.bz2
|
||||
fastjar-0.95.tar.gz
|
||||
|
178
gcc43-pr35130.patch
Normal file
178
gcc43-pr35130.patch
Normal file
@ -0,0 +1,178 @@
|
||||
2008-02-11 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR middle-end/35130
|
||||
* tree-nested.c (convert_call_expr): Put FRAME.* vars into
|
||||
OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
|
||||
|
||||
* testsuite/libgomp.fortran/pr35130.f90: New test.
|
||||
* testsuite/libgomp.c/pr35130.c: New test.
|
||||
|
||||
--- gcc/tree-nested.c.jj 2008-02-11 14:48:12.000000000 +0100
|
||||
+++ gcc/tree-nested.c 2008-02-11 17:09:23.000000000 +0100
|
||||
@@ -1739,7 +1739,8 @@ convert_call_expr (tree *tp, int *walk_s
|
||||
break;
|
||||
if (c == NULL)
|
||||
{
|
||||
- c = build_omp_clause (OMP_CLAUSE_FIRSTPRIVATE);
|
||||
+ c = build_omp_clause (i ? OMP_CLAUSE_FIRSTPRIVATE
|
||||
+ : OMP_CLAUSE_SHARED);
|
||||
OMP_CLAUSE_DECL (c) = decl;
|
||||
OMP_CLAUSE_CHAIN (c) = OMP_PARALLEL_CLAUSES (t);
|
||||
OMP_PARALLEL_CLAUSES (t) = c;
|
||||
--- libgomp/testsuite/libgomp.fortran/pr35130.f90.jj 2008-02-11 17:15:58.000000000 +0100
|
||||
+++ libgomp/testsuite/libgomp.fortran/pr35130.f90 2008-02-11 17:16:07.000000000 +0100
|
||||
@@ -0,0 +1,20 @@
|
||||
+! PR middle-end/35130
|
||||
+
|
||||
+program pr35130
|
||||
+ implicit none
|
||||
+ real, dimension(20) :: a
|
||||
+ integer :: k
|
||||
+ a(:) = 0.0
|
||||
+!$omp parallel do private(k)
|
||||
+ do k=1,size(a)
|
||||
+ call inner(k)
|
||||
+ end do
|
||||
+!$omp end parallel do
|
||||
+ if (any (a.ne.42)) call abort
|
||||
+contains
|
||||
+ subroutine inner(i)
|
||||
+ implicit none
|
||||
+ integer :: i
|
||||
+ a(i) = 42
|
||||
+ end subroutine inner
|
||||
+end program pr35130
|
||||
--- libgomp/testsuite/libgomp.c/pr35130.c.jj 2008-02-11 17:12:18.000000000 +0100
|
||||
+++ libgomp/testsuite/libgomp.c/pr35130.c 2008-02-11 17:12:03.000000000 +0100
|
||||
@@ -0,0 +1,131 @@
|
||||
+/* PR middle-end/35130 */
|
||||
+
|
||||
+extern void abort (void);
|
||||
+
|
||||
+void
|
||||
+f1 (void)
|
||||
+{
|
||||
+ int a[4], k;
|
||||
+ void nested (int x)
|
||||
+ {
|
||||
+ a[x] = 42;
|
||||
+ }
|
||||
+
|
||||
+ for (k = 0; k < 4; k++)
|
||||
+ a[k] = 0;
|
||||
+#pragma omp parallel for
|
||||
+ for (k = 0; k < 4; k++)
|
||||
+ nested (k);
|
||||
+
|
||||
+ if (a[0] != 42 || a[1] != 42 || a[2] != 42 || a[3] != 42)
|
||||
+ abort ();
|
||||
+}
|
||||
+
|
||||
+void
|
||||
+f2 (void)
|
||||
+{
|
||||
+ int a[4], k;
|
||||
+ void nested (void)
|
||||
+ {
|
||||
+ int l;
|
||||
+ void nested2 (int x)
|
||||
+ {
|
||||
+ a[x] = 42;
|
||||
+ }
|
||||
+#pragma omp parallel for
|
||||
+ for (l = 0; l < 4; l++)
|
||||
+ nested2 (l);
|
||||
+ }
|
||||
+
|
||||
+ for (k = 0; k < 4; k++)
|
||||
+ a[k] = 0;
|
||||
+
|
||||
+ nested ();
|
||||
+
|
||||
+ if (a[0] != 42 || a[1] != 42 || a[2] != 42 || a[3] != 42)
|
||||
+ abort ();
|
||||
+}
|
||||
+
|
||||
+void
|
||||
+f3 (void)
|
||||
+{
|
||||
+ int a[4], b[4], c[4], k;
|
||||
+ void nested (int x)
|
||||
+ {
|
||||
+ a[x] = b[x] = c[x] = 42;
|
||||
+ }
|
||||
+
|
||||
+ for (k = 0; k < 4; k++)
|
||||
+ a[k] = b[k] = c[k] = 0;
|
||||
+ nested (0);
|
||||
+
|
||||
+#pragma omp parallel
|
||||
+ {
|
||||
+ #pragma omp single
|
||||
+ {
|
||||
+ a[1] = 43;
|
||||
+ b[1] = 43;
|
||||
+ }
|
||||
+ #pragma omp parallel
|
||||
+ {
|
||||
+ #pragma omp single
|
||||
+ {
|
||||
+ b[2] = 44;
|
||||
+ c[2] = 44;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (a[0] != 42 || a[1] != 43 || a[2] != 0 || a[3] != 0)
|
||||
+ abort ();
|
||||
+ if (b[0] != 42 || b[1] != 43 || b[2] != 44 || b[3] != 0)
|
||||
+ abort ();
|
||||
+ if (c[0] != 42 || c[1] != 0 || c[2] != 44 || c[3] != 0)
|
||||
+ abort ();
|
||||
+}
|
||||
+
|
||||
+void
|
||||
+f4 (void)
|
||||
+{
|
||||
+ int a[4], b[4], c[4], k;
|
||||
+ void nested ()
|
||||
+ {
|
||||
+ #pragma omp parallel
|
||||
+ {
|
||||
+ #pragma omp single
|
||||
+ {
|
||||
+ a[1] = 43;
|
||||
+ b[1] = 43;
|
||||
+ }
|
||||
+ #pragma omp parallel
|
||||
+ {
|
||||
+ #pragma omp single
|
||||
+ {
|
||||
+ b[2] = 44;
|
||||
+ c[2] = 44;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ for (k = 0; k < 4; k++)
|
||||
+ a[k] = b[k] = c[k] = k == 0 ? 42 : 0;
|
||||
+ nested ();
|
||||
+
|
||||
+ if (a[0] != 42 || a[1] != 43 || a[2] != 0 || a[3] != 0)
|
||||
+ abort ();
|
||||
+ if (b[0] != 42 || b[1] != 43 || b[2] != 44 || b[3] != 0)
|
||||
+ abort ();
|
||||
+ if (c[0] != 42 || c[1] != 0 || c[2] != 44 || c[3] != 0)
|
||||
+ abort ();
|
||||
+}
|
||||
+
|
||||
+int
|
||||
+main (void)
|
||||
+{
|
||||
+ f1 ();
|
||||
+ f2 ();
|
||||
+ f3 ();
|
||||
+ f4 ();
|
||||
+ return 0;
|
||||
+}
|
67
gcc43-pr35138.patch
Normal file
67
gcc43-pr35138.patch
Normal file
@ -0,0 +1,67 @@
|
||||
2008-02-12 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c++/35138
|
||||
* parser.c (cp_parser_pseudo_destructor_name): If next token
|
||||
is CPP_NAME, not followed by template argument list nor
|
||||
::~, return before calling cp_parser_type_name.
|
||||
|
||||
* g++.dg/template/member8.C: New test.
|
||||
|
||||
--- gcc/cp/parser.c.jj 2008-02-12 14:49:55.000000000 +0100
|
||||
+++ gcc/cp/parser.c 2008-02-12 20:47:09.000000000 +0100
|
||||
@@ -5164,6 +5164,27 @@ cp_parser_pseudo_destructor_name (cp_par
|
||||
additional qualification. */
|
||||
else if (cp_lexer_next_token_is_not (parser->lexer, CPP_COMPL))
|
||||
{
|
||||
+ /* If postfix-expression before . or -> token was dependent,
|
||||
+ this might be actually a normal class access rather than
|
||||
+ pseudo destructor. As cp_parser_type_name can report
|
||||
+ errors, first make sure the type name is followed
|
||||
+ by `::~'. */
|
||||
+ cp_token *token = cp_lexer_peek_token (parser->lexer);
|
||||
+ if (token->type != CPP_NAME && token->type != CPP_TEMPLATE_ID)
|
||||
+ {
|
||||
+ cp_parser_error (parser, "expected class-name");
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ if (token->type == CPP_NAME
|
||||
+ && !cp_parser_nth_token_starts_template_argument_list_p (parser, 2)
|
||||
+ && (cp_lexer_peek_nth_token (parser->lexer, 2)->type != CPP_SCOPE
|
||||
+ || cp_lexer_peek_nth_token (parser->lexer, 3)->type != CPP_COMPL))
|
||||
+ {
|
||||
+ cp_parser_error (parser, "not a pseudo destructor");
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
/* Look for the type-name. */
|
||||
*scope = TREE_TYPE (cp_parser_type_name (parser));
|
||||
|
||||
--- gcc/testsuite/g++.dg/template/member8.C.jj 2008-02-12 18:32:14.000000000 +0100
|
||||
+++ gcc/testsuite/g++.dg/template/member8.C 2008-02-12 18:19:23.000000000 +0100
|
||||
@@ -0,0 +1,25 @@
|
||||
+// PR c++/35138
|
||||
+// { dg-do compile }
|
||||
+
|
||||
+namespace N1 { struct A { }; }
|
||||
+namespace N2 { struct A { }; }
|
||||
+using namespace N1;
|
||||
+using namespace N2;
|
||||
+
|
||||
+template <typename T> int
|
||||
+foo (T const &t)
|
||||
+{
|
||||
+ return t.A;
|
||||
+}
|
||||
+
|
||||
+struct B
|
||||
+{
|
||||
+ int A;
|
||||
+};
|
||||
+
|
||||
+int
|
||||
+main ()
|
||||
+{
|
||||
+ B b;
|
||||
+ foo (b);
|
||||
+}
|
32
gcc43.spec
32
gcc43.spec
@ -1,6 +1,6 @@
|
||||
%define DATE 20080130
|
||||
%define DATE 20080212
|
||||
%define gcc_version 4.3.0
|
||||
%define gcc_release 0.7
|
||||
%define gcc_release 0.8
|
||||
%define _unpackaged_files_terminate_build 0
|
||||
%define multilib_64_archs sparc64 ppc64 s390x x86_64
|
||||
%define include_gappletviewer 1
|
||||
@ -140,6 +140,8 @@ Patch10: gcc43-rh330771.patch
|
||||
Patch11: gcc43-rh341221.patch
|
||||
Patch12: gcc43-cpp-pragma.patch
|
||||
Patch13: gcc43-java-debug-iface-type.patch
|
||||
Patch14: gcc43-pr35130.patch
|
||||
Patch15: gcc43-pr35138.patch
|
||||
|
||||
# On ARM EABI systems, we do want -gnueabi to be part of the
|
||||
# target triple.
|
||||
@ -436,6 +438,8 @@ which are required to run programs compiled with the GNAT.
|
||||
%patch11 -p0 -b .rh341221~
|
||||
%patch12 -p0 -b .cpp-pragma~
|
||||
%patch13 -p0 -b .java-debug-iface-type~
|
||||
%patch14 -p0 -b .pr35130~
|
||||
%patch15 -p0 -b .pr35138~
|
||||
|
||||
tar xzf %{SOURCE4}
|
||||
|
||||
@ -1649,6 +1653,30 @@ fi
|
||||
%doc rpm.doc/changelogs/libmudflap/ChangeLog*
|
||||
|
||||
%changelog
|
||||
* Tue Feb 12 2008 Jakub Jelinek <jakub@redhat.com> 4.3.0-0.8
|
||||
- update to trunk
|
||||
- PRs bootstrap/33781, bootstrap/34922, bootstrap/35051, bootstrap/35115,
|
||||
c++/29048, c++/33553, c++/33916, c++/33964, c++/34052, c++/34094,
|
||||
c++/34314, c++/34776, c++/34862, c++/34891, c++/34935, c++/34936,
|
||||
c++/35049, c++/35056, c++/35074, c++/35077, c++/35096, c++/35097,
|
||||
c++/35113, c++/35116, c/29326, c/34993, documentation/30330,
|
||||
fortran/32315, fortran/32760, fortran/34910, fortran/34945,
|
||||
fortran/35037, fortran/35093, java/35035, libffi/34612,
|
||||
libfortran/35001, libfortran/35063, libgcj/30071, libstdc++/16251,
|
||||
middle-end/33631, middle-end/34627, middle-end/35043,
|
||||
middle-end/35136, middle-end/35163, middle_end/34150, objc++/34193,
|
||||
other/29972, other/31405, other/32754, other/35042, other/35070,
|
||||
other/35107, rtl-opt/33410, rtl-optimization/34773,
|
||||
rtl-optimization/34995, rtl-optimization/34998, target/23322,
|
||||
target/34900, target/34982, target/35045, target/35083,
|
||||
target/35084, testsuite/33946, testsuite/35047,
|
||||
tree-optimization/33992, tree-optimization/35085, tree-optimization/35171
|
||||
- inline asm optimization fix (#432146, PR inline-asm/35160)
|
||||
- SRA fix (#432090, PR c++/35144)
|
||||
- fix #pragma omp parallel body calling nested functions which store
|
||||
into shared parent variables (PR middle-end/35130)
|
||||
- ./-> after dependent expr parsing fix (PR c++/35138)
|
||||
|
||||
* Wed Jan 30 2008 Jakub Jelinek <jakub@redhat.com> 4.3.0-0.7
|
||||
- update from trunk
|
||||
- fix ISO C99 6.7.4p3 diagnostics (#427634, PR c/35017)
|
||||
|
Loading…
Reference in New Issue
Block a user