omp-low.c (expand_omp_sections): Always pass len - 1 to GOMP_sections_start, even if !exit_reachable.
* omp-low.c (expand_omp_sections): Always pass len - 1 to GOMP_sections_start, even if !exit_reachable. libgomp/ * testsuite/libgomp.c/sections-2.c: New test. From-SVN: r202738
This commit is contained in:
parent
0e1a966a86
commit
4befd127ca
|
@ -1,3 +1,8 @@
|
||||||
|
2013-09-19 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
* omp-low.c (expand_omp_sections): Always pass len - 1 to
|
||||||
|
GOMP_sections_start, even if !exit_reachable.
|
||||||
|
|
||||||
2013-09-18 Vladimir Makarov <vmakarov@redhat.com>
|
2013-09-18 Vladimir Makarov <vmakarov@redhat.com>
|
||||||
|
|
||||||
* lra-constraints.c (need_for_all_save_p): Use macro
|
* lra-constraints.c (need_for_all_save_p): Use macro
|
||||||
|
|
|
@ -5869,8 +5869,7 @@ expand_omp_sections (struct omp_region *region)
|
||||||
{
|
{
|
||||||
/* If we are not inside a combined parallel+sections region,
|
/* If we are not inside a combined parallel+sections region,
|
||||||
call GOMP_sections_start. */
|
call GOMP_sections_start. */
|
||||||
t = build_int_cst (unsigned_type_node,
|
t = build_int_cst (unsigned_type_node, len - 1);
|
||||||
exit_reachable ? len - 1 : len);
|
|
||||||
u = builtin_decl_explicit (BUILT_IN_GOMP_SECTIONS_START);
|
u = builtin_decl_explicit (BUILT_IN_GOMP_SECTIONS_START);
|
||||||
stmt = gimple_build_call (u, 1, t);
|
stmt = gimple_build_call (u, 1, t);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
2013-09-19 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
* testsuite/libgomp.c/sections-2.c: New test.
|
||||||
|
|
||||||
2013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
|
2013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
|
||||||
|
|
||||||
* testsuite/libgomp.fortran/strassen.f90:
|
* testsuite/libgomp.fortran/strassen.f90:
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
/* { dg-do run } */
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
__attribute__((noinline, noclone, noreturn))
|
||||||
|
void
|
||||||
|
foo ()
|
||||||
|
{
|
||||||
|
sleep (4);
|
||||||
|
exit (0);
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
#pragma omp parallel
|
||||||
|
{
|
||||||
|
#pragma omp sections
|
||||||
|
{
|
||||||
|
foo ();
|
||||||
|
#pragma omp section
|
||||||
|
foo ();
|
||||||
|
#pragma omp section
|
||||||
|
foo ();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Reference in New Issue