> Does my test program do anything interesting on your system? No. Except for compiling with warnings ;-) > Python has: > typedef void (*freefunc)(void *); > > That looks weird to me, but I'm not a language guy. That's simply a C type definition for a pointer type named `freefunc`, which can hold the address of any function `foo` which has the signature `void foo(void *)`. This pointer type is used in various locations by python: https://github.com/python/cpython/search?p=2&q=freefunc So Python's global typedef has the same name as a function argument in our headers. The only potential problem I see here that within one of our functions which has `freefunc` as an argument name, the global `freefunc` type name would not be available. You can safely ignore this warning. (Either omit `-Wshadow` entirely, or disable it locally using a #pragma.) > No problems on 1.1.1g from Fedora. I was able to trace back the warning to commit 739a1eb1961cdc3b1597a040766f3cb359d095f6 from 2016, which is included in OpenSSL Versions 1.1.0 and higher. So you should get the warning in 1.1.1g too, unless Fedora patched the source code. https://github.com/openssl/openssl/commit/739a1eb1961cdc3b1597a040766f3cb359d095f6 I don't see any reason to change our code, IMHO the clash is Python's fault: it declares a global typedef with a short name that has no python-specific prefix. HTH, Matthias