Commit 4302dd3d by Jakub Jelinek Committed by Jakub Jelinek

gimplify.c (gimplify_scan_omp_clauses): Call sorry_at for valid but unsupported…

gimplify.c (gimplify_scan_omp_clauses): Call sorry_at for valid but unsupported lastprivate with conditional modifier.

	* gimplify.c (gimplify_scan_omp_clauses): Call sorry_at for valid
	but unsupported lastprivate with conditional modifier.

	* c-c++-common/gomp/lastprivate-conditional-1.c: New test.
	* c-c++-common/gomp/lastprivate-conditional-2.c: New test.

From-SVN: r265987
parent c4c44802
2018-11-09 Jakub Jelinek <jakub@redhat.com>
* gimplify.c (gimplify_scan_omp_clauses): Call sorry_at for valid
but unsupported lastprivate with conditional modifier.
2018-11-09 Jeff Law <law@redhat.com> 2018-11-09 Jeff Law <law@redhat.com>
* config/mips/mips.c (mips_loongson_ext2_prefetch_cookie): Handle * config/mips/mips.c (mips_loongson_ext2_prefetch_cookie): Handle
...@@ -8065,6 +8065,10 @@ gimplify_scan_omp_clauses (tree *list_p, gimple_seq *pre_p, ...@@ -8065,6 +8065,10 @@ gimplify_scan_omp_clauses (tree *list_p, gimple_seq *pre_p,
"%<lastprivate%> clause", decl); "%<lastprivate%> clause", decl);
OMP_CLAUSE_LASTPRIVATE_CONDITIONAL (c) = 0; OMP_CLAUSE_LASTPRIVATE_CONDITIONAL (c) = 0;
} }
if (OMP_CLAUSE_LASTPRIVATE_CONDITIONAL (c))
sorry_at (OMP_CLAUSE_LOCATION (c),
"%<conditional%> modifier on %<lastprivate%> clause "
"not supported yet");
if (outer_ctx if (outer_ctx
&& (outer_ctx->region_type == ORT_COMBINED_PARALLEL && (outer_ctx->region_type == ORT_COMBINED_PARALLEL
|| ((outer_ctx->region_type & ORT_COMBINED_TEAMS) || ((outer_ctx->region_type & ORT_COMBINED_TEAMS)
......
2018-11-09 Jakub Jelinek <jakub@redhat.com>
* c-c++-common/gomp/lastprivate-conditional-1.c: New test.
* c-c++-common/gomp/lastprivate-conditional-2.c: New test.
2018-11-09 Jeff Law <law@redhat.com> 2018-11-09 Jeff Law <law@redhat.com>
gcc.dg/torture/stackalign/builtin-apply-2.c: Skip on v850. gcc.dg/torture/stackalign/builtin-apply-2.c: Skip on v850.
......
void
foo (int *p)
{
int a = -1, b = -1, c = -1, d = -1, e = -1, f = -1, g = -1, h = -1;
int i;
#pragma omp teams
{
#pragma omp distribute lastprivate (conditional: a) /* { dg-error "conditional 'lastprivate' clause on 'distribute' construct" } */
for (i = 0; i < 32; i++)
if (p[i])
a = i;
#pragma omp distribute simd lastprivate (conditional: b) /* { dg-error "conditional 'lastprivate' clause on 'distribute' construct" } */
for (i = 0; i < 32; i++)
if (p[i])
b = i;
#pragma omp distribute parallel for lastprivate (conditional: c) /* { dg-error "conditional 'lastprivate' clause on 'distribute' construct" } */
for (i = 0; i < 32; i++)
if (p[i])
c = i;
#pragma omp distribute parallel for simd lastprivate (conditional: d) /* { dg-error "conditional 'lastprivate' clause on 'distribute' construct" } */
for (i = 0; i < 32; i++)
if (p[i])
d = i;
}
#pragma omp teams distribute parallel for lastprivate (conditional: e) /* { dg-error "conditional 'lastprivate' clause on 'distribute' construct" } */
for (i = 0; i < 32; i++)
if (p[i])
e = i;
#pragma omp parallel
{
#pragma omp master
#pragma omp taskloop lastprivate (conditional: f) /* { dg-error "conditional 'lastprivate' clause on 'taskloop' construct" } */
for (i = 0; i < 32; i++)
if (p[i])
f = i;
#pragma omp master taskloop simd lastprivate (conditional: g) /* { dg-error "conditional 'lastprivate' clause on 'taskloop' construct" } */
for (i = 0; i < 32; i++)
if (p[i])
g = i;
}
#pragma omp parallel master taskloop simd lastprivate (conditional: h) /* { dg-error "conditional 'lastprivate' clause on 'taskloop' construct" } */
for (i = 0; i < 32; i++)
if (p[i])
h = i;
}
struct S { int a, b; };
void
bar (int *p)
{
struct S s = { -1, -1 }, t = { 1, 2 };
int i;
#pragma omp parallel for lastprivate (conditional: s) /* { dg-error "non-scalar variable 's' in conditional 'lastprivate' clause" } */
for (i = 0; i < 32; i++)
if (p[i])
{
struct S u = t;
u.b = i;
s = u;
}
}
/* { dg-prune-output "not supported yet" } */
void
foo (int *p)
{
int a = -1, b = -1, c = -1, d = -1, e = -1, f = -1, g = -1, h = -1;
int i;
#pragma omp parallel
#pragma omp for lastprivate (conditional: a) /* { dg-message "not supported yet" } */
for (i = 0; i < 32; i++)
if (p[i])
a = i;
#pragma omp simd lastprivate (conditional: b) /* { dg-message "not supported yet" } */
for (i = 0; i < 32; i++)
if (p[i])
b = i;
#pragma omp parallel
#pragma omp for simd lastprivate (conditional: c) /* { dg-message "not supported yet" } */
for (i = 0; i < 32; i++)
if (p[i])
c = i;
#pragma omp parallel for lastprivate (conditional: d) /* { dg-message "not supported yet" } */
for (i = 0; i < 32; i++)
if (p[i])
d = i;
#pragma omp parallel for simd lastprivate (conditional: e) /* { dg-message "not supported yet" } */
for (i = 0; i < 32; i++)
if (p[i])
e = i;
}
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