I am not sure to understand what if_marked or deletable means in GTY context
"Deletable" just sets the pointer to NULL on garbage collection, in practice making it a weak pointer. "If_marked" provides a callback for a bit more sophisticated weak pointers, so that an user-provided routine can tell the collector to mark things even when it would not mark them, like the explanation in http://gcc.gnu.org/onlinedocs/gccint/GTY-Options.html says. -- Laurynas