This patch contains 2 improvements to the CFNumber checker:
- Checking of CFNumberGetValue misuse.
- Treating all CFNumber API misuse errors as non-fatal. (Previously we treated errors that could cause uninitialized memory as syncs and the truncation errors as non-fatal.)
This implements a subset of functionality from https://reviews.llvm.org/D17954.
We're not sure from this code if the CFNumber object x actually represents a 16-bit integer, or somebody just misplaced the kCFNumberSInt16Type thing. I think the warning message could be made more precise in this sence, but i'm not good at coming up with warning messages.
Hmm, there could actually be a separate check for detecting inconsistent type specifiers used for accessing the same CFNumber object.