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

            Bug ID: 83989
           Summary: -Wrestrict false positive with malloc-style functions
           Product: gcc
           Version: 8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: sirl at gcc dot gnu.org
  Target Milestone: ---

Created attachment 43216
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43216&action=edit
testcase

Compiling the attached file with r256939 of trunk issues 2 warnings. I believe
they are false positives and should have been suppressed by
__attribute__((__malloc__)).
gcc-7.2.1 didn't issue a warning here.

# gcc-trunk -c -Wall -Wrestrict -O2 Wrestrict-false-positive.c
Wrestrict-false-positive.c: In function 'load1':
Wrestrict-false-positive.c:44:4: warning: 'memcpy' accessing between 384 and
25769803764 bytes at offsets 0 and 0 overlaps between 384 and 25769803764 bytes
at offset 0 [-Wrestrict]
    memcpy(recmem, oldrecmem, oldsize * sizeof(record_t));
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Wrestrict-false-positive.c: In function 'load2':
Wrestrict-false-positive.c:75:4: warning: 'memcpy' accessing between 384 and
25769803764 bytes at offsets 0 and 0 overlaps between 384 and 25769803764 bytes
at offset 0 [-Wrestrict]
    memcpy(recmem, oldrecmem, oldsize * sizeof(record_t));
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Reply via email to