diff --git a/clang/lib/Frontend/TextDiagnostic.cpp b/clang/lib/Frontend/TextDiagnostic.cpp index 3a3cc246d3afc..1b58261b22a26 100644 --- a/clang/lib/Frontend/TextDiagnostic.cpp +++ b/clang/lib/Frontend/TextDiagnostic.cpp @@ -1160,8 +1160,7 @@ void TextDiagnostic::emitSnippetAndCaret( // Find the set of lines to include. const unsigned MaxLines = DiagOpts->SnippetLineLimit; std::pair Lines = {CaretLineNo, CaretLineNo}; - unsigned DisplayLineNo = - Ranges.empty() ? Loc.getPresumedLoc().getLine() : ~0u; + unsigned DisplayLineNo = Loc.getPresumedLoc().getLine(); for (const auto &I : Ranges) { if (auto OptionalRange = findLinesForRange(I, FID, SM)) Lines = maybeAddRange(Lines, *OptionalRange, MaxLines); diff --git a/clang/test/Misc/diag-style.cpp b/clang/test/Misc/diag-style.cpp index 3b24df974730a..626edef9b7e61 100644 --- a/clang/test/Misc/diag-style.cpp +++ b/clang/test/Misc/diag-style.cpp @@ -24,3 +24,22 @@ void f(int x) { // CHECK-NEXT: {{^}} | // CHECK-NEXT: {{^}} | // CHECK-NEXT: {{^}} 12 | + +#line 10 +int func( + int a, int b, + int& + r); + +void test() { + func(3, 4, 5); +} +// CHECK: 10:5: note: candidate function not viable +// CHECK-NEXT: {{^}} 10 | +// CHECK-NEXT: {{^}} | +// CHECK-NEXT: {{^}} 11 | +// CHECK-NEXT: {{^}} 12 | +// CHECK-NEXT: {{^}} | +// CHECK-NEXT: {{^}} 13 | +// CHECK-NEXT: {{^}} | +