Skip to content
  1. Oct 03, 2011
  2. Oct 01, 2011
    • John McCall's avatar
      Allow the results of cf_returns_not_retained function · e4fe2457
      John McCall authored
      calls, or calls to audited functions without an explicit
      return attribute, to be casted without a bridge cast.
      Tie this mechanism in with the existing exceptions to
      the cast restrictions.  State those restrictions more
      correctly and generalize.
      
      llvm-svn: 140912
      e4fe2457
  3. Sep 27, 2011
  4. Sep 17, 2011
  5. Sep 10, 2011
  6. Sep 09, 2011
  7. Sep 08, 2011
  8. Aug 31, 2011
  9. Aug 29, 2011
  10. Aug 26, 2011
  11. Aug 22, 2011
  12. Jul 27, 2011
  13. Jul 23, 2011
  14. Jul 13, 2011
  15. Jul 08, 2011
  16. Jul 07, 2011
  17. Jul 06, 2011
  18. Jun 28, 2011
  19. Jun 22, 2011
  20. Jun 21, 2011
  21. Jun 20, 2011
  22. Jun 17, 2011
  23. Jun 16, 2011
    • John McCall's avatar
      Automatic Reference Counting. · 31168b07
      John McCall authored
      Language-design credit goes to a lot of people, but I particularly want
      to single out Blaine Garst and Patrick Beard for their contributions.
      
      Compiler implementation credit goes to Argyrios, Doug, Fariborz, and myself,
      in no particular order.
      
      llvm-svn: 133103
      31168b07
  24. Jun 11, 2011
    • Douglas Gregor's avatar
      Implement Objective-C Related Result Type semantics. · 33823727
      Douglas Gregor authored
      Related result types apply Cocoa conventions to the type of message
      sends and property accesses to Objective-C methods that are known to
      always return objects whose type is the same as the type of the
      receiving class (or a subclass thereof), such as +alloc and
      -init. This tightens up static type safety for Objective-C, so that we
      now diagnose mistakes like this:
      
      t.m:4:10: warning: incompatible pointer types initializing 'NSSet *'
      with an
            expression of type 'NSArray *' [-Wincompatible-pointer-types]
        NSSet *array = [[NSArray alloc] init];
               ^       ~~~~~~~~~~~~~~~~~~~~~~
      /System/Library/Frameworks/Foundation.framework/Headers/NSObject.h:72:1:
      note: 
            instance method 'init' is assumed to return an instance of its
            receiver
            type ('NSArray *')
      - (id)init;
      ^
      
      It also means that we get decent type inference when writing code in
      Objective-C++0x:
      
        auto array = [[NSMutableArray alloc] initWithObjects:@"one",  @"two",nil];
        //    ^ now infers NSMutableArray* rather than id
      
      llvm-svn: 132868
      33823727
  25. May 14, 2011
  26. Apr 23, 2011
  27. Apr 20, 2011
  28. Apr 16, 2011
  29. Apr 14, 2011
  30. Apr 08, 2011
    • John Wiegley's avatar
      Use ExprResult& instead of Expr *& in Sema · 0129629f
      John Wiegley authored
      This patch authored by Eric Niebler.
      
      Many methods on the Sema class (e.g. ConvertPropertyForRValue) take Expr
      pointers as in/out parameters (Expr *&).  This is especially true for the
      routines that apply implicit conversions to nodes in-place.  This design is
      workable only as long as those conversions cannot fail.  If they are allowed
      to fail, they need a way to report their failures.  The typical way of doing
      this in clang is to use an ExprResult, which has an extra bit to signal a
      valid/invalid state.  Returning ExprResult is de riguour elsewhere in the Sema
      interface.  We suggest changing the Expr *& parameters in the Sema interface
      to ExprResult &.  This increases interface consistency and maintainability.
      
      This interface change is important for work supporting MS-style C++
      properties.  For reasons explained here
      <http://lists.cs.uiuc.edu/pipermail/cfe-dev/2011-February/013180.html>,
      seemingly trivial operations like rvalue/lvalue conversions that formerly
      could not fail now can.  (The reason is that given the semantics of the
      feature, getter/setter method lookup cannot happen until the point of use, at
      which point it may be found that the method does not exist, or it may have the
      wrong type, or overload resolution may fail, or it may be inaccessible.)
      
      llvm-svn: 129143
      0129629f
  31. Apr 06, 2011
  32. Mar 29, 2011
  33. Mar 28, 2011
Loading