Ciao,

20 feb 2026, 23:15 da [email protected]:

> On Thu, 19 Feb 2026, martin_n_fuller wrote:
>
>> GCC 16 doesn't optimize away the unused return value from mpz_class 
>> post-increment in code like "mpz_class a = 1; a++;".
>>
>
> That's just normal C++ rules, nothing specific to GMP or gcc-16. There are 
> very few cases where optimizations are allowed to change the output of a 
> program (like the one you included in your email), and this is not one of 
> them. And a++ both increments and returns the old value, so it has to create 
> a separate object.
>
When I learned this, I started replacing every "a++" with "++a" wherever they 
are equivalent (i.e. when the return value is not used). And of course for the 
same reason I prefer "--i" to "i--".

I mean, I should have written the loop like:
  for (size_t k = 0; k < 1000000; ++k) {
    ++a;
  }

Should we add in the documentation a note: "Remember that ++C is more efficient 
that C++"? :-D

Ĝis,
mb
_______________________________________________
gmp-bugs mailing list
[email protected]
https://gmplib.org/mailman/listinfo/gmp-bugs

Reply via email to