; Add a FIXME regarding the GMP memory allocation functions.
* src/bignum.c (init_bignum): Add a warning about the technically incorrect use of the GMP memory allocation functions.
This commit is contained in:
parent
b30b33ed9b
commit
ae169bda2c
1 changed files with 9 additions and 0 deletions
|
@ -53,6 +53,15 @@ init_bignum (void)
|
|||
{
|
||||
eassert (mp_bits_per_limb == GMP_NUMB_BITS);
|
||||
integer_width = 1 << 16;
|
||||
|
||||
/* FIXME: The Info node `(gmp) Custom Allocation' states: "No error
|
||||
return is allowed from any of these functions, if they return
|
||||
then they must have performed the specified operation. [...]
|
||||
There's currently no defined way for the allocation functions to
|
||||
recover from an error such as out of memory, they must terminate
|
||||
program execution. A 'longjmp' or throwing a C++ exception will
|
||||
have undefined results." But xmalloc and xrealloc do call
|
||||
'longjmp'. */
|
||||
mp_set_memory_functions (xmalloc, xrealloc_for_gmp, xfree_for_gmp);
|
||||
|
||||
for (int i = 0; i < ARRAYELTS (mpz); i++)
|
||||
|
|
Loading…
Add table
Reference in a new issue