That's a good question. You'd have to ask someone from Apple :) Those test cases were just copied from attr-availability-macosx.c. I figured it was better to leave them in case they were testing something generic rather than some specific Apple related bug.
On Thu, Feb 26, 2015 at 8:05 PM, Aaron Ballman <[email protected]> wrote: > On Thu, Feb 26, 2015 at 9:41 PM, Dan Albert <[email protected]> wrote: > > Hi srhines, > > > > REPOSITORY > > rL LLVM > > > > http://reviews.llvm.org/D7929 > > > > Files: > > include/clang/Basic/Attr.td > > lib/Basic/Targets.cpp > > test/Sema/attr-availability-android.c > > > > Index: include/clang/Basic/Attr.td > > =================================================================== > > --- include/clang/Basic/Attr.td > > +++ include/clang/Basic/Attr.td > > @@ -440,6 +440,7 @@ > > let AdditionalMembers = > > [{static llvm::StringRef getPrettyPlatformName(llvm::StringRef > Platform) { > > return llvm::StringSwitch<llvm::StringRef>(Platform) > > + .Case("android", "Android") > > .Case("ios", "iOS") > > .Case("macosx", "OS X") > > .Default(llvm::StringRef()); > > Index: lib/Basic/Targets.cpp > > =================================================================== > > --- lib/Basic/Targets.cpp > > +++ lib/Basic/Targets.cpp > > @@ -364,8 +364,13 @@ > > DefineStd(Builder, "linux", Opts); > > Builder.defineMacro("__gnu_linux__"); > > Builder.defineMacro("__ELF__"); > > - if (Triple.getEnvironment() == llvm::Triple::Android) > > + if (Triple.getEnvironment() == llvm::Triple::Android) { > > Builder.defineMacro("__ANDROID__", "1"); > > + unsigned Maj, Min, Rev; > > + Triple.getOSVersion(Maj, Min, Rev); > > + this->PlatformName = "android"; > > + this->PlatformMinVersion = VersionTuple(Maj, Min, Rev); > > + } > > if (Opts.POSIXThreads) > > Builder.defineMacro("_REENTRANT"); > > if (Opts.CPlusPlus) > > Index: test/Sema/attr-availability-android.c > > =================================================================== > > --- /dev/null > > +++ test/Sema/attr-availability-android.c > > @@ -0,0 +1,31 @@ > > +// RUN: %clang_cc1 "-triple" "arm-linux-androideabi16" -fsyntax-only > -verify %s > > + > > +void f0(int) > __attribute__((availability(android,introduced=14,deprecated=19))); > > +void f1(int) __attribute__((availability(android,introduced=16))); > > +void f2(int) > __attribute__((availability(android,introduced=14,deprecated=16))); // > expected-note {{'f2' has been explicitly marked deprecated here}} > > +void f3(int) __attribute__((availability(android,introduced=19))); > > +void f4(int) > __attribute__((availability(android,introduced=9,deprecated=11,obsoleted=16), > availability(ios,introduced=2.0,deprecated=3.0))); // > expected-note{{explicitly marked unavailable}} > > +void f5(int) __attribute__((availability(ios,introduced=3.2), > availability(android,unavailable))); // expected-note{{'f5' has been > explicitly marked unavailable here}} > > + > > +void test() { > > + f0(0); > > + f1(0); > > + f2(0); // expected-warning{{'f2' is deprecated: first deprecated in > Android 16}} > > + f3(0); > > + f4(0); // expected-error{{f4' is unavailable: obsoleted in Android > 16}} > > + f5(0); // expected-error{{'f5' is unavailable: not available on > Android}} > > +} > > + > > +// rdar://10535640 > > + > > +enum { > > + foo > __attribute__((availability(android,introduced=8.0,deprecated=9.0))) > > +}; > > + > > +enum { > > + bar > __attribute__((availability(android,introduced=8.0,deprecated=9.0))) = foo > > +}; > > + > > +enum > __attribute__((availability(android,introduced=8.0,deprecated=9.0))) { > > + bar1 = foo > > +}; > > What are the enum tests supposed to be testing? The rdar link isn't > helpful for most folks. > > Otherwise, LGTM. Thanks! > > ~Aaron > > > > > EMAIL PREFERENCES > > http://reviews.llvm.org/settings/panel/emailpreferences/ > > > > _______________________________________________ > > cfe-commits mailing list > > [email protected] > > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits > > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits >
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
