PVS-Studio, the static code analyzer, for the following bit of code
size_t const n = 4;
int a[n] = {};
reports:
V112 Dangerous magic number
4
used:...t const n = 4;. test.cpp 3
Although PVS-Studio is used with Visual Studio 2017 project and reports the same warning for both, 32 and 64 bit, those build configurations are not taken into account by the analyzer, AFAIU.
I would have expected the context to be analysed better and treat the code above as equivalent to this
int a[4] = {};
for which PVS-Studio does not issue any diagnostics.
In the case above is this dangerous magic number N used, a false positive?
What are the reasons the two code samples above are not analyzed as equivalent?