Skip to content
  1. Nov 10, 2009
  2. Nov 09, 2009
  3. Nov 08, 2009
    • Daniel Dunbar's avatar
      Eliminate &&s in tests. · 8b576979
      Daniel Dunbar authored
       - 'for i in $(find . -type f); do sed -e 's#\(RUN:.*[^ ]\) *&& *$#\1#g' $i | FileUpdate $i; done', for the curious.
      
      llvm-svn: 86430
      8b576979
  4. Nov 07, 2009
  5. Nov 06, 2009
  6. Nov 05, 2009
  7. Nov 04, 2009
  8. Nov 03, 2009
  9. Oct 30, 2009
  10. Oct 29, 2009
  11. Oct 28, 2009
  12. Oct 27, 2009
  13. Oct 20, 2009
  14. Oct 17, 2009
  15. Oct 16, 2009
  16. Oct 15, 2009
    • Ted Kremenek's avatar
      Per an astute observation from Zhongxing Xu, remove a "special case" logic in · 3abc41f4
      Ted Kremenek authored
      RegionStoreManager::Retrieve() that was intended to handle conflated uses of pointers as integers.
      It turns out this isn't needed, and resulted in inconsistent behavior when creating symbolic values on the following test case in 'tests/Analysis/misc-ps.m':
      
        typedef struct _BStruct { void *grue; } BStruct;
        void testB_aux(void *ptr);
        void testB(BStruct *b) {
          {
            int *__gruep__ = ((int *)&((b)->grue));
            int __gruev__ = *__gruep__;
            testB_aux(__gruep__);
          }
          {
            int *__gruep__ = ((int *)&((b)->grue));
            int __gruev__ = *__gruep__;
            if (~0 != __gruev__) {}
          }
        }
      
      When the code was analyzed with '-arch x86_64', the value assigned to '__gruev__' be would be a
      symbolic integer, but for '-arch i386' the value assigned to '__gruev__' would be a symbolic region
      (a blob of memory). With this change the value created is always a symbolic integer.
      
      Since the code being removed was added to support analysis of code calling
      OSAtomicCompareAndSwapXXX(), I also modified 'test/Analysis/NSString.m' to analyze the code in both
      '-arch i386' and '-arch x86_64', and also added some complementary test cases to test the presence
      of leaks when using OSAtomicCompareAndSwap32Barrier()/OSAtomicCompareAndSwap64Barrier() instead of
      just their absence. This code change reveals that previously both RegionStore and BasicStore were
      handling these cases wrong, and would never cause the analyzer to emit a leak in these cases (false
      negatives). Now RegionStore gets it right, but BasicStore still gets it wrong (and hence it has been
      disabled temporarily for this test case).
      
      llvm-svn: 84163
      3abc41f4
  17. Oct 14, 2009
Loading