<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/102293>102293</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[clang] Clang 19 reports "arithmetic on a pointer to an incomplete type" where Clang 18 and GCC do not
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
vient
</td>
</tr>
</table>
<pre>
https://godbolt.org/z/sYPWjWqbo
```cpp
struct _Destroy_aux {
template <typename _ForwardIterator> static void __destroy(_ForwardIterator) {
_ForwardIterator __first;
++__first;
}
};
template <typename _ForwardIterator> void _Destroy(_ForwardIterator __last) {
_Destroy_aux::__destroy(__last);
}
template <typename> struct allocator;
template <typename> struct allocator_traits;
template <typename _Tp> struct allocator_traits<allocator<_Tp>> {
using pointer = _Tp *;
};
struct FileInfo;
struct __alloc_traits : allocator_traits<allocator<FileInfo>> {};
__alloc_traits::pointer _M_finish;
template <typename = int> struct vector {
~vector() { _Destroy(_M_finish); }
};
struct DatasetFactory {
virtual ~DatasetFactory();
};
struct FileSystemDatasetFactory : DatasetFactory {
vector<> v;
};
```
Minified from Apache Arrow sources. Removing template from `vector` makes all compilers report the same error.
Is it a problem with Clang or with Arrow?
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMVU-PozYU_zTm8rSRMSEJBw6ZUKo5rFS1lVY9IQMvwVuDqf3IND3sZ68MJEN2ZmcjjRhhnn__3ostnVOnDjFl8ROLs0AO1BibnhV2FJSmvqQNUe9YtGciZyI_mbo0mlbGnpjI_2Mid3_99uXrl39Kw3jG-H5-bvj0V_X9tOLIDhVBkaEjay6FHP4Ftn2aPgIQtr2WhMCiA1167GSLUOTGvkhbPxNaScay6BdwJElVcDaqhqKoJzQmdm9qRbLEhzdgUBRHZR2x6FrExBMTT2-WgW2z2dU2uy1Pz4dlT3qzH8qFotDS0b3qZVi-A9H-zvF1x6umm9AfipsiHFshtTbVpO-nnt7bVpCVitxDifzZf4hwWGg5TMW-ftG_wanuBL1RHaEFFmUeE5jY35m_lzLT5Urjc3c0738tipF7lgIs2v9M3yveTeQb6nvUqXdX8cXn4qg65ZpHkvNOVUeL9M5Y-XlZZPNtWmJiN4_P3aDd2MZB-WiYZ4JMknRIufSglyXRWVkapIZv9yUT8WON-OPiCNvvKaL9R6yTu-gw_o7ep7keN9PrZ9Wpo8Iajta0sO9l1SDsrTUv4MxgK3Qr-B1bc_YzdYt9LGYbPvNtOLTyb3R-HKAyba80WgcWe2MJqEFwvkForbGrpdtnB4pAQm9NqbGFF0UNHLTsTmDs9DZqYVEe1GlUJ1EiA0zDrYi4WG_CMGjSzZofq1iu6zLiMW63cSjW_Cjjqko262RTBSoVXKz5jm95Em_icLWLsQ45T-L4WEVhGbI1x1YqvdL63PrjOlDODZiGXIgkCrQsUbvx1Bei8uKYEP4CsKnf8KkcTo6tuVaO3CsEKdLjVTHtiLPZV5jMuThgQkirqGnRH9Om80HMg08GZAeq82FqJAQ_5UwIeGnQ4hVqB7Kr4dfDAWoDnaFgsPr7S0hRM5SryrRM5F7c_O9Tb81XrIiJfDTrmMhnv-dU_B8AAP__uMsrJg">