Rémi Bernon (@rbernon) commented about dlls/windows.devices.enumeration/aqs.y:
+static const PROPVARIANT propval_empty = { VT_EMPTY };
+static int aqs_error( struct aqs_parser *parser, const char *str ) +{
- if (TRACE_ON( aqs)) ERR( "%s\n", str );
 - return 0;
 +}
+#define GET_COMPARE_EXPR( ctx, op, prop_vt, val_vt, out ) do { \
HRESULT hr; \hr = get_compare_expr( ctx, op, (prop_vt)->pwszVal, val_vt, out ); \PropVariantClear( prop_vt ); \PropVariantClear( val_vt ); \if (FAILED( hr )) \YYABORT; \- } while (0)
 
What about sinking both propvariant ownership into the expr and letting it deal with cleanup?