Cast between pointer-to-function and pointer-to-object is an extension
The genesis of this warning is that SDL_GL_GetProcAddress is defined as returning void*, which is an object pointer. It seems it should be defined as returning a function pointer, i.e void (*fptr)(void). Until SDL is fixed, how can I use SDL_GL_GetProcAddress portably, i.e without the warning?
If you want to make the pedantic C++ compiler happy, I guess you could create a wrapper in C that does your proposed conversion. clang doesn’t throw a warning there, although it may invoke implementation-defined behavior. The specification text is too confusing for me.
All these things don’t really make the code more portable (and I think the code works on all platforms that SDL supports anyway), they just shut the warning up.