[clang] [Clang] Clarify the `[[trivial_abi]]` documentation. (PR #143243)

via cfe-commits cfe-commits at lists.llvm.org
Mon Jun 9 04:48:01 PDT 2025


================
@@ -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.
----------------
Sirraide wrote:

```suggestion
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 pointers to themselves.
```


https://github.com/llvm/llvm-project/pull/143243


More information about the cfe-commits mailing list