MISRA C++:2023 Rule 8.18.1
Description
Rule Definition
An object or subobject must not be copied to an overlapping object.
Rationale
When you assign an object to another object with overlapping memory, the behavior is undefined.
The exceptions are:
You assign an object to another object with exactly overlapping memory and compatible type.
You copy one object to another with
memmove
.
Polyspace Implementation
As stated in the rule specification, the checker reports a violation when:
A member of an union is copied to another member of the union.
The source and destination arguments of
memcpy
point to the same array in a way that results in an overlapping copy.
Troubleshooting
If you expect a rule violation but Polyspace® does not report it, see Diagnose Why Coding Standard Violations Do Not Appear as Expected.
Examples
Check Information
Group: Expressions |
Category: Mandatory |
Version History
Introduced in R2024b