Compiler Error C3996
annotations that pertain to the value returned by a function should appear at (or near) the start of the declaration
To correct this error
- In the declaration, put the SAL annotation that corresponds to the return value either directly before the function identifier or before auto.
Example
The following sample generates C3996.
// compile with /analyze
#include <cstdlib>
auto array_alloc(_In_ size_t size) -> _Ret_maybenull_ void *
{
return malloc(size);
}
Example
The next sample corrects the error.
// compile with /analyze
#include <cstdlib>
auto _Ret_maybenull_ array_alloc(_In_ size_t size) -> void *
{
return malloc(size);
}