https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108051

            Bug ID: 108051
           Summary: Missing array-bounds warning when not using -ftracer
                    flag
           Product: gcc
           Version: 12.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: drfiemost at email dot it
  Target Milestone: ---

Created attachment 54061
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=54061&action=edit
test program

Compiling the attached program, where the key pointer might be unreferenced
when NULL, the warning only shows when using the -ftracer flag. Tested with gcc
version 12.2.0 and 11.3.0.



$ gcc -O2 -Wall -Werror  geometry.i
In function ‘HandleOverlayDef’,
    inlined from ‘HandleSectionBody’ at geometry.c:2789:18,
    inlined from ‘HandleSectionDef’ at geometry.c:2829:10,
    inlined from ‘HandleGeometryFile’ at geometry.c:2875:18:
geometry.c:2580:9: error: ‘strncpy’ output may be truncated copying 4 bytes
from a string of length 4 [-Werror=stringop-truncation]
 2580 |             }
geometry.c:2581:9: error: ‘strncpy’ output may be truncated copying 4 bytes
from a string of length 4 [-Werror=stringop-truncation]
 2581 |             return False;
cc1: all warnings being treated as errors



$ gcc -O2 -ftracer -Wall -Werror  geometry.i
In function ‘HandleOverlayDef’,
    inlined from ‘HandleSectionBody’ at geometry.c:2789:18,
    inlined from ‘HandleSectionDef’ at geometry.c:2829:10,
    inlined from ‘HandleGeometryFile’ at geometry.c:2875:18:
geometry.c:2580:9: error: ‘strncpy’ output may be truncated copying 4 bytes
from a string of length 4 [-Werror=stringop-truncation]
 2580 |             }
geometry.c:2581:9: error: ‘strncpy’ output may be truncated copying 4 bytes
from a string of length 4 [-Werror=stringop-truncation]
 2581 |             return False;
geometry.c:2580:9: error: ‘strncpy’ offset [0, 3] is out of the bounds [0, 0]
[-Werror=array-bounds]
 2580 |             }
geometry.c:2581:9: error: ‘strncpy’ offset [0, 3] is out of the bounds [0, 0]
[-Werror=array-bounds]
 2581 |             return False;
cc1: all warnings being treated as errors



As a side note the warning message is also a bit cryptic, as the out of bound
would happen only in case the pointer is NULL and not in normal conditions, but
sure is better than no message at all.
See https://gitlab.freedesktop.org/xorg/app/xkbcomp/-/issues/21 for reference.

Reply via email to