https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108432
Bug ID: 108432 Summary: Analyzer fails to detect out-of-bounds issues within loops Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: analyzer Assignee: dmalcolm at gcc dot gnu.org Reporter: dmalcolm at gcc dot gnu.org Target Milestone: --- Consider: https://samate.nist.gov/SARD/test-cases/149169/versions/2.0.0 Without optimization, gcc trunk with -fanalyzer fails to report the out-of-bounds write: https://godbolt.org/z/brx5cT18o At -O1 and above (https://godbolt.org/z/PdvcE5MhE), we get: <source>: In function 'main': <source>:22:25: warning: iteration 9 invokes undefined behavior [-Waggressive-loop-optimizations] 22 | bStr[i] = (char)i + 'a'; /* FLAW */ | ~~~~~~~~^~~~~~~~~~~~~~~ <source>:21:23: note: within this loop 21 | for (i = 1; i <= 10; ++i) | ~~^~~~~ The analyzer probably ought to try to at least check the final iteration of a loop (I believe it currently will at least detect issues in the initial iteration of a loop).