When a nullptr is assigned to a pointer variable, it is wrapped in a ImplicitCastExpr with cast kind CK_NullTo(Member)Pointer. This patch assigns singleton pointer values representing null to these expressions.
For each pointee type, a singleton null PointerValue is created and stored in the NullPointerVals map of the DataflowAnalysisContext class. The pointee type is retrieved from the implicit cast expression, and used to initialise the PointeeLoc field of the PointerValue. The PointeeLoc created is not mapped to any Value, reflecting the absence of value indicated by null pointers.