[Coverage] Handle invalid end location of an expression/statement.
authorZequan Wu <zequanwu@google.com>
Tue, 28 Mar 2023 16:55:47 +0000 (12:55 -0400)
committerZequan Wu <zequanwu@google.com>
Thu, 13 Apr 2023 14:53:02 +0000 (10:53 -0400)
commit0529da5b948cf168f65bec65b0559139f4f5a426
treec5b085aa3ce5a627fa9e264fef8911f77551cd4c
parented365f464a0a29da08d0a1011603c4cd337c9428
[Coverage] Handle invalid end location of an expression/statement.

Fix a crash when an expression/statement can have valid start location but invalid end location in some situations. For example: https://github.com/llvm/llvm-project/blob/llvmorg-16.0.1/clang/lib/Sema/SemaExprCXX.cpp#L1536

This confuses `CounterCoverageMappingBuilder` when popping a region from region
stack as if the end location is a macro or include location.

Reviewed By: hans, aaron.ballman

Differential Revision: https://reviews.llvm.org/D147073
clang/docs/ReleaseNotes.rst
clang/lib/CodeGen/CoverageMappingGen.cpp