bwendling wrote: > I'd expect some kind of diagnostic when the specified field doesn't have a > corresponding counted_by field.
So there's a complication with that. The use case for this builtin is to automatically set the `count` field during allocation in the Linux kernel. (It could be used elsewhere, but Linux is why we're doing this now.) From my understanding, @kees wants to have a way to get the `count` field without having to change the allocator's prototype. (Is that correct?) That's not currently possible, or at least we haven't found a way to do it yet. The idea is to do something like: ```c #define kmalloc(type, COUNT) ({ \ ... \ if (__builtin_get_counted_by(__p->FAM)) \ *__builtin_get_counted_by(__p->FAM) = COUNT; \ __p; \ }) ``` We want the builtin to return a `nullptr` for this reason (because Clang doesn't have a `__builtin_has_attribute` builtin). But also we can use the same `kmalloc` for all allocations and not have to have one special `kmalloc` for a FAM that uses `counted_by` and one for every other allocation. As you can see, this builtin has a very limited utility. Obviously, one wouldn't write: ```c *__builtin_get_counted_by(ptr->FAM) = 42; ``` when using `ptr->count = 42` is far easier. https://github.com/llvm/llvm-project/pull/102549 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits