From a57e8ffdba88643c2d934953b93a3be0a0a3f357 Mon Sep 17 00:00:00 2001 From: Anna Zaks Date: Wed, 31 Oct 2012 22:17:48 +0000 Subject: [PATCH] [analyzer] Fix a bug in SimpleStreamChecker - return after sink. Thanks Ted. llvm-svn: 167176 --- clang/lib/StaticAnalyzer/Checkers/SimpleStreamChecker.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/clang/lib/StaticAnalyzer/Checkers/SimpleStreamChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/SimpleStreamChecker.cpp index 4fe01c3..d62002c 100644 --- a/clang/lib/StaticAnalyzer/Checkers/SimpleStreamChecker.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/SimpleStreamChecker.cpp @@ -126,8 +126,10 @@ void SimpleStreamChecker::checkPreStmt(const CallExpr *Call, // Check if the stream has already been closed. ProgramStateRef State = C.getState(); const StreamState *SS = State->get(FileDesc); - if (SS && SS->isClosed()) + if (SS && SS->isClosed()) { reportDoubleClose(FileDesc, Call, C); + return; + } // Generate the next transition, in which the stream is closed. State = State->set(FileDesc, StreamState::getClosed()); -- 2.7.4