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

            Bug ID: 77743
           Summary: bogus -Wformat-length sprintf warnings
           Product: gcc
           Version: 7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: amodra at gmail dot com
  Target Milestone: ---

Found during build of current binutils.

bfd/ihex.c:222:19: error: '%03o' directive writing between 3 and 11 bytes into
a region of size 9 [-Werror=format-length=]
  sprintf (buf, "\\%03o", (unsigned int) c & 0xff);
Should not assume full range of unsigned int.

bfd/coff-rs6000.c:3453:4: note: format output between 5 and 11 bytes into a
destination of size 10
    sprintf (reloc_type_name, "0x%02x", rel->r_type);
r_type is an unsigned short.  Again seems to assume full range of unsigned int.

bfd/coff-rs6000.c:1659:23: error: '%ld' directive writing between 1 and 20
bytes into a region of size 12 [-Werror=format-length=]
   sprintf (hdr.size, "%ld", (long) (4 + orl_count * 4 + stridx));
Another case where range info says the %ld value is at most 11 bytes.

Reply via email to