<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
              "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
<refentry>
    <refentryinfo>
        <keywordset>
            <keyword>__attribute__</keyword>
        </keywordset>
    </refentryinfo>

    <refmeta>                                    
        <refentrytitle>__attribute__</refentrytitle>

        <refmiscinfo>
            <copyright>
                <year>2007-2010</year>
                <holder>The Khronos Group Inc. 
 Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and/or associated documentation files (the
"Materials"), to deal in the Materials without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Materials, and to
permit persons to whom the Materials are furnished to do so, subject to
the condition that this copyright notice and permission notice shall be included
in all copies or substantial portions of the Materials.</holder>
            </copyright>
        </refmiscinfo>
        <manvolnum>3</manvolnum>
    </refmeta>

<!-- ================================ SYNOPSIS -->

    <refnamediv id="attribute">             
        <refname>__attribute__</refname>

        <refpurpose>
           The general syntax of the <constant>__attribute__</constant> qualifier.
        </refpurpose>
    </refnamediv>


    <!-- ALTERNATIVE SYNTAX SYNOPSIS (NON-FUNCTION) -->
    <refsect2 id="synopsis">
        <title>
        </title>

        <informaltable frame="none">
            <tgroup cols="1" align="left" colsep="0" rowsep="0">
                <colspec colname="col1" colnum="1" />
                <tbody>
                    <row>
                        <entry>
__attribute__ ((<replaceable>attribute-list</replaceable>))

attribute-list:
     attribute<subscript>opt</subscript>
     attribute-list, attribute<subscript>opt</subscript>

attribute:
     attribute-token attribute-argument-clause<subscript>opt</subscript>

attribute-token:
     identifier

attribute-argument-clause:
     ( attribute-argument-list )

attribute-argument-list:
     attribute-argument
     attribute-argument-list, attribute-argument

attribute-argument:
     assignment-expression
                        </entry>
                    </row>
                </tbody>
            </tgroup>
        </informaltable>
    </refsect2>


<!-- ================================ DESCRIPTION  -->

    <refsect1 id="description"><title>Description</title>
        <para>
        This section describes the syntax with which <code>__attribute__</code> may be used, and the constructs to which attribute specifiers bind.
        </para>
        <para>
        An attribute specifier is of the form <constant>__attribute__ ((<replaceable>attribute-list</replaceable>))</constant>.
        </para>
        <para>
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:
        </para>

        <itemizedlist mark='bullet'>
            <listitem>
               <para>
<citerefentry href="attributes-types"><refentrytitle>types</refentrytitle></citerefentry>
               </para>
            </listitem>
            <listitem>
               <para>
<citerefentry href="functionQualifiers"><refentrytitle>functions</refentrytitle></citerefentry>
               </para>
            </listitem>
            <listitem>
               <para>
<citerefentry href="attributes-variables"><refentrytitle>variables</refentrytitle></citerefentry>
               </para>
            </listitem>
            <listitem>
               <para>
<citerefentry href="attributes-blocksAndControlFlow"><refentrytitle>blocks</refentrytitle></citerefentry>
               </para>
            </listitem>
            <listitem>
               <para>
<citerefentry href="attributes-blocksAndControlFlow"><refentrytitle>control-flow statements</refentrytitle></citerefentry>
               </para>
            </listitem>
        </itemizedlist>

        <para>
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 <olink uri="referenceWong">OpenCL specification</olink> for details.)
        </para>
    </refsect1>


<!-- ================================ EXAMPLE  -->
<!-- DO NOT DELETE IN CASE AN EXAMPLE IS ADDED IN THE FUTURE -->
<!--
    <refsect2 id="example1">
        <title>
            Example
        </title>

        <informaltable frame="none">
            <tgroup cols="1" align="left" colsep="0" rowsep="0">
                <colspec colname="col1" colnum="1" />
                <tbody>
                    <row>
                        <entry>
                            Example goes here - it will be set in "code" type with white space preserved.
                        </entry>
                    </row>
                </tbody>
            </tgroup>
        </informaltable>
    </refsect2>
-->


<!-- ================================ SPECIFICATION  -->
<!-- Set the "uri" attribute in the <olink /> element to the "named destination" for the PDF page
-->
    <refsect1 id="specification"><title>Specification</title>
        <para>
            <imageobject>
                <imagedata fileref="pdficon_small1.gif" format="gif" />
            </imageobject>
                                                 
            <olink uri="attribute">OpenCL Specification</olink>
        </para>
    </refsect1>


<!-- ================================ ALSO SEE  -->

    <refsect1 id="seealso"><title>Also see</title>
        <para>
            <citerefentry href="attributes-types"><refentrytitle>Type Attributes</refentrytitle></citerefentry>, 
            <citerefentry href="attributes-variables"><refentrytitle>Variable Attributes</refentrytitle></citerefentry>, 
            <citerefentry href="attributes-blocksAndControlFlow"><refentrytitle>Block and Control-Flow Statement Attributes</refentrytitle></citerefentry>, 
            <citerefentry href="functionQualifiers"><refentrytitle>functions</refentrytitle></citerefentry>
        </para>
    </refsect1>



<!-- ============================== COPYRIGHT -->
<!-- Content included from copyright.inc.xsl -->

    <refsect3 id="Copyright"><title></title>
        <imageobject>
                <imagedata fileref="KhronosLogo.jpg" format="jpg" />
        </imageobject>
        <para />
    </refsect3>

</refentry>

