Say, I want to implement a VM using GNU lightning. Code objects would be first-class objects. Some information (e.g. for the garbage collector) would need to be attached to such code objects to remove the need for an extra pointer indirection.
An example:
jit_align (16);
jit_data_ui (meta_information);
jit_align (16);
entry = label_indirect ();
/* the actual code */
...
unsigned char *addr = jit_address (entry);
unsigned int info = * (unsigned int *) (addr - 16);