diff options
author | Michael Kruse <llvm-project@meinersbur.de> | 2022-05-06 02:43:49 -0500 |
---|---|---|
committer | Michael Kruse <llvm-project@meinersbur.de> | 2022-05-06 02:43:49 -0500 |
commit | d3460d2a890ccb4ee84ffd05d4a722ff82b5170d (patch) | |
tree | 19c511c63d14da385bc907b4aa99276b8636dc1a /clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp | |
parent | fdb6ddcfeb62be7dbc502a4a4ed7c5be11c1c9b6 (diff) | |
parent | 9c1085c7e20bdd7c4a487f50313ebeeb2b6683b8 (diff) | |
download | llvm-users/meinersbur/irbuilder-ompregion.zip llvm-users/meinersbur/irbuilder-ompregion.tar.gz llvm-users/meinersbur/irbuilder-ompregion.tar.bz2 |
Merge branch 'main' into irbuilder-ompregionusers/meinersbur/irbuilder-ompregion
Diffstat (limited to 'clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp')
-rw-r--r-- | clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp index 099e70a..b16e1f0 100644 --- a/clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp @@ -672,24 +672,19 @@ void StreamChecker::evalFreadFwrite(const FnDescription *Desc, if (!IsFread || (OldSS->ErrorState != ErrorFEof)) { ProgramStateRef StateNotFailed = State->BindExpr(CE, C.getLocationContext(), *NMembVal); - if (StateNotFailed) { - StateNotFailed = StateNotFailed->set<StreamMap>( - StreamSym, StreamState::getOpened(Desc)); - C.addTransition(StateNotFailed); - } + StateNotFailed = + StateNotFailed->set<StreamMap>(StreamSym, StreamState::getOpened(Desc)); + C.addTransition(StateNotFailed); } // Add transition for the failed state. - Optional<NonLoc> RetVal = makeRetVal(C, CE).castAs<NonLoc>(); - assert(RetVal && "Value should be NonLoc."); + NonLoc RetVal = makeRetVal(C, CE).castAs<NonLoc>(); ProgramStateRef StateFailed = - State->BindExpr(CE, C.getLocationContext(), *RetVal); - if (!StateFailed) - return; - auto Cond = C.getSValBuilder() - .evalBinOpNN(State, BO_LT, *RetVal, *NMembVal, - C.getASTContext().IntTy) - .getAs<DefinedOrUnknownSVal>(); + State->BindExpr(CE, C.getLocationContext(), RetVal); + auto Cond = + C.getSValBuilder() + .evalBinOpNN(State, BO_LT, RetVal, *NMembVal, C.getASTContext().IntTy) + .getAs<DefinedOrUnknownSVal>(); if (!Cond) return; StateFailed = StateFailed->assume(*Cond, true); |