[analyzer] [quickfix] Prevent a crash in NamedDecl::getName()

llvm-svn: 326755
diff --git a/clang/lib/StaticAnalyzer/Checkers/GCDAsyncSemaphoreChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/GCDAsyncSemaphoreChecker.cpp
index 48e9e1e..23ef032 100644
--- a/clang/lib/StaticAnalyzer/Checkers/GCDAsyncSemaphoreChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/GCDAsyncSemaphoreChecker.cpp
@@ -88,9 +88,11 @@
                                                BugReporter &BR) const {
 
   // The pattern is very common in tests, and it is OK to use it there.
-  if (const auto* ND = dyn_cast<NamedDecl>(D))
-    if (ND->getName().startswith("test"))
+  if (const auto* ND = dyn_cast<NamedDecl>(D)) {
+    std::string DeclName = ND->getNameAsString();
+    if (StringRef(DeclName).startswith("test"))
       return;
+  }
 
   const char *SemaphoreBinding = "semaphore_name";
   auto SemaphoreCreateM = callExpr(callsName("dispatch_semaphore_create"));