diff options
author | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-06-26 18:39:06 +0000 |
---|---|---|
committer | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-06-26 18:39:06 +0000 |
commit | 21543d4cd558cada630271a0cf3075ad7ce94cbf (patch) | |
tree | 08bdb3f3e0a9d0f71e72bb56d9ddb7b916e7dfeb /libgomp | |
parent | ed0bc1ffb674fe93d0df68654b5bb76869f0bc8c (diff) | |
download | gcc-21543d4cd558cada630271a0cf3075ad7ce94cbf.tar.gz |
2013-06-26 Basile Starynkevitch <basile@starynkevitch.net>
{{merged with trunk [4.9] svn rev. 196654-200426}}
MELT branch merged with trunk rev. 200426 using svnmerge.py
[gcc/]
2013-06-26 Basile Starynkevitch <basile@starynkevitch.net>
{{merge with trunk [4.9] svn rev. 196654-200426}}
* melt-runtime.c (melt_val2passflag): TODO_ggc_collect &
TODO_do_not_ggc_collect are conditionalized.
* melt/generated/warmelt-first+03.cc: Manually remove calls to
MELT_TRACE_EXIT_LOCATION macro.
* melt/generated/warmelt-base+03.cc: Ditto.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@200430 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgomp')
-rw-r--r-- | libgomp/ChangeLog | 48 | ||||
-rw-r--r-- | libgomp/config/posix/ptrlock.h | 5 | ||||
-rw-r--r-- | libgomp/configure.tgt | 5 | ||||
-rw-r--r-- | libgomp/libgomp.texi | 58 | ||||
-rw-r--r-- | libgomp/omp_lib.f90.in | 64 | ||||
-rw-r--r-- | libgomp/testsuite/lib/libgomp.exp | 21 | ||||
-rw-r--r-- | libgomp/testsuite/libgomp.c++/c++.exp | 3 | ||||
-rw-r--r-- | libgomp/testsuite/libgomp.c++/loop-13.C | 3 | ||||
-rw-r--r-- | libgomp/testsuite/libgomp.c++/loop-14.C | 3 | ||||
-rw-r--r-- | libgomp/testsuite/libgomp.c++/loop-15.C | 3 | ||||
-rw-r--r-- | libgomp/testsuite/libgomp.c/c.exp | 1 | ||||
-rw-r--r-- | libgomp/testsuite/libgomp.c/icv-2.c | 2 | ||||
-rw-r--r-- | libgomp/testsuite/libgomp.c/lock-3.c | 2 | ||||
-rw-r--r-- | libgomp/testsuite/libgomp.c/loop-13.c | 253 | ||||
-rw-r--r-- | libgomp/testsuite/libgomp.c/loop-14.c | 253 | ||||
-rw-r--r-- | libgomp/testsuite/libgomp.c/loop-15.c | 253 | ||||
-rw-r--r-- | libgomp/testsuite/libgomp.c/pr48591.c | 2 | ||||
-rw-r--r-- | libgomp/testsuite/libgomp.fortran/fortran.exp | 2 | ||||
-rw-r--r-- | libgomp/testsuite/libgomp.graphite/graphite.exp | 1 |
19 files changed, 904 insertions, 78 deletions
diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog index b0dc764c9c1..9a575739e7c 100644 --- a/libgomp/ChangeLog +++ b/libgomp/ChangeLog @@ -1,3 +1,51 @@ +2013-06-20 Iain Sandoe <iain@codesourcery.com> + Cesar Philippidis <cesar@codesourcery.com> + + * testsuite/lib/libgomp.exp: Reorder lib loads into dependency order. + Do not load_gcc_lib gcc-dg.exp and add a comment as to why. + * testsuite/libgomp.c/c.exp: load_gcc_lib gcc-dg.exp. + * testsuite/libgomp.fortran/fortran.exp: Likewise. + * testsuite/libgomp.graphite/graphite.exp: Likewise. + * testsuite/libgomp.c++/c++.exp: load_gcc_lib gcc-dg.exp. + Use dg-runtest rather than gfortran-dg-runtest. + +2013-06-10 Thomas Schwinge <thomas@codesourcery.com> + + * testsuite/libgomp.c/icv-2.c: Extend current handling of + Linux-based x86 systems to cover all GNU systems. + * testsuite/libgomp.c/lock-3.c: Likewise. + * testsuite/libgomp.c/pr48591.c: Likewise. + +2013-06-06 Thomas Schwinge <thomas@codesourcery.com> + + * configure.tgt (XCFLAGS): Add -ftls-model=initial-exec for + GNU/Hurd, as done for Linux-based systems. + + * config/posix/ptrlock.h: Fix comment. + +2013-05-27 Tobias Burnus <burnus@net-b.de> + + PR fortran/57423 + * libgomp.texi (omp_set_dynamic, omp_set_nested, omp_set_nested, + omp_set_num_threads, omp_init_lock, omp_set_lock, omp_test_lock, + omp_unset_lock, omp_destroy_lock, omp_init_nest_lock, + omp_set_nest_lock, omp_test_nest_lock, omp_unset_nest_lock, + omp_destroy_nest_lock): Correct arguments to match the one in + the OpenMP spec. + * omp_lib.f90.in (omp_init_lock, omp_init_nest_lock, omp_destroy_lock + omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock, omp_unset_lock, + omp_unset_nest_lock, omp_set_dynamic, omp_set_nested, + omp_set_num_threads, omp_test_lock, omp_test_nest_lock): Ditto. + +2013-05-16 Jakub Jelinek <jakub@redhat.com> + + * testsuite/libgomp.c/loop-13.c: New test. + * testsuite/libgomp.c/loop-14.c: New test. + * testsuite/libgomp.c/loop-15.c: New test. + * testsuite/libgomp.c++/loop-13.C: New test. + * testsuite/libgomp.c++/loop-14.C: New test. + * testsuite/libgomp.c++/loop-15.C: New test. + 2013-02-06 Jakub Jelinek <jakub@redhat.com> PR middle-end/56217 diff --git a/libgomp/config/posix/ptrlock.h b/libgomp/config/posix/ptrlock.h index eec4e19df7c..76c2deb173d 100644 --- a/libgomp/config/posix/ptrlock.h +++ b/libgomp/config/posix/ptrlock.h @@ -22,9 +22,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see <http://www.gnu.org/licenses/>. */ -/* This is a Linux specific implementation of a mutex synchronization - mechanism for libgomp. This type is private to the library. This - implementation uses atomic instructions and the futex syscall. */ +/* This is a generic POSIX implementation of a mutex synchronization + mechanism for libgomp. This type is private to the library. */ #ifndef GOMP_PTRLOCK_H #define GOMP_PTRLOCK_H 1 diff --git a/libgomp/configure.tgt b/libgomp/configure.tgt index 2eecc93a349..8b1841792d4 100644 --- a/libgomp/configure.tgt +++ b/libgomp/configure.tgt @@ -14,7 +14,10 @@ if test $gcc_cv_have_tls = yes ; then case "${target}" in - *-*-linux*) + *-*-k*bsd*-gnu*) + ;; + + *-*-linux* | *-*-gnu*) XCFLAGS="${XCFLAGS} -ftls-model=initial-exec" ;; esac diff --git a/libgomp/libgomp.texi b/libgomp/libgomp.texi index 40c3830e599..2985128f8ac 100644 --- a/libgomp/libgomp.texi +++ b/libgomp/libgomp.texi @@ -601,13 +601,13 @@ adjustment of team sizes and @code{false} disables it. @item @emph{C/C++}: @multitable @columnfractions .20 .80 -@item @emph{Prototype}: @tab @code{void omp_set_dynamic(int set);} +@item @emph{Prototype}: @tab @code{void omp_set_dynamic(int dynamic_threads);} @end multitable @item @emph{Fortran}: @multitable @columnfractions .20 .80 -@item @emph{Interface}: @tab @code{subroutine omp_set_dynamic(set)} -@item @tab @code{logical, intent(in) :: set} +@item @emph{Interface}: @tab @code{subroutine omp_set_dynamic(dynamic_threads)} +@item @tab @code{logical, intent(in) :: dynamic_threads} @end multitable @item @emph{See also}: @@ -657,13 +657,13 @@ dynamic adjustment of team sizes and @code{false} disables it. @item @emph{C/C++}: @multitable @columnfractions .20 .80 -@item @emph{Prototype}: @tab @code{void omp_set_nested(int set);} +@item @emph{Prototype}: @tab @code{void omp_set_nested(int nested);} @end multitable @item @emph{Fortran}: @multitable @columnfractions .20 .80 -@item @emph{Interface}: @tab @code{subroutine omp_set_nested(set)} -@item @tab @code{logical, intent(in) :: set} +@item @emph{Interface}: @tab @code{subroutine omp_set_nested(nested)} +@item @tab @code{logical, intent(in) :: nested} @end multitable @item @emph{See also}: @@ -685,13 +685,13 @@ argument of @code{omp_set_num_threads} shall be a positive integer. @item @emph{C/C++}: @multitable @columnfractions .20 .80 -@item @emph{Prototype}: @tab @code{void omp_set_num_threads(int n);} +@item @emph{Prototype}: @tab @code{void omp_set_num_threads(int num_threads);} @end multitable @item @emph{Fortran}: @multitable @columnfractions .20 .80 -@item @emph{Interface}: @tab @code{subroutine omp_set_num_threads(n)} -@item @tab @code{integer, intent(in) :: n} +@item @emph{Interface}: @tab @code{subroutine omp_set_num_threads(num_threads)} +@item @tab @code{integer, intent(in) :: num_threads} @end multitable @item @emph{See also}: @@ -750,8 +750,8 @@ an unlocked state. @item @emph{Fortran}: @multitable @columnfractions .20 .80 -@item @emph{Interface}: @tab @code{subroutine omp_init_lock(lock)} -@item @tab @code{integer(omp_lock_kind), intent(out) :: lock} +@item @emph{Interface}: @tab @code{subroutine omp_init_lock(svar)} +@item @tab @code{integer(omp_lock_kind), intent(out) :: svar} @end multitable @item @emph{See also}: @@ -779,8 +779,8 @@ a deadlock occurs. @item @emph{Fortran}: @multitable @columnfractions .20 .80 -@item @emph{Interface}: @tab @code{subroutine omp_set_lock(lock)} -@item @tab @code{integer(omp_lock_kind), intent(inout) :: lock} +@item @emph{Interface}: @tab @code{subroutine omp_set_lock(svar)} +@item @tab @code{integer(omp_lock_kind), intent(inout) :: svar} @end multitable @item @emph{See also}: @@ -809,8 +809,8 @@ does not block if the lock is not available. This function returns @item @emph{Fortran}: @multitable @columnfractions .20 .80 -@item @emph{Interface}: @tab @code{logical function omp_test_lock(lock)} -@item @tab @code{integer(omp_lock_kind), intent(inout) :: lock} +@item @emph{Interface}: @tab @code{logical function omp_test_lock(svar)} +@item @tab @code{integer(omp_lock_kind), intent(inout) :: svar} @end multitable @item @emph{See also}: @@ -839,8 +839,8 @@ again, set the lock to itself. @item @emph{Fortran}: @multitable @columnfractions .20 .80 -@item @emph{Interface}: @tab @code{subroutine omp_unset_lock(lock)} -@item @tab @code{integer(omp_lock_kind), intent(inout) :: lock} +@item @emph{Interface}: @tab @code{subroutine omp_unset_lock(svar)} +@item @tab @code{integer(omp_lock_kind), intent(inout) :: svar} @end multitable @item @emph{See also}: @@ -866,8 +866,8 @@ in the unlocked state. @item @emph{Fortran}: @multitable @columnfractions .20 .80 -@item @emph{Interface}: @tab @code{subroutine omp_destroy_lock(lock)} -@item @tab @code{integer(omp_lock_kind), intent(inout) :: lock} +@item @emph{Interface}: @tab @code{subroutine omp_destroy_lock(svar)} +@item @tab @code{integer(omp_lock_kind), intent(inout) :: svar} @end multitable @item @emph{See also}: @@ -893,8 +893,8 @@ an unlocked state and the nesting count is set to zero. @item @emph{Fortran}: @multitable @columnfractions .20 .80 -@item @emph{Interface}: @tab @code{subroutine omp_init_nest_lock(lock)} -@item @tab @code{integer(omp_nest_lock_kind), intent(out) :: lock} +@item @emph{Interface}: @tab @code{subroutine omp_init_nest_lock(nvar)} +@item @tab @code{integer(omp_nest_lock_kind), intent(out) :: nvar} @end multitable @item @emph{See also}: @@ -921,8 +921,8 @@ nesting count for the lock is incremented. @item @emph{Fortran}: @multitable @columnfractions .20 .80 -@item @emph{Interface}: @tab @code{subroutine omp_set_nest_lock(lock)} -@item @tab @code{integer(omp_nest_lock_kind), intent(inout) :: lock} +@item @emph{Interface}: @tab @code{subroutine omp_set_nest_lock(nvar)} +@item @tab @code{integer(omp_nest_lock_kind), intent(inout) :: nvar} @end multitable @item @emph{See also}: @@ -951,8 +951,8 @@ is returned. Otherwise, the return value equals zero. @item @emph{Fortran}: @multitable @columnfractions .20 .80 -@item @emph{Interface}: @tab @code{logical function omp_test_nest_lock(lock)} -@item @tab @code{integer(omp_nest_lock_kind), intent(inout) :: lock} +@item @emph{Interface}: @tab @code{logical function omp_test_nest_lock(nvar)} +@item @tab @code{integer(omp_nest_lock_kind), intent(inout) :: nvar} @end multitable @@ -982,8 +982,8 @@ one of them is chosen to, again, set the lock to itself. @item @emph{Fortran}: @multitable @columnfractions .20 .80 -@item @emph{Interface}: @tab @code{subroutine omp_unset_nest_lock(lock)} -@item @tab @code{integer(omp_nest_lock_kind), intent(inout) :: lock} +@item @emph{Interface}: @tab @code{subroutine omp_unset_nest_lock(nvar)} +@item @tab @code{integer(omp_nest_lock_kind), intent(inout) :: nvar} @end multitable @item @emph{See also}: @@ -1009,8 +1009,8 @@ in the unlocked state and its nesting count must equal zero. @item @emph{Fortran}: @multitable @columnfractions .20 .80 -@item @emph{Interface}: @tab @code{subroutine omp_destroy_nest_lock(lock)} -@item @tab @code{integer(omp_nest_lock_kind), intent(inout) :: lock} +@item @emph{Interface}: @tab @code{subroutine omp_destroy_nest_lock(nvar)} +@item @tab @code{integer(omp_nest_lock_kind), intent(inout) :: nvar} @end multitable @item @emph{See also}: diff --git a/libgomp/omp_lib.f90.in b/libgomp/omp_lib.f90.in index c6108e1c384..c9bc5fd003a 100644 --- a/libgomp/omp_lib.f90.in +++ b/libgomp/omp_lib.f90.in @@ -39,85 +39,85 @@ integer (omp_sched_kind), parameter :: omp_sched_auto = 4 interface - subroutine omp_init_lock (lock) + subroutine omp_init_lock (svar) use omp_lib_kinds - integer (omp_lock_kind), intent (out) :: lock + integer (omp_lock_kind), intent (out) :: svar end subroutine omp_init_lock end interface interface - subroutine omp_init_nest_lock (lock) + subroutine omp_init_nest_lock (nvar) use omp_lib_kinds - integer (omp_nest_lock_kind), intent (out) :: lock + integer (omp_nest_lock_kind), intent (out) :: nvar end subroutine omp_init_nest_lock end interface interface - subroutine omp_destroy_lock (lock) + subroutine omp_destroy_lock (svar) use omp_lib_kinds - integer (omp_lock_kind), intent (inout) :: lock + integer (omp_lock_kind), intent (inout) :: svar end subroutine omp_destroy_lock end interface interface - subroutine omp_destroy_nest_lock (lock) + subroutine omp_destroy_nest_lock (nvar) use omp_lib_kinds - integer (omp_nest_lock_kind), intent (inout) :: lock + integer (omp_nest_lock_kind), intent (inout) :: nvar end subroutine omp_destroy_nest_lock end interface interface - subroutine omp_set_lock (lock) + subroutine omp_set_lock (svar) use omp_lib_kinds - integer (omp_lock_kind), intent (inout) :: lock + integer (omp_lock_kind), intent (inout) :: svar end subroutine omp_set_lock end interface interface - subroutine omp_set_nest_lock (lock) + subroutine omp_set_nest_lock (nvar) use omp_lib_kinds - integer (omp_nest_lock_kind), intent (inout) :: lock + integer (omp_nest_lock_kind), intent (inout) :: nvar end subroutine omp_set_nest_lock end interface interface - subroutine omp_unset_lock (lock) + subroutine omp_unset_lock (svar) use omp_lib_kinds - integer (omp_lock_kind), intent (inout) :: lock + integer (omp_lock_kind), intent (inout) :: svar end subroutine omp_unset_lock end interface interface - subroutine omp_unset_nest_lock (lock) + subroutine omp_unset_nest_lock (nvar) use omp_lib_kinds - integer (omp_nest_lock_kind), intent (inout) :: lock + integer (omp_nest_lock_kind), intent (inout) :: nvar end subroutine omp_unset_nest_lock end interface interface omp_set_dynamic - subroutine omp_set_dynamic (set) - logical (4), intent (in) :: set + subroutine omp_set_dynamic (dynamic_threads) + logical (4), intent (in) :: dynamic_threads end subroutine omp_set_dynamic - subroutine omp_set_dynamic_8 (set) - logical (8), intent (in) :: set + subroutine omp_set_dynamic_8 (dynamic_threads) + logical (8), intent (in) :: dynamic_threads end subroutine omp_set_dynamic_8 end interface interface omp_set_nested - subroutine omp_set_nested (set) - logical (4), intent (in) :: set + subroutine omp_set_nested (nested) + logical (4), intent (in) :: nested end subroutine omp_set_nested - subroutine omp_set_nested_8 (set) - logical (8), intent (in) :: set + subroutine omp_set_nested_8 (nested) + logical (8), intent (in) :: nested end subroutine omp_set_nested_8 end interface interface omp_set_num_threads - subroutine omp_set_num_threads (set) - integer (4), intent (in) :: set + subroutine omp_set_num_threads (num_threads) + integer (4), intent (in) :: num_threads end subroutine omp_set_num_threads - subroutine omp_set_num_threads_8 (set) - integer (8), intent (in) :: set + subroutine omp_set_num_threads_8 (num_threads) + integer (8), intent (in) :: num_threads end subroutine omp_set_num_threads_8 end interface @@ -143,10 +143,10 @@ end interface interface - function omp_test_lock (lock) + function omp_test_lock (svar) use omp_lib_kinds logical (4) :: omp_test_lock - integer (omp_lock_kind), intent (inout) :: lock + integer (omp_lock_kind), intent (inout) :: svar end function omp_test_lock end interface @@ -179,10 +179,10 @@ end interface interface - function omp_test_nest_lock (lock) + function omp_test_nest_lock (nvar) use omp_lib_kinds integer (4) :: omp_test_nest_lock - integer (omp_nest_lock_kind), intent (inout) :: lock + integer (omp_nest_lock_kind), intent (inout) :: nvar end function omp_test_nest_lock end interface diff --git a/libgomp/testsuite/lib/libgomp.exp b/libgomp/testsuite/lib/libgomp.exp index cd561bf1576..72daa7e3a3e 100644 --- a/libgomp/testsuite/lib/libgomp.exp +++ b/libgomp/testsuite/lib/libgomp.exp @@ -9,24 +9,27 @@ proc load_gcc_lib { filename } { } load_lib dg.exp -load_gcc_lib file-format.exp + +# Required to use gcc-dg.exp - however, the latter should NOT be +# loaded until ${tool}_target_compile is defined since it uses that +# to determine default LTO options. + +load_gcc_lib prune.exp +load_gcc_lib target-libpath.exp +load_gcc_lib wrapper.exp +load_gcc_lib gcc-defs.exp +load_gcc_lib timeout.exp load_gcc_lib target-supports.exp +load_gcc_lib file-format.exp load_gcc_lib target-supports-dg.exp load_gcc_lib scanasm.exp load_gcc_lib scandump.exp load_gcc_lib scanrtl.exp load_gcc_lib scantree.exp load_gcc_lib scanipa.exp -load_gcc_lib prune.exp -load_gcc_lib target-libpath.exp -load_gcc_lib wrapper.exp -load_gcc_lib gcc-defs.exp -load_gcc_lib torture-options.exp -load_gcc_lib timeout.exp load_gcc_lib timeout-dg.exp +load_gcc_lib torture-options.exp load_gcc_lib fortran-modules.exp -load_gcc_lib gcc-dg.exp -load_gcc_lib gfortran-dg.exp set dg-do-what-default run diff --git a/libgomp/testsuite/libgomp.c++/c++.exp b/libgomp/testsuite/libgomp.c++/c++.exp index decda3d1a12..b3363062ae8 100644 --- a/libgomp/testsuite/libgomp.c++/c++.exp +++ b/libgomp/testsuite/libgomp.c++/c++.exp @@ -1,4 +1,5 @@ load_lib libgomp-dg.exp +load_gcc_lib gcc-dg.exp global shlib_ext @@ -53,7 +54,7 @@ if { $lang_test_file_found } { } # Main loop. - gfortran-dg-runtest $tests $libstdcxx_includes + dg-runtest $tests "" $libstdcxx_includes } # All done. diff --git a/libgomp/testsuite/libgomp.c++/loop-13.C b/libgomp/testsuite/libgomp.c++/loop-13.C new file mode 100644 index 00000000000..31572be0f26 --- /dev/null +++ b/libgomp/testsuite/libgomp.c++/loop-13.C @@ -0,0 +1,3 @@ +/* { dg-do run } */ + +#include "../libgomp.c/loop-13.c" diff --git a/libgomp/testsuite/libgomp.c++/loop-14.C b/libgomp/testsuite/libgomp.c++/loop-14.C new file mode 100644 index 00000000000..ba2856ac105 --- /dev/null +++ b/libgomp/testsuite/libgomp.c++/loop-14.C @@ -0,0 +1,3 @@ +/* { dg-do run } */ + +#include "../libgomp.c/loop-14.c" diff --git a/libgomp/testsuite/libgomp.c++/loop-15.C b/libgomp/testsuite/libgomp.c++/loop-15.C new file mode 100644 index 00000000000..9bde48e3ac8 --- /dev/null +++ b/libgomp/testsuite/libgomp.c++/loop-15.C @@ -0,0 +1,3 @@ +/* { dg-do run } */ + +#include "../libgomp.c/loop-15.c" diff --git a/libgomp/testsuite/libgomp.c/c.exp b/libgomp/testsuite/libgomp.c/c.exp index 980bb526f3f..7dfdf8bde78 100644 --- a/libgomp/testsuite/libgomp.c/c.exp +++ b/libgomp/testsuite/libgomp.c/c.exp @@ -7,6 +7,7 @@ if [info exists lang_test_file] then { } load_lib libgomp-dg.exp +load_gcc_lib gcc-dg.exp # If a testcase doesn't have special options, use these. if ![info exists DEFAULT_CFLAGS] then { diff --git a/libgomp/testsuite/libgomp.c/icv-2.c b/libgomp/testsuite/libgomp.c/icv-2.c index 326f8eb404a..3a80d6123a8 100644 --- a/libgomp/testsuite/libgomp.c/icv-2.c +++ b/libgomp/testsuite/libgomp.c/icv-2.c @@ -1,4 +1,4 @@ -/* { dg-do run { target *-*-linux* } } */ +/* { dg-do run { target *-*-linux* *-*-gnu* } } */ #ifndef _GNU_SOURCE #define _GNU_SOURCE 1 diff --git a/libgomp/testsuite/libgomp.c/lock-3.c b/libgomp/testsuite/libgomp.c/lock-3.c index 1fc83726d18..02c90b98a87 100644 --- a/libgomp/testsuite/libgomp.c/lock-3.c +++ b/libgomp/testsuite/libgomp.c/lock-3.c @@ -1,4 +1,4 @@ -/* { dg-do run { target *-*-linux* } } */ +/* { dg-do run { target *-*-linux* *-*-gnu* } } */ #ifndef _GNU_SOURCE #define _GNU_SOURCE 1 diff --git a/libgomp/testsuite/libgomp.c/loop-13.c b/libgomp/testsuite/libgomp.c/loop-13.c new file mode 100644 index 00000000000..997c628fae6 --- /dev/null +++ b/libgomp/testsuite/libgomp.c/loop-13.c @@ -0,0 +1,253 @@ +/* { dg-do run } */ + +volatile int ji = 100, ki = 2; +volatile unsigned int ju = 100, ku = 2; +volatile long long int jll = 100, kll = 2; +volatile unsigned long long int jull = 100, kull = 2; +unsigned long long l; + +void +f0 (void) +{ + int i, j, k; + unsigned int j2, k2; + #pragma omp for reduction(+: l) + for (i = ji; i < ki; i++) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) + for (i = ji; i < ki; i++) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp for reduction(+: l) collapse(3) + for (j = 0; j < 4; j++) + for (i = ji; i < ki; i++) + for (k = 0; k < 5; k += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) + for (j = 0; j < 4; j++) + for (i = ji; i < ki; i++) + for (k = 0; k < 5; k += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp for reduction(+: l) collapse(3) + for (j2 = 0; j2 < 4; j2++) + for (i = ji; i < ki; i++) + for (k2 = 0; k2 < 5; k2 += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) + for (j2 = 0; j2 < 4; j2++) + for (i = ji; i < ki; i++) + for (k2 = 0; k2 < 5; k2 += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) + for (j = 0; j < 4; j++) + for (i = ji; i < ki; i++) + for (k = ki + 10; k < ji - 10; k += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) + for (j = ki + 10; j < ji - 10; j++) + for (i = ji; i < ki; i++) + for (k = 0; k < 5; k += 2) + l++; + if (l != 0) + __builtin_abort (); +} + +void +f1 (void) +{ + unsigned int i, j, k; + int j2, k2; + #pragma omp for reduction(+: l) + for (i = ju; i < ku; i++) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) + for (i = ju; i < ku; i++) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp for reduction(+: l) collapse(3) + for (j = 0; j < 4; j++) + for (i = ju; i < ku; i++) + for (k = 0; k < 5; k += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) + for (j = 0; j < 4; j++) + for (i = ju; i < ku; i++) + for (k = 0; k < 5; k += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp for reduction(+: l) collapse(3) + for (j2 = 0; j2 < 4; j2++) + for (i = ju; i < ku; i++) + for (k2 = 0; k2 < 5; k2 += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) + for (j2 = 0; j2 < 4; j2++) + for (i = ju; i < ku; i++) + for (k2 = 0; k2 < 5; k2 += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) + for (j = 0; j < 4; j++) + for (i = ju; i < ku; i++) + for (k = ku; k < ju; k += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) + for (j = ku; j < ju; j++) + for (i = ju; i < ku; i++) + for (k = 0; k < 5; k += 2) + l++; + if (l != 0) + __builtin_abort (); +} + +void +f2 (void) +{ + long long int i, j, k; + unsigned long long int j2, k2; + #pragma omp for reduction(+: l) + for (i = jll; i < kll; i++) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) + for (i = jll; i < kll; i++) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp for reduction(+: l) collapse(3) + for (j = 0; j < 4; j++) + for (i = jll; i < kll; i++) + for (k = 0; k < 5; k += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) + for (j = 0; j < 4; j++) + for (i = jll; i < kll; i++) + for (k = 0; k < 5; k += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp for reduction(+: l) collapse(3) + for (j2 = 0; j2 < 4; j2++) + for (i = jll; i < kll; i++) + for (k2 = 0; k2 < 5; k2 += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) + for (j2 = 0; j2 < 4; j2++) + for (i = jll; i < kll; i++) + for (k2 = 0; k2 < 5; k2 += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) + for (j = 0; j < 4; j++) + for (i = jll; i < kll; i++) + for (k = kll; k < jll; k += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) + for (j = kll; j < jll; j++) + for (i = jll; i < kll; i++) + for (k = 0; k < 5; k += 2) + l++; + if (l != 0) + __builtin_abort (); +} + +void +f3 (void) +{ + unsigned long long int i, j, k; + long long int j2, k2; + #pragma omp for reduction(+: l) + for (i = jull; i < kull; i++) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) + for (i = jull; i < kull; i++) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp for reduction(+: l) collapse(3) + for (j = 0; j < 4; j++) + for (i = jull; i < kull; i++) + for (k = 0; k < 5; k += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) + for (j = 0; j < 4; j++) + for (i = jull; i < kull; i++) + for (k = 0; k < 5; k += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp for reduction(+: l) collapse(3) + for (j2 = 0; j2 < 4; j2++) + for (i = jull; i < kull; i++) + for (k2 = 0; k2 < 5; k2 += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) + for (j2 = 0; j2 < 4; j2++) + for (i = jull; i < kull; i++) + for (k2 = 0; k2 < 5; k2 += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) + for (j = 0; j < 4; j++) + for (i = jull; i < kull; i++) + for (k = kull; k < jull; k += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) + for (j = kull; j < jull; j++) + for (i = jull; i < kull; i++) + for (k = 0; k < 5; k += 2) + l++; + if (l != 0) + __builtin_abort (); +} + +int +main () +{ + f0 (); + f1 (); + f2 (); + f3 (); + return 0; +} diff --git a/libgomp/testsuite/libgomp.c/loop-14.c b/libgomp/testsuite/libgomp.c/loop-14.c new file mode 100644 index 00000000000..b8a163c3cc7 --- /dev/null +++ b/libgomp/testsuite/libgomp.c/loop-14.c @@ -0,0 +1,253 @@ +/* { dg-do run } */ + +volatile int ji = 100, ki = 2; +volatile unsigned int ju = 100, ku = 2; +volatile long long int jll = 100, kll = 2; +volatile unsigned long long int jull = 100, kull = 2; +unsigned long long l; + +void +f0 (void) +{ + int i, j, k; + unsigned int j2, k2; + #pragma omp for reduction(+: l) schedule(static, 2) + for (i = ji; i < ki; i++) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) schedule(static, 2) + for (i = ji; i < ki; i++) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp for reduction(+: l) collapse(3) schedule(static, 2) + for (j = 0; j < 4; j++) + for (i = ji; i < ki; i++) + for (k = 0; k < 5; k += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) schedule(static, 2) + for (j = 0; j < 4; j++) + for (i = ji; i < ki; i++) + for (k = 0; k < 5; k += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp for reduction(+: l) collapse(3) schedule(static, 2) + for (j2 = 0; j2 < 4; j2++) + for (i = ji; i < ki; i++) + for (k2 = 0; k2 < 5; k2 += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) schedule(static, 2) + for (j2 = 0; j2 < 4; j2++) + for (i = ji; i < ki; i++) + for (k2 = 0; k2 < 5; k2 += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) schedule(static, 2) + for (j = 0; j < 4; j++) + for (i = ji; i < ki; i++) + for (k = ki + 10; k < ji - 10; k += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) schedule(static, 2) + for (j = ki + 10; j < ji - 10; j++) + for (i = ji; i < ki; i++) + for (k = 0; k < 5; k += 2) + l++; + if (l != 0) + __builtin_abort (); +} + +void +f1 (void) +{ + unsigned int i, j, k; + int j2, k2; + #pragma omp for reduction(+: l) schedule(static, 2) + for (i = ju; i < ku; i++) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) schedule(static, 2) + for (i = ju; i < ku; i++) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp for reduction(+: l) collapse(3) schedule(static, 2) + for (j = 0; j < 4; j++) + for (i = ju; i < ku; i++) + for (k = 0; k < 5; k += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) schedule(static, 2) + for (j = 0; j < 4; j++) + for (i = ju; i < ku; i++) + for (k = 0; k < 5; k += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp for reduction(+: l) collapse(3) schedule(static, 2) + for (j2 = 0; j2 < 4; j2++) + for (i = ju; i < ku; i++) + for (k2 = 0; k2 < 5; k2 += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) schedule(static, 2) + for (j2 = 0; j2 < 4; j2++) + for (i = ju; i < ku; i++) + for (k2 = 0; k2 < 5; k2 += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) schedule(static, 2) + for (j = 0; j < 4; j++) + for (i = ju; i < ku; i++) + for (k = ku; k < ju; k += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) schedule(static, 2) + for (j = ku; j < ju; j++) + for (i = ju; i < ku; i++) + for (k = 0; k < 5; k += 2) + l++; + if (l != 0) + __builtin_abort (); +} + +void +f2 (void) +{ + long long int i, j, k; + unsigned long long int j2, k2; + #pragma omp for reduction(+: l) schedule(static, 2) + for (i = jll; i < kll; i++) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) schedule(static, 2) + for (i = jll; i < kll; i++) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp for reduction(+: l) collapse(3) schedule(static, 2) + for (j = 0; j < 4; j++) + for (i = jll; i < kll; i++) + for (k = 0; k < 5; k += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) schedule(static, 2) + for (j = 0; j < 4; j++) + for (i = jll; i < kll; i++) + for (k = 0; k < 5; k += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp for reduction(+: l) collapse(3) schedule(static, 2) + for (j2 = 0; j2 < 4; j2++) + for (i = jll; i < kll; i++) + for (k2 = 0; k2 < 5; k2 += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) schedule(static, 2) + for (j2 = 0; j2 < 4; j2++) + for (i = jll; i < kll; i++) + for (k2 = 0; k2 < 5; k2 += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) schedule(static, 2) + for (j = 0; j < 4; j++) + for (i = jll; i < kll; i++) + for (k = kll; k < jll; k += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) schedule(static, 2) + for (j = kll; j < jll; j++) + for (i = jll; i < kll; i++) + for (k = 0; k < 5; k += 2) + l++; + if (l != 0) + __builtin_abort (); +} + +void +f3 (void) +{ + unsigned long long int i, j, k; + long long int j2, k2; + #pragma omp for reduction(+: l) schedule(static, 2) + for (i = jull; i < kull; i++) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) schedule(static, 2) + for (i = jull; i < kull; i++) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp for reduction(+: l) collapse(3) schedule(static, 2) + for (j = 0; j < 4; j++) + for (i = jull; i < kull; i++) + for (k = 0; k < 5; k += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) schedule(static, 2) + for (j = 0; j < 4; j++) + for (i = jull; i < kull; i++) + for (k = 0; k < 5; k += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp for reduction(+: l) collapse(3) schedule(static, 2) + for (j2 = 0; j2 < 4; j2++) + for (i = jull; i < kull; i++) + for (k2 = 0; k2 < 5; k2 += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) schedule(static, 2) + for (j2 = 0; j2 < 4; j2++) + for (i = jull; i < kull; i++) + for (k2 = 0; k2 < 5; k2 += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) schedule(static, 2) + for (j = 0; j < 4; j++) + for (i = jull; i < kull; i++) + for (k = kull; k < jull; k += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) schedule(static, 2) + for (j = kull; j < jull; j++) + for (i = jull; i < kull; i++) + for (k = 0; k < 5; k += 2) + l++; + if (l != 0) + __builtin_abort (); +} + +int +main () +{ + f0 (); + f1 (); + f2 (); + f3 (); + return 0; +} diff --git a/libgomp/testsuite/libgomp.c/loop-15.c b/libgomp/testsuite/libgomp.c/loop-15.c new file mode 100644 index 00000000000..e7cf3fc4699 --- /dev/null +++ b/libgomp/testsuite/libgomp.c/loop-15.c @@ -0,0 +1,253 @@ +/* { dg-do run } */ + +volatile int ji = 100, ki = 2; +volatile unsigned int ju = 100, ku = 2; +volatile long long int jll = 100, kll = 2; +volatile unsigned long long int jull = 100, kull = 2; +unsigned long long l; + +void +f0 (void) +{ + int i, j, k; + unsigned int j2, k2; + #pragma omp for reduction(+: l) schedule(runtime) + for (i = ji; i < ki; i++) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) schedule(runtime) + for (i = ji; i < ki; i++) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp for reduction(+: l) collapse(3) schedule(runtime) + for (j = 0; j < 4; j++) + for (i = ji; i < ki; i++) + for (k = 0; k < 5; k += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) schedule(runtime) + for (j = 0; j < 4; j++) + for (i = ji; i < ki; i++) + for (k = 0; k < 5; k += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp for reduction(+: l) collapse(3) schedule(runtime) + for (j2 = 0; j2 < 4; j2++) + for (i = ji; i < ki; i++) + for (k2 = 0; k2 < 5; k2 += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) schedule(runtime) + for (j2 = 0; j2 < 4; j2++) + for (i = ji; i < ki; i++) + for (k2 = 0; k2 < 5; k2 += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) schedule(runtime) + for (j = 0; j < 4; j++) + for (i = ji; i < ki; i++) + for (k = ki + 10; k < ji - 10; k += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) schedule(runtime) + for (j = ki + 10; j < ji - 10; j++) + for (i = ji; i < ki; i++) + for (k = 0; k < 5; k += 2) + l++; + if (l != 0) + __builtin_abort (); +} + +void +f1 (void) +{ + unsigned int i, j, k; + int j2, k2; + #pragma omp for reduction(+: l) schedule(runtime) + for (i = ju; i < ku; i++) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) schedule(runtime) + for (i = ju; i < ku; i++) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp for reduction(+: l) collapse(3) schedule(runtime) + for (j = 0; j < 4; j++) + for (i = ju; i < ku; i++) + for (k = 0; k < 5; k += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) schedule(runtime) + for (j = 0; j < 4; j++) + for (i = ju; i < ku; i++) + for (k = 0; k < 5; k += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp for reduction(+: l) collapse(3) schedule(runtime) + for (j2 = 0; j2 < 4; j2++) + for (i = ju; i < ku; i++) + for (k2 = 0; k2 < 5; k2 += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) schedule(runtime) + for (j2 = 0; j2 < 4; j2++) + for (i = ju; i < ku; i++) + for (k2 = 0; k2 < 5; k2 += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) schedule(runtime) + for (j = 0; j < 4; j++) + for (i = ju; i < ku; i++) + for (k = ku; k < ju; k += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) schedule(runtime) + for (j = ku; j < ju; j++) + for (i = ju; i < ku; i++) + for (k = 0; k < 5; k += 2) + l++; + if (l != 0) + __builtin_abort (); +} + +void +f2 (void) +{ + long long int i, j, k; + unsigned long long int j2, k2; + #pragma omp for reduction(+: l) schedule(runtime) + for (i = jll; i < kll; i++) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) schedule(runtime) + for (i = jll; i < kll; i++) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp for reduction(+: l) collapse(3) schedule(runtime) + for (j = 0; j < 4; j++) + for (i = jll; i < kll; i++) + for (k = 0; k < 5; k += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) schedule(runtime) + for (j = 0; j < 4; j++) + for (i = jll; i < kll; i++) + for (k = 0; k < 5; k += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp for reduction(+: l) collapse(3) schedule(runtime) + for (j2 = 0; j2 < 4; j2++) + for (i = jll; i < kll; i++) + for (k2 = 0; k2 < 5; k2 += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) schedule(runtime) + for (j2 = 0; j2 < 4; j2++) + for (i = jll; i < kll; i++) + for (k2 = 0; k2 < 5; k2 += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) schedule(runtime) + for (j = 0; j < 4; j++) + for (i = jll; i < kll; i++) + for (k = kll; k < jll; k += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) schedule(runtime) + for (j = kll; j < jll; j++) + for (i = jll; i < kll; i++) + for (k = 0; k < 5; k += 2) + l++; + if (l != 0) + __builtin_abort (); +} + +void +f3 (void) +{ + unsigned long long int i, j, k; + long long int j2, k2; + #pragma omp for reduction(+: l) schedule(runtime) + for (i = jull; i < kull; i++) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) schedule(runtime) + for (i = jull; i < kull; i++) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp for reduction(+: l) collapse(3) schedule(runtime) + for (j = 0; j < 4; j++) + for (i = jull; i < kull; i++) + for (k = 0; k < 5; k += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) schedule(runtime) + for (j = 0; j < 4; j++) + for (i = jull; i < kull; i++) + for (k = 0; k < 5; k += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp for reduction(+: l) collapse(3) schedule(runtime) + for (j2 = 0; j2 < 4; j2++) + for (i = jull; i < kull; i++) + for (k2 = 0; k2 < 5; k2 += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) schedule(runtime) + for (j2 = 0; j2 < 4; j2++) + for (i = jull; i < kull; i++) + for (k2 = 0; k2 < 5; k2 += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) schedule(runtime) + for (j = 0; j < 4; j++) + for (i = jull; i < kull; i++) + for (k = kull; k < jull; k += 2) + l++; + if (l != 0) + __builtin_abort (); + #pragma omp parallel for reduction(+: l) collapse(3) schedule(runtime) + for (j = kull; j < jull; j++) + for (i = jull; i < kull; i++) + for (k = 0; k < 5; k += 2) + l++; + if (l != 0) + __builtin_abort (); +} + +int +main () +{ + f0 (); + f1 (); + f2 (); + f3 (); + return 0; +} diff --git a/libgomp/testsuite/libgomp.c/pr48591.c b/libgomp/testsuite/libgomp.c/pr48591.c index 18dfd7f47be..230439d2f30 100644 --- a/libgomp/testsuite/libgomp.c/pr48591.c +++ b/libgomp/testsuite/libgomp.c/pr48591.c @@ -1,5 +1,5 @@ /* PR middle-end/48591 */ -/* { dg-do run { target i?86-*-linux* x86_64-*-linux* ia64-*-linux* } } */ +/* { dg-do run { target i?86-*-linux* i?86-*-gnu* x86_64-*-linux* ia64-*-linux* } } */ /* { dg-options "-fopenmp" } */ extern void abort (void); diff --git a/libgomp/testsuite/libgomp.fortran/fortran.exp b/libgomp/testsuite/libgomp.fortran/fortran.exp index 40ac8409762..b7fef293a22 100644 --- a/libgomp/testsuite/libgomp.fortran/fortran.exp +++ b/libgomp/testsuite/libgomp.fortran/fortran.exp @@ -1,4 +1,6 @@ load_lib libgomp-dg.exp +load_gcc_lib gcc-dg.exp +load_gcc_lib gfortran-dg.exp global shlib_ext global ALWAYS_CFLAGS diff --git a/libgomp/testsuite/libgomp.graphite/graphite.exp b/libgomp/testsuite/libgomp.graphite/graphite.exp index e676ad3c75b..08aa5095cf9 100644 --- a/libgomp/testsuite/libgomp.graphite/graphite.exp +++ b/libgomp/testsuite/libgomp.graphite/graphite.exp @@ -23,6 +23,7 @@ if [info exists lang_test_file] then { } load_lib libgomp-dg.exp +load_gcc_lib gcc-dg.exp if ![check_effective_target_pthread] { return |