- Posts: 12
- Joined: Tue Jul 14, 2015 9:35 am
Description of 'linear(uval)' looks strange in the light of 'private' description:
10 The linear clause provides a superset of the functionality provided by the private clause.
11 A list item that appears in a linear clause is subject to the private clause semantics described
12 in Section 126.96.36.199 on page 189 except as noted. In addition, if the val or uval modifier is used,
13 the value of the new list item on each iteration of the associated loop(s) corresponds to the value of
14 the original list item before entering the construct plus the logical number of the iteration times
In 188.8.131.52 among all the following is stated:
6 Inside the construct, all references to the original list item are replaced by references to the new list
1 If the type of a list item is a reference to a type T then the type will be considered to be T for all
2 purposes of this clause
So inside the construct there shouldn't be accesses to original list item listed in linear(uval()). The initialization of new list item refers the value before entering construct and inside construct all references to original list item are replaced by references to new one (of the type T, so its a new location). In the light of all this it is unclear why invariance of an address of the original list item referred in uval definition would make any difference.
21The uval modifier declares the address of the original list item to have an invariant value for all
22 iterations of the associated loop(s).