Consider the following statement:
void* foo = ((void *)0);
For the sub-AST:
| `-ImplicitCastExpr 'const void *' <NullToPointer> | `-CStyleCastExpr 'void *' <NullToPointer> | `-IntegerLiteral 'int' 0
If the subexpression of the cast is itself the NULL constant, then
ImplicitCastExpr should emit the NULL pointer constant.
FWIW, I would have thought these might be unnecessary, but we do trip 2 tests without these guards IIRC.