jdenny added a comment.

In D56113#1345047 <https://reviews.llvm.org/D56113#1345047>, @ABataev wrote:

> In D56113#1344210 <https://reviews.llvm.org/D56113#1344210>, @jdenny wrote:
>
> > In D56113#1342879 <https://reviews.llvm.org/D56113#1342879>, @ABataev wrote:
> >
> > > But you will need another serie of patches for `reduction` and `linear` 
> > > clauses to update their error messages.
> >
> >
> > Those already had their own checks for const.  I'm not aware of any cases 
> > not handled, and the test suite does pass after my patch.
>
>
> Yes, they have the checks for constness, but you need to  update those checks 
> to emit this new error message for const values with mutable fields.


I believe you mean we should reuse `rejectConstNotMutableType` for `reduction` 
and `linear` rather than leave some of its implementation duplicated for those.

That is, I believe we should //not// relax the existing checks for `reduction` 
and `linear` so that they permit const values with mutable fields.  First, that 
doesn't seem possible for `linear`, which requires integral or pointer type.  
Second, that seems wrong for `reduction` because, for whatever reason, OpenMP 
5.0 sec. 2.19.5.1 page 298 says:

  A list item that appears in a reduction clause must not be const-qualified.

For that case, I can extend `rejectConstNotMutableType` with a bool parameter 
to indicate mutable fields are not permitted.

Does all that make sense?

> 
> 
>> By the way, is there any value to keeping the predetermined shared for const 
>> if -openmp-version=3.1 or earlier?
> 
> Yes, you can check for the value of `LangOpts.OpenMP`. For OpenMP 3.1 it will 
> have the value `31`.

How far back should we take this?  I'm inclined to check for `30` and `31` only 
and assume anything else is newer, but let me know if we need to check for 
earlier versions.

> 
> 
>>>> Sorry, I misunderstood your first response.  When I try an atomic write to 
>>>> the shared variable, the difference between the uncombined and combined 
>>>> target teams directive affects functionality when targeting multicore.  
>>>> Does that matter?
>>> 
>>> Yes, I'm aware if this problem. But I don't think it is very important and 
>>> can cause serious problems in user code. If you think that it is worth to 
>>> fix this prblem, you can go ahead and fix it.
>> 
>> No, not worthwhile for me right now.  I just wanted to point it out in 
>> passing in case it might matter to someone.  Does a bugzilla seem worthwhile 
>> to you?
> 
> Yes, generally speaking it would be good to fix this. So, yes, at least to 
> keep tracking, add a bug report to the bugzilla.

Will do.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D56113/new/

https://reviews.llvm.org/D56113



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to