summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test
diff options
context:
space:
mode:
authorAdam Balogh <adam.balogh@ericsson.com>2019-02-13 12:25:47 +0000
committerAdam Balogh <adam.balogh@ericsson.com>2019-02-13 12:25:47 +0000
commit3bd63ae381c548ae7397b51625d6e7f217ebd77a (patch)
tree1465d3b5c3a8675647fd025cff2fe7cab66c9145 /lldb/packages/Python/lldbsuite/test
parentd3f13f16089954a9b34992228936c928c5e919a4 (diff)
downloadbcm5719-llvm-3bd63ae381c548ae7397b51625d6e7f217ebd77a.tar.gz
bcm5719-llvm-3bd63ae381c548ae7397b51625d6e7f217ebd77a.zip
[Analyzer] Crash fix for FindLastStoreBRVisitor
FindLastStoreBRVisitor tries to find the first node in the exploded graph where the current value was assigned to a region. This node is called the "store site". It is identified by a pair of Pred and Succ nodes where Succ already has the binding for the value while Pred does not have it. However the visitor mistakenly identifies a node pair as the store site where the value is a `LazyCompoundVal` and `Pred` does not have a store yet but `Succ` has it. In this case the `LazyCompoundVal` is different in the `Pred` node because it also contains the store which is different in the two nodes. This error may lead to crashes (a declaration is cast to a parameter declaration without check) or misleading bug path notes. In this patch we fix this problem by checking for unequal `LazyCompoundVals`: if their region is equal, and their store is the same as the store of their nodes we consider them as equal when looking for the "store site". This is an approximation because we do not check for differences of the subvalues (structure members or array elements) in the stores. Differential Revision: https://reviews.llvm.org/D58067 llvm-svn: 353943
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud