r240597 - Add __nonnull/__nullable/__null_unspecified predefines for Darwin.

Aaron Ballman aaron at aaronballman.com
Wed Jun 24 15:17:32 PDT 2015


On Wed, Jun 24, 2015 at 6:02 PM, Douglas Gregor <dgregor at apple.com> wrote:
> Author: dgregor
> Date: Wed Jun 24 17:02:16 2015
> New Revision: 240597
>
> URL: http://llvm.org/viewvc/llvm-project?rev=240597&view=rev
> Log:
> Add __nonnull/__nullable/__null_unspecified predefines for Darwin.
>
> Addresses the rest of rdar://problem/21530726.
>
> Added:
>     cfe/trunk/test/Preprocessor/predefined-nullability.c   (with props)
> Modified:
>     cfe/trunk/lib/Frontend/InitPreprocessor.cpp
>
> Modified: cfe/trunk/lib/Frontend/InitPreprocessor.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/InitPreprocessor.cpp?rev=240597&r1=240596&r2=240597&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Frontend/InitPreprocessor.cpp (original)
> +++ cfe/trunk/lib/Frontend/InitPreprocessor.cpp Wed Jun 24 17:02:16 2015
> @@ -868,6 +868,14 @@ static void InitializePredefinedMacros(c
>                          "__attribute__((objc_ownership(none)))");
>    }
>
> +  // On Darwin, there are __double_underscored variants of the type
> +  // nullability qualifiers.
> +  if (TI.getTriple().isOSDarwin()) {
> +    Builder.defineMacro("__nonnull", "_Nonnull");
> +    Builder.defineMacro("__null_unspecified", "_Null_unspecified");
> +    Builder.defineMacro("__nullable", "_Nullable");
> +  }
> +
>    // OpenMP definition
>    if (LangOpts.OpenMP) {
>      // OpenMP 2.2:
>
> Added: cfe/trunk/test/Preprocessor/predefined-nullability.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Preprocessor/predefined-nullability.c?rev=240597&view=auto
> ==============================================================================
> --- cfe/trunk/test/Preprocessor/predefined-nullability.c (added)
> +++ cfe/trunk/test/Preprocessor/predefined-nullability.c Wed Jun 24 17:02:16 2015
> @@ -0,0 +1,12 @@
> +// RUN: %clang_cc1 %s -E -dM -triple i386-apple-darwin10 -o - | FileCheck %s --check-prefix=CHECK-DARWIN
> +
> +// RUN: %clang_cc1 %s -E -dM -triple x86_64-unknown-linux -o - | FileCheck %s --check-prefix=CHECK-NONDARWIN
> +
> +
> +// CHECK-DARWIN: #define __nonnull _Nonnull
> +// CHECK-DARWIN: #define __null_unspecified _Null_unspecified
> +// CHECK-DARWIN: #define __nullable _Nullable
> +
> +// CHECK-NONDARWIN-NOT: __nonnull
> +// CHECK-NONDARWIN: #define __clang__
> +// CHECK-NONDARWIN-NOT: __nonnull
>
> Propchange: cfe/trunk/test/Preprocessor/predefined-nullability.c
> ------------------------------------------------------------------------------
>     svn:eol-style = native
>
> Propchange: cfe/trunk/test/Preprocessor/predefined-nullability.c
> ------------------------------------------------------------------------------
>     svn:keywords = Id
>
> Propchange: cfe/trunk/test/Preprocessor/predefined-nullability.c
> ------------------------------------------------------------------------------
>     svn:mime-type = text/plain

Moar propchanges. ;-)

~Aaron



More information about the cfe-commits mailing list