|  | // Test that `-ffuchsia-api-level` is propagated to cc1. | 
|  |  | 
|  | // REQUIRES: x86-registered-target | 
|  | // RUN: %clang -target x86_64-unknown-fuchsia -ffuchsia-api-level=16 -c %s -### 2>&1| FileCheck %s | 
|  |  | 
|  | // It should also be exposed to non-fuchsia platforms. This is desireable when | 
|  | // using common Fuchsia headers for building host libraries that also depend on | 
|  | // the Fuchsia version (such as using a compatible host-side FIDL library that | 
|  | // talks with a Fuchsia FIDL library of the same version). | 
|  | // RUN: %clang -target x86_64-unknown-linux-gnu -ffuchsia-api-level=16 -c %s -### 2>&1 | FileCheck %s | 
|  |  | 
|  | // Check Fuchsia API level macro. | 
|  | // RUN: %clang -target x86_64-unknown-fuchsia -ffuchsia-api-level=15 -c %s -o %t | 
|  | // RUN: llvm-readobj --symbols %t | FileCheck %s --check-prefix=CHECK-F15 | 
|  | // | 
|  | // RUN: %clang -target x86_64-unknown-fuchsia -ffuchsia-api-level=16 -c %s -o %t | 
|  | // RUN: llvm-readobj --symbols %t | FileCheck %s --check-prefix=CHECK-F16 | 
|  |  | 
|  | // Check using a non-integer Fuchsia API level. | 
|  | // RUN: not %clang -target x86_64-unknown-fuchsia -ffuchsia-api-level=16.0.0 -c %s  2>&1| FileCheck %s  --check-prefix=CHECK-ERROR | 
|  |  | 
|  |  | 
|  | // CHECK: "-ffuchsia-api-level=16" | 
|  |  | 
|  | // CHECK-F15:   Name: f15 | 
|  |  | 
|  | // CHECK-F16:   Name: f16 | 
|  |  | 
|  | // CHECK-ERROR: error: invalid integral value '16.0.0' in '-ffuchsia-api-level=16.0.0' | 
|  |  | 
|  | #if __Fuchsia_API_level__ >= 16 | 
|  | void f16(void) { | 
|  |  | 
|  | } | 
|  | #else | 
|  | void f15(void) { | 
|  |  | 
|  | } | 
|  | #endif | 
|  |  | 
|  | int main(int argc, char* argv[]) { | 
|  | #if __Fuchsia_API_level__ >= 16 | 
|  | f16(); | 
|  | #else | 
|  | f15(); | 
|  | #endif | 
|  | } |