On Wed, Jun 24, 2015 at 6:02 PM, Douglas Gregor <[email protected]> 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 _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
