The analyzer detected a potential error: a variable is used simultaneously as a pointer to a single object and as an array.
Let's study a sample of the error the analyzer has found in itself:
TypeInfo *factArgumentsTypeInfo = new (GC_QuickAlloc) TypeInfo[factArgumentsCount]; for (size_t i = 0; i != factArgumentsCount; ++i) { Typeof(factArguments[i], factArgumentsTypeInfo[i]); factArgumentsTypeInfo->Normalize(); }
It is suspicious that we handle the factArgumentsTypeInfo variable as the "factArgumentsTypeInfo[i]" array and as a pointer to the single object "factArgumentsTypeInfo ->". Actually we should call the Normalize() function for all the items. This is the fixed code:
TypeInfo *factArgumentsTypeInfo = new (GC_QuickAlloc) TypeInfo[factArgumentsCount]; for (size_t i = 0; i != factArgumentsCount; ++i) { Typeof(factArguments[i], factArgumentsTypeInfo[i]); factArgumentsTypeInfo[i].Normalize(); }
This diagnostic is classified as:
|
You can look at examples of errors detected by the V574 diagnostic. |