implied: Preserve ->hard_max for fake history states
In smatch_implied.c we sometimes split an estate (extra state)
into two parts to create a fake history. This happens when we
have an if statement like "if (x < 10) {" and we hadn't
previously known that x=0-9 was an "interesting" range before.
Maybe we had only known that x could be in the 0-20 range.
So instead of one state, we split it into two states. But
unfortunately the ->hard_max information was not preserved so
we missed out on some array overflow warnings.
Reported-by: John Levon <levon@movementarian.org>
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>