]> granicus.if.org Git - clang/commitdiff
Remove bogus assertions.
authorTed Kremenek <kremenek@apple.com>
Fri, 3 Sep 2010 01:07:04 +0000 (01:07 +0000)
committerTed Kremenek <kremenek@apple.com>
Fri, 3 Sep 2010 01:07:04 +0000 (01:07 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112931 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Checker/StreamChecker.cpp

index 87874e315a5d9ac8f3bb1b90491263f0cbbe8cc3..5bc075f6bf66920c73077feb8614c85a7c7c0889 100644 (file)
@@ -235,15 +235,16 @@ void StreamChecker::OpenFileAux(CheckerContext &C, const CallExpr *CE) {
   const GRState *stateNotNull, *stateNull;
   llvm::tie(stateNotNull, stateNull) = CM.AssumeDual(state, RetVal);
   
-  SymbolRef Sym = RetVal.getAsSymbol();
-  assert(Sym);
-
-  // if RetVal is not NULL, set the symbol's state to Opened.
-  stateNotNull = stateNotNull->set<StreamState>(Sym,StreamState::getOpened(CE));
-  stateNull = stateNull->set<StreamState>(Sym, StreamState::getOpenFailed(CE));
-
-  C.addTransition(stateNotNull);
-  C.addTransition(stateNull);
+  if (SymbolRef Sym = RetVal.getAsSymbol()) {
+    // if RetVal is not NULL, set the symbol's state to Opened.
+    stateNotNull =
+      stateNotNull->set<StreamState>(Sym,StreamState::getOpened(CE));
+    stateNull =
+      stateNull->set<StreamState>(Sym, StreamState::getOpenFailed(CE));
+
+    C.addTransition(stateNotNull);
+    C.addTransition(stateNull);
+  }
 }
 
 void StreamChecker::Fclose(CheckerContext &C, const CallExpr *CE) {
@@ -370,7 +371,8 @@ const GRState *StreamChecker::CheckDoubleClose(const CallExpr *CE,
                                                const GRState *state,
                                                CheckerContext &C) {
   SymbolRef Sym = state->getSVal(CE->getArg(0)).getAsSymbol();
-  assert(Sym);
+  if (!Sym)
+    return state;
   
   const StreamState *SS = state->get<StreamState>(Sym);