<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/libcxx/include/__memory/allocation_guard.h, 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++] Make forward_list constexpr as part of P3372R3 (#129435)</title>
<updated>2025-06-11T16:13:36+00:00</updated>
<author>
<name>Peng Liu</name>
<email>winner245@hotmail.com</email>
</author>
<published>2025-06-11T16:13:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=38fb0117ab10c4541e58697a4b56de2a646cf3f4'/>
<id>38fb0117ab10c4541e58697a4b56de2a646cf3f4</id>
<content type='text'>
Fixes #128658</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes #128658</pre>
</div>
</content>
</entry>
<entry>
<title>[libc++] Put _LIBCPP_NODEBUG on all internal aliases (#118710)</title>
<updated>2025-01-08T16:12:59+00:00</updated>
<author>
<name>Nikolas Klauser</name>
<email>nikolasklauser@berlin.de</email>
</author>
<published>2025-01-08T16:12:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f69585235ec85d54e0f3fc41b2d5700430907f99'/>
<id>f69585235ec85d54e0f3fc41b2d5700430907f99</id>
<content type='text'>
This significantly reduces the amount of debug information generated
for codebases using libc++, without hurting the debugging experience.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This significantly reduces the amount of debug information generated
for codebases using libc++, without hurting the debugging experience.</pre>
</div>
</content>
</entry>
<entry>
<title>[libc++] Granularize &lt;cstddef&gt; includes (#108696)</title>
<updated>2024-10-31T01:20:10+00:00</updated>
<author>
<name>Nikolas Klauser</name>
<email>nikolasklauser@berlin.de</email>
</author>
<published>2024-10-31T01:20:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e99c4906e44ae3f921fa05356909d006cda8d954'/>
<id>e99c4906e44ae3f921fa05356909d006cda8d954</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[libc++] Format the code base (#74334)</title>
<updated>2023-12-18T19:01:33+00:00</updated>
<author>
<name>Louis Dionne</name>
<email>ldionne.2@gmail.com</email>
</author>
<published>2023-12-18T19:01:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9783f28cbb155e4a8d49c12e1c60ce14dcfaf0c7'/>
<id>9783f28cbb155e4a8d49c12e1c60ce14dcfaf0c7</id>
<content type='text'>
This patch runs clang-format on all of libcxx/include and libcxx/src, in
accordance with the RFC discussed at [1]. Follow-up patches will format
the benchmarks, the test suite and remaining parts of the code. I'm
splitting this one into its own patch so the diff is a bit easier to
review.

This patch was generated with:

   find libcxx/include libcxx/src -type f \
      | grep -v 'module.modulemap.in' \
      | grep -v 'CMakeLists.txt' \
      | grep -v 'README.txt' \
      | grep -v 'libcxx.imp' \
      | grep -v '__config_site.in' \
      | xargs clang-format -i

A Git merge driver is available in libcxx/utils/clang-format-merge-driver.sh
to help resolve merge and rebase issues across these formatting changes.

[1]: https://discourse.llvm.org/t/rfc-clang-formatting-all-of-libc-once-and-for-all
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch runs clang-format on all of libcxx/include and libcxx/src, in
accordance with the RFC discussed at [1]. Follow-up patches will format
the benchmarks, the test suite and remaining parts of the code. I'm
splitting this one into its own patch so the diff is a bit easier to
review.

This patch was generated with:

   find libcxx/include libcxx/src -type f \
      | grep -v 'module.modulemap.in' \
      | grep -v 'CMakeLists.txt' \
      | grep -v 'README.txt' \
      | grep -v 'libcxx.imp' \
      | grep -v '__config_site.in' \
      | xargs clang-format -i

A Git merge driver is available in libcxx/utils/clang-format-merge-driver.sh
to help resolve merge and rebase issues across these formatting changes.

[1]: https://discourse.llvm.org/t/rfc-clang-formatting-all-of-libc-once-and-for-all
</pre>
</div>
</content>
</entry>
<entry>
<title>[libc++] Replace uses of _VSTD:: by std:: (#74331)</title>
<updated>2023-12-05T16:19:15+00:00</updated>
<author>
<name>Louis Dionne</name>
<email>ldionne.2@gmail.com</email>
</author>
<published>2023-12-05T16:19:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=77a00c0d546cd4aa8311b5b9031ae9ea8cdb050c'/>
<id>77a00c0d546cd4aa8311b5b9031ae9ea8cdb050c</id>
<content type='text'>
As part of the upcoming clang-formatting of libc++, this patch performs
the long desired removal of the _VSTD macro.

See https://discourse.llvm.org/t/rfc-clang-formatting-all-of-libc-once-and-for-all
for the clang-format proposal.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As part of the upcoming clang-formatting of libc++, this patch performs
the long desired removal of the _VSTD macro.

See https://discourse.llvm.org/t/rfc-clang-formatting-all-of-libc-once-and-for-all
for the clang-format proposal.</pre>
</div>
</content>
</entry>
<entry>
<title>[libc++] Fix an exception safety issue in `forward_list` and add tests.</title>
<updated>2023-07-12T17:11:26+00:00</updated>
<author>
<name>varconst</name>
<email>varconsteq@gmail.com</email>
</author>
<published>2023-07-12T17:11:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d0b51657c259365750b3aada3bae23f19c96fdbc'/>
<id>d0b51657c259365750b3aada3bae23f19c96fdbc</id>
<content type='text'>
When inserting nodes into a forward list, each new node is allocated but
not constructed. The constructor was being called explicitly on the node
`value_` but the `next_` pointer remained uninitialized rather than
being set to null. This bug is only triggered in the cleanup code if an
exception is thrown -- upon successful creation of new nodes, the last
incorrect "next" value is overwritten to a correct pointer.

This issue was found due to new tests added in
https://reviews.llvm.org/D149830.

Differential Revision: https://reviews.llvm.org/D152327
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When inserting nodes into a forward list, each new node is allocated but
not constructed. The constructor was being called explicitly on the node
`value_` but the `next_` pointer remained uninitialized rather than
being set to null. This bug is only triggered in the cleanup code if an
exception is thrown -- upon successful creation of new nodes, the last
incorrect "next" value is overwritten to a correct pointer.

This issue was found due to new tests added in
https://reviews.llvm.org/D149830.

Differential Revision: https://reviews.llvm.org/D152327
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixing conflicting macro definitions between curses.h and the standard library.</title>
<updated>2023-07-06T17:21:08+00:00</updated>
<author>
<name>Nicole Rabjohn</name>
<email>Nicole.Rabjohn@ibm.com</email>
</author>
<published>2023-07-06T17:12:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=92e4d6791f714d1d90a3341c539ee3ac24e44ab0'/>
<id>92e4d6791f714d1d90a3341c539ee3ac24e44ab0</id>
<content type='text'>
POSIX allows certain macros to exist with generic names (i.e. refresh(), move(), and erase()) to exist in `curses.h` which conflict with functions found in std::filesystem, among others. This patch undefs the macros in question and adds them to LIBCPP_PUSH_MACROS and LIBCPP_POP_MACROS.

Reviewed By: #libc, philnik, ldionne

Differential Revision: https://reviews.llvm.org/D147356
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
POSIX allows certain macros to exist with generic names (i.e. refresh(), move(), and erase()) to exist in `curses.h` which conflict with functions found in std::filesystem, among others. This patch undefs the macros in question and adds them to LIBCPP_PUSH_MACROS and LIBCPP_POP_MACROS.

Reviewed By: #libc, philnik, ldionne

Differential Revision: https://reviews.llvm.org/D147356
</pre>
</div>
</content>
</entry>
<entry>
<title>[libc++] Revert "Protect users from relying on detail headers" &amp; related changes</title>
<updated>2022-03-01T13:20:24+00:00</updated>
<author>
<name>Louis Dionne</name>
<email>ldionne.2@gmail.com</email>
</author>
<published>2022-02-28T21:37:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=368faacac7525e538fa6680aea74e19a75e3458d'/>
<id>368faacac7525e538fa6680aea74e19a75e3458d</id>
<content type='text'>
This commit reverts 5aaefa51 (and also partly 7f285f48e77 and b6d75682f9,
which were related to the original commit). As landed, 5aaefa51 had
unintended consequences on some downstream bots and didn't have proper
coverage upstream due to a few subtle things. Implementing this is
something we should do in libc++, however we'll first need to address
a few issues listed in https://reviews.llvm.org/D106124#3349710.

Differential Revision: https://reviews.llvm.org/D120683
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit reverts 5aaefa51 (and also partly 7f285f48e77 and b6d75682f9,
which were related to the original commit). As landed, 5aaefa51 had
unintended consequences on some downstream bots and didn't have proper
coverage upstream due to a few subtle things. Implementing this is
something we should do in libc++, however we'll first need to address
a few issues listed in https://reviews.llvm.org/D106124#3349710.

Differential Revision: https://reviews.llvm.org/D120683
</pre>
</div>
</content>
</entry>
<entry>
<title>[libcxx][modules] protects users from relying on detail headers</title>
<updated>2022-02-26T09:00:25+00:00</updated>
<author>
<name>Christopher Di Bella</name>
<email>cjdb@google.com</email>
</author>
<published>2022-02-25T18:59:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5aaefa510ef055e8f044ca89e352d4313f3aba49'/>
<id>5aaefa510ef055e8f044ca89e352d4313f3aba49</id>
<content type='text'>
libc++ has started splicing standard library headers into much more
fine-grained content for maintainability. It's very likely that outdated
and naive tooling (some of which is outside of LLVM's scope) will
suggest users include things such as &lt;__ranges/access.h&gt; instead of
&lt;ranges&gt;, and Hyrum's law suggests that users will eventually begin to
rely on this without the help of tooling. As such, this commit
intends to protect users from themselves, by making it a hard error for
anyone outside of the standard library to include libc++ detail headers.

Differential Revision: https://reviews.llvm.org/D106124
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
libc++ has started splicing standard library headers into much more
fine-grained content for maintainability. It's very likely that outdated
and naive tooling (some of which is outside of LLVM's scope) will
suggest users include things such as &lt;__ranges/access.h&gt; instead of
&lt;ranges&gt;, and Hyrum's law suggests that users will eventually begin to
rely on this without the help of tooling. As such, this commit
intends to protect users from themselves, by making it a hard error for
anyone outside of the standard library to include libc++ detail headers.

Differential Revision: https://reviews.llvm.org/D106124
</pre>
</div>
</content>
</entry>
<entry>
<title>[libc++] Replace includes of &lt;utility&gt; with specific detail headers</title>
<updated>2022-02-04T22:08:32+00:00</updated>
<author>
<name>Arthur O'Dwyer</name>
<email>arthur.j.odwyer@gmail.com</email>
</author>
<published>2022-02-04T18:09:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ea2206d70db1aaf1b0e2b01415292ec807108880'/>
<id>ea2206d70db1aaf1b0e2b01415292ec807108880</id>
<content type='text'>
Basically a rebase of D104980; most of that patch had already happened
via gradual drive-by changes, but this finishes it up.
Don't touch the inclusions from `&lt;__functional_base&gt;`, `&lt;__hash_table&gt;`,
or `&lt;__locale&gt;`; those could be removed if we propagated the
inclusions up to the includers of those files, but there are lots
of those includers.

`&lt;algorithm&gt;`, `&lt;functional&gt;`, and `&lt;memory&gt;` already include `&lt;utility&gt;`
at the top level. `&lt;iterator&gt;` did not, so I've added it there.

Differential Revision: https://reviews.llvm.org/D119020
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Basically a rebase of D104980; most of that patch had already happened
via gradual drive-by changes, but this finishes it up.
Don't touch the inclusions from `&lt;__functional_base&gt;`, `&lt;__hash_table&gt;`,
or `&lt;__locale&gt;`; those could be removed if we propagated the
inclusions up to the includers of those files, but there are lots
of those includers.

`&lt;algorithm&gt;`, `&lt;functional&gt;`, and `&lt;memory&gt;` already include `&lt;utility&gt;`
at the top level. `&lt;iterator&gt;` did not, so I've added it there.

Differential Revision: https://reviews.llvm.org/D119020
</pre>
</div>
</content>
</entry>
</feed>
