[clang] [clang] Add value_type attr, use it to add noalias when pass-by-value. (PR #95004)
Erich Keane via cfe-commits
cfe-commits at lists.llvm.org
Fri Mar 14 10:06:27 PDT 2025
================
@@ -9242,3 +9242,15 @@ Declares that a function potentially allocates heap memory, and prevents any pot
of ``nonallocating`` by the compiler.
}];
}
+
+def ValueTypeDocs : Documentation {
+ let Category = DocCatDecl;
+ let Content = [{
+The ``value_type`` attribute can be used to mark user-defined types as 'value
+types'. When objects of value types are passed value to functions, the objects
+are always considered to be formally copied into a new object. This means the
+argument itself must be the only value referencing the passed object. This
----------------
erichkeane wrote:
I am having a hard time figuring out why pass-by-value doesn't already imply this? Pass-by-value means it was copied into the new object, right? So I guess I have a hard time figuring out what we really mean here.
https://github.com/llvm/llvm-project/pull/95004
More information about the cfe-commits
mailing list