Skip to content
  1. Apr 15, 2011
  2. Mar 23, 2011
    • Douglas Gregor's avatar
      Implement a new 'availability' attribute, that allows one to specify · 20b2ebd7
      Douglas Gregor authored
      which versions of an OS provide a certain facility. For example,
      
        void foo()
        __attribute__((availability(macosx,introduced=10.2,deprecated=10.4,obsoleted=10.6)));
      
      says that the function "foo" was introduced in 10.2, deprecated in
      10.4, and completely obsoleted in 10.6. This attribute ties in with
      the deployment targets (e.g., -mmacosx-version-min=10.1 specifies that
      we want to deploy back to Mac OS X 10.1). There are several concrete
      behaviors that this attribute enables, as illustrated with the
      function foo() above:
      
        - If we choose a deployment target >= Mac OS X 10.4, uses of "foo"
          will result in a deprecation warning, as if we had placed
          attribute((deprecated)) on it (but with a better diagnostic)
        - If we choose a deployment target >= Mac OS X 10.6, uses of "foo"
          will result in an "unavailable" warning (in C)/error (in C++), as
          if we had placed attribute((unavailable)) on it
        - If we choose a deployment target prior to 10.2, foo() is
          weak-imported (if it is a kind of entity that can be weak
          imported), as if we had placed the weak_import attribute on it.
      
      Naturally, there can be multiple availability attributes on a
      declaration, for different platforms; only the current platform
      matters when checking availability attributes.
      
      The only platforms this attribute currently works for are "ios" and
      "macosx", since we already have -mxxxx-version-min flags for them and we
      have experience there with macro tricks translating down to the
      deprecated/unavailable/weak_import attributes. The end goal is to open
      this up to other platforms, and even extension to other "platforms"
      that are really libraries (say, through a #pragma clang
      define_system), but that hasn't yet been designed and we may want to
      shake out more issues with this narrower problem first.
      
      Addresses <rdar://problem/6690412>.
      
      As a drive-by bug-fix, if an entity is both deprecated and
      unavailable, we only emit the "unavailable" diagnostic.
      
      llvm-svn: 128127
      20b2ebd7
  3. Mar 18, 2011
  4. Feb 10, 2011
  5. Jan 06, 2011
    • Roman Divacky's avatar
      PowerPC fixes. · 965b0b72
      Roman Divacky authored
      Fix the width and align of bool type on Darwin to be 32bits
      while keeping it 8 everywhere else.
      
      Change the definition of va_list to default to SV4 ABI one
      and let darwin subtarget override this.
      
      Both changes submitted by Nathan Whitehorn and reviewed
      by Rafael Espindola.
      
      llvm-svn: 122956
      965b0b72
  6. Dec 26, 2010
  7. Dec 19, 2010
  8. Nov 03, 2010
  9. Oct 18, 2010
  10. Sep 22, 2010
  11. Sep 18, 2010
  12. Sep 07, 2010
  13. Aug 22, 2010
  14. Aug 12, 2010
  15. Aug 11, 2010
  16. Aug 10, 2010
  17. Jul 15, 2010
  18. Jul 10, 2010
  19. Jun 05, 2010
  20. May 27, 2010
  21. Apr 23, 2010
  22. Apr 15, 2010
  23. Jan 30, 2010
  24. Dec 16, 2009
  25. Nov 21, 2009
  26. Nov 12, 2009
  27. Nov 07, 2009
  28. Nov 05, 2009
  29. Oct 25, 2009
  30. Oct 21, 2009
  31. Oct 13, 2009
  32. Sep 09, 2009
  33. Jul 14, 2009
  34. Jul 01, 2009
    • Eli Friedman's avatar
      Fix for PR4192: fix the definition of int64_t on x86_64 Linux. · 2857ccba
      Eli Friedman authored
      Note that I'm guessing that *BSD and Solaris do the same thing as Linux 
      here, but it's quite possible I'm wrong; if the following testcase 
      gives an error on x86-64 with gcc for any of those operating systems, please
      tell me:
      
      #include <stdint.h>
      
      int64_t x; long x;
      
      llvm-svn: 74583
      2857ccba
Loading