[clang] Document that the lifetime of the caller-side `trivial_abi` parameter ends before the call. (PR #116100)

Richard Smith via cfe-commits cfe-commits at lists.llvm.org
Wed Nov 13 12:09:51 PST 2024


https://github.com/zygoloid created https://github.com/llvm/llvm-project/pull/116100

Fixes #116096.

>From 885c95fcf03f9ab89b7d445ee758c69c77333567 Mon Sep 17 00:00:00 2001
From: Richard Smith <richard at metafoo.co.uk>
Date: Wed, 13 Nov 2024 12:09:01 -0800
Subject: [PATCH] Document that the lifetime of the caller-side `trivial_abi`
 parameter ends before the call.

Fixes #116096.
---
 clang/include/clang/Basic/AttrDocs.td | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/clang/include/clang/Basic/AttrDocs.td b/clang/include/clang/Basic/AttrDocs.td
index 21fcd183e8969c..8044eb80a44a72 100644
--- a/clang/include/clang/Basic/AttrDocs.td
+++ b/clang/include/clang/Basic/AttrDocs.td
@@ -4017,7 +4017,8 @@ purposes of calls. For example:
 
 If a type is trivial for the purposes of calls, has a non-trivial destructor,
 and is passed as an argument by value, the convention is that the callee will
-destroy the object before returning.
+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``.



More information about the cfe-commits mailing list