int K[2];
void test(void)
{
memcpy(&K[0],&K[1],sizeof(K[0]));
}
Cppcheck 2.14 generates warning:
tmp.c:4:5: error: Overlapping read/write in memcpy() is undefined behavior [overlappingWriteFunction]
memcpy(&K[0],&K[1],sizeof(K[0]));
^
However there is no overlap.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Have code:
Cppcheck 2.14 generates warning:
tmp.c:4:5: error: Overlapping read/write in memcpy() is undefined behavior [overlappingWriteFunction]
memcpy(&K[0],&K[1],sizeof(K[0]));
^
However there is no overlap.
However this is OK:
but destination
&K[3]
is not OK.long long K[9];
void test(void)
{
memcpy(&K[0],&K[8],sizeof(K[0]));
memcpy(&K[0],&K[7],sizeof(K[0]));
}
Complains about 8 but not 7.
https://trac.cppcheck.net/ticket/12638