summaryrefslogtreecommitdiffstats
path: root/clang/lib/StaticAnalyzer
diff options
context:
space:
mode:
authorGabor Horvath <xazax.hun@gmail.com>2017-06-22 10:09:40 +0000
committerGabor Horvath <xazax.hun@gmail.com>2017-06-22 10:09:40 +0000
commitb3bcddf769ac3a386e9e266d4a159c7a18b621f6 (patch)
tree530d72bf628016fd2655d5aae5c8fe8770d83ec7 /clang/lib/StaticAnalyzer
parentb512e915154a0d46c727513d4bf5b76e0dda95bf (diff)
downloadbcm5719-llvm-b3bcddf769ac3a386e9e266d4a159c7a18b621f6.tar.gz
bcm5719-llvm-b3bcddf769ac3a386e9e266d4a159c7a18b621f6.zip
[analyzer] Do not continue to analyze a path if the constraints contradict with builtin assume
Differential Revision: https://reviews.llvm.org/D34502 llvm-svn: 305991
Diffstat (limited to 'clang/lib/StaticAnalyzer')
-rw-r--r--clang/lib/StaticAnalyzer/Checkers/BuiltinFunctionChecker.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/clang/lib/StaticAnalyzer/Checkers/BuiltinFunctionChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/BuiltinFunctionChecker.cpp
index 48d6cd8a527..097d4198800 100644
--- a/clang/lib/StaticAnalyzer/Checkers/BuiltinFunctionChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/BuiltinFunctionChecker.cpp
@@ -50,8 +50,10 @@ bool BuiltinFunctionChecker::evalCall(const CallExpr *CE,
state = state->assume(ArgSVal.castAs<DefinedOrUnknownSVal>(), true);
// FIXME: do we want to warn here? Not right now. The most reports might
// come from infeasible paths, thus being false positives.
- if (!state)
+ if (!state) {
+ C.generateSink(C.getState(), C.getPredecessor());
return true;
+ }
C.addTransition(state);
return true;
OpenPOWER on IntegriCloud