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

Reply via email to