In article <bb1c3cc8-0bae-473a-808d-b0abf4cb5...@gmx.de>, Roland Illig <roland.il...@gmx.de> wrote: >Am 10.07.2024 um 03:12 schrieb Christos Zoulas: > >src/tests/lib/libc/c063/t_fchmodat.c >> - ATF_REQUIRE(st.st_mode = 0600); >> + ATF_REQUIRE(st.st_mode == 0600); > >Should we do something to detect bugs like these mechanically? > >ATF_REQUIRE(cond) currently expands to "if (!(cond))", and I guess due >to the parentheses around "cond", GCC does not warn about the assignment >in the condition. > >One idea is to rewrite ATF_REQUIRE to be "if (cond) {} else", which >would make GCC complain directly. > >Another idea is to make lint warn about the pattern "!(a = b)", even >though its output is not looked upon by many people.
Yes, I was thinking along the same lines. If the gcc construct does not produce warnings, I would go with that. christos