On 2018-05-19 23:27:30 +0200, Niels Möller wrote: > Vincent Lefevre <vinc...@vinc17.net> writes: > > > I've just noticed that GMP provides mpz_inits, so that mpz_ptr is > > necessary: Since type checking cannot be done with variadic functions, > > one must provide types compatible with mpz_ptr, or the behavior is > > undefined. This is not an issue for mpz_t variables, but the last > > argument needs to be (mpz_ptr) 0 or equivalent. > > Isn't (void*) 0 good enough to get defined behavior? (For which NULL is > an alias in most C (but not C++) compilers).
No, pointers to different types may have different representations, and in particular, different sizes. Not sure whether there are platforms on which this is the case. But also using a wrong pointer type might break the generated code with aggressive optimization (in particular with LTO). -- Vincent Lefèvre <vinc...@vinc17.net> - Web: <https://www.vinc17.net/> 100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/> Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon) _______________________________________________ gmp-devel mailing list gmp-devel@gmplib.org https://gmplib.org/mailman/listinfo/gmp-devel