<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/libcxx/include/__memory, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>[libc++][memory] Applied `[[nodiscard]]` to smart pointers (#168483)</title>
<updated>2025-11-20T02:19:15+00:00</updated>
<author>
<name>Hristo Hristov</name>
<email>hristo.goshev.hristov@gmail.com</email>
</author>
<published>2025-11-20T02:19:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=3f151a3fa6ccb00523d8e0e36fa8d9046d5a936f'/>
<id>3f151a3fa6ccb00523d8e0e36fa8d9046d5a936f</id>
<content type='text'>
Applied `[[nodiscard]]` where relevant to smart pointers and related
functions.

- [x] - `std::unique_ptr`
- [x] - `std::shared_ptr`
- [x] - `std::weak_ptr`

See guidelines:
-
https://libcxx.llvm.org/CodingGuidelines.html#apply-nodiscard-where-relevant
- `[[nodiscard]]` should be applied to functions where discarding the
return value is most likely a correctness issue. For example a locking
constructor in unique_lock.

---------

Co-authored-by: Hristo Hristov &lt;zingam@outlook.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Applied `[[nodiscard]]` where relevant to smart pointers and related
functions.

- [x] - `std::unique_ptr`
- [x] - `std::shared_ptr`
- [x] - `std::weak_ptr`

See guidelines:
-
https://libcxx.llvm.org/CodingGuidelines.html#apply-nodiscard-where-relevant
- `[[nodiscard]]` should be applied to functions where discarding the
return value is most likely a correctness issue. For example a locking
constructor in unique_lock.

---------

Co-authored-by: Hristo Hristov &lt;zingam@outlook.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[libc++] Apply `[[nodiscard]]` to `in/out_ptr` (#167097)</title>
<updated>2025-11-15T01:00:04+00:00</updated>
<author>
<name>Hristo Hristov</name>
<email>hghristov.rmm@gmail.com</email>
</author>
<published>2025-11-15T01:00:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9036e2359f017b8307a8651ef9969c1cd047ceb8'/>
<id>9036e2359f017b8307a8651ef9969c1cd047ceb8</id>
<content type='text'>
...according to Coding Guidelines: `[[nodiscard]]` should be applied to
functions where discarding the return value is most likely a correctness
issue.

Changes to:
  - [x] `inout_ptr()` 
  - [x] `out_ptr()` 


At the time of impelentation the `[[nodiscard]]` policy has not been
established yet.

---------

Co-authored-by: Hristo Hristov &lt;zingam@outlook.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
...according to Coding Guidelines: `[[nodiscard]]` should be applied to
functions where discarding the return value is most likely a correctness
issue.

Changes to:
  - [x] `inout_ptr()` 
  - [x] `out_ptr()` 


At the time of impelentation the `[[nodiscard]]` policy has not been
established yet.

---------

Co-authored-by: Hristo Hristov &lt;zingam@outlook.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[libc++] Merge is_{,un}bounded_array.h into is_array.h (#167479)</title>
<updated>2025-11-13T08:29:28+00:00</updated>
<author>
<name>Nikolas Klauser</name>
<email>nikolasklauser@berlin.de</email>
</author>
<published>2025-11-13T08:29:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f038dfd22d111303d928af4cbcad37498c020c4e'/>
<id>f038dfd22d111303d928af4cbcad37498c020c4e</id>
<content type='text'>
These headers are incredibly simple and closely related, so this merges
them into a single one.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These headers are incredibly simple and closely related, so this merges
them into a single one.</pre>
</div>
</content>
</entry>
<entry>
<title>[libc++] Simplify the implementation of the unique_ptr -&gt; shared_ptr converting constructor (#165619)</title>
<updated>2025-11-13T08:09:44+00:00</updated>
<author>
<name>Nikolas Klauser</name>
<email>nikolasklauser@berlin.de</email>
</author>
<published>2025-11-13T08:09:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=2ac9e59d976de7f0dc4ebd2ecb7a17198b0d1ff4'/>
<id>2ac9e59d976de7f0dc4ebd2ecb7a17198b0d1ff4</id>
<content type='text'>
This also backports LWG2415 as a drive-by.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This also backports LWG2415 as a drive-by.</pre>
</div>
</content>
</entry>
<entry>
<title>[libc++] Remove __is_replaceable emulation (#167355)</title>
<updated>2025-11-11T12:53:56+00:00</updated>
<author>
<name>Louis Dionne</name>
<email>ldionne.2@gmail.com</email>
</author>
<published>2025-11-11T12:53:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=17ce48f2b687ce86890b770c9af9e1087211f8b7'/>
<id>17ce48f2b687ce86890b770c9af9e1087211f8b7</id>
<content type='text'>
The Trivial Relocation feature has been removed from the C++26 working
draft. Based on discussions in Kona, it is unlikely that the
"replaceable" type concept will come back in the C++29 time frame.

Since we don't have a use for the type trait in the library at the
moment, remove the code associated to it. If we end up needing something
like it in the future, we can always add it back.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The Trivial Relocation feature has been removed from the C++26 working
draft. Based on discussions in Kona, it is unlikely that the
"replaceable" type concept will come back in the C++29 time frame.

Since we don't have a use for the type trait in the library at the
moment, remove the code associated to it. If we end up needing something
like it in the future, we can always add it back.</pre>
</div>
</content>
</entry>
<entry>
<title>[libc++] Remove some of the uses of aligned_storage inside the library (#161635)</title>
<updated>2025-11-11T10:03:02+00:00</updated>
<author>
<name>Nikolas Klauser</name>
<email>nikolasklauser@berlin.de</email>
</author>
<published>2025-11-11T10:03:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=c0bca9cb843cb11173222513ce190e0aec2b1d59'/>
<id>c0bca9cb843cb11173222513ce190e0aec2b1d59</id>
<content type='text'>
`aligned_storage` has been deprecated and will most likely be removed in
a future version of C++. This patch removes some of its uses to avoid
having to work around its removal in the future.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`aligned_storage` has been deprecated and will most likely be removed in
a future version of C++. This patch removes some of its uses to avoid
having to work around its removal in the future.</pre>
</div>
</content>
</entry>
<entry>
<title>[libc++] Replace __libcpp_is_final with a variable template (#167137)</title>
<updated>2025-11-10T10:00:05+00:00</updated>
<author>
<name>Nikolas Klauser</name>
<email>nikolasklauser@berlin.de</email>
</author>
<published>2025-11-10T10:00:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=471dbb90cb35e45cb33512b5022b4d02f319b54e'/>
<id>471dbb90cb35e45cb33512b5022b4d02f319b54e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[libc++] Simplify the implementation of destroy_at a bit (#165392)</title>
<updated>2025-10-31T11:56:37+00:00</updated>
<author>
<name>Nikolas Klauser</name>
<email>nikolasklauser@berlin.de</email>
</author>
<published>2025-10-31T11:56:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9f9b8d56f47913496d1d7f80f6859437bde09fe7'/>
<id>9f9b8d56f47913496d1d7f80f6859437bde09fe7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[libc++] Properly implement array cookies in the ARM ABI (#160182)</title>
<updated>2025-10-17T03:40:58+00:00</updated>
<author>
<name>Louis Dionne</name>
<email>ldionne.2@gmail.com</email>
</author>
<published>2025-10-17T03:40:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b3a199469c9d54fb3bdabf6dff5677b401f8fef6'/>
<id>b3a199469c9d54fb3bdabf6dff5677b401f8fef6</id>
<content type='text'>
When we implemented array cookie support for hardening std::unique_ptr,
the implementation was only done for the Itanium ABI. I did not
initially realize that ARM was using a different ABI for array cookies,
so unique_ptr should not have been hardened on ARM.

However, we were also incorrectly setting the ABI-detection macro: we
were pretending to be using a vanilla Itanium ABI when in reality the
(similar but different) ARM ABI was in use. As a result, unique_ptr was
using the wrong representation for array cookies on ARM, which
fortunately only mattered in the case of overaligned types.

This patch fixes that.

rdar://160852193</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When we implemented array cookie support for hardening std::unique_ptr,
the implementation was only done for the Itanium ABI. I did not
initially realize that ARM was using a different ABI for array cookies,
so unique_ptr should not have been hardened on ARM.

However, we were also incorrectly setting the ABI-detection macro: we
were pretending to be using a vanilla Itanium ABI when in reality the
(similar but different) ARM ABI was in use. As a result, unique_ptr was
using the wrong representation for array cookies on ARM, which
fortunately only mattered in the case of overaligned types.

This patch fixes that.

rdar://160852193</pre>
</div>
</content>
</entry>
<entry>
<title>[libc++] Use std::__{scope,exception}_guard throughout the code base (#161322)</title>
<updated>2025-10-09T07:32:40+00:00</updated>
<author>
<name>Nikolas Klauser</name>
<email>nikolasklauser@berlin.de</email>
</author>
<published>2025-10-09T07:32:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=446d9505246227b514aa6359f17106e1a9c65897'/>
<id>446d9505246227b514aa6359f17106e1a9c65897</id>
<content type='text'>
This simplifies the code quite a bit and seems to improve code size
slightly in some cases.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This simplifies the code quite a bit and seems to improve code size
slightly in some cases.</pre>
</div>
</content>
</entry>
</feed>
