summaryrefslogtreecommitdiffstats
path: root/clang/lib/Analysis
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2008-03-22 20:11:00 +0000
committerTed Kremenek <kremenek@apple.com>2008-03-22 20:11:00 +0000
commitfb475ec5041d03590d81c2927889d491fc0140e8 (patch)
tree651cf2d77e4c671271e3678edb5a3e234e133072 /clang/lib/Analysis
parent7ebdd255b5d3c3bf4de665ee63def1b9ebf4dfc3 (diff)
downloadbcm5719-llvm-fb475ec5041d03590d81c2927889d491fc0140e8.tar.gz
bcm5719-llvm-fb475ec5041d03590d81c2927889d491fc0140e8.zip
Changed merge operation for uninitialized values analysis to "intersect" (previous union).
The effect is that if a variable is uninitialized along a branch (but initialized along another), at merge points it is considered uninitialized. Previously we had the opposite behavior. The new behavior is more conservative, and more in line with gcc's behavior. llvm-svn: 48689
Diffstat (limited to 'clang/lib/Analysis')
-rw-r--r--clang/lib/Analysis/UninitializedValues.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/Analysis/UninitializedValues.cpp b/clang/lib/Analysis/UninitializedValues.cpp
index 25a5ecb4837..3edf04ddb65 100644
--- a/clang/lib/Analysis/UninitializedValues.cpp
+++ b/clang/lib/Analysis/UninitializedValues.cpp
@@ -223,7 +223,7 @@ bool TransferFuncs::BlockStmt_VisitExpr(Expr* E) {
//===----------------------------------------------------------------------===//
namespace {
- typedef ExprDeclBitVector_Types::Union Merge;
+ typedef ExprDeclBitVector_Types::Intersect Merge;
typedef DataflowSolver<UninitializedValues,TransferFuncs,Merge> Solver;
}
OpenPOWER on IntegriCloud