| // Check handling -mhard-float / -msoft-float options |
| // when build for SPARC platforms. |
| // |
| // Default sparc |
| // RUN: %clang -c %s -### -o %t.o 2>&1 \ |
| // RUN: -target sparc-linux-gnu \ |
| // RUN: | FileCheck --check-prefix=CHECK-DEF %s |
| // CHECK-DEF-NOT: "-target-feature" "+soft-float" |
| // CHECK-DEF-NOT: "-msoft-float" |
| // |
| // -mhard-float |
| // RUN: %clang -c %s -### -o %t.o 2>&1 \ |
| // RUN: -target sparc-linux-gnu -mhard-float \ |
| // RUN: | FileCheck --check-prefix=CHECK-HARD %s |
| // CHECK-HARD-NOT: "-msoft-float" |
| // |
| // -msoft-float |
| // RUN: %clang -c %s -### -o %t.o 2>&1 \ |
| // RUN: -target sparc-linux-gnu -msoft-float \ |
| // RUN: | FileCheck --check-prefix=CHECK-SOFT %s |
| // CHECK-SOFT: "-target-feature" "+soft-float" |
| // |
| // -mfloat-abi=soft |
| // RUN: %clang -c %s -### -o %t.o 2>&1 \ |
| // RUN: -target sparc-linux-gnu -mfloat-abi=soft \ |
| // RUN: | FileCheck --check-prefix=CHECK-FLOATABISOFT %s |
| // CHECK-FLOATABISOFT: "-target-feature" "+soft-float" |
| // |
| // -mfloat-abi=hard |
| // RUN: %clang -c %s -### -o %t.o 2>&1 \ |
| // RUN: -target sparc-linux-gnu -mfloat-abi=hard \ |
| // RUN: | FileCheck --check-prefix=CHECK-FLOATABIHARD %s |
| // CHECK-FLOATABIHARD-NOT: "-target-feature" "+soft-float" |
| // |
| // check invalid -mfloat-abi |
| // RUN: %clang -c %s -### -o %t.o 2>&1 \ |
| // RUN: -target sparc-linux-gnu -mfloat-abi=x \ |
| // RUN: | FileCheck --check-prefix=CHECK-ERRMSG %s |
| // CHECK-ERRMSG: error: invalid float ABI '-mfloat-abi=x' |
| // |
| // Default sparc64 |
| // RUN: %clang -c %s -### -o %t.o 2>&1 \ |
| // RUN: -target sparc64-linux-gnu \ |
| // RUN: | FileCheck --check-prefix=CHECK-DEF-SPARC64 %s |
| // CHECK-DEF-SPARC64-NOT: "-target-feature" "+soft-float" |
| // CHECK-DEF-SPARC64-NOT: "-msoft-float" |
| // |
| // -mhard-float |
| // RUN: %clang -c %s -### -o %t.o 2>&1 \ |
| // RUN: -target sparc64-linux-gnu -mhard-float \ |
| // RUN: | FileCheck --check-prefix=CHECK-HARD-SPARC64 %s |
| // CHECK-HARD-SPARC64-NOT: "-msoft-float" |
| // |
| // -msoft-float |
| // RUN: %clang -c %s -### -o %t.o 2>&1 \ |
| // RUN: -target sparc64-linux-gnu -msoft-float \ |
| // RUN: | FileCheck --check-prefix=CHECK-SOFT-SPARC64 %s |
| // CHECK-SOFT-SPARC64: "-target-feature" "+soft-float" |
| // |
| // -mfloat-abi=soft |
| // RUN: %clang -c %s -### -o %t.o 2>&1 \ |
| // RUN: -target sparc64-linux-gnu -mfloat-abi=soft \ |
| // RUN: | FileCheck --check-prefix=CHECK-FLOATABISOFT64 %s |
| // CHECK-FLOATABISOFT64: "-target-feature" "+soft-float" |
| // |
| // -mfloat-abi=hard |
| // RUN: %clang -c %s -### -o %t.o 2>&1 \ |
| // RUN: -target sparc64-linux-gnu -mfloat-abi=hard \ |
| // RUN: | FileCheck --check-prefix=CHECK-FLOATABIHARD64 %s |
| // CHECK-FLOATABIHARD64-NOT: "-target-feature" "+soft-float" |
| // |
| // check invalid -mfloat-abi |
| // RUN: %clang -c %s -### -o %t.o 2>&1 \ |
| // RUN: -target sparc64-linux-gnu -mfloat-abi=x \ |
| // RUN: | FileCheck --check-prefix=CHECK-ERRMSG64 %s |
| // CHECK-ERRMSG64: error: invalid float ABI '-mfloat-abi=x' |