From: Sean Hunt tags. This is because
the id attribute must begin with a letter, not an underscore. The name
attribute is not so constrained, so links will continue to work.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133677 91177308-0d34-0410-b5e6-96231b3b80d8
---
diff --git a/docs/LanguageExtensions.html b/docs/LanguageExtensions.html
index cce2e8c5b0..991c3b96c3 100644
--- a/docs/LanguageExtensions.html
+++ b/docs/LanguageExtensions.html
@@ -1,13 +1,17 @@
+
+
-
@@ -53,13 +57,13 @@ td {
+
This function-like macro takes a single identifier argument that is the name @@ -130,7 +134,7 @@ not. It can be used like this:
-These function-like macros take a single identifier argument that is the
@@ -175,7 +179,7 @@ non-standardized features, i.e. features not prefixed c_
,
The feature tag is described along with the language feature below.
-This function-like macro takes a single identifier argument that is the name @@ -209,7 +213,7 @@ check for the existence of an include file before doing a possibly failing #include directive.
-This function-like macro takes a single file name string argument that @@ -219,12 +223,12 @@ be found using the include paths, or 0 otherwise:
// Note the two possible file name string formats. -#if __has_include("myinclude.h") && __has_include(<stdint.h>) +#if __has_include("myinclude.h") && __has_include(<stdint.h>) # include "myinclude.h" #endif // To avoid problem with non-clang compilers not having this macro. -#if defined(__has_include) && __has_include("myinclude.h") +#if defined(__has_include) && __has_include("myinclude.h") # include "myinclude.h" #endif@@ -233,7 +237,7 @@ be found using the include paths, or 0 otherwise:To test for this feature, use #if defined(__has_include).
-__has_include_next
+__has_include_next
This function-like macro takes a single file name string argument that @@ -245,12 +249,12 @@ be found using the include paths, or 0 otherwise:
// Note the two possible file name string formats. -#if __has_include_next("myinclude.h") && __has_include_next(<stdint.h>) +#if __has_include_next("myinclude.h") && __has_include_next(<stdint.h>) # include_next "myinclude.h" #endif // To avoid problem with non-clang compilers not having this macro. -#if defined(__has_include_next) && __has_include_next("myinclude.h") +#if defined(__has_include_next) && __has_include_next("myinclude.h") # include_next "myinclude.h" #endif@@ -411,115 +415,115 @@ noted. C++0x standard. As a result, all these features are enabled with the -std=c++0x option when compiling C++ code. -C++0x decltype() +
C++0x decltype()
Use __has_feature(cxx_decltype) or __has_extension(cxx_decltype) to determine if support for the decltype() specifier is enabled.
-C++0x SFINAE includes access control +
C++0x SFINAE includes access control
Use __has_feature(cxx_access_control_sfinae) or __has_extension(cxx_access_control_sfinae) to determine whether access-control errors (e.g., calling a private constructor) are considered to be template argument deduction errors (aka SFINAE errors), per C++ DR1170.
-C++0x alias templates +
C++0x alias templates
Use __has_feature(cxx_alias_templates) or __has_extension(cxx_alias_templates) to determine if support for C++0x's alias declarations and alias templates is enabled.
-C++0x attributes +
C++0x attributes
Use __has_feature(cxx_attributes) or __has_extension(cxx_attributes) to determine if support for attribute parsing with C++0x's square bracket notation is enabled.
-C++0x default template arguments in function templates +
C++0x default template arguments in function templates
Use __has_feature(cxx_default_function_template_args) or __has_extension(cxx_default_function_template_args) to determine if support for default template arguments in function templates is enabled.
-C++0x deleted functions +
C++0x deleted functions
Use __has_feature(cxx_deleted_functions) or __has_extension(cxx_deleted_functions) to determine if support for deleted function definitions (with = delete) is enabled.
-C++0x lambdas +
C++0x lambdas
Use __has_feature(cxx_lambdas) or __has_extension(cxx_lambdas) to determine if support for lambdas is enabled. clang does not currently implement this feature.
-C++0x nullptr +
C++0x nullptr
Use __has_feature(cxx_nullptr) or __has_extension(cxx_nullptr) to determine if support for nullptr is enabled.
-C++0x override control +
C++0x override control
Use __has_feature(cxx_override_control) or __has_extension(cxx_override_control) to determine if support for the override control keywords is enabled.
-C++0x reference-qualified functions +
C++0x reference-qualified functions
Use __has_feature(cxx_reference_qualified_functions) or __has_extension(cxx_reference_qualified_functions) to determine if support for reference-qualified functions (e.g., member functions with
-&
or&&
applied to*this
) is enabled.C++0x range-based for loop +
C++0x range-based for loop
Use __has_feature(cxx_range_for) or __has_extension(cxx_range_for) to determine if support for the range-based for loop is enabled.
-C++0x rvalue references +
C++0x rvalue references
Use __has_feature(cxx_rvalue_references) or __has_extension(cxx_rvalue_references) to determine if support for rvalue references is enabled.
-C++0x static_assert() +
C++0x static_assert()
Use __has_feature(cxx_static_assert) or __has_extension(cxx_static_assert) to determine if support for compile-time assertions using static_assert is enabled.
-C++0x type inference +
C++0x type inference
Use __has_feature(cxx_auto_type) or __has_extension(cxx_auto_type) to determine C++0x type inference is supported using the auto specifier. If this is disabled, auto will instead be a storage class specifier, as in C or C++98.
-C++0x variadic templates +
C++0x variadic templates
Use __has_feature(cxx_variadic_templates) or __has_extension(cxx_variadic_templates) to determine if support for variadic templates is enabled.
-C++0x inline namespaces +
C++0x inline namespaces
Use __has_feature(cxx_inline_namespaces) or __has_extension(cxx_inline_namespaces) to determine if support for inline namespaces is enabled.
-C++0x trailing return type +
C++0x trailing return type
Use __has_feature(cxx_trailing_return) or __has_extension(cxx_trailing_return) to determine if support for the alternate function declaration syntax with trailing return type is enabled.
-C++0x noexcept +
C++0x noexcept
Use __has_feature(cxx_noexcept) or __has_extension(cxx_noexcept) to determine if support for noexcept exception specifications is enabled.
-C++0x strongly typed enumerations +
C++0x strongly typed enumerations
Use __has_feature(cxx_strong_enums) or __has_extension(cxx_strong_enums) to determine if support for @@ -531,7 +535,7 @@ strongly typed, scoped enumerations is enabled.
C1X standard. As a result, all these features are enabled with the -std=c1x option when compiling C code. -C1X generic selections +
C1X generic selections
Use __has_feature(c_generic_selections) or __has_extension(c_generic_selections) to determine if support for @@ -545,7 +549,7 @@ C1X draft standard.
appropriate standard, but in C++, which lacks the type compatibility rules used in C, types are considered compatible only if they are equivalent. -C1X _Static_assert() +
C1X _Static_assert()
Use __has_feature(c_static_assert) or __has_extension(c_static_assert) to determine if support for @@ -555,7 +559,7 @@ compile-time assertions using _Static_assert is enabled.
Checks for Type Traits
-Clang supports the GNU C++ type traits and a subset of the Microsoft Visual C++ Type traits. For each supported type trait
__X
,__has_extension(X)
indicates the presence of the type trait. For example: +Clang supports the GNU C++ type traits and a subset of the Microsoft Visual C++ Type traits. For each supported type trait
__X
,__has_extension(X)
indicates the presence of the type trait. For example:#if __has_extension(is_convertible_to) @@ -641,7 +645,7 @@ to have the typeNSArray *
. If neitheralloc
norTo determine whether a method has a related result type, the first word in the camel-case selector (e.g., "init" in "initWithObjects") is considered, and the method will a related result type if its return -type is compatible with the type of its class and if +type is compatible with the type of its class and if
@@ -651,7 +655,7 @@ type is compatible with the type of its class and if
+- the first word is "autorelease", "init", "retain", or "self", and the method is an instance method.
-If a method with a related result type is overridden by a subclass method, the subclass method must also return a type that is compatible @@ -797,7 +801,7 @@ vector support instead of builtins, in order to reduce the number of builtins that we need to implement.
-__builtin_shufflevector
+__builtin_shufflevector
__builtin_shufflevector is used to express generic vector @@ -849,7 +853,7 @@ the number of indices specified.
Query for this feature with __has_builtin(__builtin_shufflevector).
-__builtin_unreachable
+__builtin_unreachable
__builtin_unreachable is used to indicate that a specific point in @@ -887,7 +891,7 @@ no arguments and produces a void result.
Query for this feature with __has_builtin(__builtin_unreachable).
-__sync_swap
+__sync_swap
__sync_swap is used to atomically swap integers or pointers in @@ -903,7 +907,7 @@ memory.
Example of Use:
-int old_value = __sync_swap(&value, new_value); +int old_value = __sync_swap(&value, new_value);Description: