https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111028

--- Comment #4 from Patrick Palka <ppalka at gcc dot gnu.org> ---
Or simply just:

diff --git a/111028.C b/111028.C
index ed4106e..85f1c2a 100644
--- a/111028.C
+++ b/111028.C
@@ -15,7 +15,7 @@ class list_t
        public:
                list_t() { _head.next = _head.prev = &_head; }
                bool is_empty() const { return _head.next == &_head; }
-               T* entry(list_node_t &node) const { return &node == &_head ?
NULL : (T*)((char*)&node - (char*)_node_offset); }
+               T* entry(list_node_t &node) const { return &node == &_head ?
NULL : (T*)((char*)&node - (size_t)_node_offset); }

                void add(T &node)
                {

Reply via email to