From: Jakub Jelinek Date: Fri, 22 Jun 2018 21:27:25 +0000 (+0200) Subject: backport: re PR c/85696 (OpenMP with variably modified and default(none) won't compile) X-Git-Tag: releases/gcc-7.4.0~325 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9ab3937b2800d5765ba6bbe00add69aefb11d37d;p=thirdparty%2Fgcc.git backport: re PR c/85696 (OpenMP with variably modified and default(none) won't compile) Backported from mainline 2018-05-11 Jakub Jelinek PR c/85696 * c-omp.c (c_omp_predetermined_sharing): Return OMP_CLAUSE_DEFAULT_SHARED for artificial vars with integral type. * c-typeck.c (c_finish_omp_clauses): Don't use c_omp_predetermined_sharing, instead just check TREE_READONLY. * cp-tree.h (cxx_omp_predetermined_sharing_1): New prototype. * cp-gimplify.c (cxx_omp_predetermined_sharing): New wrapper around cxx_omp_predetermined_sharing_1. Rename old function to ... (cxx_omp_predetermined_sharing_1): ... this. * semantics.c (finish_omp_clauses): Use cxx_omp_predetermined_sharing_1 instead of cxx_omp_predetermined_sharing. * c-c++-common/gomp/pr85696.c: New test. From-SVN: r261964 --- diff --git a/gcc/testsuite/c-c++-common/gomp/pr85696.c b/gcc/testsuite/c-c++-common/gomp/pr85696.c new file mode 100644 index 000000000000..798718b563d4 --- /dev/null +++ b/gcc/testsuite/c-c++-common/gomp/pr85696.c @@ -0,0 +1,20 @@ +/* PR c/85696 */ + +#ifndef __cplusplus +void +foo (int n, int a[][n]) +{ + #pragma omp parallel shared(a) default(none) + #pragma omp master + a[23][0] = 42; +} +#endif + +void +bar (int n, void *p) +{ + int (*a)[n] = (int (*)[n]) p; + #pragma omp parallel shared(a) default(none) + #pragma omp master + a[23][0] = 42; +}