C6518

warning C6518: Invalid annotation: 'SAL_writableTo' property may not be specified as a precondition on buffers that are not writable: '_Param_(1)'

This warning indicates that a conflict exists between a SAL_writableTo property value and a writable property. This ordinarily indicates that a writable property does not have write access to the parameter being annotated.

Example

The following code generates this warning because the _Out_ annotation compiles to include a SAL_writableTo property, which does not allow write access:

#include <sal.h>
void f(_Out_ const char* pc)
{
    //code that can't write to *pc ...
}

To correct this warning, use the following code:

#include <sal.h>
void f(_Out_  char* pc)
{
    pc = "Hello World";
    //code ...
}