Skip to content
  1. May 04, 2009
    • Douglas Gregor's avatar
      Implement support for comparing pointers with <, >, <=, >=, ==, and != · 5b07c7ec
      Douglas Gregor authored
      in C++, taking into account conversions to the "composite pointer
      type" so that we can compare, e.g., a pointer to a derived class to a
      pointer to a base class. 
      
      Also, upgrade the "comparing distinct pointer types" from a warning to
      an error for C++, since this is clearly an error. Turns out that we
      hadn't gone through and audited this code for C++, ever. 
      
      Fixes <rdar://problem/6816420>.
      
      llvm-svn: 70829
      5b07c7ec
    • Ted Kremenek's avatar
      retain checker: · 1d9a267b
      Ted Kremenek authored
      - Fix retain checker test failures.
      - Update retain checker to have annotations override default summary effects, not completely redefine them.
      
      llvm-svn: 70828
      1d9a267b
    • Daniel Dunbar's avatar
      Add -fobjc-tight-layout. · e993ba6f
      Daniel Dunbar authored
       - This implements gcc style Objective-C interface layout (I
         think). Currently it is always off, there is no functionality
         change unless this is passed.
         
         For the curious, the deal is that gcc lays out the fields of a
         subclass as if they were part of the superclass. That is, the
         subclass fields immediately follow the super class fields instead
         of being padded to the alignment of the superclass structure.
      
       - Currently gcc uses the tight layout in 32-bit and 64-bit modes, and
         llvm-gcc uses it in 32-bit only, for reasons which aren't clear
         yet. We probably want to switch to matching gcc, once this makes it
         through testing... my hope is that we can also fix llvm-gcc in
         order to maintain compatibility between the compilers.
      
      llvm-svn: 70827
      e993ba6f
    • Ted Kremenek's avatar
      retain checker: RetainSummaryManager now has a 'DefaultSummary' object · ff606a12
      Ted Kremenek authored
      which is returned instead of a null pointer.  This helps centralize
      the logic concerning "default effects".
      
      llvm-svn: 70826
      ff606a12
    • Eli Friedman's avatar
      2ad7e170
    • Ted Kremenek's avatar
      retain checker: Don't bother using a FoldingSet to unique summaries. · 1bff64e3
      Ted Kremenek authored
      We never compare summaries by their pointers, and we create only a
      handful of them when analyzing a given function.
      
      llvm-svn: 70824
      1bff64e3
    • Eli Friedman's avatar
      Remove unnecessary push_back (at least, I think it's unnecessary); · 33955dd2
      Eli Friedman authored
      hopefully, this fixes PR4144 without any regressions.
      
      llvm-svn: 70823
      33955dd2
    • Daniel Dunbar's avatar
      Don't allow clients to traverse into superclass synthesized properties · 98ba964e
      Daniel Dunbar authored
      via CollectObjCIvars.
       - In places where we need them, we should have the implementation and
         access the properties through it.
      
      This is a fairly substantial functionality change: 
       1. @encode no longer encodes synthesized ivars, ever.
      
       2. The ivar layout bitmap no longer encodes information for
          synthesized ivars in superclasses. Well, actually I had already
          broken that, but it is intentional now.
      
      We are now differing substantially from llvm-gcc and gcc
      here. However, in my opinion this fundamentally *must* work if
      non-fragile classes are to work. Without this change, the result of
      @encode and the ivar layout depend on the order that the
      implementation is seen in a file (if it is in the same file with its
      superclass). Since both scenarios should work the same, our behavior
      is now consistent with gcc behavior as if an implementation is never
      seen following an implementation of its superclass.
      
      Note that #2 is only a functionality change when (A) an
      implementation appears in the same translation unit with the
      implementation of its superclass, and (B) the superclass has
      synthesized ivars. My belief is that this situation does not occur in
      practice.
      
      I am not yet sure of the role/semantics of @encode when synthesized
      ivars are present... it's use is fairly unsound in a non-fragile world.
      
      llvm-svn: 70822
      98ba964e
    • Daniel Dunbar's avatar
      Inline GetFieldBaseOffset into sole callsite. · 62b1070f
      Daniel Dunbar authored
      llvm-svn: 70813
      62b1070f
    • Daniel Dunbar's avatar
      Avoid recomputing field offsets. · 5b743915
      Daniel Dunbar authored
      llvm-svn: 70812
      5b743915
    • Daniel Dunbar's avatar
      Normalize formatting · d22aa4a5
      Daniel Dunbar authored
      llvm-svn: 70810
      d22aa4a5
    • Daniel Dunbar's avatar
      Fix an infinite loop in diagnostic printing. · 6f949918
      Daniel Dunbar authored
       - The diagnostic is still poor, however. Doug, can you investigate?
      
       - Improved the test case to not depend on the file name, now it can
         be extended to actually check the formatting of the diagnostics
         (I'm hoping grep -A is portable here).
      
      llvm-svn: 70807
      6f949918
    • Eli Friedman's avatar
      Fix for PR3841: follow gcc's example and fall back to the system · 7df3447c
      Eli Friedman authored
      stdint.h unless we are freestanding.
      
      Any suggestions here are welcome.
      
      llvm-svn: 70806
      7df3447c
    • Eli Friedman's avatar
      PR2524: downgrade taking address of expression of type 'void' to an · b8c4fd8c
      Eli Friedman authored
      extension warning.
      
      llvm-svn: 70805
      b8c4fd8c
  2. May 03, 2009
Loading