https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120753

--- Comment #10 from Benjamin Schulz <schulz.benjamin at googlemail dot com> ---
So no, if you read the standard correctly, then the mapping macros also require


map([ [map-type-modifier[,] [map-type-modifier[,] ...] map-type : ]
locator-list)


So in openmp terminology, map also wants a list.

I do not see any reason why this wording of the standard:


If a list item in a map clause is a variable of structure type then it is
treated as if each structure element contained in the variable is a list item
in the clause.


Then should not also apply to is_device_ptr...

I thought that would be general for all these list elements..


Otherwise one would exclude the member variables of structs and classes from
many openmp constructs.

if map eats 

u.data 

when u is a struct with member pointer data, then is_device_ptr should also 

u.data


Assume you have a complex struct with hundreds of members and you want to
offload that temporarily on gpu so you cant use map alloc, as this would
require host allocation.

putting all the members into separate variables before the loop just makes not
much sense...

Reply via email to