https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113540
Bug ID: 113540 Summary: missing -Warray-bounds warning with malloc and a simple loop Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: vincent-gcc at vinc17 dot net Target Milestone: --- Consider the following code: #include <stdlib.h> int main (void) { volatile char *t; t = malloc (4); for (int i = 0; i <= 4; i++) t[i] = 0; return 0; } With -O2 -Warray-bounds, I do not get any warning. Replacing the loop by "t[4] = 0;" gives a warning "array subscript 4 is outside array bounds of 'volatile char[4]'" as expected. Or replacing the use of malloc() by "volatile char t[4];" also gives a warning. Tested with gcc (Debian 20240117-1) 14.0.1 20240117 (experimental) [master r14-8187-gb00be6f1576]. But previous versions do not give any warning either.