diff options
author | Ted Kremenek <kremenek@apple.com> | 2009-12-16 05:58:28 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2009-12-16 05:58:28 +0000 |
commit | 85763180e7fc4f7b393aa9cf470fcd396b2520de (patch) | |
tree | a13f4844c449930d1a475fc98c8bb76c8540704d /clang/lib/Analysis/NoReturnFunctionChecker.cpp | |
parent | 73aad9af2d20990c7233fc5d24ce44f4346a2e21 (diff) | |
download | bcm5719-llvm-85763180e7fc4f7b393aa9cf470fcd396b2520de.tar.gz bcm5719-llvm-85763180e7fc4f7b393aa9cf470fcd396b2520de.zip |
Teach NoReturnFunctionChecker that FunctionDecl::getIdentifier() is not guaranteed to return a non-null IdentifierInfo*.
llvm-svn: 91510
Diffstat (limited to 'clang/lib/Analysis/NoReturnFunctionChecker.cpp')
-rw-r--r-- | clang/lib/Analysis/NoReturnFunctionChecker.cpp | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/clang/lib/Analysis/NoReturnFunctionChecker.cpp b/clang/lib/Analysis/NoReturnFunctionChecker.cpp index 6806273d4b4..5cfd9acd5f5 100644 --- a/clang/lib/Analysis/NoReturnFunctionChecker.cpp +++ b/clang/lib/Analysis/NoReturnFunctionChecker.cpp @@ -45,13 +45,12 @@ bool NoReturnFunctionChecker::EvalCallExpr(CheckerContext &C, 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) |