packages: gcc/gcc-branch.diff - updated.

pluto pluto at pld-linux.org
Sat May 15 10:07:36 CEST 2010


Author: pluto                        Date: Sat May 15 08:07:36 2010 GMT
Module: packages                      Tag: HEAD
---- Log message:
- updated.

---- Files affected:
packages/gcc:
   gcc-branch.diff (1.27 -> 1.28) 

---- Diffs:

================================================================
Index: packages/gcc/gcc-branch.diff
diff -u packages/gcc/gcc-branch.diff:1.27 packages/gcc/gcc-branch.diff:1.28
--- packages/gcc/gcc-branch.diff:1.27	Fri Apr 16 08:36:06 2010
+++ packages/gcc/gcc-branch.diff	Sat May 15 10:03:50 2010
@@ -1,7 +1,20 @@
+Index: configure
+===================================================================
+--- configure	(.../tags/gcc_4_5_0_release)	(wersja 159429)
++++ configure	(.../branches/gcc-4_5-branch)	(wersja 159429)
+@@ -7610,7 +7610,7 @@
+        mv conftest.o conftest.o.g0 &&
+        ${CC} -c -g conftest.c &&
+        mv conftest.o conftest.o.g &&
+-       ${srcdir}/contrib/compare-debug conftest.o.g0 conftest.o.g; then
++       ${srcdir}/contrib/compare-debug conftest.o.g0 conftest.o.g > /dev/null 2>&1; then
+       :
+     else
+       BUILD_CONFIG=
 Index: libgcc/config.host
 ===================================================================
---- libgcc/config.host	(.../tags/gcc_4_5_0_release)	(wersja 158397)
-+++ libgcc/config.host	(.../branches/gcc-4_5-branch)	(wersja 158397)
+--- libgcc/config.host	(.../tags/gcc_4_5_0_release)	(wersja 159429)
++++ libgcc/config.host	(.../branches/gcc-4_5-branch)	(wersja 159429)
 @@ -600,6 +600,7 @@
  i[34567]86-*-darwin* | x86_64-*-darwin* | \
    i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu | \
@@ -12,8 +25,8 @@
  	if test "${host_address}" = 32; then
 Index: libgcc/ChangeLog
 ===================================================================
---- libgcc/ChangeLog	(.../tags/gcc_4_5_0_release)	(wersja 158397)
-+++ libgcc/ChangeLog	(.../branches/gcc-4_5-branch)	(wersja 158397)
+--- libgcc/ChangeLog	(.../tags/gcc_4_5_0_release)	(wersja 159429)
++++ libgcc/ChangeLog	(.../branches/gcc-4_5-branch)	(wersja 159429)
 @@ -1,3 +1,10 @@
 +2010-04-15  Thomas Schwinge  <tschwinge at gnu.org>
 +
@@ -25,11 +38,698 @@
  2010-04-14  Release Manager
  
  	* GCC 4.5.0 released.
