]> granicus.if.org Git - clang/commit
Fix horrible non-termination bug in LiveVariables. The issue was that
authorTed Kremenek <kremenek@apple.com>
Fri, 30 Jan 2009 21:35:30 +0000 (21:35 +0000)
committerTed Kremenek <kremenek@apple.com>
Fri, 30 Jan 2009 21:35:30 +0000 (21:35 +0000)
commitbf98c99600017bfcdde2a7966c47a6beb15a96dc
tree3e07521a56372988baaa16341f74813e2245f802
parentf87a0ccb05eb2aa095ea835fdcdf4a0363637b28
Fix horrible non-termination bug in LiveVariables.  The issue was that
the liveness state of block-level expressions could oscillate because
of two issues:
- The initial value before a merge was not always set to "Top"
- The set of live block-level expressions is a union, not an intersection

This fixes <rdar://problem/650084>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63421 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Analysis/FlowSensitive/DataflowSolver.h
include/clang/Analysis/Support/BlkExprDeclBitVector.h
lib/Analysis/LiveVariables.cpp
test/Analysis/rdar-6540084.m [new file with mode: 0644]