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
