__attribute__ ((attribute-list)) attribute-list: attributeopt attribute-list, attributeopt attribute: attribute-token attribute-argument-clauseopt attribute-token: identifier attribute-argument-clause: ( attribute-argument-list ) attribute-argument-list: attribute-argument attribute-argument-list, attribute-argument attribute-argument: assignment-expression
This section describes the syntax with which attribute
may be used, and the constructs to which attribute specifiers bind.
An attribute specifier is of the form attribute attribute-list
.
This syntax is taken directly from GCC but unlike GCC, which allows attributes to be applied only to functions, types, and variables, OpenCL attributes can be associated with:
In general, the rules for how an attribute binds for a given context are non-trivial and the reader is pointed to GCC’s documentation and Maurer and Wong’s paper (See the "References" section in the OpenCL specification for details.)