public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/gcc] rhel-f41-base: 4.3.0-0.8
@ 2026-06-29 12:23 Jakub Jelinek
  0 siblings, 0 replies; only message in thread
From: Jakub Jelinek @ 2026-06-29 12:23 UTC (permalink / raw)
  To: git-commits

A new commit has been pushed.

Repo   : rpms/gcc
Branch : rhel-f41-base
Commit : cbffc05bddf7523c0a422d7eae56f827b5255fb4
Author : Jakub Jelinek <jakub@fedoraproject.org>
Date   : 2008-02-12T22:40:15+00:00
Stats  : +277/-4 in 5 file(s)
URL    : https://src.fedoraproject.org/rpms/gcc/c/cbffc05bddf7523c0a422d7eae56f827b5255fb4?branch=rhel-f41-base

Log:
4.3.0-0.8

---
diff --git a/.cvsignore b/.cvsignore
index dc88aa5..28f3887 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1,2 +1,2 @@
-gcc-4.3.0-20080130.tar.bz2
+gcc-4.3.0-20080212.tar.bz2
 fastjar-0.95.tar.gz

diff --git a/gcc43-pr35130.patch b/gcc43-pr35130.patch
new file mode 100644
index 0000000..3efe0a6
--- /dev/null
+++ b/gcc43-pr35130.patch
@@ -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;
++}

diff --git a/gcc43-pr35138.patch b/gcc43-pr35138.patch
new file mode 100644
index 0000000..75b74ab
--- /dev/null
+++ b/gcc43-pr35138.patch
@@ -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);
++}

diff --git a/gcc43.spec b/gcc43.spec
index 885994b..ce5723f 100644
--- a/gcc43.spec
+++ b/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)

diff --git a/sources b/sources
index f581bf1..2e93563 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-fc354c2c162345f32904b33ef34572ed  gcc-4.3.0-20080130.tar.bz2
+34237576185d54a8e889c48efa3e0651  gcc-4.3.0-20080212.tar.bz2
 92a70f9e56223b653bce0f58f90cf950  fastjar-0.95.tar.gz

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-06-29 12:23 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-06-29 12:23 [rpms/gcc] rhel-f41-base: 4.3.0-0.8 Jakub Jelinek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox