在 2023/4/11 20:51, sisyphus 写道:
That is, the "mpfr_set_default_precision(201)" call made in foo() is
apparently ignored, and the initial default precision of 53 is output.

I've run this by the mpfr developers and they don't think it's an mpfr
issue. (Neither do I.)

Those 2 gcc-13.0.1 compilers enable MCF threads and I wonder if that's part
of the problem.
If someone could point me to a 13.0.1 compiler that is not MFC thread
enabled then I might be able to clarify that.
(All of my gcc-12 and earlier compilers do not enable MCF threads.)

It's because `__emutls_get_address()` returns two distinct values in consecutive calls with the same descriptor in the same thread, so the second reference to the thread local `__gmpfr_default_fp_bit_precision` (defined in 'set_dfl_prec.c') gets a fresh object with its default value.

This should not happen. Please give me some time to work on this.


--
Best regards,
LIU Hao

Attachment: OpenPGP_signature
Description: OpenPGP digital signature

_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to