Home | History | Annotate | Download | only in docs

Lines Matching full:clang

7   <title>Clang Language Extensions</title>
22 <h1>Clang Language Extensions</h1>
132 <p>This document describes the language extensions provided by Clang. In
133 addition to the language extensions listed here, Clang aims to support a broad
159 #define __has_builtin(x) 0 // Compatibility with non-clang compilers.
179 is both supported by Clang and standardized in the current language standard
182 Clang in the current language (either as a language extension or a standard
188 #define __has_feature(x) 0 // Compatibility with non-clang compilers.
229 #define __has_attribute(x) 0 // Compatibility with non-clang compilers.
267 // To avoid problem with non-clang compilers not having this macro.
293 // To avoid problem with non-clang compilers not having this macro.
330 file passed to Clang.</dd>
347 <dd>Defined when compiling with Clang</dd>
350 <dd>Defined to the major version number of Clang (e.g., the 2 in
354 <dd>Defined to the minor version number of Clang (e.g., the 0 in
358 <dd>Defined to the patch level of Clang (e.g., the 1 in 2.0.1).</dd>
361 <dd>Defined to a string that captures the Clang version, including
421 <p>Clang allows attributes to be written on individual enumerators.
498 enabled. Clang does not currently implement this feature.</p>
530 <tt>std::initializer_list</tt>) is enabled. Clang does not currently implement
535 <p>Use <tt>__has_feature(cxx_implicit_moves)</tt> to determine if Clang will
540 <p>Use <tt>__has_feature(cxx_inheriting_constructors)</tt> to determine if support for inheriting constructors is enabled. Clang does not currently implement this feature.</p>
552 is enabled. Clang does not currently implement this feature.</p>
629 <p>Use <tt>__has_feature(cxx_unrestricted_unions)</tt> to determine if support for unrestricted unions is enabled. Clang does not currently support this feature.</p>
633 <p>Use <tt>__has_feature(cxx_user_literals)</tt> to determine if support for user-defined literals is enabled. Clang does not currently support this feature.</p>
660 languages supported by Clang. The syntax is the same as that given in the
677 <p>Clang supports the <a href="http://gcc.gnu.org/onlinedocs/gcc/Type-Traits.html">GNU C++ type traits</a> and a subset of the <a href="http://msdn.microsoft.com/en-us/library/ms177194(v=VS.100).aspx">Microsoft Visual C++ Type traits</a>. For each supported type trait <code>__X</code>, <code>__has_extension(X)</code> indicates the presence of the type trait. For example:
691 <p>The following type traits are supported by Clang:</p>
720 details for the clang implementation are in <a
812 <p>Clang provides support for <a href="AutomaticReferenceCounting.html">automated reference counting</a> in Objective-C, which eliminates the need for manual retain/release/autorelease message sends. There are two feature macros associated with automatic reference counting: <code>__has_feature(objc_arc)</code> indicates the availability of automated reference counting in general, while <code>__has_feature(objc_arc_weak)</code> indicates that automated reference counting also includes support for <code>__weak</code> pointers to Objective-C objects.</p>
818 <p>Clang provides support for C++11 enumerations with a fixed
836 <p>Clang provides support for C++ function overloading in C. Function
917 <li>Future versions of Clang may change the name mangling of
936 <p>clang supports an extension which allows the following in C:</p>
948 standard C, given that clang does not support <code>_Imaginary</code>.
949 (clang also supports the <code>__real__</code> and <code>__imag__</code>
972 <p>Clang supports a number of builtin library functions with the same syntax as
976 addition to the GCC builtins, Clang supports a number of builtins that GCC does
979 <p>Please note that Clang does not and will not support all of the GCC builtins
982 define portable wrappers for these. Many of the Clang versions of these
1112 <p>Clang supports some language features conditionally on some targets.</p>
1152 <p>Clang supports additional attributes that are useful for documenting program
1155 href="http://clang.llvm.org/StaticAnalysis.html">path-sensitive static analyzer
1156 engine</a> that is part of Clang's Analysis library.</p>
1160 <p>Clang's static analysis engine understands the standard <tt>noreturn</tt>
1222 there are exceptions, and so Clang provides attributes to allow these
1273 <p>Clang supports additional attributes for checking basic locking policies in
1275 Clang currently parses the following list of attributes, although