https://github.com/aaronpuchert created 
https://github.com/llvm/llvm-project/pull/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.

>From b34e5c7dcc3d772ac64cce55dab8f96053ac21f1 Mon Sep 17 00:00:00 2001
From: Aaron Puchert <aaron.puch...@sap.com>
Date: Thu, 5 Jun 2025 15:44:42 +0200
Subject: [PATCH] Fix cross-references in Clang attribute reference

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.
---
 .../checks/bugprone/return-const-ref-from-parameter.rst  | 2 +-
 clang/include/clang/Basic/AttrDocs.td                    | 9 ++-------
 2 files changed, 3 insertions(+), 8 deletions(-)

diff --git 
a/clang-tools-extra/docs/clang-tidy/checks/bugprone/return-const-ref-from-parameter.rst
 
b/clang-tools-extra/docs/clang-tidy/checks/bugprone/return-const-ref-from-parameter.rst
index ba47399914de3..325a0a2aa9cc2 100644
--- 
a/clang-tools-extra/docs/clang-tidy/checks/bugprone/return-const-ref-from-parameter.rst
+++ 
b/clang-tools-extra/docs/clang-tidy/checks/bugprone/return-const-ref-from-parameter.rst
@@ -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++
diff --git a/clang/include/clang/Basic/AttrDocs.td 
b/clang/include/clang/Basic/AttrDocs.td
index 40b9f8142bb69..1e7ffec592034 100644
--- a/clang/include/clang/Basic/AttrDocs.td
+++ b/clang/include/clang/Basic/AttrDocs.td
@@ -4392,8 +4392,6 @@ annotated parameter.
       addToSet(str, s); // Not detected.
     }
   }
-
-.. _`lifetimebound`: 
https://clang.llvm.org/docs/AttributeReference.html#lifetimebound
   }];
 }
 
@@ -9038,14 +9036,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.
@@ -9105,9 +9103,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
 }];
 }
 

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to