https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79546
Bug ID: 79546 Summary: Strange error: missed loop optimization, the loop counter may overflow [-Werror=unsafe-loop-optimizations] Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: rjones at redhat dot com Target Milestone: --- #include <stdio.h> #include <stdlib.h> int f (size_t len); int main (int argc, char *argv[]) { size_t len; if (argc < 2) abort (); if (sscanf (argv[1], "%zu", &len) != 1) abort (); f (len); exit (0); } int f (size_t len) { size_t i; i = 0; while (i < len) { i += 0x1000; printf ("page %zu\n", i); } } ----------------------- When compiled with: $ gcc -O2 -Werror=unsafe-loop-optimizations test.c -o test test.c: In function ‘main’: test.c:25:9: error: missed loop optimization, the loop counter may overflow [-Werror=unsafe-loop-optimizations] while (i < len) { ^ test.c: In function ‘f’: test.c:25:9: error: missed loop optimization, the loop counter may overflow [-Werror=unsafe-loop-optimizations] while (i < len) { ^ cc1: some warnings being treated as errors ----------------------- What I don't understand is what the error means, nor how to correct it. ----------------------- $ gcc --version gcc (GCC) 7.0.1 20170204 (Red Hat 7.0.1-0.6) Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. From Fedora 26.