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

            Bug ID: 110151
           Summary: warning: 'strncpy' output truncated copying 10 bytes
                    from a string of length 26 [-Wstringop-truncation]
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: yinyuefengyi at gmail dot com
  Target Milestone: ---

For the below two cases(https://godbolt.org/z/5rbMTeqW9), are they false
positive warnings seem unnecessary since:

for foo1:
 memset has cleared the memory;

for foo2:
 though 'dest[11] = '\0';' is not the 'immediately' next_stmt after strncpy but
it does setting the last element to nul? 

#include <string.h>
#include <stdio.h>

int foo1 () {
    char src[40];
    char dest[12];

    memset(dest, '\0', sizeof(dest));
    strcpy(src, "This is tutorialspoint.com");
    strncpy(dest, src, 10);

    printf("%s", dest);
    return(0);
}

char a;
int foo2 () {
    char src[40];
    char dest[12];

    strcpy(src, "This is tutorialspoint.com");
    strncpy(dest, src, 10);
    a = dest[0];
    dest[11] = '\0';

    printf("%s", dest);
    return(0);
}
  • [Bug tree-optimization/110151] ... yinyuefengyi at gmail dot com via Gcc-bugs

Reply via email to