This patch aims to fix derefencing, which has been debated for months now.
Instead of working with SVals, the function now relies on TypedValueRegion.
Since this has been discussed since the inception of the checker, I'd very much prefer finding a permanent solution for this before moving forward.
I'm not sure this is correct -- do block pointers belong here? Since their region is not TypedValueRegion, I though they better fit here.