https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69825
Bug ID: 69825 Summary: False -Wdiv-by-zero warning when it should be short-circuited Product: gcc Version: 5.3.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: dgilbert at redhat dot com Target Milestone: --- gcc version 5.3.1 20151207 (Red Hat 5.3.1-2) (GCC) $ cat bug.c void bug(void) { static unsigned int counter = 0; static const unsigned int frequency = 0; if (frequency && (!(counter % frequency))) { } counter++; } $ gcc bug.c -Wall -c -O2 bug.c: In function ‘bug’: bug.c:6:33: warning: division by zero [-Wdiv-by-zero] if (frequency && (!(counter % frequency))) { ^ I'm told it also triggers on trunk, 4.6, 5.3 but not 4.8.5