> Using `git grep` I see 230 instances of 'xmalloc' and 261 instances of > 'xcalloc'. After the Coccinelle transformation, these are down to 194 and > 190, respectively, because the rest allocate in the same line as the > definition. It's worth thinking about the macro pattern for those cases. Thanks for reporting the coccinelle experiment! As we follow a strict declare before code, and we do not know if further declarations make use of this already, e.g. given struct foo *f = xmalloc(sizeof(*f)); struct bar b = &f->baz; we cannot split up the line declaring and assigning f, but the macro has to recreate the assignment upon declaration, for that we'd need to have something like ALLOCATE_TYPE(type, name); which over complicates things IMHO. Maybe it is worth identifying the pattern where 'f' is not used in further declarations, such that we can make patches as - struct foo *f = xmalloc(sizeof(*f)); + struct foo *f; struct baz b = &unrelated; + + ALLOCATE(f); + Thanks, Stefan