Check past-the-end before dereferencing iterator

Guard the dereference in the case where the current cursor in the
needle isn't a tombstone in case we're at the end of the
haystack. Example pair:

  NEEDLE:   6 x x 4 6
  HAYSTACK: 4 6 x x 4

We find the subsequence 6 4, but the needle is not yet at end (missing
6) while the haystack is moved past the end:

  NEEDLE:   6 x x 4 6
                    ^
  HAYSTACK: 4 6 x x 4
                      ^

If the haystack (super) is exhausted before the needle (sub) we know
it isn't a proper subsequence, so this is the correct behaviour.

This example was in the testsuite and caught by ASAN.

	PR gcov-profile/127038

gcc/ChangeLog:

	* gcov.cc (tombstone_subsequence_p): Guard iterator
	dereference.
1 file changed