Nikolay Sivov (@nsivov) commented about dlls/msxml3/tests/domdoc.c:
/* readd removed attribute to recover previous state */
hr = IXMLDOMElement_setAttributeNode(element, attr_out, NULL);
ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMAttribute_Release(attr_out);
}
IXMLDOMAttribute_Release(attr);
}
SysFreeString( str );
attr = NULL;
attr_out = (IXMLDOMAttribute*)0xdeadbeef;
hr = IXMLDOMElement_removeAttributeNode( element, attr, &attr_out );
todo_wine ok(hr == E_INVALIDARG, "removeAttributeNode removed a NULL pointer hr: %#lx.\n", hr);
ok(attr_out == (IXMLDOMAttribute*)0xdeadbeef, "removeAttributeNode expected to not touch attr_out in error case, got (%p)\n", attr_out);
You don't need 'attr' here, just use NULL literal for argument value.