This is part of a patch series working towards the ability to make
SourceLocation into a 64-bit type to handle larger translation units.
The void *Data1 field in ProgramPoint is sometimes used to store a
SourceLocation in pointer encoding, and sometimes used to store other
pointer data. If SourceLocation becomes 64-bit when clang is compiled
for a 32-bit platform, then this won't fit any more. Hence, we change
the type of Data1 to a union storing either an actual SourceLocation
or a pointer.
Patch originally by Mikhail Maltsev.