1extern void *malloc(__SIZE_TYPE__); 2typedef struct T T; 3struct T { 4 void (*destroy)(void *); 5}; 6void destroy(union { void *this; } __attribute__((transparent_union))); 7static const typeof(destroy) *_destroy = (const typeof(destroy)*)destroy; 8void destroy(void *this); 9static T *create_empty(void) 10{ 11 T *this = malloc(sizeof(*this)); 12 *this = (typeof(*this)){ _destroy }; 13 return this; 14} 15void openssl_crl_load(void) 16{ 17 T *this = create_empty(); 18 destroy(this); 19} 20