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