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) {