[cfe-commits] r48689 - in /cfe/trunk: lib/Analysis/UninitializedValues.cpp test/Analysis/uninit-vals.c

Ted Kremenek kremenek at apple.com
Sat Mar 22 13:11:01 PDT 2008


Author: kremenek
Date: Sat Mar 22 15:11:00 2008
New Revision: 48689

URL: http://llvm.org/viewvc/llvm-project?rev=48689&view=rev
Log:
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.


Modified:
    cfe/trunk/lib/Analysis/UninitializedValues.cpp
    cfe/trunk/test/Analysis/uninit-vals.c

Modified: cfe/trunk/lib/Analysis/UninitializedValues.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Analysis/UninitializedValues.cpp?rev=48689&r1=48688&r2=48689&view=diff

==============================================================================
--- cfe/trunk/lib/Analysis/UninitializedValues.cpp (original)
+++ cfe/trunk/lib/Analysis/UninitializedValues.cpp Sat Mar 22 15:11:00 2008
@@ -223,7 +223,7 @@
 //===----------------------------------------------------------------------===//      
 
 namespace {
-  typedef ExprDeclBitVector_Types::Union Merge;
+  typedef ExprDeclBitVector_Types::Intersect Merge;
   typedef DataflowSolver<UninitializedValues,TransferFuncs,Merge> Solver;
 }
 

Modified: cfe/trunk/test/Analysis/uninit-vals.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/uninit-vals.c?rev=48689&r1=48688&r2=48689&view=diff

==============================================================================
--- cfe/trunk/test/Analysis/uninit-vals.c (original)
+++ cfe/trunk/test/Analysis/uninit-vals.c Sat Mar 22 15:11:00 2008
@@ -20,7 +20,7 @@
 int f4(int x) {
   int y;
   if (x) y = 1;
-  return y; // no-warning
+  return y; // expected-warning {{use of uninitialized variable}}
 }
 
 int f5() {





More information about the cfe-commits mailing list