[cfe-commits] r91510 - /cfe/trunk/lib/Analysis/NoReturnFunctionChecker.cpp

Ted Kremenek kremenek at apple.com
Tue Dec 15 21:58:28 PST 2009


Author: kremenek
Date: Tue Dec 15 23:58:28 2009
New Revision: 91510

URL: http://llvm.org/viewvc/llvm-project?rev=91510&view=rev
Log:
Teach NoReturnFunctionChecker that FunctionDecl::getIdentifier() is not guaranteed to return a non-null IdentifierInfo*.

Modified:
    cfe/trunk/lib/Analysis/NoReturnFunctionChecker.cpp

Modified: cfe/trunk/lib/Analysis/NoReturnFunctionChecker.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Analysis/NoReturnFunctionChecker.cpp?rev=91510&r1=91509&r2=91510&view=diff

==============================================================================
--- cfe/trunk/lib/Analysis/NoReturnFunctionChecker.cpp (original)
+++ cfe/trunk/lib/Analysis/NoReturnFunctionChecker.cpp Tue Dec 15 23:58:28 2009
@@ -45,13 +45,12 @@
 
   if (FD->getAttr<NoReturnAttr>() || FD->getAttr<AnalyzerNoReturnAttr>())
     BuildSinks = true;
-  else {
+  else if (const IdentifierInfo *II = FD->getIdentifier()) {
     // HACK: Some functions are not marked noreturn, and don't return.
     //  Here are a few hardwired ones.  If this takes too long, we can
     //  potentially cache these results.
-    using llvm::StringRef;
     BuildSinks 
-      = llvm::StringSwitch<bool>(StringRef(FD->getIdentifier()->getName()))
+      = llvm::StringSwitch<bool>(llvm::StringRef(II->getName()))
           .Case("exit", true)
           .Case("panic", true)
           .Case("error", true)





More information about the cfe-commits mailing list