Re: [Patch] OpenMP: Fixes for omp critical + hint

2020-07-22 Thread Tobias Burnus
Now moved to libgomp, cf. attachment. Tobias On 7/22/20 11:16 AM, Jakub Jelinek wrote: On Wed, Jul 22, 2020 at 11:09:06AM +0200, Thomas Schwinge wrote: So I suppose you'll either have to put these testcases into 'libgomp', or we'll have to invent something else? Indeed. Jakub, is there a re

Re: [Patch] OpenMP: Fixes for omp critical + hint

2020-07-22 Thread Jakub Jelinek via Gcc-patches
On Wed, Jul 22, 2020 at 11:25:47AM +0200, Tobias Burnus wrote: > FORTRAN MODULE > Then I have the question why, e.g., "use openacc_kinds" in > gfortran.dg/goacc/acc_on_device-2.f95 does work. What's different there? Because that test defines its own module with that name: module openacc_kinds im

Re: [Patch] OpenMP: Fixes for omp critical + hint

2020-07-22 Thread Jakub Jelinek via Gcc-patches
On Wed, Jul 22, 2020 at 11:25:47AM +0200, Tobias Burnus wrote: > On 7/22/20 11:09 AM, Thomas Schwinge wrote: > > > For build-tree testing, that'll pick up the *system* 'omp.h', thus: > > FAIL: c-c++-common/gomp/critical-hint-1.c (test for excess errors) > > Excess errors: > > [...]/

Re: [Patch] OpenMP: Fixes for omp critical + hint

2020-07-22 Thread Tobias Burnus
On 7/22/20 11:09 AM, Thomas Schwinge wrote: For build-tree testing, that'll pick up the *system* 'omp.h', thus: FAIL: c-c++-common/gomp/critical-hint-1.c (test for excess errors) Excess errors: [...]/c-c++-common/gomp/critical-hint-1.c:10:33: error: 'omp_sync_hint_none' undeclare

Re: [Patch] OpenMP: Fixes for omp critical + hint

2020-07-22 Thread Jakub Jelinek via Gcc-patches
On Wed, Jul 22, 2020 at 11:09:06AM +0200, Thomas Schwinge wrote: > So I suppose you'll either have to put these testcases into 'libgomp', or > we'll have to invent something else? Indeed. > Jakub, is there a reason why for > build-tree testing we can't just add '-I[build-tree]/libgomp' etc. in >

Re: [Patch] OpenMP: Fixes for omp critical + hint

2020-07-22 Thread Thomas Schwinge
Hi Tobias! On 2020-07-21T17:43:00+0200, Tobias Burnus wrote: > On 7/21/20 2:18 PM, Jakub Jelinek wrote: >> [...] shows that we don't really handle critical in such case >> correctly, because nothing will then try to verify the value after >> instantiation. > > In principle, the compiler is not re

Re: [Patch] OpenMP: Fixes for omp critical + hint

2020-07-21 Thread Jakub Jelinek via Gcc-patches
On Tue, Jul 21, 2020 at 05:43:00PM +0200, Tobias Burnus wrote: > --- a/gcc/c-family/c-omp.c > +++ b/gcc/c-family/c-omp.c > @@ -106,6 +106,18 @@ c_finish_omp_taskgroup (location_t loc, tree body, tree > clauses) > tree > c_finish_omp_critical (location_t loc, tree body, tree name, tree clauses) >

Re: [Patch] OpenMP: Fixes for omp critical + hint

2020-07-21 Thread Tobias Burnus
On 7/21/20 2:18 PM, Jakub Jelinek wrote: On Tue, Jul 21, 2020 at 02:05:36PM +0200, Tobias Burnus wrote: This code is both called by C and C++ – and for C++. And I would like to permit "hint(N)" where N is a template parameter. Hence, I added another: '&& TREE_CODE (OMP_CLAUSE_HINT_EXPR (clau

Re: [Patch] OpenMP: Fixes for omp critical + hint

2020-07-21 Thread Jakub Jelinek via Gcc-patches
On Tue, Jul 21, 2020 at 02:05:36PM +0200, Tobias Burnus wrote: > This code is both called by C and C++ – and for C++. And I would like > to permit "hint(N)" where N is a template parameter. > > Hence, I added another: > '&& TREE_CODE (OMP_CLAUSE_HINT_EXPR (clauses)) == INTEGER_CST' > to your pro

Re: [Patch] OpenMP: Fixes for omp critical + hint

2020-07-21 Thread Tobias Burnus
On 7/21/20 1:25 PM, Jakub Jelinek via Fortran wrote: c_finish_omp_critical (location_t loc, tree body, tree name, tree clauses) { + gcc_assert (!clauses || OMP_CLAUSE_CODE (clauses) == OMP_CLAUSE_HINT); + if (name == NULL_TREE && clauses != NULL_TREE + && INTEGRAL_TYPE_P (TREE_TYPE (O

Re: [Patch] OpenMP: Fixes for omp critical + hint

2020-07-21 Thread Jakub Jelinek via Gcc-patches
On Tue, Jul 21, 2020 at 01:11:31PM +0200, Tobias Burnus wrote: > --- a/gcc/c-family/c-omp.c > +++ b/gcc/c-family/c-omp.c > @@ -106,6 +106,18 @@ c_finish_omp_taskgroup (location_t loc, tree body, tree > clauses) > tree > c_finish_omp_critical (location_t loc, tree body, tree name, tree clauses) >