// PR c++/52596 struct msgpack_zone_finalizer_array { int* tail; }; struct msgpack_zone { msgpack_zone_finalizer_array finalizer_array; }; struct zone : public msgpack_zone { template <typename T> T* allocate(); }; template <typename T> T* zone::allocate() { --msgpack_zone::finalizer_array.tail; }