@@ -12,16 +12,23 @@ enum Feature {
12
12
NoSysF16 ,
13
13
NoSysF16F64Convert ,
14
14
NoSysF16F128Convert ,
15
+ NoSysF16GnuConvert ,
15
16
}
16
17
17
18
impl Feature {
18
19
fn implies ( self ) -> & ' static [ Self ] {
19
20
match self {
20
21
Self :: NoSysF128 => [ Self :: NoSysF128IntConvert , Self :: NoSysF16F128Convert ] . as_slice ( ) ,
21
22
Self :: NoSysF128IntConvert => [ ] . as_slice ( ) ,
22
- Self :: NoSysF16 => [ Self :: NoSysF16F64Convert , Self :: NoSysF16F128Convert ] . as_slice ( ) ,
23
+ Self :: NoSysF16 => [
24
+ Self :: NoSysF16F64Convert ,
25
+ Self :: NoSysF16F128Convert ,
26
+ Feature :: NoSysF16GnuConvert ,
27
+ ]
28
+ . as_slice ( ) ,
23
29
Self :: NoSysF16F64Convert => [ ] . as_slice ( ) ,
24
30
Self :: NoSysF16F128Convert => [ ] . as_slice ( ) ,
31
+ Self :: NoSysF16GnuConvert => [ ] . as_slice ( ) ,
25
32
}
26
33
}
27
34
}
@@ -84,6 +91,11 @@ fn main() {
84
91
features. insert ( Feature :: NoSysF16F64Convert ) ;
85
92
}
86
93
94
+ // These platforms do not have `__gnu_f2h_ieee` or `__gnu_h2f_ieee`.
95
+ if false {
96
+ features. insert ( Feature :: NoSysF16GnuConvert ) ;
97
+ }
98
+
87
99
// Add implied features. Collection is required for borrows.
88
100
features. extend (
89
101
features
@@ -108,6 +120,10 @@ fn main() {
108
120
"no-sys-f16-f128-convert" ,
109
121
"using apfloat fallback for f16 <-> f128 conversions" ,
110
122
) ,
123
+ Feature :: NoSysF16GnuConvert => (
124
+ "no-sys-f16-gnu-convert" ,
125
+ "using apfloat fallback for __gnu f16" ,
126
+ ) ,
111
127
Feature :: NoSysF16 => ( "no-sys-f16" , "using apfloat fallback for f16" ) ,
112
128
} ;
113
129
println ! ( "cargo:warning={warning}" ) ;
0 commit comments