﻿# V549\. The 'first' argument of 'Foo' function is equal to the 'second' argument\.

The analyzer detected a potential error in the program: coincidence of two actual arguments of a function\. Passing the same value as two arguments is a normal thing for many functions\. But if you deal with such functions as memmove, memcpy, strstr and strncmp, you must check the code\.

Here is a sample from a real application:

```cpp
#define str_cmp(s1, s2)  wcscmp(s1, s2)
...
v = abs(str_cmp(a->tdata, a->tdata));
```

The misprint here causes the wcscmp function to perform comparison of a string from itself\. This is the correct code:

```cpp
v = abs(str_cmp(a->tdata, b->tdata));
```

The analyzer generates the warning if the following functions are being handled: memcpy, memmove, memcmp, \_memicmp, strstr, strspn, strtok, strcmp, strncmp, wcscmp, \_stricmp, wcsncmp, etc\. If you found a similar error that analyzer fails to diagnose, please tell us the name of the function that must not take same values as the first and second arguments\.