When the caret location is lower than the lowest source range, clang is
printing wrong line numbers. The first line number should consider caret
location line even when there are source ranges provided.
Current wrong line example: https://godbolt.org/z/aj4qEjzs4
The first line of the code snippet we print is potentially lower than
the caret line, so handle that case.
Fixes#63524
Differential Revision: https://reviews.llvm.org/D153849