48 lines · c
1// Test that `-ffuchsia-api-level` is propagated to cc1.2 3// REQUIRES: x86-registered-target4// RUN: %clang -target x86_64-unknown-fuchsia -ffuchsia-api-level=16 -c %s -### 2>&1| FileCheck %s5 6// It should also be exposed to non-fuchsia platforms. This is desireable when7// using common Fuchsia headers for building host libraries that also depend on8// the Fuchsia version (such as using a compatible host-side FIDL library that9// talks with a Fuchsia FIDL library of the same version).10// RUN: %clang -target x86_64-unknown-linux-gnu -ffuchsia-api-level=16 -c %s -### 2>&1 | FileCheck %s11 12// Check Fuchsia API level macro.13// RUN: %clang -target x86_64-unknown-fuchsia -ffuchsia-api-level=15 -c %s -o %t14// RUN: llvm-readobj --symbols %t | FileCheck %s --check-prefix=CHECK-F1515//16// RUN: %clang -target x86_64-unknown-fuchsia -ffuchsia-api-level=16 -c %s -o %t17// RUN: llvm-readobj --symbols %t | FileCheck %s --check-prefix=CHECK-F1618 19// Check using a non-integer Fuchsia API level.20// RUN: not %clang -target x86_64-unknown-fuchsia -ffuchsia-api-level=16.0.0 -c %s 2>&1| FileCheck %s --check-prefix=CHECK-ERROR21 22 23// CHECK: "-ffuchsia-api-level=16"24 25// CHECK-F15: Name: f1526 27// CHECK-F16: Name: f1628 29// CHECK-ERROR: error: invalid integral value '16.0.0' in '-ffuchsia-api-level=16.0.0'30 31#if __Fuchsia_API_level__ >= 1632void f16(void) {33 34}35#else36void f15(void) {37 38}39#endif40 41int main(int argc, char* argv[]) {42#if __Fuchsia_API_level__ >= 1643 f16();44#else45 f15();46#endif47}48