[PATCH] D21904: [OpenMP] Initial implementation of parse+sema for clause use_device_ptr of 'target data'

Kelvin Li via cfe-commits cfe-commits at lists.llvm.org
Thu Jun 30 21:17:07 PDT 2016

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.



More information about the cfe-commits mailing list