Reply To cazfi
What I didn't realize at the time autotools failure was being investigated is that advance_count(); is not called ONLY within the iterator macro, but pick_random_tech_to_lose() calls it also before the iteration. That's another reason for the compiler to be worried about its return values.
That was not the main issue here, but raised #45542 about it - I got mostly ready patch for it, when testing various things, anyway.
I don't think we need this to S3_0 at the moment. There's no meson based build there, and autotools based build usually has the relevant warning turned off. Though it's possible that we need this later, for clang analyzer builds that handle compiler flags a bit differently from normal build.
Targeting to S3_0 after all, but only after 3.0.4 release (in 3.0.5 cycle). Patch attached. Will not wait with S3_1 and master, but push those ones soon.
I've got a compile error from pick_random_tech_to_lose() on a meson based build with -Doptimization=3, and gcc-12.
This looks somewhat familiar. Likely this is what we resolved with #42885 for the autotools side. What I didn't realize at the time autotools failure was being investigated is that advance_count(); is not called ONLY within the iterator macro, but pick_random_tech_to_lose() calls it also before the iteration. That's another reason for the compiler to be worried about its return values.