On 27.11.23 18:19, Tobias Burnus wrote:
+ { "unified_address",
+ (1 << OMP_TRAIT_SET_IMPLEMENTATION),
+ OMP_TRAIT_PROPERTY_NONE, true,
+ NULL
+ },
I don't understand this code. This looks as if "requires" and
"unified_address"
are on the same level but in my understanding they have to be used as in:
match(implementation = {requires(unified_address,
atomic_default_mem_order_properties(release)})
while from the syntax, it looks as if this would permit:
match(implementation = {unified_address,
atomic_default_mem_order_properties(release))
Sandra pointed me to the spec: OpenMP 5.0 only permits the latter, i.e.
using the clause names of 'requires' directly. Since OpenMP 5.1, this
use is deprecated (removed in TR11/TR12) - in favor of the first syntax,
i.e. using them as argument to 'requires()'.
Thus, the code is fine. — And shows all the joy needing to read multiple
spec versions at the same time without getting confused.
Tobias
-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634
München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas
Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht
München, HRB 106955