On Tue, May 12, 2026 at 01:43:20PM +0800, Haochen Jiang wrote:
> On Linux/x86_64,
>
> 7199cf12773b1429c19cdd5b69950b2f09470e64 is the first bad commit
> commit 7199cf12773b1429c19cdd5b69950b2f09470e64
> Author: Marek Polacek <[email protected]>
> Date: Thu May 7 16:38:34 2026 -0400
>
> c++/reflection: fixes for comparing reflections [PR125208]
>
> caused
>
> FAIL: g++.dg/reflect/bases_of5.C -std=c++26 (test for excess errors)
Fixed:
gcc/testsuite/ChangeLog:
* g++.dg/reflect/bases_of5.C: Use decltype (sizeof 0) instead of
unsigned long.
---
gcc/testsuite/g++.dg/reflect/bases_of5.C | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gcc/testsuite/g++.dg/reflect/bases_of5.C
b/gcc/testsuite/g++.dg/reflect/bases_of5.C
index 1c713b22cda..a8549a0d97e 100644
--- a/gcc/testsuite/g++.dg/reflect/bases_of5.C
+++ b/gcc/testsuite/g++.dg/reflect/bases_of5.C
@@ -6,14 +6,14 @@ namespace std {
template <class _E> struct initializer_list {
typedef _E *const_iterator;
_E *_M_array;
- unsigned long _M_len;
+ decltype (sizeof 0) _M_len;
constexpr long size() { return _M_len; }
constexpr const_iterator begin() { return _M_array; }
constexpr const_iterator end() { return begin() + size(); }
};
template <typename> struct allocator_traits;
} // namespace std
-constexpr void *operator new(unsigned long, void *__p) { return __p; }
+constexpr void *operator new(decltype (sizeof 0), void *__p) { return __p; }
namespace std {
template <typename _Tp, typename... _Args>
constexpr void _Construct(_Tp *__p, _Args... __args) {
base-commit: a202c707bea3ff021b44aa00c0570798a30aae31
--
2.54.0