bpo-35059: Convert PyObject_INIT() to function by vstinner · Pull Request #10077 · python/cpython

I expect same fix is required for third party extensions.

Right. Do you consider that it's an issue? It's just a compiler warning. IMHO it's a good thing that developers cast explicitly, no? A function (macro currently) which accepts any type is just weird.

If you prefer, I can rename the macro to _PyObject_INIT() and add:

#define PyObject_INIT(obj) _PyObject_INIT((PyObjcet *)(obj))

So the "function" accepts any type, as your void* suggestion.

@methane: what do you think?