https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101574
Bug ID: 101574 Summary: gcc/sparseset.h:215:20: error: suggest parentheses around assignment used as truth value [-Werror=parentheses] Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: bootstrap Assignee: unassigned at gcc dot gnu.org Reporter: tschwinge at gcc dot gnu.org Target Milestone: --- This is strange. In one build of GCC of native x86_64-pc-linux-gnu (standard bootstrap, no offloading), I'm suddenly (meaning: "it worked yesterday") running into a bootstrap failure: [...] In file included from [...]/source-gcc/gcc/lra-lives.c:43: [...]/source-gcc/gcc/lra-lives.c: In function ‘void make_hard_regno_dead(int)’: [...]/source-gcc/gcc/sparseset.h:215:20: error: suggest parentheses around assignment used as truth value [-Werror=parentheses] 215 | && (((ITER) = sparseset_iter_elm (SPARSESET)) || 1); \ | ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [...]/source-gcc/gcc/lra-lives.c:304:3: note: in expansion of macro ‘EXECUTE_IF_SET_IN_SPARSESET’ 304 | EXECUTE_IF_SET_IN_SPARSESET (pseudos_live, i) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ [...] cc1plus: all warnings being treated as errors make[3]: *** [lra-lives.o] Error 1 make[3]: *** Waiting for unfinished jobs.... rm fsf-funding.pod lto-dump.pod gpl.pod cpp.pod gfdl.pod gcc.pod gcov.pod gdc.pod gcov-dump.pod gfortran.pod gcov-tool.pod gccgo.pod make[3]: Leaving directory `[...]/build-gcc/gcc' make[2]: *** [all-stage2-gcc] Error 2 make[2]: Leaving directory `[...]/build-gcc' make[1]: *** [stage2-bubble] Error 2 make[1]: Leaving directory `[...]/build-gcc' make: *** [all] Error 2 Reproduced twice. This is using GCC commit a61f6afbee370785cf091fe46e2e022748528307 sources, clean. 'gcc/lra-lives.c', 'gcc/sparseset.h' have last been modified months ago. I'm not seeing this in a corresponding offloading-enabled build. (That doesn't make sense -- the GCC bootstrap is the same?)