Turns out check::Location is not always called when storing a value to a
location. See the details here:
https://discourse.llvm.org/t/checklocation-vs-checkbind-when-isload-false/72728
To catch the remaining cases when binding to a location, subscribe to the
check::Bind callback.
(CWE-122 Heap Based Buffer Overflow: CWE-805-class-loop)
Depends on D159105
I'd call this function performCheck or something similar, but "impl" is also fine especially if it's a traditional name (that I haven't encountered yet in clang SA code).