__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

Description

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.)

Also see

Specification