| //! This is a regression test for <https://github.com/rust-lang/rust/issues/137366>, ensuring |
| //! that we can use the `neon` target feature on ARM32 targets in rustdoc despite there |
| //! being a "forbidden" feature of the same name for aarch64, and rustdoc merging the |
| //! target features of all targets. |
| //@ check-pass |
| //@ revisions: arm aarch64 |
| //@[arm] compile-flags: --target armv7-unknown-linux-gnueabihf |
| //@[arm] needs-llvm-components: arm |
| //@[aarch64] compile-flags: --target aarch64-unknown-none-softfloat |
| //@[aarch64] needs-llvm-components: aarch64 |
| |
| #![crate_type = "lib"] |
| #![feature(no_core, lang_items)] |
| #![feature(arm_target_feature)] |
| #![no_core] |
| |
| #[lang = "pointee_sized"] |
| pub trait PointeeSized {} |
| |
| #[lang = "meta_sized"] |
| pub trait MetaSized: PointeeSized {} |
| |
| #[lang = "sized"] |
| pub trait Sized: MetaSized {} |
| |
| // `fp-armv8` is "forbidden" on aarch64 as we tie it to `neon`. |
| #[target_feature(enable = "fp-armv8")] |
| pub fn fun1() {} |
| |
| // This would usually be rejected as it changes the ABI. |
| // But we disable that check in rustdoc since we are building "for all targets" and the |
| // check can't really handle that. |
| #[target_feature(enable = "soft-float")] |
| pub fn fun2() {} |