<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/62396>62396</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
<type_traits> use of `__is_convertible` identifier incompatible with GCC 13
</td>
</tr>
<tr>
<th>Labels</th>
<td>
libc++
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
frobtech
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
frobtech
</td>
</tr>
</table>
<pre>
In GCC 13, `__is_convertible` is a built-in, but `__is_convertible_to` is not.
libc++ uses `__is_convertible_to` when available, but its fallback implementation without the built-in declares a `struct __is_convertible` as part of its implementation. This makes GCC 13's parser get quite unhappy since it thinks `__is_convertible` can only be the built-in and not a struct tag, apparently.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx8Us1u2zAMfhr5QjSQacdJDj606TLsvntAy0zMVZY8iW6Rtx8ceC0KdDsZsEh-v5SzXANza7ZPBvGSYqfsBoNots8FzTrE1P79W3Sxv7U_Anw_HqGsDB7BNPZ8lnx2MbxyUuk8m8aCZCDoZvH6IGGZ62b9avascR0PUTfGPhv76KVzBp8MPsGcOf9n7W3gAPRK4mnBXWFEM1zI-47cC8g4eR45KKnEAG-iQ5wVdOB3etCz85R4oWwamzXNTuErVZRhoqQQL3eQz7c38HOQDCO9cH43aHffyJzgygq_Z1GGOQw0TTfIEhyDLGQkvHypcwF1FCAGf4OOP9Om0C-uAcFKWem6eEDTRImD-ttqaNG3VX-oDlRwWzZ73G7r_Q6Loe33PZYlO-7qw8HixVVbdpe6L5tDaRsqC2nRYmVr3FmLZYkb7Gt0vOv7HTlu9mRqyyOJ33j_Om5iuhaS88xtg9WhKTx17PNarY9Y13Kldll66OZrNrX1kjV_nFFRz62pjnqb-KyJRLOpvi2NWOz_V-16DioX4QQSXBwnuj_dY18zKebk20F1yqZ6NHgyeLqKDnO3cXE0eFoYrJ-HKcVf7NTg6a4qGzzdhf0JAAD__5lGEVc">