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:
Jakub Jelinek 2013-09-19 13:52:52 +02:00 committed by Jakub Jelinek
parent 0e1a966a86
commit 4befd127ca
4 changed files with 39 additions and 2 deletions

View File

@ -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>
* lra-constraints.c (need_for_all_save_p): Use macro

View File

@ -5869,8 +5869,7 @@ expand_omp_sections (struct omp_region *region)
{
/* If we are not inside a combined parallel+sections region,
call GOMP_sections_start. */
t = build_int_cst (unsigned_type_node,
exit_reachable ? len - 1 : len);
t = build_int_cst (unsigned_type_node, len - 1);
u = builtin_decl_explicit (BUILT_IN_GOMP_SECTIONS_START);
stmt = gimple_build_call (u, 1, t);
}

View File

@ -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>
* testsuite/libgomp.fortran/strassen.f90:

View File

@ -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;
}