| //@ run-pass |
| //@ compile-flags: --check-cfg=cfg(target_has_reliable_f16,target_has_reliable_f16_math,target_has_reliable_f128,target_has_reliable_f128_math) |
| // Verify that the feature gates and config work and are registered as known config |
| // options. |
| |
| #![deny(unexpected_cfgs)] |
| #![feature(cfg_target_has_reliable_f16_f128)] |
| |
| #[cfg(target_has_reliable_f16)] |
| pub fn has_f16() {} |
| |
| #[cfg(target_has_reliable_f16_math)] |
| pub fn has_f16_math() {} |
| |
| #[cfg(target_has_reliable_f128 )] |
| pub fn has_f128() {} |
| |
| #[cfg(target_has_reliable_f128_math)] |
| pub fn has_f128_math() {} |
| |
| fn main() { |
| if cfg!(target_arch = "aarch64") && |
| cfg!(target_os = "linux") && |
| cfg!(not(target_env = "musl")) { |
| // Aarch64+GNU+Linux is one target that has support for all features, so use it to spot |
| // check that the compiler does indeed enable these gates. |
| |
| assert!(cfg!(target_has_reliable_f16)); |
| assert!(cfg!(target_has_reliable_f16_math)); |
| assert!(cfg!(target_has_reliable_f128)); |
| assert!(cfg!(target_has_reliable_f128_math)); |
| } |
| } |