We handle pointee mutation for native pointers & pointer-like types
(loosely defined as having an operator* returning non-const reference)
This diff alone just implemented the cases where pointee of an Exp is
*directly* mutated (e.g. invoking non-const member function.)
The most trivial class of casts is handled as well for easier unit
testing, findPointeeCastMutation is not done yet.
Planned future work:
- findPointeeDerefMutation: Exp is first dereferenced, and then mutated.
- findPointee{Member,Array}Mutation: member (or array element) of pointee is accessed and then mutated.
- findPointeeArithmeticMutation: handling pointer arithmetic
- findPointeeAssignmentMutation: pointer is assigned to another var and then mutated.
Didn't you mean these to be doxygen comments?