mirror of
https://github.com/intel/llvm.git
synced 2026-01-21 12:19:23 +08:00
Fix cross-references in Clang attribute reference (#142967)
Anchors are automatically generated, but adding another anchor with the same name hides the anchor that we actually want. Simply removing the unnecessary self-referential anchor `lifetimebound` fixes the links. The documentation for coro_disable_lifetimebound and coro_lifetimebound also had an unnecessary redirection. It's possible to change the link text to differ from the heading, but I think that's not necessary here. Also fix a reference in clang-tidy that was using the (unstable) numbered anchor.
This commit is contained in:
@@ -42,7 +42,7 @@ on the control flow of the function, an overload where all problematic
|
||||
|
||||
This issue can also be resolved by adding ``[[clang::lifetimebound]]``. Clang
|
||||
enable ``-Wdangling`` warning by default which can detect mis-uses of the
|
||||
annotated function. See `lifetimebound attribute <https://clang.llvm.org/docs/AttributeReference.html#id11>`_
|
||||
annotated function. See `lifetimebound attribute <https://clang.llvm.org/docs/AttributeReference.html#lifetimebound>`_
|
||||
for details.
|
||||
|
||||
.. code-block:: c++
|
||||
|
||||
@@ -4396,8 +4396,6 @@ annotated parameter.
|
||||
addToSet(str, s); // Not detected.
|
||||
}
|
||||
}
|
||||
|
||||
.. _`lifetimebound`: https://clang.llvm.org/docs/AttributeReference.html#lifetimebound
|
||||
}];
|
||||
}
|
||||
|
||||
@@ -9042,14 +9040,14 @@ def CoroLifetimeBoundDoc : Documentation {
|
||||
let Category = DocCatDecl;
|
||||
let Content = [{
|
||||
The ``[[clang::coro_lifetimebound]]`` is a class attribute which can be applied
|
||||
to a coroutine return type (`CRT`_) (i.e.
|
||||
to a coroutine return type (`coro_return_type, coro_wrapper`_) (i.e.
|
||||
it should also be annotated with ``[[clang::coro_return_type]]``).
|
||||
|
||||
All parameters of a function are considered to be lifetime bound if the function returns a
|
||||
coroutine return type (CRT) annotated with ``[[clang::coro_lifetimebound]]``.
|
||||
This lifetime bound analysis can be disabled for a coroutine wrapper or a coroutine by annotating the function
|
||||
with ``[[clang::coro_disable_lifetimebound]]`` function attribute .
|
||||
See `documentation`_ of ``[[clang::lifetimebound]]`` for details about lifetime bound analysis.
|
||||
See documentation of `lifetimebound`_ for details about lifetime bound analysis.
|
||||
|
||||
|
||||
Reference parameters of a coroutine are susceptible to capturing references to temporaries or local variables.
|
||||
@@ -9109,9 +9107,6 @@ but do not pass them to the underlying coroutine or pass them by value.
|
||||
void use() {
|
||||
auto task = coro_wrapper(1); // use of temporary is fine as the argument is not lifetime bound.
|
||||
}
|
||||
|
||||
.. _`documentation`: https://clang.llvm.org/docs/AttributeReference.html#lifetimebound
|
||||
.. _`CRT`: https://clang.llvm.org/docs/AttributeReference.html#coro-return-type
|
||||
}];
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user