int foo(int a, int b) { return ((a = b) ? 1 : 0); // <= missed warning. } int bar(int a, int b) { if (a = b) // warning present. return 1; else return 0; }
-- Summary: missed diagnostic about assignment used as truth value. Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: pluto at agmk dot net GCC build triplet: i686-pld-linux GCC host triplet: i686-pld-linux GCC target triplet: i686-pld-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25733