extra: introduce value_ptr_rl
There is a lot of talking about min-max pointer but actually right now
pointers are kind of treated as signed. There are two reasons for that.
1) Pointers are not marked as MOD_UNSIGNED and even when I mark them
as MOD_UNSIGNED, smatch still treats them as signed for some reason. Also
SYM_ARRAY are explicitly set to match. This isn't the right thing really
because pointers should be treated as unsigned normally.
2) But I haven't investigated because the kernel uses error pointers and
it's really handy to think of them as -12 instead of whatever that looks
like when you cast it to unsigned.
So anyway, say you have a non-NULL pointer which is (in the current code)
"s64min-(-1),1-s64max", then it doesn't make sense to talk about if it's
min-max because the max would be -1UL.
I want to eventually figure out a better way to handle pointers...
This code is a cleanup, but eventually maybe instead of talking about
min-max we'll just talk about the range list?
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>