For the latest documentation on Visual Studio 2017 RC, see Visual Studio 2017 RC Documentation.
warning C6101: Returning uninitialized memory
A successful path through the function does not set the named
_Out_ parameter. This message is generated based on SAL annotations that indicate that the function in question always succeeds. A function that doesn’t return a success/failure indication should set all of its
_Out_ parameters because the analyzer assumes that the
_Out_ parameter is uninitialized data before the function is called, and that the function will set the parameter so that it’s no longer uninitialized. If the function does indicate success/failure, then the
_Out_ parameter doesn't have to be set in the case of failure, and you can detect and avoid the uninitialized location. In either case, the objective is to avoid the reading of an uninitialized location. If the function sometimes doesn’t touch an
_Out_ parameter that’s subsequently used, then the parameter should be initialized before the function call and be marked with the
_Inout_ annotation, or the more explicit
_Pre_satisfies_() when appropriate. "Partial success" can be handled with the
_When_ annotation. For more information, see Using SAL Annotations to Reduce C/C++ Code Defects.