]> granicus.if.org Git - clang/commitdiff
move the check into MarkNoReturnFunction.
authorZhongxing Xu <xuzhongxing@gmail.com>
Fri, 4 Sep 2009 02:17:35 +0000 (02:17 +0000)
committerZhongxing Xu <xuzhongxing@gmail.com>
Fri, 4 Sep 2009 02:17:35 +0000 (02:17 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80980 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/GRExprEngine.cpp

index ba17d21a6cb8cbcba2aafb1acdaad41b5977cc62..df31c3f53be600f9796f916239d5e55bd937f380 100644 (file)
@@ -1420,6 +1420,9 @@ static bool EvalOSAtomic(ExplodedNodeSet& Dst,
 static void MarkNoReturnFunction(const FunctionDecl *FD, CallExpr *CE,
                                  const GRState *state, 
                                  GRStmtNodeBuilder *Builder) {
+  if (!FD)
+    return;
+
   if (FD->getAttr<NoReturnAttr>() || 
       FD->getAttr<AnalyzerNoReturnAttr>())
     Builder->BuildSinks = true;
@@ -1580,8 +1583,8 @@ void GRExprEngine::VisitCallRec(CallExpr* CE, ExplodedNode* Pred,
     
     SaveAndRestore<bool> OldSink(Builder->BuildSinks);
     const FunctionDecl* FD = L.getAsFunctionDecl();
-    if (FD)
-      MarkNoReturnFunction(FD, CE, state, Builder);
+
+    MarkNoReturnFunction(FD, CE, state, Builder);
     
     // Evaluate the call.