This patch attempts to fix analyzer's crash on the newly added test case (see also https://bugs.llvm.org/show_bug.cgi?id=34374).
Pointer subtraction appears to be modeled incorrectly in the following example:
char* p; long n = p - reinterpret_cast<char*>((unsigned long)1);
In this case the analyzer (built without this patch) tries to create a symbolic value for the difference
treating reinterpret_cast<char*>((unsigned long)1) as an integer, that is not correct.
Test plan: make check-all