`char* p = 0; delete p;` is valid, no need to check `if (p)` in this case. I think the unitTests show most cases.

So `RedundantNullptrCheck` is too generic since I only check for `delete` (free may also be tested, but I'm most focussed on OOP).