kkwli0 added inline comments.
================
Comment at: lib/Sema/SemaOpenMP.cpp:11377
@@ +11376,3 @@
+ // item should be a pointer or array
+ if (!Type.getNonReferenceType()->isPointerType()) {
+ Diag(ELoc, diag::err_omp_usedeviceptr_not_a_pointer)
----------------
sfantao wrote:
> ABataev wrote:
> > sfantao wrote:
> > > ABataev wrote:
> > > > You should not skip the reference from the type, references are not
> > > > allowed also
> > > Hi Alexey, I think the item can be a reference to a pointer. I couldn't
> > > find that restriction in the spec, can you point me to what you are
> > > referring to? We should probably refer to that in the preceding comment.
> > >
> > > Thanks!
> > Here is the restriction:
> > "2.10.1 target data Construct, restrictions. References in the construct to
> > a list item that appears in a use_device_ptr clause must be to the address
> > of the list item."
> > Does it mean that references are allowed?
> Ok, thanks. My interpretation is that that restriction refers to references
> used in clauses (in the same construct) other than use_device_ptr to
> declarations used in use_device_ptr. I think the motivation is to restrict
> the use of the value of the pointer by other clauses given that value is
> going to change for that data environment because of the behavior implemented
> by use_device_ptr. Carlo, what is your interpretation?
I interpret the rule to the list item being used inside the construct instead
of being used in the other clauses on the same construct.
Repository:
rL LLVM
http://reviews.llvm.org/D21904
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits