diff options
| author | Roman Divacky <rdivacky@FreeBSD.org> | 2010-05-04 16:12:48 +0000 |
|---|---|---|
| committer | Roman Divacky <rdivacky@FreeBSD.org> | 2010-05-04 16:12:48 +0000 |
| commit | 0883ccd9eac3b974df00e6548ee319a7dd3646f4 (patch) | |
| tree | d6a70c3518b8dea8be7062438d7e8676820ed17f /docs | |
| parent | 60bfabcd8ce617297c0d231f77d14ab507e98796 (diff) | |
Notes
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/Block-ABI-Apple.txt | 11 | ||||
| -rw-r--r-- | docs/InternalsManual.html | 12 | ||||
| -rw-r--r-- | docs/LanguageExtensions.html | 43 | ||||
| -rw-r--r-- | docs/UsersManual.html | 6 |
4 files changed, 58 insertions, 14 deletions
diff --git a/docs/Block-ABI-Apple.txt b/docs/Block-ABI-Apple.txt index 6fb75da40490..dd1203605333 100644 --- a/docs/Block-ABI-Apple.txt +++ b/docs/Block-ABI-Apple.txt @@ -31,10 +31,11 @@ THE SOFTWARE. 2008/10/30 - add __weak support 2010/3/16 - rev for stret return, signature field +2010/4/6 - improved wording This document describes the Apple ABI implementation specification of Blocks. -The first shipping version of this ABI is found in Mac OS X 10.6, and shall be referred to as 10.6.ABI. Proposals have been made to enhance the blocks compiler and runtime, and these changes would form a new ABI called post-10.6.ABI if these changes were ever shipped in a product, which is purely speculative. +The first shipping version of this ABI is found in Mac OS X 10.6, and shall be referred to as 10.6.ABI. As of 2010/3/16, the following describes the ABI contract with the runtime and the compiler, and, as necessary, will be referred to as ABI.2010.3.16. Since the Apple ABI references symbols from other elements of the system, any attempt to use this ABI on systems prior to SnowLeopard is undefined. @@ -54,13 +55,13 @@ struct Block_literal_1 { // optional helper functions void (*copy_helper)(void *dst, void *src); // IFF (1<<25) void (*dispose_helper)(void *src); // IFF (1<<25) - // required post 10.6.ABI + // required ABI.2010.3.16 const char *signature; // IFF (1<<30) } *descriptor; // imported variables }; -The following flags bits are in use thusly for a possible post.10.6.ABI: +The following flags bits are in use thusly for a possible ABI.2010.3.16: enum { BLOCK_HAS_COPY_DISPOSE = (1 << 25), @@ -75,8 +76,8 @@ In 10.6.ABI the (1<<29) was unconditionally set and ignored by the runtime - it switch (flags & (3<<29)) { case (0<<29): <unused> , error case (1<<29): 10.6.ABI, no signature field available - case (2<<29): post-10.6.ABI, regular calling convention, presence of signature field - case (3<<29): post-10.6.ABI, stret calling convention, presence of signature field, + case (2<<29): ABI.2010.3.16, regular calling convention, presence of signature field + case (3<<29): ABI.2010.3.16, stret calling convention, presence of signature field, } The following discussions are presented as 10.6.ABI otherwise. diff --git a/docs/InternalsManual.html b/docs/InternalsManual.html index 5d75eaa45390..daec6b019415 100644 --- a/docs/InternalsManual.html +++ b/docs/InternalsManual.html @@ -145,13 +145,13 @@ diagnostic :).</p> pieces, this section describes them and talks about best practices when adding a new diagnostic.</p> -<!-- ============================ --> -<h4>The DiagnosticKinds.def file</h4> -<!-- ============================ --> +<!-- ============================== --> +<h4>The Diagnostic*Kinds.def files</h4> +<!-- ============================== --> -<p>Diagnostics are created by adding an entry to the <tt><a -href="http://llvm.org/svn/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticKinds.def" ->DiagnosticKinds.def</a></tt> file. This file encodes the unique ID of the +<p>Diagnostics are created by adding an entry to one of the <tt> +clang/Basic/Diagnostic*Kinds.def</tt> files, depending on what library will +be using it. This file encodes the unique ID of the diagnostic (as an enum, the first argument), the severity of the diagnostic (second argument) and the English translation + format string.</p> diff --git a/docs/LanguageExtensions.html b/docs/LanguageExtensions.html index fe364ef9c00a..838b65f27b81 100644 --- a/docs/LanguageExtensions.html +++ b/docs/LanguageExtensions.html @@ -199,7 +199,44 @@ is used in the file argument.</p> <h2 id="builtinmacros">Builtin Macros</h2> <!-- ======================================================================= --> -<p>__BASE_FILE__, __INCLUDE_LEVEL__, __TIMESTAMP__, __COUNTER__</p> +<dl> + <dt><code>__BASE_FILE__</code></dt> + <dd>Defined to a string that contains the name of the main input + file passed to Clang.</dd> + + <dt><code>__COUNTER__</code></dt> + <dd>Defined to an integer value that starts at zero and is + incremented each time the <code>__COUNTER__</code> macro is + expanded.</dd> + + <dt><code>__INCLUDE_LEVEL__</code></dt> + <dd>Defined to an integral value that is the include depth of the + file currently being translated. For the main file, this value is + zero.</dd> + + <dt><code>__TIMESTAMP__</code></dt> + <dd>Defined to the date and time of the last modification of the + current source file.</dd> + + <dt><code>__clang__</code></dt> + <dd>Defined when compiling with Clang</dd> + + <dt><code>__clang_major__</code></dt> + <dd>Defined to the major version number of Clang (e.g., the 2 in + 2.0.1).</dd> + + <dt><code>__clang_minor__</code></dt> + <dd>Defined to the minor version number of Clang (e.g., the 0 in + 2.0.1).</dd> + + <dt><code>__clang_patchlevel__</code></dt> + <dd>Defined to the patch level of Clang (e.g., the 1 in 2.0.1).</dd> + + <dt><code>__clang_version__</code></dt> + <dd>Defined to a string that captures the Clang version, including + the Subversion tag or revision number, e.g., "1.5 (trunk + 102332)".</dd> +</dl> <!-- ======================================================================= --> <h2 id="vectors">Vectors and Extended Vectors</h2> @@ -271,9 +308,9 @@ attribute parsing with C++0x's square bracket notation is enabled. <p>Use <tt>__has_feature(cxx_deleted_functions)</tt> to determine if support for deleted function definitions (with <tt>= delete</tt>) is enabled. -<h3 id="cxx_concepts">C++ TR <tt>concepts</tt></h3> +<h3 id="cxx_concepts">C++ TR concepts</h3> -<p>Use <tt>__has_feature(cxx_lambdas)</tt> to determine if support for +<p>Use <tt>__has_feature(cxx_concepts)</tt> to determine if support for concepts is enabled. clang does not currently implement this feature. <h3 id="cxx_lambdas">C++0x lambdas</h3> diff --git a/docs/UsersManual.html b/docs/UsersManual.html index e7ea133ce91a..7d7f2631ab5e 100644 --- a/docs/UsersManual.html +++ b/docs/UsersManual.html @@ -189,6 +189,12 @@ introduces the language selection and other high level options like -c, -g, etc. <p><b>-pedantic-errors</b>: Error on language extensions.</p> <p><b>-Wsystem-headers</b>: Enable warnings from system headers.</p> +<p><b>-ferror-limit=123</b>: Stop emitting diagnostics after 123 errors have + been produced. The default is 20, and the error limit can be disabled with + -ferror-limit=0.</p> + +<p><b>-ftemplate-backtrace-limit=123</b>: Only emit up to 123 template instantiation notes within the template instantiation backtrace for a single warning or error. The default is 10, and the limit can be disabled with -ftemplate-backtrace-limit=0.</p> + <!-- ================================================= --> <h4 id="cl_diag_formatting">Formatting of Diagnostics</h4> <!-- ================================================= --> |
