Commit 4ce71579 by Jakub Jelinek Committed by Jakub Jelinek

re PR middle-end/78025 (ICE in simd_clone_adjust, at omp-simd-clone.c:1126)

	PR middle-end/78025
	* omp-simd-clone.c (simd_clone_adjust): Handle noreturn declare simd
	functions.

	* g++.dg/gomp/declare-simd-7.C: New test.

From-SVN: r241628
parent 015c7760
2016-10-27 Jakub Jelinek <jakub@redhat.com>
PR middle-end/78025
* omp-simd-clone.c (simd_clone_adjust): Handle noreturn declare simd
functions.
2016-10-27 Aldy Hernandez <aldyh@redhat.com> 2016-10-27 Aldy Hernandez <aldyh@redhat.com>
* builtins.c (expand_builtin_nonlocal_goto): Avoid evaluating * builtins.c (expand_builtin_nonlocal_goto): Avoid evaluating
2016-10-27 Jakub Jelinek <jakub@redhat.com>
PR middle-end/78025
* g++.dg/gomp/declare-simd-7.C: New test.
2016-10-27 Fritz Reese <fritzoreese@gmail.com> 2016-10-27 Fritz Reese <fritzoreese@gmail.com>
* gfortran.dg/dec_init_1.f90: Remove -fdump-tree-original. * gfortran.dg/dec_init_1.f90: Remove -fdump-tree-original.
......
// PR middle-end/78025
// { dg-do compile }
// { dg-additional-options "-O2" }
struct S { S (); ~S (); };
int bar1 (int, int, float &, S &, int *, int, int &, int &, int &, int &, int &);
int bar2 (int, int, float &, S &, int *, int, int &, int &, int &, int &, int &);
int bar3 (int, int, float &, S &, int *, int, int &, int &, int &, int &, int &) __attribute__((noreturn));
int bar4 (int, int, float &, S &, int *, int, int &, int &, int &, int &, int &) __attribute__((noreturn));
#pragma omp declare simd notinbranch uniform (b, c, d, e) aligned (e : 16) \
linear (f : 2) linear (ref (g) : 1) \
linear (val (h) : 1) linear (uval (i) : 1) \
linear (k : 4)
int
foo1 (int a, int b, float c, S d, int *e, int f, int &g, int &h, int &i, int j, int k)
{
return bar1 (a, b, c, d, e, f, g, h, i, j, k);
}
#pragma omp declare simd inbranch uniform (b, c, d, e) aligned (e : 16) \
linear (f : 2) linear (ref (g) : 1) \
linear (val (h) : 1) linear (uval (i) : 1) \
linear (k : 4)
int
foo2 (int a, int b, float c, S d, int *e, int f, int &g, int &h, int &i, int j, int k)
{
return bar2 (a, b, c, d, e, f, g, h, i, j, k);
}
#pragma omp declare simd notinbranch uniform (b, c, d, e) aligned (e : 16) \
linear (f : 2) linear (ref (g) : 1) \
linear (val (h) : 1) linear (uval (i) : 1) \
linear (k : 4)
int
foo3 (int a, int b, float c, S d, int *e, int f, int &g, int &h, int &i, int j, int k)
{
return bar3 (a, b, c, d, e, f, g, h, i, j, k);
}
#pragma omp declare simd inbranch uniform (b, c, d, e) aligned (e : 16) \
linear (f : 2) linear (ref (g) : 1) \
linear (val (h) : 1) linear (uval (i) : 1) \
linear (k : 4)
int
foo4 (int a, int b, float c, S d, int *e, int f, int &g, int &h, int &i, int j, int k)
{
return bar4 (a, b, c, d, e, f, g, h, i, j, k);
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment