[libcxx-commits] [libcxx] [libc++] Document that internal aliases should be marked _LIBCPP_NODEBUG (PR #122175)
via libcxx-commits
libcxx-commits at lists.llvm.org
Wed Jan 8 13:59:47 PST 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-libcxx
Author: Nikolas Klauser (philnik777)
<details>
<summary>Changes</summary>
In #<!-- -->118710 we've added ``_LIBCPP_NODEBUG`` to all internal aliases, but didn't actually document it. This patch adds documentation by adding the new requirement and reasoning to the coding guidelines.
---
Full diff: https://github.com/llvm/llvm-project/pull/122175.diff
1 Files Affected:
- (modified) libcxx/docs/CodingGuidelines.rst (+10)
``````````diff
diff --git a/libcxx/docs/CodingGuidelines.rst b/libcxx/docs/CodingGuidelines.rst
index 1bb62072e886d1..0bad28b05b15ca 100644
--- a/libcxx/docs/CodingGuidelines.rst
+++ b/libcxx/docs/CodingGuidelines.rst
@@ -184,3 +184,13 @@ headers (which is sometimes required for ``constexpr`` support).
When defining a function at the ABI boundary, it can also be useful to consider which attributes (like ``[[gnu::pure]]``
and ``[[clang::noescape]]``) can be added to the function to improve the compiler's ability to optimize.
+
+library-internal type aliases should be annotated with ``_LIBCPP_NODEBUG``
+==========================================================================
+
+Libc++ has lots of internal type aliases. Accumulated, these can result in significant amounts of debug information that
+users don't care about usually, since users don't try to debug standard library facilities in most cases. For that
+reason, all library-internal type aliases should be annotated with ``_LIBCPP_NODEBUG`` to suppress compilers from
+generating said debug information.
+
+This is enforced by the clang-tidy check ``libcpp-nodebug-on-aliases``.
``````````
</details>
https://github.com/llvm/llvm-project/pull/122175
More information about the libcxx-commits
mailing list