diff --git a/clang/lib/Frontend/TextDiagnostic.cpp b/clang/lib/Frontend/TextDiagnostic.cpp
index 48082d7..3a3cc24 100644
--- a/clang/lib/Frontend/TextDiagnostic.cpp
+++ b/clang/lib/Frontend/TextDiagnostic.cpp
@@ -1160,16 +1160,20 @@
   // Find the set of lines to include.
   const unsigned MaxLines = DiagOpts->SnippetLineLimit;
   std::pair<unsigned, unsigned> Lines = {CaretLineNo, CaretLineNo};
+  unsigned DisplayLineNo =
+      Ranges.empty() ? Loc.getPresumedLoc().getLine() : ~0u;
   for (const auto &I : Ranges) {
     if (auto OptionalRange = findLinesForRange(I, FID, SM))
       Lines = maybeAddRange(Lines, *OptionalRange, MaxLines);
+
+    DisplayLineNo =
+        std::min(DisplayLineNo, SM.getPresumedLineNumber(I.getBegin()));
   }
 
   // Our line numbers look like:
   // " [number] | "
   // Where [number] is MaxLineNoDisplayWidth columns
   // and the full thing is therefore MaxLineNoDisplayWidth + 4 columns.
-  unsigned DisplayLineNo = Loc.getPresumedLoc().getLine();
   unsigned MaxLineNoDisplayWidth =
       DiagOpts->ShowLineNumbers
           ? std::max(4u, getNumDisplayWidth(DisplayLineNo + MaxLines))
diff --git a/clang/test/Misc/diag-style.cpp b/clang/test/Misc/diag-style.cpp
index b12afb2c..3b24df9 100644
--- a/clang/test/Misc/diag-style.cpp
+++ b/clang/test/Misc/diag-style.cpp
@@ -10,3 +10,17 @@
 // CHECK-NEXT: {{^}}    5 | {{$}}
 // CHECK-NEXT: {{^}}    6 |               true, "");{{$}}
 // CHECK-NEXT: {{^}}      |               ~~~~{{$}}
+
+
+/// #line pragmas are respected
+void printf(const char *a, ...) __attribute__((__format__(__printf__, 1, 2)));
+#line 10
+void f(int x) {
+  printf("%f",
+         x);
+}
+// CHECK: 12:10: warning: format specifies type
+// CHECK-NEXT: {{^}}   11 |
+// CHECK-NEXT: {{^}}      |
+// CHECK-NEXT: {{^}}      |
+// CHECK-NEXT: {{^}}   12 |
