diff options
| author | Gabor Horvath <xazax@google.com> | 2019-12-09 16:26:38 -0800 |
|---|---|---|
| committer | Gabor Horvath <xazax@google.com> | 2019-12-11 11:44:10 -0800 |
| commit | 5882e6f36fd9bfc7382e6763c5591b3497428d83 (patch) | |
| tree | a92ae113503296056e71cafeb7a63b83e0065558 /clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp | |
| parent | 19e83a9b4cd4b0c2918d975f52bdfc6ba82d839f (diff) | |
| download | bcm5719-llvm-5882e6f36fd9bfc7382e6763c5591b3497428d83.tar.gz bcm5719-llvm-5882e6f36fd9bfc7382e6763c5591b3497428d83.zip | |
[analyzer] Escape symbols conjured into specific regions during a conservative EvalCall
This patch introduced additional PointerEscape callbacks after conservative
calls for output parameters. This should not really affect the current
checkers but the upcoming FuchsiaHandleChecker relies on this heavily.
Differential Revision: https://reviews.llvm.org/D71224
Diffstat (limited to 'clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp')
| -rw-r--r-- | clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp b/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp index 02a398c77ac..b17f26aa9c5 100644 --- a/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp +++ b/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp @@ -102,8 +102,8 @@ void ExprEngine::VisitBinaryOperator(const BinaryOperator* B, state = state->BindExpr(B, LCtx, Result); } else { // If we cannot evaluate the operation escape the operands. - state = escapeValue(state, LeftV, PSK_EscapeOther); - state = escapeValue(state, RightV, PSK_EscapeOther); + state = escapeValues(state, LeftV, PSK_EscapeOther); + state = escapeValues(state, RightV, PSK_EscapeOther); } Bldr.generateNode(B, *it, state); @@ -275,7 +275,7 @@ ProgramStateRef ExprEngine::handleLValueBitCast( V = evalMinus(V); state = state->BindExpr(CastE, LCtx, V); if (V.isUnknown() && !OrigV.isUnknown()) { - state = escapeValue(state, OrigV, PSK_EscapeOther); + state = escapeValues(state, OrigV, PSK_EscapeOther); } Bldr.generateNode(CastE, Pred, state); |

