setSeverity can take invalid source location. Fixes asserts.
setSeverity can take invalid source location. Fixes asserts.

The underlying issue is the setSeverity method compares if the given
source location was before or after a push diagnostic mappings (pragma push).
The problem is that we 'give' a wannabe source location, because the
memory buffer (which will expand it to a real source location) is not
parsed yet. Thus the pseudo-valid source location looks like a location
came from a pch, which causes a misbehavior in the logic of comparer.

root-mirror/cling,karies/cling,perovic/cling,marsupial/cling,karies/cling,marsupial/cling,karies/cling,karies/cling,marsupial/cling,perovic/cling,perovic/cling,marsupial/cling,root-mirror/cling,root-mirror/cling,karies/cling,perovic/cling,marsupial/cling,karies/cling,root-mirror/cling,root-mirror/cling,perovic/cling,marsupial/cling,root-mirror/cling