Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
VARIANT 'var', which is marked as
_Out_was cleared before being initialized (expression 'expr')
Remarks
This warning is triggered when a VARIANT parameter with _Out_ SAL annotation may not have been
initialized on input, and is then passed to an API such as VariantClear that expects an initialized VARIANT.
Code analysis name: VARIANTCLEAR_UNINITOUTPARAM
Example
The following sample code causes warning C33004:
#include <Windows.h>
void t2(_Out_ VARIANT* pv)
{
// ......
VariantClear(pv); // C33004
// ......
}
These warnings are corrected by ensuring VariantClear is called only for a properly initialized VARIANT:
#include <Windows.h>
void t2(_Out_ VARIANT* pv)
{
VariantInit(pv);
// ......
VariantClear(pv); // OK
// ......
}