[cfe-commits] r66630 - in /cfe/trunk: lib/Analysis/BasicValueFactory.cpp test/Analysis/misc-ps.m

Ted Kremenek kremenek at apple.com
Tue Mar 10 19:52:39 PDT 2009


Author: kremenek
Date: Tue Mar 10 21:52:39 2009
New Revision: 66630

URL: http://llvm.org/viewvc/llvm-project?rev=66630&view=rev
Log:
Fix PR 3780: In one code path in BasicValueFactory::getValue() we would not
return an unsigned integer for a null pointer value.

Modified:
    cfe/trunk/lib/Analysis/BasicValueFactory.cpp
    cfe/trunk/test/Analysis/misc-ps.m

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

==============================================================================
--- cfe/trunk/lib/Analysis/BasicValueFactory.cpp (original)
+++ cfe/trunk/lib/Analysis/BasicValueFactory.cpp Tue Mar 10 21:52:39 2009
@@ -92,7 +92,7 @@
 const llvm::APSInt& BasicValueFactory::getValue(uint64_t X, QualType T) {
   
   unsigned bits = Ctx.getTypeSize(T);
-  llvm::APSInt V(bits, T->isUnsignedIntegerType());
+  llvm::APSInt V(bits, T->isUnsignedIntegerType() || Loc::IsLocType(T));
   V = X;
   return getValue(V);
 }

Modified: cfe/trunk/test/Analysis/misc-ps.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/misc-ps.m?rev=66630&r1=66629&r2=66630&view=diff

==============================================================================
--- cfe/trunk/test/Analysis/misc-ps.m (original)
+++ cfe/trunk/test/Analysis/misc-ps.m Tue Mar 10 21:52:39 2009
@@ -178,3 +178,18 @@
   return 'a';
 }
 
+// PR 3780
+// - We just want to test that this doesn't crash the analyzer.
+typedef struct st ST;
+struct st { char *name; };
+extern ST *Cur_Pu;
+
+void pr3780(void)
+{
+  static ST *last_Cur_Pu;
+  if (last_Cur_Pu == Cur_Pu) {
+    return;
+  } 
+}
+
+





More information about the cfe-commits mailing list