*new* real_absolute: give a more accurate absolute value
The problem is this:
x = unknown / 2;
With the original code, we didn't save anything when we saw that because
unknown divided by 2 is still unknown. We only save things in
smatch_extra.c when there is a level of confidence or a some intent or
meaning. That way we can use get_absolute_rl() and if it is the whole
range we can say "Oh, we don't know anything about this variable, let's
ignore it." But other times, especially if we are looking at integer
overflows then it's important to know that "x can only possibly go up to
u32max / 4 so it can't overflow."
Smatch extra is used to generate warnings but the real absolute is pretty
much used to eliminate false positives. In that way it's not as critical
to be 100% accurate, any extra information is an improvement. So I think
I will not replicate all the smatch_extra.c code for tracking the real
absolute.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>