<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/libcxx/include/__functional/function.h, branch users/chapuni/cov/single/switch</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++] 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++] Switch _LIBCPP_NODEBUG to [[gnu::nodebug]] (#120720)</title>
<updated>2024-12-21T23:55:35+00:00</updated>
<author>
<name>Nikolas Klauser</name>
<email>nikolasklauser@berlin.de</email>
</author>
<published>2024-12-21T23:55:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=3b8faee6c6f44343c3f9de76c40ff305f72dfcd6'/>
<id>3b8faee6c6f44343c3f9de76c40ff305f72dfcd6</id>
<content type='text'>
This makes the placement of the attribute more consistent. This also
avoids clang dropping the attribute silently (see #120722).</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This makes the placement of the attribute more consistent. This also
avoids clang dropping the attribute silently (see #120722).</pre>
</div>
</content>
</entry>
<entry>
<title>[libc++] Granularize &lt;new&gt; includes (#119964)</title>
<updated>2024-12-17T10:29:16+00:00</updated>
<author>
<name>Nikolas Klauser</name>
<email>nikolasklauser@berlin.de</email>
</author>
<published>2024-12-17T10:29:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=59890c13343af9e308281b3c76bac425087f4f8a'/>
<id>59890c13343af9e308281b3c76bac425087f4f8a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[libc++] Remove &lt;stddef.h&gt; includes from the granularized &lt;cstddef&gt; headers (#114788)</title>
<updated>2024-11-06T09:38:19+00:00</updated>
<author>
<name>Nikolas Klauser</name>
<email>nikolasklauser@berlin.de</email>
</author>
<published>2024-11-06T09:38:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5acc4a3dc0e2145d2bfef47f1543bb291c2b866a'/>
<id>5acc4a3dc0e2145d2bfef47f1543bb291c2b866a</id>
<content type='text'>
We can define some of these aliases without having to include the system
&lt;stddef.h&gt; and there doesn't seem to be much of a reason we shouldn't do
it this way.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We can define some of these aliases without having to include the system
&lt;stddef.h&gt; and there doesn't seem to be much of a reason we shouldn't do
it this way.</pre>
</div>
</content>
</entry>
<entry>
<title>[libc++][RFC] Always define internal feature test macros (#89178)</title>
<updated>2024-10-12T07:49:52+00:00</updated>
<author>
<name>Nikolas Klauser</name>
<email>nikolasklauser@berlin.de</email>
</author>
<published>2024-10-12T07:49:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ba87515fea90b5d55836a8e3be63a7e683ce299d'/>
<id>ba87515fea90b5d55836a8e3be63a7e683ce299d</id>
<content type='text'>
Currently, the library-internal feature test macros are only defined if
the feature is not available, and always have the prefix
`_LIBCPP_HAS_NO_`. This patch changes that, so that they are always
defined and have the prefix `_LIBCPP_HAS_` instead. This changes the
canonical use of these macros to `#if _LIBCPP_HAS_FEATURE`, which means
that using an undefined macro (e.g. due to a missing include) is
diagnosed now. While this is rather unlikely currently, a similar change
in `&lt;__configuration/availability.h&gt;` caught a few bugs. This also
improves readability, since it removes the double-negation of `#ifndef
_LIBCPP_HAS_NO_FEATURE`.

The current patch only touches the macros defined in `&lt;__config&gt;`. If
people are happy with this approach, I'll make a follow-up PR to also
change the macros defined in `&lt;__config_site&gt;`.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently, the library-internal feature test macros are only defined if
the feature is not available, and always have the prefix
`_LIBCPP_HAS_NO_`. This patch changes that, so that they are always
defined and have the prefix `_LIBCPP_HAS_` instead. This changes the
canonical use of these macros to `#if _LIBCPP_HAS_FEATURE`, which means
that using an undefined macro (e.g. due to a missing include) is
diagnosed now. While this is rather unlikely currently, a similar change
in `&lt;__configuration/availability.h&gt;` caught a few bugs. This also
improves readability, since it removes the double-negation of `#ifndef
_LIBCPP_HAS_NO_FEATURE`.

The current patch only touches the macros defined in `&lt;__config&gt;`. If
people are happy with this approach, I'll make a follow-up PR to also
change the macros defined in `&lt;__config_site&gt;`.</pre>
</div>
</content>
</entry>
<entry>
<title>[libc++] Replace `__compressed_pair` with `[[no_unique_address]]` (#76756)</title>
<updated>2024-09-16T09:08:57+00:00</updated>
<author>
<name>Nikolas Klauser</name>
<email>nikolasklauser@berlin.de</email>
</author>
<published>2024-09-16T09:08:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=27c83382d83dce0f33ae67abb3bc94977cb3031f'/>
<id>27c83382d83dce0f33ae67abb3bc94977cb3031f</id>
<content type='text'>
This significantly simplifies the code, improves compile times and
improves the object layout of types using `__compressed_pair` in the
unstable ABI. The only downside is that this is extremely ABI sensitive
and pedantically breaks the ABI for empty final types, since the address
of the subobject may change. The ABI of the whole object should not be
affected.

Fixes #91266
Fixes #93069</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This significantly simplifies the code, improves compile times and
improves the object layout of types using `__compressed_pair` in the
unstable ABI. The only downside is that this is extremely ABI sensitive
and pedantically breaks the ABI for empty final types, since the address
of the subobject may change. The ABI of the whole object should not be
affected.

Fixes #91266
Fixes #93069</pre>
</div>
</content>
</entry>
<entry>
<title>[libc++][NFC] Replace _LIBCPP_NORETURN and TEST_NORETURN with [[noreturn]] (#80455)</title>
<updated>2024-09-11T06:59:46+00:00</updated>
<author>
<name>Nikolas Klauser</name>
<email>nikolasklauser@berlin.de</email>
</author>
<published>2024-09-11T06:59:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=748023dc3210533df2c1c6efc8af1b5954493701'/>
<id>748023dc3210533df2c1c6efc8af1b5954493701</id>
<content type='text'>
`[[__noreturn__]]` is now always available, so we can simply use the
attribute directly instead of through a macro.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`[[__noreturn__]]` is now always available, so we can simply use the
attribute directly instead of through a macro.</pre>
</div>
</content>
</entry>
<entry>
<title>[libc++][NFC] Replace _NOEXCEPT and _LIBCPP_CONSTEXPR macros with the keywords in C++11 code (#96387)</title>
<updated>2024-06-23T20:03:41+00:00</updated>
<author>
<name>Nikolas Klauser</name>
<email>nikolasklauser@berlin.de</email>
</author>
<published>2024-06-23T20:03:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1f98ac095e35f12a85d71101269df00279faa55c'/>
<id>1f98ac095e35f12a85d71101269df00279faa55c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[libc++] Enable modernize-use-equals-delete (#93293)</title>
<updated>2024-06-18T08:51:57+00:00</updated>
<author>
<name>Nikolas Klauser</name>
<email>nikolasklauser@berlin.de</email>
</author>
<published>2024-06-18T08:51:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=bbe4a80605619dcb819ccfee016cf1355fb00af2'/>
<id>bbe4a80605619dcb819ccfee016cf1355fb00af2</id>
<content type='text'>
Differential Revision: https://reviews.llvm.org/D121213</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Differential Revision: https://reviews.llvm.org/D121213</pre>
</div>
</content>
</entry>
<entry>
<title>[libc++] Make the __availability header a sub-header of __config (#93083)</title>
<updated>2024-05-29T01:29:11+00:00</updated>
<author>
<name>Louis Dionne</name>
<email>ldionne.2@gmail.com</email>
</author>
<published>2024-05-29T01:29:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=04f01a2b9cedc291fa7dd941de841dc957c75a33'/>
<id>04f01a2b9cedc291fa7dd941de841dc957c75a33</id>
<content type='text'>
In essence, this header has always been related to configuration of
the library but we didn't want to put it inside &lt;__config&gt; due to
complexity reasons. Now that we have sub-headers in &lt;__config&gt;, we
can move &lt;__availability&gt; to it and stop including it everywhere since
we already obtain the required macros via &lt;__config&gt;.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In essence, this header has always been related to configuration of
the library but we didn't want to put it inside &lt;__config&gt; due to
complexity reasons. Now that we have sub-headers in &lt;__config&gt;, we
can move &lt;__availability&gt; to it and stop including it everywhere since
we already obtain the required macros via &lt;__config&gt;.</pre>
</div>
</content>
</entry>
</feed>
