# V671. The 'swap' function may interchange a variable with itself.

The analyzer has detected a potential error that may occur when calling the 'swap' function. The function receives identical actual arguments, which is very strange. The programmer must have made a misprint.

Have a look at this example:

    int arg1, arg2;
    ....
    swap(arg1, arg1);
    ....

A misprint causes the swap() function to swap the value of the 'arg1' variable for itself. The code should be fixed in the following way:

    swap(arg1, arg2);

The following sample is also considered suspicious:

    MyClass arg1, arg2;
    ....
    arg1.Swap(arg1);
    ....

It can be fixed in the following way:

    arg1.Swap(arg2);

This diagnostic is classified as:

CWE-687 CERT-EXP37-C

You can look at examples of errors detected by the V671 diagnostic.