1 // Check handling -mhard-float / -msoft-float options
2 // when build for SPARC platforms.
3 //
4 // Default sparc
5 // RUN: %clang -c %s -### -o %t.o 2>&1 \
6 // RUN:     -target sparc-linux-gnu \
7 // RUN:   | FileCheck --check-prefix=CHECK-DEF %s
8 // CHECK-DEF-NOT: "-target-feature" "+soft-float"
9 // CHECK-DEF-NOT: "-msoft-float"
10 //
11 // -mhard-float
12 // RUN: %clang -c %s -### -o %t.o 2>&1 \
13 // RUN:     -target sparc-linux-gnu -mhard-float \
14 // RUN:   | FileCheck --check-prefix=CHECK-HARD %s
15 // CHECK-HARD-NOT: "-msoft-float"
16 //
17 // -msoft-float
18 // RUN: %clang -c %s -### -o %t.o 2>&1 \
19 // RUN:     -target sparc-linux-gnu -msoft-float \
20 // RUN:   | FileCheck --check-prefix=CHECK-SOFT %s
21 // CHECK-SOFT: "-target-feature" "+soft-float"
22 //
23 // -mfloat-abi=soft
24 // RUN: %clang -c %s -### -o %t.o 2>&1 \
25 // RUN:     -target sparc-linux-gnu -mfloat-abi=soft \
26 // RUN:   | FileCheck --check-prefix=CHECK-FLOATABISOFT %s
27 // CHECK-FLOATABISOFT: "-target-feature" "+soft-float"
28 //
29 // -mfloat-abi=hard
30 // RUN: %clang -c %s -### -o %t.o 2>&1 \
31 // RUN:     -target sparc-linux-gnu -mfloat-abi=hard \
32 // RUN:   | FileCheck --check-prefix=CHECK-FLOATABIHARD %s
33 // CHECK-FLOATABIHARD-NOT: "-target-feature" "+soft-float"
34 //
35 // check invalid -mfloat-abi
36 // RUN: %clang -c %s -### -o %t.o 2>&1 \
37 // RUN:     -target sparc-linux-gnu -mfloat-abi=x \
38 // RUN:   | FileCheck --check-prefix=CHECK-ERRMSG %s
39 // CHECK-ERRMSG: error: invalid float ABI '-mfloat-abi=x'
40 //
41 // Default sparc64
42 // RUN: %clang -c %s -### -o %t.o 2>&1 \
43 // RUN:     -target sparc64-linux-gnu \
44 // RUN:   | FileCheck --check-prefix=CHECK-DEF-SPARC64 %s
45 // CHECK-DEF-SPARC64-NOT: "-target-feature" "+soft-float"
46 // CHECK-DEF-SPARC64-NOT: "-msoft-float"
47 //
48 // -mhard-float
49 // RUN: %clang -c %s -### -o %t.o 2>&1 \
50 // RUN:     -target sparc64-linux-gnu -mhard-float \
51 // RUN:   | FileCheck --check-prefix=CHECK-HARD-SPARC64 %s
52 // CHECK-HARD-SPARC64-NOT: "-msoft-float"
53 //
54 // -msoft-float
55 // RUN: %clang -c %s -### -o %t.o 2>&1 \
56 // RUN:     -target sparc64-linux-gnu -msoft-float \
57 // RUN:   | FileCheck --check-prefix=CHECK-SOFT-SPARC64 %s
58 // CHECK-SOFT-SPARC64: "-target-feature" "+soft-float"
59 //
60 // -mfloat-abi=soft
61 // RUN: %clang -c %s -### -o %t.o 2>&1 \
62 // RUN:     -target sparc64-linux-gnu -mfloat-abi=soft \
63 // RUN:   | FileCheck --check-prefix=CHECK-FLOATABISOFT64 %s
64 // CHECK-FLOATABISOFT64: "-target-feature" "+soft-float"
65 //
66 // -mfloat-abi=hard
67 // RUN: %clang -c %s -### -o %t.o 2>&1 \
68 // RUN:     -target sparc64-linux-gnu -mfloat-abi=hard \
69 // RUN:   | FileCheck --check-prefix=CHECK-FLOATABIHARD64 %s
70 // CHECK-FLOATABIHARD64-NOT: "-target-feature" "+soft-float"
71 //
72 // check invalid -mfloat-abi
73 // RUN: %clang -c %s -### -o %t.o 2>&1 \
74 // RUN:     -target sparc64-linux-gnu -mfloat-abi=x \
75 // RUN:   | FileCheck --check-prefix=CHECK-ERRMSG64 %s
76 // CHECK-ERRMSG64: error: invalid float ABI '-mfloat-abi=x'
77