<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/68138>68138</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Cannot include `<format>` with libstdc++
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
davidstone
</td>
</tr>
</table>
<pre>
The following valid translation unit
```cpp
#include <format>
```
causes clang with libstdc++ to fail with
```console
In file included from <source>:1:
In file included from /opt/compiler-explorer/gcc-snapshot/lib/gcc/x86_64-linux-gnu/14.0.0/../../../../include/c++/14.0.0/format:44:
/opt/compiler-explorer/gcc-snapshot/lib/gcc/x86_64-linux-gnu/14.0.0/../../../../include/c++/14.0.0/limits:1995:1: error: use of undeclared identifier '_Float128'
1995 | __glibcxx_float_n(128)
| ^
/opt/compiler-explorer/gcc-snapshot/lib/gcc/x86_64-linux-gnu/14.0.0/../../../../include/c++/14.0.0/limits:1903:27: note: expanded from macro '__glibcxx_float_n'
1903 | struct numeric_limits<_Float##BITSIZE> \
| ^
<scratch space>:483:1: note: expanded from here
483 | _Float128
| ^
In file included from <source>:1:
/opt/compiler-explorer/gcc-snapshot/lib/gcc/x86_64-linux-gnu/14.0.0/../../../../include/c++/14.0.0/format:1281:24: error: unknown type name '_Float128'
1281 | using __float128_t = _Float128;
| ^
/opt/compiler-explorer/gcc-snapshot/lib/gcc/x86_64-linux-gnu/14.0.0/../../../../include/c++/14.0.0/format:2857:2: error: unknown type name '__float128_t'
2857 | __float128_t _M_f128;
| ^
/opt/compiler-explorer/gcc-snapshot/lib/gcc/x86_64-linux-gnu/14.0.0/../../../../include/c++/14.0.0/format:2862:22: error: member initializer '_M_none' does not name a non-static data member or base class
2862 | _Arg_value() : _M_none() { }
| ^~~~~~~~~
/opt/compiler-explorer/gcc-snapshot/lib/gcc/x86_64-linux-gnu/14.0.0/../../../../include/c++/14.0.0/format:2913:38: error: use of undeclared identifier '__float128_t'
2913 | else if constexpr (is_same_v<_Tp, __float128_t>)
| ^
/opt/compiler-explorer/gcc-snapshot/lib/gcc/x86_64-linux-gnu/14.0.0/../../../../include/c++/14.0.0/format:2939:25: error: use of undeclared identifier '_M_handle'
2939 | std::construct_at(&_M_handle, __v);
| ^
/opt/compiler-explorer/gcc-snapshot/lib/gcc/x86_64-linux-gnu/14.0.0/../../../../include/c++/14.0.0/format:3109:38: error: use of undeclared identifier '_Float128'
3109 | else if constexpr (is_same_v<_Td, _Float128>)
| ^
/opt/compiler-explorer/gcc-snapshot/lib/gcc/x86_64-linux-gnu/14.0.0/../../../../include/c++/14.0.0/format:3110:37: error: no member named '__float128_t' in namespace 'std::__format'
3110 | return type_identity<__format::__float128_t>();
| ~~~~~~~~~~^
/opt/compiler-explorer/gcc-snapshot/lib/gcc/x86_64-linux-gnu/14.0.0/../../../../include/c++/14.0.0/format:3114:37: error: no member named '__float128_t' in namespace 'std::__format'
3114 | return type_identity<__format::__float128_t>();
| ~~~~~~~~~~^
/opt/compiler-explorer/gcc-snapshot/lib/gcc/x86_64-linux-gnu/14.0.0/../../../../include/c++/14.0.0/format:3193:48: error: no member named '__float128_t' in namespace 'std::__format'
3193 | else if constexpr (is_same_v<_Tp, __format::__float128_t>)
| ~~~~~~~~~~^
10 errors generated.
Compiler returned: 1
```
See it live: https://godbolt.org/z/5MGxzTYb4
@pranavk: This began with https://github.com/llvm/llvm-project/commit/457f582ffe23e951380bc345c4c96ec053c09681
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzkmE2P4ygTxz8NuaCOMPj1kEM63Xk0hz5NX569WATKCTsYLMDpzBzms6-wnXQyk-ndXmlXaS2KYsu8Vf34U2XDvVdbA7BA2T3KHma8DzvrFpLvlfTBGphtrPy6eN4BbqzW9kWZLd5zrSQOjhuveVDW4N6ogMgDIsvpPyfjT3Td9IQyZYTuJWDEVo11LQ-IPf7Q_HwMwXsPHgvNzRa_qLDDWm18kALRe0TvcbC44UoPVdfntsZbDePTTwY3SgOejJC4cbaNpnjbOwHRFLZMEFu-2ZyubRcQXQvbdkqDu4NDp60Dh-h6K8SdN7zzOxubaLUZHyK6PpR5nad3Wpn-cLc1PaLrJJ2TOUF0PZ___DfNGicanT3vcGS3TNOTuTdhmFatCj5irKpsoonBOeviTe8B2wb3RoLQ3IHESoIJqlHgMKJFvdaWh4SWiBajUziOg1GxwnW91WojDoe6iY1qg2g5tKymlkOJLVH2eJtECENsSYtIwtgAA5pDx81JWy0Xzg4gfnb2FQhhg5ux-OB6EbDpW3BK1Me5ViNIRBmi7P7T8-dPvz0i9ojfLChb_ZokW3nheBA77Dt-3CppyY5LfN2fHTg4jpmWo9mva_yryd65TW9ilU8bMqFlNI2ml8I3X4x9MTh87QAb3sKv1E7LZFrc3scwW48CSGhZB4zYwxk-dn_bwj8hoWUWNU__ApEzb1-hxP4nxcdyAaV-qpsPhiOPKOgljxbaDTisjAqKa_VtCohPtbEGEC2wtODjNhthcWysufOBByWw5IEfB7AOb7iHmDK9PwHM6RnAeum29Z7rHtAQP3Gc_zTT-KS4x6h4uEL0-1RukmyVxIDEyvclneuiqxJ2ITqMQXvAqsHxnSLAoYu9S-Vrz1uo9zHqPneIri7kGYPVrWeoM36sipfsffye6h03UsM5PFYNjvogY5xmy4FZzFV1TEslovlZt4hsHzF9mD3MElL9DaX9HPDjQO-XmRyYvWaCD6QxliQkXooLcsYe41eMbvLKtsTKDHXD60esP0mrrqfBz6AmZGDgIPRuzDH1uBThawRYn8wZ-19u1_K6FL-fyu2iTf8FtOl_Em3FhhfefxRtNWacd-SZt1gfI8JldPnzcmUxEjI67fEWDDgeQM7HmtW0OpMeIHqHkze-6D8DYBWwVvvhe2EXQhc_jhBdxyW0cmN1mFu3RXT9DdF19vS_w7fn_2_Si6_7lHSOG77_Eod43imPN7DlZjwh-GFIFXb9Zi5sG4Wi98fLXefs7yAmhbUq3qRZ0WQlbRqgDKosYSXZCJZmIhVVDoJkTJAqL5OZXDBZsYrPYJHkVc6yLCvz2W7RSFnIpiRQNHkhU5mmJaU5gTxllRCcz9SCEsoSQlhSZIzk85xRxpOsKTJWJklWoZRAy5WeRxsjh5nyvodFXiasnGm-Ae2HcxpKDbzgoRJRirKHmVsMfm36rUcp0coH_zpKUEHDYsVNfIM8HcLk5OIcJidXzlhmvdOLdzMdDPOIrgfD_wgAAP__0vpWhQ">