1998e067aSHaowei Wu // Test that `-ffuchsia-api-level` is propagated to cc1. 2998e067aSHaowei Wu 3998e067aSHaowei Wu // REQUIRES: x86-registered-target 4998e067aSHaowei Wu // RUN: %clang -target x86_64-unknown-fuchsia -ffuchsia-api-level=16 -c %s -### 2>&1| FileCheck %s 5998e067aSHaowei Wu 6998e067aSHaowei Wu // It should also be exposed to non-fuchsia platforms. This is desireable when 7998e067aSHaowei Wu // using common Fuchsia headers for building host libraries that also depend on 8998e067aSHaowei Wu // the Fuchsia version (such as using a compatible host-side FIDL library that 9998e067aSHaowei Wu // talks with a Fuchsia FIDL library of the same version). 10998e067aSHaowei Wu // RUN: %clang -target x86_64-unknown-linux-gnu -ffuchsia-api-level=16 -c %s -### 2>&1 | FileCheck %s 11998e067aSHaowei Wu 12998e067aSHaowei Wu // Check Fuchsia API level macro. 13998e067aSHaowei Wu // RUN: %clang -target x86_64-unknown-fuchsia -ffuchsia-api-level=15 -c %s -o %t 14998e067aSHaowei Wu // RUN: llvm-readobj --symbols %t | FileCheck %s --check-prefix=CHECK-F15 15*5c29ffdaSFangrui Song // 16998e067aSHaowei Wu // RUN: %clang -target x86_64-unknown-fuchsia -ffuchsia-api-level=16 -c %s -o %t 17998e067aSHaowei Wu // RUN: llvm-readobj --symbols %t | FileCheck %s --check-prefix=CHECK-F16 18998e067aSHaowei Wu 19998e067aSHaowei Wu // Check using a non-integer Fuchsia API level. 20998e067aSHaowei Wu // RUN: not %clang -target x86_64-unknown-fuchsia -ffuchsia-api-level=16.0.0 -c %s 2>&1| FileCheck %s --check-prefix=CHECK-ERROR 21998e067aSHaowei Wu 22998e067aSHaowei Wu 23998e067aSHaowei Wu // CHECK: "-ffuchsia-api-level=16" 24998e067aSHaowei Wu 25998e067aSHaowei Wu // CHECK-F15: Name: f15 26998e067aSHaowei Wu 27998e067aSHaowei Wu // CHECK-F16: Name: f16 28998e067aSHaowei Wu 29998e067aSHaowei Wu // CHECK-ERROR: error: invalid integral value '16.0.0' in '-ffuchsia-api-level=16.0.0' 30998e067aSHaowei Wu 31998e067aSHaowei Wu #if __Fuchsia_API_level__ >= 16 f16(void)327de71613SAaron Ballmanvoid f16(void) { 33998e067aSHaowei Wu 34998e067aSHaowei Wu } 35998e067aSHaowei Wu #else f15(void)367de71613SAaron Ballmanvoid f15(void) { 37998e067aSHaowei Wu 38998e067aSHaowei Wu } 39998e067aSHaowei Wu #endif 40998e067aSHaowei Wu main(int argc,char * argv[])41998e067aSHaowei Wuint main(int argc, char* argv[]) { 42998e067aSHaowei Wu #if __Fuchsia_API_level__ >= 16 43998e067aSHaowei Wu f16(); 44998e067aSHaowei Wu #else 45998e067aSHaowei Wu f15(); 46998e067aSHaowei Wu #endif 47998e067aSHaowei Wu } 48