Use "getRanges" in default implementation of "getEndPath" to determine
the ranges of highlighted elements in the source code.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49181 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Analysis/BugReporter.cpp b/lib/Analysis/BugReporter.cpp
index 9954298..8eb2000 100644
--- a/lib/Analysis/BugReporter.cpp
+++ b/lib/Analysis/BugReporter.cpp
@@ -53,8 +53,18 @@
   FullSourceLoc L(S->getLocStart(), Ctx.getSourceManager());  
   PathDiagnosticPiece* P = new PathDiagnosticPiece(L, getDescription());
   
-  if (Expr* E = dyn_cast<Expr>(S))
-    P->addRange(E->getSourceRange());
+  const SourceRange *Beg, *End;
+  getRanges(Beg, End);
+  
+  if (Beg == End) {
+    if (Expr* E = dyn_cast<Expr>(S))
+      P->addRange(E->getSourceRange());
+  }
+  else {
+    assert (Beg < End);
+    for (; Beg != End; ++Beg)
+      P->addRange(*Beg);
+  }
   
   return P;
 }