The warning below doesn't seem justified and is not helpful (certainly not in
this case or whenever the last argument can be proven to be 0). IMO, where the
warning would be helpful is the second invocation of memcpy() since that one
has undefined behavior.

$ cat -n t.cpp && g++ -Wall t.cpp
     1  #include <string.h>
     2  
     3  int main ()
     4  {
     5      memcpy (0, 0, 0);
     6  
     7      int i = 0;
     8      memcpy (&i, &i, sizeof i);
     9  }
    10  
t.cpp: In function 'int main()':
t.cpp:5: warning: null argument where non-null required (argument 1)
t.cpp:5: warning: null argument where non-null required (argument 2)


-- 
           Summary: unhelpful null argument warning on memcpy()
           Product: gcc
           Version: 4.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: sebor at roguewave dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28656

Reply via email to