On Mon, 22 Jun 2026, Kaitao Cheng <[email protected]> wrote: > Add *_mutable() iterator variants for list, hlist and llist. The new > helpers are variadic and support both forms. In the common case, the > caller omits the temporary cursor and the macro creates a unique internal > cursor with typeof(pos) and __UNIQUE_ID(). If a loop really needs an > explicit temporary cursor, the caller can still pass it and the helper > keeps the existing *_safe() behaviour. > > For example, a call site may use the shorter form: > > list_for_each_entry_mutable(pos, head, member) > > or keep the explicit temporary cursor form: > > list_for_each_entry_mutable(pos, tmp, head, member)
I'm unconvinced it's a good idea to allow two forms with macro trickery, *especially* when it's not the last argument you can omit. I think it's a footgun. IMO stick with the first form only, and there'll always be the _safe variant that can be used when the temp pointer is needed. BR, Jani. -- Jani Nikula, Intel
