https://github.com/cor3ntin updated https://github.com/llvm/llvm-project/pull/143243
>From 9b6128211ea4a442ecded830c77c60387245bb89 Mon Sep 17 00:00:00 2001 From: Corentin Jabot <corentinja...@gmail.com> Date: Sat, 7 Jun 2025 10:24:26 +0200 Subject: [PATCH 1/2] [Clang] Clarify the `[[trivial_abi]]` documentation. Fixes #36667 --- clang/include/clang/Basic/AttrDocs.td | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/clang/include/clang/Basic/AttrDocs.td b/clang/include/clang/Basic/AttrDocs.td index 40b9f8142bb69..19d5a76246bf0 100644 --- a/clang/include/clang/Basic/AttrDocs.td +++ b/clang/include/clang/Basic/AttrDocs.td @@ -4431,7 +4431,11 @@ destroy the object before returning. The lifetime of the copy of the parameter in the caller ends without a destructor call when the call begins. If a type is trivial for the purpose of calls, it is assumed to be trivially -relocatable for the purpose of ``__is_trivially_relocatable``. +relocatable for the purpose of ``__is_trivially_relocatable`` and +``__builtin_is_cpp_trivially_relocatable``. +The copy constructor of a an object of such type might not be called +when the object is passed to a function. Therefore, the ``trivial_abi`` +attribute should not be applied to objects that contain pointer to themselves. Attribute ``trivial_abi`` has no effect in the following cases: >From 1b8013a5ff838acb1ecf70c46c3f45a06fd51788 Mon Sep 17 00:00:00 2001 From: Corentin Jabot <corentinja...@gmail.com> Date: Mon, 9 Jun 2025 15:03:06 +0200 Subject: [PATCH 2/2] Update clang/include/clang/Basic/AttrDocs.td Co-authored-by: Sirraide <aeternalm...@gmail.com> --- clang/include/clang/Basic/AttrDocs.td | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/clang/include/clang/Basic/AttrDocs.td b/clang/include/clang/Basic/AttrDocs.td index 19d5a76246bf0..9bbf6311fa2af 100644 --- a/clang/include/clang/Basic/AttrDocs.td +++ b/clang/include/clang/Basic/AttrDocs.td @@ -4433,9 +4433,9 @@ in the caller ends without a destructor call when the call begins. If a type is trivial for the purpose of calls, it is assumed to be trivially relocatable for the purpose of ``__is_trivially_relocatable`` and ``__builtin_is_cpp_trivially_relocatable``. -The copy constructor of a an object of such type might not be called +The copy constructor of an object of such type might not be called when the object is passed to a function. Therefore, the ``trivial_abi`` -attribute should not be applied to objects that contain pointer to themselves. +attribute should not be applied to objects that contain pointers to themselves. Attribute ``trivial_abi`` has no effect in the following cases: _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits