I was intrigued to see my just-built-from-git gcc fail to compile who.c. It's probably too soon to accept a patch like this: in case gcc's static analysis is going to be improved enough that it can derive the invariant that the assert makes explicit.
So, perhaps just for reference, for now, here's the patch. If I were to push it, due diligence would require a post to the gcc list about this, and (assuming we retain the patch) the addition of a FIXME-in-2018 comment to see if it is still needed.
Description: Binary data