From e1b6e85ac0ef4a98d92ca3f0f68043e7c4580ee3 Mon Sep 17 00:00:00 2001 From: Stephen Hines Date: Fri, 11 Nov 2016 01:29:39 +0000 Subject: [PATCH] Define __ANDROID_API__ when specified as part of an Android target. Summary: This macro should be defined only when the user directly specifies an API level as part of an Android target. For any regular Android target, we leave this macro undefined. Bug: https://llvm.org/bugs/show_bug.cgi?id=30940 Reviewers: eugenis, pirama Subscribers: tberghammer, cfe-commits, pirama, eugenis, danalbert Differential Revision: https://reviews.llvm.org/D26491 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@286543 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Basic/Targets.cpp | 2 ++ test/Preprocessor/init.c | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp index d60f892483..d5efce4919 100644 --- a/lib/Basic/Targets.cpp +++ b/lib/Basic/Targets.cpp @@ -465,6 +465,8 @@ protected: Triple.getEnvironmentVersion(Maj, Min, Rev); this->PlatformName = "android"; this->PlatformMinVersion = VersionTuple(Maj, Min, Rev); + if (Maj) + Builder.defineMacro("__ANDROID_API__", Twine(Maj)); } if (Opts.POSIXThreads) Builder.defineMacro("_REENTRANT"); diff --git a/test/Preprocessor/init.c b/test/Preprocessor/init.c index 1fe239cdae..61640a0fad 100644 --- a/test/Preprocessor/init.c +++ b/test/Preprocessor/init.c @@ -8497,6 +8497,7 @@ // NORTTI:#define __STDC__ 1 // // RUN: %clang_cc1 -triple arm-linux-androideabi -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix ANDROID %s +// ANDROID-NOT:#define __ANDROID_API__ // ANDROID:#define __ANDROID__ 1 // // RUN: %clang_cc1 -x c++ -triple i686-linux-android -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix I386-ANDROID-CXX %s @@ -8505,6 +8506,10 @@ // RUN: %clang_cc1 -x c++ -triple x86_64-linux-android -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix X86_64-ANDROID-CXX %s // X86_64-ANDROID-CXX:#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16UL // +// RUN: %clang_cc1 -triple arm-linux-androideabi20 -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix ANDROID20 %s +// ANDROID20:#define __ANDROID_API__ 20 +// ANDROID20:#define __ANDROID__ 1 +// // RUN: %clang_cc1 -triple lanai-unknown-unknown -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix LANAI %s // LANAI: #define __lanai__ 1 // -- 2.40.0