summaryrefslogtreecommitdiffstats
path: root/clang/lib/Checker/StreamChecker.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2010-09-03 01:07:04 +0000
committerTed Kremenek <kremenek@apple.com>2010-09-03 01:07:04 +0000
commit5c0969f02744a985d688d68f26764468d4ad9276 (patch)
tree8601a29708a23c29035a0f28367a72d5a3d6d08a /clang/lib/Checker/StreamChecker.cpp
parent5b24adda264feb29c583581f40288eb21c4509d8 (diff)
downloadbcm5719-llvm-5c0969f02744a985d688d68f26764468d4ad9276.tar.gz
bcm5719-llvm-5c0969f02744a985d688d68f26764468d4ad9276.zip
Remove bogus assertions.
llvm-svn: 112931
Diffstat (limited to 'clang/lib/Checker/StreamChecker.cpp')
-rw-r--r--clang/lib/Checker/StreamChecker.cpp22
1 files changed, 12 insertions, 10 deletions
diff --git a/clang/lib/Checker/StreamChecker.cpp b/clang/lib/Checker/StreamChecker.cpp
index 87874e315a5..5bc075f6bf6 100644
--- a/clang/lib/Checker/StreamChecker.cpp
+++ b/clang/lib/Checker/StreamChecker.cpp
@@ -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);
OpenPOWER on IntegriCloud