[Bug c/102346] New: Missing warning for array bounds
fredrik.hederstierna@securitas-direct.com
gcc-bugzilla@gcc.gnu.org
Wed Sep 15 12:14:21 GMT 2021
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102346
Bug ID: 102346
Summary: Missing warning for array bounds
Product: gcc
Version: 11.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: fredrik.hederstierna@securitas-direct.com
Target Milestone: ---
Created attachment 51467
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=51467&action=edit
example test file
There is no warning for array bounds overrun with this code.
Compiled with Gcc-11.2.0
gcc -o test string_array_concat.c -W -Wall -Wextra -Warray-bounds=2 -O2
Gives other warning from printf usage only
In file included from /usr/include/stdio.h:867,
from string_array_concat.c:1:
In function ‘printf’,
inlined from ‘main’ at string_array_concat.c:13:3:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:107:10: warning: ‘%s’ directive
argument is null [-Wformat-overflow=]
107 | return __printf_chk (__USE_FORTIFY_LEVEL - 1, __fmt, __va_arg_pack
());
|
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Though eg CLANG does give warning for this:
fredrik@deadbolt ~/test$ clang -o test string_array_concat.c
string_array_concat.c:13:30: warning: array index 1 is past the end of the
array (which contains 1 element) [-Warray-bounds]
printf("item_at_1 = %s\n", item[1]);
^ ~
string_array_concat.c:3:1: note: array 'item' declared here
static const char *item[1] = { "TestString" };
^
string_array_concat.c:15:10: warning: array index 1 is past the end of the
array (which contains 1 element) [-Warray-bounds]
return item[1];
^ ~
string_array_concat.c:3:1: note: array 'item' declared here
static const char *item[1] = { "TestString" };
^
2 warnings generated.
More information about the Gcc-bugs
mailing list