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

llvm-svn: 49181
diff --git a/clang/lib/Analysis/BugReporter.cpp b/clang/lib/Analysis/BugReporter.cpp
index 9954298..8eb2000 100644
--- a/clang/lib/Analysis/BugReporter.cpp
+++ b/clang/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;
 }