On 13-Jun-2015 14:32, rsw0x wrote:
http://dlang.org/garbage.htmlDo not take advantage of alignment of pointers to store bit flags in the low order bits: p = cast(void*)(cast(int)p | 1); // error: undefined behavior if this restriction is actually imposed - why does std.bitmanip.tagged{ClassRef,Pointer} even exist?
AFAIK the restriction was that pointers _themselves_ have to be stored at word-aligned addresses. This allows GC to scan memory cheaper w/o considering if some misaligned address may contain a pointer.
-- Dmitry Olshansky
