Replaced with an expression that only casts (void*) values. While casting between void * and foo * generally allowed (upto alignment issues), the same cannot be said for casting between void ** and foo ** values, which is not okay in general. While the C standard which says "A pointer to void shall have the same representation and alignment requirements as a pointer to a character type.” likely implies the cast is sound because void * and char * values have the same representation, perhaps it is better to rewrite the expression to not require a careful reading of the standard to be correct.
Backport of secp256k1#875