+Index: libgomp/sections.c
+===================================================================
+--- libgomp/sections.c	(.../tags/gcc_4_5_0_release)	(wersja 159429)
++++ libgomp/sections.c	(.../branches/gcc-4_5-branch)	(wersja 159429)
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2005, 2007, 2008, 2009 Free Software Foundation, Inc.
++/* Copyright (C) 2005, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+    Contributed by Richard Henderson <rth at redhat.com>.
+ 
+    This file is part of the GNU OpenMP Library (libgomp).
+@@ -34,9 +34,25 @@
+ {
+   ws->sched = GFS_DYNAMIC;
+   ws->chunk_size = 1;
+-  ws->end = count + 1;
++  ws->end = count + 1L;
+   ws->incr = 1;
+   ws->next = 1;
++#ifdef HAVE_SYNC_BUILTINS
++  /* Prepare things to make each iteration faster.  */
++  if (sizeof (long) > sizeof (unsigned))
++    ws->mode = 1;
++  else
++    {
++      struct gomp_thread *thr = gomp_thread ();
++      struct gomp_team *team = thr->ts.team;
++      long nthreads = team ? team->nthreads : 1;
++
++      ws->mode = ((nthreads | ws->end)
++		  < 1UL << (sizeof (long) * __CHAR_BIT__ / 2 - 1));
++    }
++#else
++  ws->mode = 0;
++#endif
+ }
+ 
+ /* This routine is called when first encountering a sections construct
+Index: libgomp/ChangeLog
+===================================================================
+--- libgomp/ChangeLog	(.../tags/gcc_4_5_0_release)	(wersja 159429)
++++ libgomp/ChangeLog	(.../branches/gcc-4_5-branch)	(wersja 159429)
+@@ -1,3 +1,24 @@
++2010-04-26  Jakub Jelinek  <jakub at redhat.com>
++
++	PR c/43893
++	* testsuite/libgomp.c/pr43893.c: New test.
++	* testsuite/libgomp.c++/pr43893.C: New test.
++
++2010-04-21  Jakub Jelinek  <jakub at redhat.com>
++
++	PR middle-end/43570
++	* testsuite/libgomp.fortran/vla8.f90: New test.
++
++	PR libgomp/43706
++	* config/linux/affinity.c (gomp_init_affinity): Decrease
++	gomp_available_cpus if affinity mask confines the process to fewer
++	CPUs.
++	* config/linux/proc.c (get_num_procs): If gomp_cpu_affinity is
++	non-NULL, just return gomp_available_cpus.
++
++	PR libgomp/43569
++	* sections.c (gomp_sections_init): Initialize ws->mode.
++
+ 2010-04-14  Release Manager
+ 
+ 	* GCC 4.5.0 released.
+Index: libgomp/testsuite/libgomp.c++/pr43893.C
+===================================================================
+--- libgomp/testsuite/libgomp.c++/pr43893.C	(.../tags/gcc_4_5_0_release)	(wersja 0)
++++ libgomp/testsuite/libgomp.c++/pr43893.C	(.../branches/gcc-4_5-branch)	(wersja 159429)
+@@ -0,0 +1,125 @@
++// PR c/43893
++// { dg-do run }
++
++extern "C" void abort ();
++
++template <typename T, T M, T N>
++void
++f1 ()
++{
++  int c;
++  T i;
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (i = M; i < N; i++)
++    c++;
++  if (c != 1)
++    abort ();
++}
++
++template <typename T, T M, T N>
++void
++f2 ()
++{
++  int c;
++  T i;
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (i = M; i <= N; i++)
++    c++;
++  if (c != 1)
++    abort ();
++}
++
++template <typename T, T M, T N>
++void
++f3 ()
++{
++  int c;
++  T i;
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (i = M; i > N; i--)
++    c++;
++  if (c != 1)
++    abort ();
++}
++
++template <typename T, T M, T N>
++void
++f4 ()
++{
++  int c;
++  T i;
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (i = M; i >= N; i--)
++    c++;
++  if (c != 1)
++    abort ();
++}
++
++int
++main ()
++{
++  int c;
++  unsigned int i;
++  int j;
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (i = 0; i < 1; i++)
++    c++;
++  if (c != 1)
++    abort ();
++  f1 <unsigned int, 0, 1> ();
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (i = 0; i <= 0; i++)
++    c++;
++  if (c != 1)
++    abort ();
++  f2 <unsigned int, 0, 0> ();
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (j = - __INT_MAX__ - 1; j < - __INT_MAX__; j++)
++    c++;
++  if (c != 1)
++    abort ();
++  f1 <int, (- __INT_MAX__ - 1), (- __INT_MAX__)> ();
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (j = - __INT_MAX__ - 1; j <= - __INT_MAX__ - 1; j++)
++    c++;
++  if (c != 1)
++    abort ();
++  f2 <int, (- __INT_MAX__ - 1), (- __INT_MAX__ - 1)> ();
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (i = 2U * __INT_MAX__ + 1; i > 2U * __INT_MAX__; i--)
++    c++;
++  if (c != 1)
++    abort ();
++  f3 <unsigned int, (2U * __INT_MAX__ + 1), (2U * __INT_MAX__)> ();
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (i = 2U * __INT_MAX__ + 1; i >= 2U * __INT_MAX__ + 1; i--)
++    c++;
++  if (c != 1)
++    abort ();
++  f4 <unsigned int, (2U * __INT_MAX__ + 1), (2U * __INT_MAX__ + 1)> ();
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (j = __INT_MAX__; j > __INT_MAX__ - 1; j--)
++    c++;
++  if (c != 1)
++    abort ();
++  f3 <int, __INT_MAX__, (__INT_MAX__ - 1)> ();
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (j = __INT_MAX__; j >= __INT_MAX__; j--)
++    c++;
++  if (c != 1)
++    abort ();
++  f4 <int, __INT_MAX__, __INT_MAX__> ();
++  return 0;
++}
+Index: libgomp/testsuite/libgomp.fortran/vla8.f90
+===================================================================
+--- libgomp/testsuite/libgomp.fortran/vla8.f90	(.../tags/gcc_4_5_0_release)	(wersja 0)
++++ libgomp/testsuite/libgomp.fortran/vla8.f90	(.../branches/gcc-4_5-branch)	(wersja 159429)
+@@ -0,0 +1,254 @@
++! { dg-do run }
++
++  call test
++contains
++  subroutine check (x, y, l)
++    integer :: x, y
++    logical :: l
++    l = l .or. x .ne. y
++  end subroutine check
++
++  subroutine foo (c, d, e, f, g, h, i, j, k, n)
++    use omp_lib
++    integer :: n
++    character (len = *) :: c
++    character (len = n) :: d
++    integer, dimension (2, 3:5, n) :: e
++    integer, dimension (2, 3:n, n) :: f
++    character (len = *), dimension (5, 3:n) :: g
++    character (len = n), dimension (5, 3:n) :: h
++    real, dimension (:, :, :) :: i
++    double precision, dimension (3:, 5:, 7:) :: j
++    integer, dimension (:, :, :) :: k
++    logical :: l
++    integer :: p, q, r
++    character (len = n) :: s
++    integer, dimension (2, 3:5, n) :: t
++    integer, dimension (2, 3:n, n) :: u
++    character (len = n), dimension (5, 3:n) :: v
++    character (len = 2 * n + 24) :: w
++    integer :: x, z
++    character (len = 1) :: y
++    l = .false.
++!$omp parallel default (none) private (c, d, e, f, g, h, i, j, k) &
++!$omp & private (s, t, u, v) reduction (.or.:l) num_threads (6) &
++!$omp private (p, q, r, w, x, y) shared (z)
++    x = omp_get_thread_num ()
++    w = ''
++    if (x .eq. 0) w = 'thread0thr_number_0THREAD0THR_NUMBER_0'
++    if (x .eq. 1) w = 'thread1thr_number_1THREAD1THR_NUMBER_1'
++    if (x .eq. 2) w = 'thread2thr_number_2THREAD2THR_NUMBER_2'
++    if (x .eq. 3) w = 'thread3thr_number_3THREAD3THR_NUMBER_3'
++    if (x .eq. 4) w = 'thread4thr_number_4THREAD4THR_NUMBER_4'
++    if (x .eq. 5) w = 'thread5thr_number_5THREAD5THR_NUMBER_5'
++    c = w(8:19)
++    d = w(1:7)
++    forall (p = 1:2, q = 3:5, r = 1:7) e(p, q, r) = 5 * x + p + q + 2 * r
++    forall (p = 1:2, q = 3:7, r = 1:7) f(p, q, r) = 25 * x + p + q + 2 * r
++    forall (p = 1:5, q = 3:7, p + q .le. 8) g(p, q) = w(8:19)
++    forall (p = 1:5, q = 3:7, p + q .gt. 8) g(p, q) = w(27:38)
++    forall (p = 1:5, q = 3:7, p + q .le. 8) h(p, q) = w(1:7)
++    forall (p = 1:5, q = 3:7, p + q .gt. 8) h(p, q) = w(20:26)
++    forall (p = 3:5, q = 2:6, r = 1:7) i(p - 2, q - 1, r) = (7.5 + x) * p * q * r
++    forall (p = 3:5, q = 2:6, r = 1:7) j(p, q + 3, r + 6) = (9.5 + x) * p * q * r
++    forall (p = 1:5, q = 7:7, r = 4:6) k(p, q - 6, r - 3) = 19 + x + p + q + 3 * r
++    s = w(20:26)
++    forall (p = 1:2, q = 3:5, r = 1:7) t(p, q, r) = -10 + x + p - q + 2 * r
++    forall (p = 1:2, q = 3:7, r = 1:7) u(p, q, r) = 30 - x - p + q - 2 * r
++    forall (p = 1:5, q = 3:7, p + q .le. 8) v(p, q) = w(1:7)
++    forall (p = 1:5, q = 3:7, p + q .gt. 8) v(p, q) = w(20:26)
++!$omp barrier
++    y = ''
++    if (x .eq. 0) y = '0'
++    if (x .eq. 1) y = '1'
++    if (x .eq. 2) y = '2'
++    if (x .eq. 3) y = '3'
++    if (x .eq. 4) y = '4'
++    if (x .eq. 5) y = '5'
++    l = l .or. w(7:7) .ne. y
++    l = l .or. w(19:19) .ne. y
++    l = l .or. w(26:26) .ne. y
++    l = l .or. w(38:38) .ne. y
++    l = l .or. c .ne. w(8:19)
++    l = l .or. d .ne. w(1:7)
++    l = l .or. s .ne. w(20:26)
++    do 103, p = 1, 2
++      do 103, q = 3, 7
++	do 103, r = 1, 7
++	  if (q .lt. 6) l = l .or. e(p, q, r) .ne. 5 * x + p + q + 2 * r
++	  l = l .or. f(p, q, r) .ne. 25 * x + p + q + 2 * r
++	  if (r .lt. 6 .and. q + r .le. 8) l = l .or. g(r, q) .ne. w(8:19)
++	  if (r .lt. 6 .and. q + r .gt. 8) l = l .or. g(r, q) .ne. w(27:38)
++	  if (r .lt. 6 .and. q + r .le. 8) l = l .or. h(r, q) .ne. w(1:7)
++	  if (r .lt. 6 .and. q + r .gt. 8) l = l .or. h(r, q) .ne. w(20:26)
++	  if (q .lt. 6) l = l .or. t(p, q, r) .ne. -10 + x + p - q + 2 * r
++	  l = l .or. u(p, q, r) .ne. 30 - x - p + q - 2 * r
++	  if (r .lt. 6 .and. q + r .le. 8) l = l .or. v(r, q) .ne. w(1:7)
++	  if (r .lt. 6 .and. q + r .gt. 8) l = l .or. v(r, q) .ne. w(20:26)
++103 continue
++    do 104, p = 3, 5
++      do 104, q = 2, 6
++	do 104, r = 1, 7
++	  l = l .or. i(p - 2, q - 1, r) .ne. (7.5 + x) * p * q * r
++	  l = l .or. j(p, q + 3, r + 6) .ne. (9.5 + x) * p * q * r
++104 continue
++    do 105, p = 1, 5
++      do 105, q = 4, 6
++	l = l .or. k(p, 1, q - 3) .ne. 19 + x + p + 7 + 3 * q
++105 continue
++    call check (size (e, 1), 2, l)
++    call check (size (e, 2), 3, l)
++    call check (size (e, 3), 7, l)
++    call check (size (e), 42, l)
++    call check (size (f, 1), 2, l)
++    call check (size (f, 2), 5, l)
++    call check (size (f, 3), 7, l)
++    call check (size (f), 70, l)
++    call check (size (g, 1), 5, l)
++    call check (size (g, 2), 5, l)
++    call check (size (g), 25, l)
++    call check (size (h, 1), 5, l)
++    call check (size (h, 2), 5, l)
++    call check (size (h), 25, l)
++    call check (size (i, 1), 3, l)
++    call check (size (i, 2), 5, l)
++    call check (size (i, 3), 7, l)
++    call check (size (i), 105, l)
++    call check (size (j, 1), 4, l)
++    call check (size (j, 2), 5, l)
++    call check (size (j, 3), 7, l)
++    call check (size (j), 140, l)
++    call check (size (k, 1), 5, l)
++    call check (size (k, 2), 1, l)
++    call check (size (k, 3), 3, l)
++    call check (size (k), 15, l)
++!$omp single
++    z = omp_get_thread_num ()
++!$omp end single copyprivate (c, d, e, f, g, h, i, j, k, s, t, u, v)
++    w = ''
++    x = z
++    if (x .eq. 0) w = 'thread0thr_number_0THREAD0THR_NUMBER_0'
++    if (x .eq. 1) w = 'thread1thr_number_1THREAD1THR_NUMBER_1'
++    if (x .eq. 2) w = 'thread2thr_number_2THREAD2THR_NUMBER_2'
++    if (x .eq. 3) w = 'thread3thr_number_3THREAD3THR_NUMBER_3'
++    if (x .eq. 4) w = 'thread4thr_number_4THREAD4THR_NUMBER_4'
++    if (x .eq. 5) w = 'thread5thr_number_5THREAD5THR_NUMBER_5'
++    y = ''
++    if (x .eq. 0) y = '0'
++    if (x .eq. 1) y = '1'
++    if (x .eq. 2) y = '2'
++    if (x .eq. 3) y = '3'
++    if (x .eq. 4) y = '4'
++    if (x .eq. 5) y = '5'
++    l = l .or. w(7:7) .ne. y
++    l = l .or. w(19:19) .ne. y
++    l = l .or. w(26:26) .ne. y
++    l = l .or. w(38:38) .ne. y
++    l = l .or. c .ne. w(8:19)
++    l = l .or. d .ne. w(1:7)
++    l = l .or. s .ne. w(20:26)
++    do 113, p = 1, 2
++      do 113, q = 3, 7
++	do 113, r = 1, 7
++	  if (q .lt. 6) l = l .or. e(p, q, r) .ne. 5 * x + p + q + 2 * r
++	  l = l .or. f(p, q, r) .ne. 25 * x + p + q + 2 * r
++	  if (r .lt. 6 .and. q + r .le. 8) l = l .or. g(r, q) .ne. w(8:19)
++	  if (r .lt. 6 .and. q + r .gt. 8) l = l .or. g(r, q) .ne. w(27:38)
++	  if (r .lt. 6 .and. q + r .le. 8) l = l .or. h(r, q) .ne. w(1:7)
++	  if (r .lt. 6 .and. q + r .gt. 8) l = l .or. h(r, q) .ne. w(20:26)
++	  if (q .lt. 6) l = l .or. t(p, q, r) .ne. -10 + x + p - q + 2 * r
++	  l = l .or. u(p, q, r) .ne. 30 - x - p + q - 2 * r
++	  if (r .lt. 6 .and. q + r .le. 8) l = l .or. v(r, q) .ne. w(1:7)
++	  if (r .lt. 6 .and. q + r .gt. 8) l = l .or. v(r, q) .ne. w(20:26)
++113 continue
++    do 114, p = 3, 5
++      do 114, q = 2, 6
++	do 114, r = 1, 7
++	  l = l .or. i(p - 2, q - 1, r) .ne. (7.5 + x) * p * q * r
++	  l = l .or. j(p, q + 3, r + 6) .ne. (9.5 + x) * p * q * r
++114 continue
++    do 115, p = 1, 5
++      do 115, q = 4, 6
++	l = l .or. k(p, 1, q - 3) .ne. 19 + x + p + 7 + 3 * q
++115 continue
++    x = omp_get_thread_num ()
++    w = ''
++    if (x .eq. 0) w = 'thread0thr_number_0THREAD0THR_NUMBER_0'
++    if (x .eq. 1) w = 'thread1thr_number_1THREAD1THR_NUMBER_1'
++    if (x .eq. 2) w = 'thread2thr_number_2THREAD2THR_NUMBER_2'
++    if (x .eq. 3) w = 'thread3thr_number_3THREAD3THR_NUMBER_3'
++    if (x .eq. 4) w = 'thread4thr_number_4THREAD4THR_NUMBER_4'
++    if (x .eq. 5) w = 'thread5thr_number_5THREAD5THR_NUMBER_5'
++    c = w(8:19)
++    d = w(1:7)
++    forall (p = 1:2, q = 3:5, r = 1:7) e(p, q, r) = 5 * x + p + q + 2 * r
++    forall (p = 1:2, q = 3:7, r = 1:7) f(p, q, r) = 25 * x + p + q + 2 * r
++    forall (p = 1:5, q = 3:7, p + q .le. 8) g(p, q) = w(8:19)
++    forall (p = 1:5, q = 3:7, p + q .gt. 8) g(p, q) = w(27:38)
++    forall (p = 1:5, q = 3:7, p + q .le. 8) h(p, q) = w(1:7)
++    forall (p = 1:5, q = 3:7, p + q .gt. 8) h(p, q) = w(20:26)
++    forall (p = 3:5, q = 2:6, r = 1:7) i(p - 2, q - 1, r) = (7.5 + x) * p * q * r
++    forall (p = 3:5, q = 2:6, r = 1:7) j(p, q + 3, r + 6) = (9.5 + x) * p * q * r
++    forall (p = 1:5, q = 7:7, r = 4:6) k(p, q - 6, r - 3) = 19 + x + p + q + 3 * r
++    s = w(20:26)
++    forall (p = 1:2, q = 3:5, r = 1:7) t(p, q, r) = -10 + x + p - q + 2 * r
++    forall (p = 1:2, q = 3:7, r = 1:7) u(p, q, r) = 30 - x - p + q - 2 * r
++    forall (p = 1:5, q = 3:7, p + q .le. 8) v(p, q) = w(1:7)
++    forall (p = 1:5, q = 3:7, p + q .gt. 8) v(p, q) = w(20:26)
++!$omp barrier
++    y = ''
++    if (x .eq. 0) y = '0'
++    if (x .eq. 1) y = '1'
++    if (x .eq. 2) y = '2'
++    if (x .eq. 3) y = '3'
++    if (x .eq. 4) y = '4'
++    if (x .eq. 5) y = '5'
++    l = l .or. w(7:7) .ne. y
++    l = l .or. w(19:19) .ne. y
++    l = l .or. w(26:26) .ne. y
++    l = l .or. w(38:38) .ne. y
++    l = l .or. c .ne. w(8:19)
++    l = l .or. d .ne. w(1:7)
++    l = l .or. s .ne. w(20:26)
++    do 123, p = 1, 2
++      do 123, q = 3, 7
++	do 123, r = 1, 7
++	  if (q .lt. 6) l = l .or. e(p, q, r) .ne. 5 * x + p + q + 2 * r
++	  l = l .or. f(p, q, r) .ne. 25 * x + p + q + 2 * r
++	  if (r .lt. 6 .and. q + r .le. 8) l = l .or. g(r, q) .ne. w(8:19)
++	  if (r .lt. 6 .and. q + r .gt. 8) l = l .or. g(r, q) .ne. w(27:38)
++	  if (r .lt. 6 .and. q + r .le. 8) l = l .or. h(r, q) .ne. w(1:7)
++	  if (r .lt. 6 .and. q + r .gt. 8) l = l .or. h(r, q) .ne. w(20:26)
++	  if (q .lt. 6) l = l .or. t(p, q, r) .ne. -10 + x + p - q + 2 * r
++	  l = l .or. u(p, q, r) .ne. 30 - x - p + q - 2 * r
++	  if (r .lt. 6 .and. q + r .le. 8) l = l .or. v(r, q) .ne. w(1:7)
++	  if (r .lt. 6 .and. q + r .gt. 8) l = l .or. v(r, q) .ne. w(20:26)
++123 continue
++    do 124, p = 3, 5
++      do 124, q = 2, 6
++	do 124, r = 1, 7
++	  l = l .or. i(p - 2, q - 1, r) .ne. (7.5 + x) * p * q * r
++	  l = l .or. j(p, q + 3, r + 6) .ne. (9.5 + x) * p * q * r
++124 continue
++    do 125, p = 1, 5
++      do 125, q = 4, 6
++	l = l .or. k(p, 1, q - 3) .ne. 19 + x + p + 7 + 3 * q
++125 continue
++!$omp end parallel
++    if (l) call abort
++  end subroutine foo
++
++  subroutine test
++    character (len = 12) :: c
++    character (len = 7) :: d
++    integer, dimension (2, 3:5, 7) :: e
++    integer, dimension (2, 3:7, 7) :: f
++    character (len = 12), dimension (5, 3:7) :: g
++    character (len = 7), dimension (5, 3:7) :: h
++    real, dimension (3:5, 2:6, 1:7) :: i
++    double precision, dimension (3:6, 2:6, 1:7) :: j
++    integer, dimension (1:5, 7:7, 4:6) :: k
++    integer :: p, q, r
++    call foo (c, d, e, f, g, h, i, j, k, 7)
++  end subroutine test
++end
+Index: libgomp/testsuite/libgomp.c/pr43893.c
+===================================================================
+--- libgomp/testsuite/libgomp.c/pr43893.c	(.../tags/gcc_4_5_0_release)	(wersja 0)
++++ libgomp/testsuite/libgomp.c/pr43893.c	(.../branches/gcc-4_5-branch)	(wersja 159429)
+@@ -0,0 +1,61 @@
++/* PR c/43893 */
++/* { dg-do run } */
++
++extern void abort (void);
++
++int
++main ()
++{
++  int c;
++  unsigned int i;
++  int j;
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (i = 0; i < 1; i++)
++    c++;
++  if (c != 1)
++    abort ();
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (i = 0; i <= 0; i++)
++    c++;
++  if (c != 1)
++    abort ();
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (j = - __INT_MAX__ - 1; j < - __INT_MAX__; j++)
++    c++;
++  if (c != 1)
++    abort ();
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (j = - __INT_MAX__ - 1; j <= - __INT_MAX__ - 1; j++)
++    c++;
++  if (c != 1)
++    abort ();
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (i = 2U * __INT_MAX__ + 1; i > 2U * __INT_MAX__; i--)
++    c++;
++  if (c != 1)
++    abort ();
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (i = 2U * __INT_MAX__ + 1; i >= 2U * __INT_MAX__ + 1; i--)
++    c++;
++  if (c != 1)
++    abort ();
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (j = __INT_MAX__; j > __INT_MAX__ - 1; j--)
++    c++;
++  if (c != 1)
++    abort ();
++  c = 0;
++#pragma omp parallel for reduction(+:c)
++  for (j = __INT_MAX__; j >= __INT_MAX__; j--)
++    c++;
++  if (c != 1)
++    abort ();
++  return 0;
++}
+Index: libgomp/config/linux/proc.c
+===================================================================
+--- libgomp/config/linux/proc.c	(.../tags/gcc_4_5_0_release)	(wersja 159429)
++++ libgomp/config/linux/proc.c	(.../branches/gcc-4_5-branch)	(wersja 159429)
+@@ -1,4 +1,5 @@
+-/* Copyright (C) 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
++/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010
++   Free Software Foundation, Inc.
+    Contributed by Jakub Jelinek <jakub at redhat.com>.
+ 
+    This file is part of the GNU OpenMP Library (libgomp).
+@@ -104,26 +105,13 @@
+     }
+   else
+     {
+-      size_t idx;
+-      static int affinity_cpus;
+-
+       /* We can't use pthread_getaffinity_np in this case
+ 	 (we have changed it ourselves, it binds to just one CPU).
+ 	 Count instead the number of different CPUs we are
+-	 using.  */
+-      CPU_ZERO (&cpuset);
+-      if (affinity_cpus == 0)
+-	{
+-	  int cpus = 0;
+-	  for (idx = 0; idx < gomp_cpu_affinity_len; idx++)
+-	    if (! CPU_ISSET (gomp_cpu_affinity[idx], &cpuset))
+-	      {
+-		cpus++;
+-		CPU_SET (gomp_cpu_affinity[idx], &cpuset);
+-	      }
+-	  affinity_cpus = cpus;
<<Diff was trimmed, longer than 597 lines>>

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/gcc/gcc-branch.diff?r1=1.27&r2=1.28&f=u



More information about the pld-cvs-commit mailing list