Auto merge of #118708 - davidtwco:target-tier-assembly-test, r=Mark-Simulacrum

tests: add sanity-check assembly test for every target

Fixes #119910.

Adds a basic assembly test checking that each target can produce assembly and update the target tier policy to require this.

cc rust-lang/compiler-team#655
r? `@wesleywiser`
This commit is contained in:
bors 2024-01-17 16:18:28 +00:00
commit 6ae4cfbbb0
9 changed files with 804 additions and 8 deletions

View File

@ -1,7 +0,0 @@
use crate::spec::{targets::wasm32_unknown_emscripten, LinkerFlavor, Target};
pub fn target() -> Target {
let mut target = wasm32_unknown_emscripten::target();
target.add_post_link_args(LinkerFlavor::EmCc, &["-sWASM=0", "--memory-init-file", "0"]);
target
}

View File

@ -11,7 +11,7 @@ pub fn target() -> Target {
Target { Target {
llvm_target: "powerpc64-unknown-linux-musl".into(), llvm_target: "powerpc64-unknown-linux-musl".into(),
pointer_width: 64, pointer_width: 64,
data_layout: "E-m:e-Fi64-i64:64-n32:64-S128-v256:256:256-v512:512:512".into(), data_layout: "E-m:e-Fn32-i64:64-n32:64-S128-v256:256:256-v512:512:512".into(),
arch: "powerpc64".into(), arch: "powerpc64".into(),
options: TargetOptions { endian: Endian::Big, mcount: "_mcount".into(), ..base }, options: TargetOptions { endian: Endian::Big, mcount: "_mcount".into(), ..base },
} }

View File

@ -246,6 +246,8 @@ approved by the appropriate team for that shared code before acceptance.
introducing unconditional uses of features that another variation of the introducing unconditional uses of features that another variation of the
target may not have; use conditional compilation or runtime detection, as target may not have; use conditional compilation or runtime detection, as
appropriate, to let each target run code supported by that target. appropriate, to let each target run code supported by that target.
- Tier 3 targets must be able to produce assembly using at least one of
rustc's supported backends from any host target.
If a tier 3 target stops meeting these requirements, or the target maintainers If a tier 3 target stops meeting these requirements, or the target maintainers
no longer have interest or time, or the target shows no signs of activity and no longer have interest or time, or the target shows no signs of activity and

View File

@ -70,6 +70,7 @@ pub mod pal;
pub mod rustdoc_css_themes; pub mod rustdoc_css_themes;
pub mod rustdoc_gui_tests; pub mod rustdoc_gui_tests;
pub mod style; pub mod style;
pub mod target_policy;
pub mod target_specific_tests; pub mod target_specific_tests;
pub mod tests_placement; pub mod tests_placement;
pub mod ui_tests; pub mod ui_tests;

View File

@ -109,6 +109,7 @@ fn main() {
// Checks that only make sense for the compiler. // Checks that only make sense for the compiler.
check!(error_codes, &root_path, &[&compiler_path, &librustdoc_path], verbose); check!(error_codes, &root_path, &[&compiler_path, &librustdoc_path], verbose);
check!(fluent_alphabetical, &compiler_path, bless); check!(fluent_alphabetical, &compiler_path, bless);
check!(target_policy, &root_path);
// Checks that only make sense for the std libs. // Checks that only make sense for the std libs.
check!(pal, &library_path); check!(pal, &library_path);

View File

@ -0,0 +1,52 @@
//! Tests for target tier policy compliance.
//!
//! As of writing, only checks that sanity-check assembly test for targets doesn't miss any targets.
use crate::walk::{filter_not_rust, walk};
use std::{collections::HashSet, path::Path};
const TARGET_DEFINITIONS_PATH: &str = "compiler/rustc_target/src/spec/targets/";
const ASSEMBLY_TEST_PATH: &str = "tests/assembly/targets/";
const REVISION_LINE_START: &str = "// revisions: ";
const EXCEPTIONS: &[&str] = &[
// FIXME: disabled since it fails on CI saying the csky component is missing
"csky_unknown_linux_gnuabiv2",
"csky_unknown_linux_gnuabiv2hf",
];
pub fn check(root_path: &Path, bad: &mut bool) {
let mut targets_to_find = HashSet::new();
let definitions_path = root_path.join(TARGET_DEFINITIONS_PATH);
for defn in ignore::WalkBuilder::new(&definitions_path)
.max_depth(Some(1))
.filter_entry(|e| !filter_not_rust(e.path()))
.build()
{
let defn = defn.unwrap();
// Skip directory itself.
if defn.path() == definitions_path {
continue;
}
let path = defn.path();
let target_name = path.file_stem().unwrap().to_string_lossy().into_owned();
let _ = targets_to_find.insert(target_name);
}
walk(&root_path.join(ASSEMBLY_TEST_PATH), |_, _| false, &mut |_, contents| {
for line in contents.lines() {
let Some(_) = line.find(REVISION_LINE_START) else {
continue;
};
let (_, target_name) = line.split_at(REVISION_LINE_START.len());
targets_to_find.remove(target_name);
}
});
for target in targets_to_find {
if !EXCEPTIONS.contains(&target.as_str()) {
tidy_error!(bad, "{ASSEMBLY_TEST_PATH}: missing assembly test for {target}")
}
}
}

View File

@ -0,0 +1,633 @@
// assembly-output: emit-asm
// ignore-tidy-linelength
// revisions: aarch64_apple_darwin
// [aarch64_apple_darwin] compile-flags: --target aarch64-apple-darwin
// [aarch64_apple_darwin] needs-llvm-components: aarch64
// revisions: aarch64_apple_ios
// [aarch64_apple_ios] compile-flags: --target aarch64-apple-ios
// [aarch64_apple_ios] needs-llvm-components: aarch64
// revisions: aarch64_apple_ios_macabi
// [aarch64_apple_ios_macabi] compile-flags: --target aarch64-apple-ios-macabi
// [aarch64_apple_ios_macabi] needs-llvm-components: aarch64
// revisions: aarch64_apple_ios_sim
// [aarch64_apple_ios_sim] compile-flags: --target aarch64-apple-ios-sim
// [aarch64_apple_ios_sim] needs-llvm-components: aarch64
// revisions: aarch64_apple_tvos
// [aarch64_apple_tvos] compile-flags: --target aarch64-apple-tvos
// [aarch64_apple_tvos] needs-llvm-components: aarch64
// revisions: aarch64_apple_tvos_sim
// [aarch64_apple_tvos_sim] compile-flags: --target aarch64-apple-tvos-sim
// [aarch64_apple_tvos_sim] needs-llvm-components: aarch64
// revisions: aarch64_apple_watchos
// [aarch64_apple_watchos] compile-flags: --target aarch64-apple-watchos
// [aarch64_apple_watchos] needs-llvm-components: aarch64
// revisions: aarch64_apple_watchos_sim
// [aarch64_apple_watchos_sim] compile-flags: --target aarch64-apple-watchos-sim
// [aarch64_apple_watchos_sim] needs-llvm-components: aarch64
// revisions: aarch64_be_unknown_linux_gnu
// [aarch64_be_unknown_linux_gnu] compile-flags: --target aarch64_be-unknown-linux-gnu
// [aarch64_be_unknown_linux_gnu] needs-llvm-components: aarch64
// revisions: aarch64_be_unknown_linux_gnu_ilp32
// [aarch64_be_unknown_linux_gnu_ilp32] compile-flags: --target aarch64_be-unknown-linux-gnu_ilp32
// [aarch64_be_unknown_linux_gnu_ilp32] needs-llvm-components: aarch64
// revisions: aarch64_be_unknown_netbsd
// [aarch64_be_unknown_netbsd] compile-flags: --target aarch64_be-unknown-netbsd
// [aarch64_be_unknown_netbsd] needs-llvm-components: aarch64
// revisions: aarch64_fuchsia
// [aarch64_fuchsia] compile-flags: --target aarch64-fuchsia
// [aarch64_fuchsia] needs-llvm-components: aarch64
// revisions: aarch64_kmc_solid_asp3
// [aarch64_kmc_solid_asp3] compile-flags: --target aarch64-kmc-solid_asp3
// [aarch64_kmc_solid_asp3] needs-llvm-components: aarch64
// revisions: aarch64_linux_android
// [aarch64_linux_android] compile-flags: --target aarch64-linux-android
// [aarch64_linux_android] needs-llvm-components: aarch64
// revisions: aarch64_nintendo_switch_freestanding
// [aarch64_nintendo_switch_freestanding] compile-flags: --target aarch64-nintendo-switch-freestanding
// [aarch64_nintendo_switch_freestanding] needs-llvm-components: aarch64
// revisions: aarch64_unknown_freebsd
// [aarch64_unknown_freebsd] compile-flags: --target aarch64-unknown-freebsd
// [aarch64_unknown_freebsd] needs-llvm-components: aarch64
// revisions: aarch64_unknown_fuchsia
// [aarch64_unknown_fuchsia] compile-flags: --target aarch64-unknown-fuchsia
// [aarch64_unknown_fuchsia] needs-llvm-components: aarch64
// revisions: aarch64_unknown_hermit
// [aarch64_unknown_hermit] compile-flags: --target aarch64-unknown-hermit
// [aarch64_unknown_hermit] needs-llvm-components: aarch64
// revisions: aarch64_unknown_illumos
// [aarch64_unknown_illumos] compile-flags: --target aarch64-unknown-illumos
// [aarch64_unknown_illumos] needs-llvm-components: aarch64
// revisions: aarch64_unknown_linux_gnu
// [aarch64_unknown_linux_gnu] compile-flags: --target aarch64-unknown-linux-gnu
// [aarch64_unknown_linux_gnu] needs-llvm-components: aarch64
// revisions: aarch64_unknown_linux_gnu_ilp32
// [aarch64_unknown_linux_gnu_ilp32] compile-flags: --target aarch64-unknown-linux-gnu_ilp32
// [aarch64_unknown_linux_gnu_ilp32] needs-llvm-components: aarch64
// revisions: aarch64_unknown_linux_musl
// [aarch64_unknown_linux_musl] compile-flags: --target aarch64-unknown-linux-musl
// [aarch64_unknown_linux_musl] needs-llvm-components: aarch64
// revisions: aarch64_unknown_linux_ohos
// [aarch64_unknown_linux_ohos] compile-flags: --target aarch64-unknown-linux-ohos
// [aarch64_unknown_linux_ohos] needs-llvm-components: aarch64
// revisions: aarch64_unknown_netbsd
// [aarch64_unknown_netbsd] compile-flags: --target aarch64-unknown-netbsd
// [aarch64_unknown_netbsd] needs-llvm-components: aarch64
// revisions: aarch64_unknown_none
// [aarch64_unknown_none] compile-flags: --target aarch64-unknown-none
// [aarch64_unknown_none] needs-llvm-components: aarch64
// revisions: aarch64_unknown_none_softfloat
// [aarch64_unknown_none_softfloat] compile-flags: --target aarch64-unknown-none-softfloat
// [aarch64_unknown_none_softfloat] needs-llvm-components: aarch64
// revisions: aarch64_unknown_nto_qnx_710
// [aarch64_unknown_nto_qnx_710] compile-flags: --target aarch64-unknown-nto-qnx710
// [aarch64_unknown_nto_qnx_710] needs-llvm-components: aarch64
// revisions: aarch64_unknown_openbsd
// [aarch64_unknown_openbsd] compile-flags: --target aarch64-unknown-openbsd
// [aarch64_unknown_openbsd] needs-llvm-components: aarch64
// revisions: aarch64_unknown_redox
// [aarch64_unknown_redox] compile-flags: --target aarch64-unknown-redox
// [aarch64_unknown_redox] needs-llvm-components: aarch64
// revisions: aarch64_unknown_teeos
// [aarch64_unknown_teeos] compile-flags: --target aarch64-unknown-teeos
// [aarch64_unknown_teeos] needs-llvm-components: aarch64
// revisions: aarch64_wrs_vxworks
// [aarch64_wrs_vxworks] compile-flags: --target aarch64-wrs-vxworks
// [aarch64_wrs_vxworks] needs-llvm-components: aarch64
// revisions: arm64_32_apple_watchos
// [arm64_32_apple_watchos] compile-flags: --target arm64_32-apple-watchos
// [arm64_32_apple_watchos] needs-llvm-components: aarch64
// revisions: arm64e_apple_darwin
// [arm64e_apple_darwin] compile-flags: --target arm64e-apple-darwin
// [arm64e_apple_darwin] needs-llvm-components: aarch64
// revisions: arm64e_apple_ios
// [arm64e_apple_ios] compile-flags: --target arm64e-apple-ios
// [arm64e_apple_ios] needs-llvm-components: aarch64
// revisions: arm_linux_androideabi
// [arm_linux_androideabi] compile-flags: --target arm-linux-androideabi
// [arm_linux_androideabi] needs-llvm-components: arm
// revisions: arm_unknown_linux_gnueabi
// [arm_unknown_linux_gnueabi] compile-flags: --target arm-unknown-linux-gnueabi
// [arm_unknown_linux_gnueabi] needs-llvm-components: arm
// revisions: arm_unknown_linux_gnueabihf
// [arm_unknown_linux_gnueabihf] compile-flags: --target arm-unknown-linux-gnueabihf
// [arm_unknown_linux_gnueabihf] needs-llvm-components: arm
// revisions: arm_unknown_linux_musleabi
// [arm_unknown_linux_musleabi] compile-flags: --target arm-unknown-linux-musleabi
// [arm_unknown_linux_musleabi] needs-llvm-components: arm
// revisions: arm_unknown_linux_musleabihf
// [arm_unknown_linux_musleabihf] compile-flags: --target arm-unknown-linux-musleabihf
// [arm_unknown_linux_musleabihf] needs-llvm-components: arm
// revisions: armeb_unknown_linux_gnueabi
// [armeb_unknown_linux_gnueabi] compile-flags: --target armeb-unknown-linux-gnueabi
// [armeb_unknown_linux_gnueabi] needs-llvm-components: arm
// revisions: armebv7r_none_eabi
// [armebv7r_none_eabi] compile-flags: --target armebv7r-none-eabi
// [armebv7r_none_eabi] needs-llvm-components: arm
// revisions: armebv7r_none_eabihf
// [armebv7r_none_eabihf] compile-flags: --target armebv7r-none-eabihf
// [armebv7r_none_eabihf] needs-llvm-components: arm
// revisions: armv4t_none_eabi
// [armv4t_none_eabi] compile-flags: --target armv4t-none-eabi
// [armv4t_none_eabi] needs-llvm-components: arm
// revisions: armv4t_unknown_linux_gnueabi
// [armv4t_unknown_linux_gnueabi] compile-flags: --target armv4t-unknown-linux-gnueabi
// [armv4t_unknown_linux_gnueabi] needs-llvm-components: arm
// revisions: armv5te_none_eabi
// [armv5te_none_eabi] compile-flags: --target armv5te-none-eabi
// [armv5te_none_eabi] needs-llvm-components: arm
// revisions: armv5te_unknown_linux_gnueabi
// [armv5te_unknown_linux_gnueabi] compile-flags: --target armv5te-unknown-linux-gnueabi
// [armv5te_unknown_linux_gnueabi] needs-llvm-components: arm
// revisions: armv5te_unknown_linux_musleabi
// [armv5te_unknown_linux_musleabi] compile-flags: --target armv5te-unknown-linux-musleabi
// [armv5te_unknown_linux_musleabi] needs-llvm-components: arm
// revisions: armv5te_unknown_linux_uclibceabi
// [armv5te_unknown_linux_uclibceabi] compile-flags: --target armv5te-unknown-linux-uclibceabi
// [armv5te_unknown_linux_uclibceabi] needs-llvm-components: arm
// revisions: armv6_unknown_freebsd
// [armv6_unknown_freebsd] compile-flags: --target armv6-unknown-freebsd
// [armv6_unknown_freebsd] needs-llvm-components: arm
// revisions: armv6_unknown_netbsd_eabihf
// [armv6_unknown_netbsd_eabihf] compile-flags: --target armv6-unknown-netbsd-eabihf
// [armv6_unknown_netbsd_eabihf] needs-llvm-components: arm
// revisions: armv6k_nintendo_3ds
// [armv6k_nintendo_3ds] compile-flags: --target armv6k-nintendo-3ds
// [armv6k_nintendo_3ds] needs-llvm-components: arm
// revisions: armv7_linux_androideabi
// [armv7_linux_androideabi] compile-flags: --target armv7-linux-androideabi
// [armv7_linux_androideabi] needs-llvm-components: arm
// revisions: armv7_sony_vita_newlibeabihf
// [armv7_sony_vita_newlibeabihf] compile-flags: --target armv7-sony-vita-newlibeabihf
// [armv7_sony_vita_newlibeabihf] needs-llvm-components: arm
// revisions: armv7_unknown_freebsd
// [armv7_unknown_freebsd] compile-flags: --target armv7-unknown-freebsd
// [armv7_unknown_freebsd] needs-llvm-components: arm
// revisions: armv7_unknown_linux_gnueabi
// [armv7_unknown_linux_gnueabi] compile-flags: --target armv7-unknown-linux-gnueabi
// [armv7_unknown_linux_gnueabi] needs-llvm-components: arm
// revisions: armv7_unknown_linux_gnueabihf
// [armv7_unknown_linux_gnueabihf] compile-flags: --target armv7-unknown-linux-gnueabihf
// [armv7_unknown_linux_gnueabihf] needs-llvm-components: arm
// revisions: armv7_unknown_linux_musleabi
// [armv7_unknown_linux_musleabi] compile-flags: --target armv7-unknown-linux-musleabi
// [armv7_unknown_linux_musleabi] needs-llvm-components: arm
// revisions: armv7_unknown_linux_musleabihf
// [armv7_unknown_linux_musleabihf] compile-flags: --target armv7-unknown-linux-musleabihf
// [armv7_unknown_linux_musleabihf] needs-llvm-components: arm
// revisions: armv7_unknown_linux_ohos
// [armv7_unknown_linux_ohos] compile-flags: --target armv7-unknown-linux-ohos
// [armv7_unknown_linux_ohos] needs-llvm-components: arm
// revisions: armv7_unknown_linux_uclibceabi
// [armv7_unknown_linux_uclibceabi] compile-flags: --target armv7-unknown-linux-uclibceabi
// [armv7_unknown_linux_uclibceabi] needs-llvm-components: arm
// revisions: armv7_unknown_linux_uclibceabihf
// [armv7_unknown_linux_uclibceabihf] compile-flags: --target armv7-unknown-linux-uclibceabihf
// [armv7_unknown_linux_uclibceabihf] needs-llvm-components: arm
// revisions: armv7_unknown_netbsd_eabihf
// [armv7_unknown_netbsd_eabihf] compile-flags: --target armv7-unknown-netbsd-eabihf
// [armv7_unknown_netbsd_eabihf] needs-llvm-components: arm
// revisions: armv7_wrs_vxworks_eabihf
// [armv7_wrs_vxworks_eabihf] compile-flags: --target armv7-wrs-vxworks-eabihf
// [armv7_wrs_vxworks_eabihf] needs-llvm-components: arm
// revisions: armv7a_kmc_solid_asp3_eabi
// [armv7a_kmc_solid_asp3_eabi] compile-flags: --target armv7a-kmc-solid_asp3-eabi
// [armv7a_kmc_solid_asp3_eabi] needs-llvm-components: arm
// revisions: armv7a_kmc_solid_asp3_eabihf
// [armv7a_kmc_solid_asp3_eabihf] compile-flags: --target armv7a-kmc-solid_asp3-eabihf
// [armv7a_kmc_solid_asp3_eabihf] needs-llvm-components: arm
// revisions: armv7a_none_eabi
// [armv7a_none_eabi] compile-flags: --target armv7a-none-eabi
// [armv7a_none_eabi] needs-llvm-components: arm
// revisions: armv7a_none_eabihf
// [armv7a_none_eabihf] compile-flags: --target armv7a-none-eabihf
// [armv7a_none_eabihf] needs-llvm-components: arm
// revisions: armv7k_apple_watchos
// [armv7k_apple_watchos] compile-flags: --target armv7k-apple-watchos
// [armv7k_apple_watchos] needs-llvm-components: arm
// revisions: armv7r_none_eabi
// [armv7r_none_eabi] compile-flags: --target armv7r-none-eabi
// [armv7r_none_eabi] needs-llvm-components: arm
// revisions: armv7r_none_eabihf
// [armv7r_none_eabihf] compile-flags: --target armv7r-none-eabihf
// [armv7r_none_eabihf] needs-llvm-components: arm
// revisions: armv7s_apple_ios
// [armv7s_apple_ios] compile-flags: --target armv7s-apple-ios
// [armv7s_apple_ios] needs-llvm-components: arm
// FIXME: disabled since it fails on CI saying the csky component is missing
/*
revisions: csky_unknown_linux_gnuabiv2
[csky_unknown_linux_gnuabiv2] compile-flags: --target csky-unknown-linux-gnuabiv2
[csky_unknown_linux_gnuabiv2] needs-llvm-components: csky
revisions: csky_unknown_linux_gnuabiv2hf
[csky_unknown_linux_gnuabiv2hf] compile-flags: --target csky-unknown-linux-gnuabiv2hf
[csky_unknown_linux_gnuabiv2hf] needs-llvm-components: csky
*/
// revisions: hexagon_unknown_linux_musl
// [hexagon_unknown_linux_musl] compile-flags: --target hexagon-unknown-linux-musl
// [hexagon_unknown_linux_musl] needs-llvm-components: hexagon
// revisions: hexagon_unknown_none_elf
// [hexagon_unknown_none_elf] compile-flags: --target hexagon-unknown-none-elf
// [hexagon_unknown_none_elf] needs-llvm-components: hexagon
// revisions: i386_apple_ios
// [i386_apple_ios] compile-flags: --target i386-apple-ios
// [i386_apple_ios] needs-llvm-components: x86
// revisions: i586_pc_nto_qnx700
// [i586_pc_nto_qnx700] compile-flags: --target i586-pc-nto-qnx700
// [i586_pc_nto_qnx700] needs-llvm-components: x86
// revisions: i586_unknown_linux_gnu
// [i586_unknown_linux_gnu] compile-flags: --target i586-unknown-linux-gnu
// [i586_unknown_linux_gnu] needs-llvm-components: x86
// revisions: i586_unknown_linux_musl
// [i586_unknown_linux_musl] compile-flags: --target i586-unknown-linux-musl
// [i586_unknown_linux_musl] needs-llvm-components: x86
// revisions: i586_unknown_netbsd
// [i586_unknown_netbsd] compile-flags: --target i586-unknown-netbsd
// [i586_unknown_netbsd] needs-llvm-components: x86
// revisions: i686_apple_darwin
// [i686_apple_darwin] compile-flags: --target i686-apple-darwin
// [i686_apple_darwin] needs-llvm-components: x86
// revisions: i686_linux_android
// [i686_linux_android] compile-flags: --target i686-linux-android
// [i686_linux_android] needs-llvm-components: x86
// revisions: i686_unknown_freebsd
// [i686_unknown_freebsd] compile-flags: --target i686-unknown-freebsd
// [i686_unknown_freebsd] needs-llvm-components: x86
// revisions: i686_unknown_haiku
// [i686_unknown_haiku] compile-flags: --target i686-unknown-haiku
// [i686_unknown_haiku] needs-llvm-components: x86
// revisions: i686_unknown_hurd_gnu
// [i686_unknown_hurd_gnu] compile-flags: --target i686-unknown-hurd-gnu
// [i686_unknown_hurd_gnu] needs-llvm-components: x86
// revisions: i686_unknown_linux_gnu
// [i686_unknown_linux_gnu] compile-flags: --target i686-unknown-linux-gnu
// [i686_unknown_linux_gnu] needs-llvm-components: x86
// revisions: i686_unknown_linux_musl
// [i686_unknown_linux_musl] compile-flags: --target i686-unknown-linux-musl
// [i686_unknown_linux_musl] needs-llvm-components: x86
// revisions: i686_unknown_netbsd
// [i686_unknown_netbsd] compile-flags: --target i686-unknown-netbsd
// [i686_unknown_netbsd] needs-llvm-components: x86
// revisions: i686_unknown_openbsd
// [i686_unknown_openbsd] compile-flags: --target i686-unknown-openbsd
// [i686_unknown_openbsd] needs-llvm-components: x86
// revisions: i686_wrs_vxworks
// [i686_wrs_vxworks] compile-flags: --target i686-wrs-vxworks
// [i686_wrs_vxworks] needs-llvm-components: x86
// revisions: loongarch64_unknown_linux_gnu
// [loongarch64_unknown_linux_gnu] compile-flags: --target loongarch64-unknown-linux-gnu
// [loongarch64_unknown_linux_gnu] needs-llvm-components: loongarch
// revisions: loongarch64_unknown_none
// [loongarch64_unknown_none] compile-flags: --target loongarch64-unknown-none
// [loongarch64_unknown_none] needs-llvm-components: loongarch
// revisions: loongarch64_unknown_none_softfloat
// [loongarch64_unknown_none_softfloat] compile-flags: --target loongarch64-unknown-none-softfloat
// [loongarch64_unknown_none_softfloat] needs-llvm-components: loongarch
// revisions: m68k_unknown_linux_gnu
// [m68k_unknown_linux_gnu] compile-flags: --target m68k-unknown-linux-gnu
// [m68k_unknown_linux_gnu] needs-llvm-components: m68k
// revisions: mips64_openwrt_linux_musl
// [mips64_openwrt_linux_musl] compile-flags: --target mips64-openwrt-linux-musl
// [mips64_openwrt_linux_musl] needs-llvm-components: mips
// revisions: mips64_unknown_linux_gnuabi64
// [mips64_unknown_linux_gnuabi64] compile-flags: --target mips64-unknown-linux-gnuabi64
// [mips64_unknown_linux_gnuabi64] needs-llvm-components: mips
// revisions: mips64_unknown_linux_muslabi64
// [mips64_unknown_linux_muslabi64] compile-flags: --target mips64-unknown-linux-muslabi64
// [mips64_unknown_linux_muslabi64] needs-llvm-components: mips
// revisions: mips64el_unknown_linux_gnuabi64
// [mips64el_unknown_linux_gnuabi64] compile-flags: --target mips64el-unknown-linux-gnuabi64
// [mips64el_unknown_linux_gnuabi64] needs-llvm-components: mips
// revisions: mips64el_unknown_linux_muslabi64
// [mips64el_unknown_linux_muslabi64] compile-flags: --target mips64el-unknown-linux-muslabi64
// [mips64el_unknown_linux_muslabi64] needs-llvm-components: mips
// revisions: mips_unknown_linux_gnu
// [mips_unknown_linux_gnu] compile-flags: --target mips-unknown-linux-gnu
// [mips_unknown_linux_gnu] needs-llvm-components: mips
// revisions: mips_unknown_linux_musl
// [mips_unknown_linux_musl] compile-flags: --target mips-unknown-linux-musl
// [mips_unknown_linux_musl] needs-llvm-components: mips
// revisions: mips_unknown_linux_uclibc
// [mips_unknown_linux_uclibc] compile-flags: --target mips-unknown-linux-uclibc
// [mips_unknown_linux_uclibc] needs-llvm-components: mips
// revisions: mipsel_sony_psp
// [mipsel_sony_psp] compile-flags: --target mipsel-sony-psp
// [mipsel_sony_psp] needs-llvm-components: mips
// revisions: mipsel_sony_psx
// [mipsel_sony_psx] compile-flags: --target mipsel-sony-psx
// [mipsel_sony_psx] needs-llvm-components: mips
// revisions: mipsel_unknown_linux_gnu
// [mipsel_unknown_linux_gnu] compile-flags: --target mipsel-unknown-linux-gnu
// [mipsel_unknown_linux_gnu] needs-llvm-components: mips
// revisions: mipsel_unknown_linux_musl
// [mipsel_unknown_linux_musl] compile-flags: --target mipsel-unknown-linux-musl
// [mipsel_unknown_linux_musl] needs-llvm-components: mips
// revisions: mipsel_unknown_linux_uclibc
// [mipsel_unknown_linux_uclibc] compile-flags: --target mipsel-unknown-linux-uclibc
// [mipsel_unknown_linux_uclibc] needs-llvm-components: mips
// revisions: mipsel_unknown_netbsd
// [mipsel_unknown_netbsd] compile-flags: --target mipsel-unknown-netbsd
// [mipsel_unknown_netbsd] needs-llvm-components: mips
// revisions: mipsel_unknown_none
// [mipsel_unknown_none] compile-flags: --target mipsel-unknown-none
// [mipsel_unknown_none] needs-llvm-components: mips
// revisions: mipsisa32r6_unknown_linux_gnu
// [mipsisa32r6_unknown_linux_gnu] compile-flags: --target mipsisa32r6-unknown-linux-gnu
// [mipsisa32r6_unknown_linux_gnu] needs-llvm-components: mips
// revisions: mipsisa32r6el_unknown_linux_gnu
// [mipsisa32r6el_unknown_linux_gnu] compile-flags: --target mipsisa32r6el-unknown-linux-gnu
// [mipsisa32r6el_unknown_linux_gnu] needs-llvm-components: mips
// revisions: mipsisa64r6_unknown_linux_gnuabi64
// [mipsisa64r6_unknown_linux_gnuabi64] compile-flags: --target mipsisa64r6-unknown-linux-gnuabi64
// [mipsisa64r6_unknown_linux_gnuabi64] needs-llvm-components: mips
// revisions: mipsisa64r6el_unknown_linux_gnuabi64
// [mipsisa64r6el_unknown_linux_gnuabi64] compile-flags: --target mipsisa64r6el-unknown-linux-gnuabi64
// [mipsisa64r6el_unknown_linux_gnuabi64] needs-llvm-components: mips
// revisions: msp430_none_elf
// [msp430_none_elf] compile-flags: --target msp430-none-elf
// [msp430_none_elf] needs-llvm-components: msp430
// revisions: powerpc64_unknown_freebsd
// [powerpc64_unknown_freebsd] compile-flags: --target powerpc64-unknown-freebsd
// [powerpc64_unknown_freebsd] needs-llvm-components: powerpc
// revisions: powerpc64_unknown_linux_gnu
// [powerpc64_unknown_linux_gnu] compile-flags: --target powerpc64-unknown-linux-gnu
// [powerpc64_unknown_linux_gnu] needs-llvm-components: powerpc
// revisions: powerpc64_unknown_linux_musl
// [powerpc64_unknown_linux_musl] compile-flags: --target powerpc64-unknown-linux-musl
// [powerpc64_unknown_linux_musl] needs-llvm-components: powerpc
// revisions: powerpc64_unknown_openbsd
// [powerpc64_unknown_openbsd] compile-flags: --target powerpc64-unknown-openbsd
// [powerpc64_unknown_openbsd] needs-llvm-components: powerpc
// revisions: powerpc64_wrs_vxworks
// [powerpc64_wrs_vxworks] compile-flags: --target powerpc64-wrs-vxworks
// [powerpc64_wrs_vxworks] needs-llvm-components: powerpc
// revisions: powerpc64le_unknown_freebsd
// [powerpc64le_unknown_freebsd] compile-flags: --target powerpc64le-unknown-freebsd
// [powerpc64le_unknown_freebsd] needs-llvm-components: powerpc
// revisions: powerpc64le_unknown_linux_gnu
// [powerpc64le_unknown_linux_gnu] compile-flags: --target powerpc64le-unknown-linux-gnu
// [powerpc64le_unknown_linux_gnu] needs-llvm-components: powerpc
// revisions: powerpc64le_unknown_linux_musl
// [powerpc64le_unknown_linux_musl] compile-flags: --target powerpc64le-unknown-linux-musl
// [powerpc64le_unknown_linux_musl] needs-llvm-components: powerpc
// revisions: powerpc_unknown_freebsd
// [powerpc_unknown_freebsd] compile-flags: --target powerpc-unknown-freebsd
// [powerpc_unknown_freebsd] needs-llvm-components: powerpc
// revisions: powerpc_unknown_linux_gnu
// [powerpc_unknown_linux_gnu] compile-flags: --target powerpc-unknown-linux-gnu
// [powerpc_unknown_linux_gnu] needs-llvm-components: powerpc
// revisions: powerpc_unknown_linux_gnuspe
// [powerpc_unknown_linux_gnuspe] compile-flags: --target powerpc-unknown-linux-gnuspe
// [powerpc_unknown_linux_gnuspe] needs-llvm-components: powerpc
// revisions: powerpc_unknown_linux_musl
// [powerpc_unknown_linux_musl] compile-flags: --target powerpc-unknown-linux-musl
// [powerpc_unknown_linux_musl] needs-llvm-components: powerpc
// revisions: powerpc_unknown_netbsd
// [powerpc_unknown_netbsd] compile-flags: --target powerpc-unknown-netbsd
// [powerpc_unknown_netbsd] needs-llvm-components: powerpc
// revisions: powerpc_unknown_openbsd
// [powerpc_unknown_openbsd] compile-flags: --target powerpc-unknown-openbsd
// [powerpc_unknown_openbsd] needs-llvm-components: powerpc
// revisions: powerpc_wrs_vxworks
// [powerpc_wrs_vxworks] compile-flags: --target powerpc-wrs-vxworks
// [powerpc_wrs_vxworks] needs-llvm-components: powerpc
// revisions: powerpc_wrs_vxworks_spe
// [powerpc_wrs_vxworks_spe] compile-flags: --target powerpc-wrs-vxworks-spe
// [powerpc_wrs_vxworks_spe] needs-llvm-components: powerpc
// revisions: riscv32gc_unknown_linux_gnu
// [riscv32gc_unknown_linux_gnu] compile-flags: --target riscv32gc-unknown-linux-gnu
// [riscv32gc_unknown_linux_gnu] needs-llvm-components: riscv
// revisions: riscv32gc_unknown_linux_musl
// [riscv32gc_unknown_linux_musl] compile-flags: --target riscv32gc-unknown-linux-musl
// [riscv32gc_unknown_linux_musl] needs-llvm-components: riscv
// revisions: riscv32i_unknown_none_elf
// [riscv32i_unknown_none_elf] compile-flags: --target riscv32i-unknown-none-elf
// [riscv32i_unknown_none_elf] needs-llvm-components: riscv
// revisions: riscv32im_unknown_none_elf
// [riscv32im_unknown_none_elf] compile-flags: --target riscv32im-unknown-none-elf
// [riscv32im_unknown_none_elf] needs-llvm-components: riscv
// revisions: riscv32imac_esp_espidf
// [riscv32imac_esp_espidf] compile-flags: --target riscv32imac-esp-espidf
// [riscv32imac_esp_espidf] needs-llvm-components: riscv
// revisions: riscv32imac_unknown_none_elf
// [riscv32imac_unknown_none_elf] compile-flags: --target riscv32imac-unknown-none-elf
// [riscv32imac_unknown_none_elf] needs-llvm-components: riscv
// revisions: riscv32imac_unknown_xous_elf
// [riscv32imac_unknown_xous_elf] compile-flags: --target riscv32imac-unknown-xous-elf
// [riscv32imac_unknown_xous_elf] needs-llvm-components: riscv
// revisions: riscv32imafc_unknown_none_elf
// [riscv32imafc_unknown_none_elf] compile-flags: --target riscv32imafc-unknown-none-elf
// [riscv32imafc_unknown_none_elf] needs-llvm-components: riscv
// revisions: riscv32imafc_esp_espidf
// [riscv32imafc_esp_espidf] compile-flags: --target riscv32imafc-esp-espidf
// [riscv32imafc_esp_espidf] needs-llvm-components: riscv
// revisions: riscv32imc_esp_espidf
// [riscv32imc_esp_espidf] compile-flags: --target riscv32imc-esp-espidf
// [riscv32imc_esp_espidf] needs-llvm-components: riscv
// revisions: riscv32imc_unknown_none_elf
// [riscv32imc_unknown_none_elf] compile-flags: --target riscv32imc-unknown-none-elf
// [riscv32imc_unknown_none_elf] needs-llvm-components: riscv
// revisions: riscv64_linux_android
// [riscv64_linux_android] compile-flags: --target riscv64-linux-android
// [riscv64_linux_android] needs-llvm-components: riscv
// revisions: riscv64gc_unknown_freebsd
// [riscv64gc_unknown_freebsd] compile-flags: --target riscv64gc-unknown-freebsd
// [riscv64gc_unknown_freebsd] needs-llvm-components: riscv
// revisions: riscv64gc_unknown_fuchsia
// [riscv64gc_unknown_fuchsia] compile-flags: --target riscv64gc-unknown-fuchsia
// [riscv64gc_unknown_fuchsia] needs-llvm-components: riscv
// revisions: riscv64gc_unknown_hermit
// [riscv64gc_unknown_hermit] compile-flags: --target riscv64gc-unknown-hermit
// [riscv64gc_unknown_hermit] needs-llvm-components: riscv
// revisions: riscv64gc_unknown_linux_gnu
// [riscv64gc_unknown_linux_gnu] compile-flags: --target riscv64gc-unknown-linux-gnu
// [riscv64gc_unknown_linux_gnu] needs-llvm-components: riscv
// revisions: riscv64gc_unknown_linux_musl
// [riscv64gc_unknown_linux_musl] compile-flags: --target riscv64gc-unknown-linux-musl
// [riscv64gc_unknown_linux_musl] needs-llvm-components: riscv
// revisions: riscv64gc_unknown_netbsd
// [riscv64gc_unknown_netbsd] compile-flags: --target riscv64gc-unknown-netbsd
// [riscv64gc_unknown_netbsd] needs-llvm-components: riscv
// revisions: riscv64gc_unknown_none_elf
// [riscv64gc_unknown_none_elf] compile-flags: --target riscv64gc-unknown-none-elf
// [riscv64gc_unknown_none_elf] needs-llvm-components: riscv
// revisions: riscv64gc_unknown_openbsd
// [riscv64gc_unknown_openbsd] compile-flags: --target riscv64gc-unknown-openbsd
// [riscv64gc_unknown_openbsd] needs-llvm-components: riscv
// revisions: riscv64imac_unknown_none_elf
// [riscv64imac_unknown_none_elf] compile-flags: --target riscv64imac-unknown-none-elf
// [riscv64imac_unknown_none_elf] needs-llvm-components: riscv
// revisions: s390x_unknown_linux_gnu
// [s390x_unknown_linux_gnu] compile-flags: --target s390x-unknown-linux-gnu
// [s390x_unknown_linux_gnu] needs-llvm-components: systemz
// revisions: s390x_unknown_linux_musl
// [s390x_unknown_linux_musl] compile-flags: --target s390x-unknown-linux-musl
// [s390x_unknown_linux_musl] needs-llvm-components: systemz
// revisions: sparc64_unknown_linux_gnu
// [sparc64_unknown_linux_gnu] compile-flags: --target sparc64-unknown-linux-gnu
// [sparc64_unknown_linux_gnu] needs-llvm-components: sparc
// revisions: sparc64_unknown_netbsd
// [sparc64_unknown_netbsd] compile-flags: --target sparc64-unknown-netbsd
// [sparc64_unknown_netbsd] needs-llvm-components: sparc
// revisions: sparc64_unknown_openbsd
// [sparc64_unknown_openbsd] compile-flags: --target sparc64-unknown-openbsd
// [sparc64_unknown_openbsd] needs-llvm-components: sparc
// revisions: sparc_unknown_linux_gnu
// [sparc_unknown_linux_gnu] compile-flags: --target sparc-unknown-linux-gnu
// [sparc_unknown_linux_gnu] needs-llvm-components: sparc
// revisions: sparc_unknown_none_elf
// [sparc_unknown_none_elf] compile-flags: --target sparc-unknown-none-elf
// [sparc_unknown_none_elf] needs-llvm-components: sparc
// revisions: sparcv9_sun_solaris
// [sparcv9_sun_solaris] compile-flags: --target sparcv9-sun-solaris
// [sparcv9_sun_solaris] needs-llvm-components: sparc
// revisions: thumbv4t_none_eabi
// [thumbv4t_none_eabi] compile-flags: --target thumbv4t-none-eabi
// [thumbv4t_none_eabi] needs-llvm-components: arm
// revisions: thumbv5te_none_eabi
// [thumbv5te_none_eabi] compile-flags: --target thumbv5te-none-eabi
// [thumbv5te_none_eabi] needs-llvm-components: arm
// revisions: thumbv6m_none_eabi
// [thumbv6m_none_eabi] compile-flags: --target thumbv6m-none-eabi
// [thumbv6m_none_eabi] needs-llvm-components: arm
// revisions: thumbv7em_none_eabi
// [thumbv7em_none_eabi] compile-flags: --target thumbv7em-none-eabi
// [thumbv7em_none_eabi] needs-llvm-components: arm
// revisions: thumbv7em_none_eabihf
// [thumbv7em_none_eabihf] compile-flags: --target thumbv7em-none-eabihf
// [thumbv7em_none_eabihf] needs-llvm-components: arm
// revisions: thumbv7m_none_eabi
// [thumbv7m_none_eabi] compile-flags: --target thumbv7m-none-eabi
// [thumbv7m_none_eabi] needs-llvm-components: arm
// revisions: thumbv7neon_linux_androideabi
// [thumbv7neon_linux_androideabi] compile-flags: --target thumbv7neon-linux-androideabi
// [thumbv7neon_linux_androideabi] needs-llvm-components: arm
// revisions: thumbv7neon_unknown_linux_gnueabihf
// [thumbv7neon_unknown_linux_gnueabihf] compile-flags: --target thumbv7neon-unknown-linux-gnueabihf
// [thumbv7neon_unknown_linux_gnueabihf] needs-llvm-components: arm
// revisions: thumbv7neon_unknown_linux_musleabihf
// [thumbv7neon_unknown_linux_musleabihf] compile-flags: --target thumbv7neon-unknown-linux-musleabihf
// [thumbv7neon_unknown_linux_musleabihf] needs-llvm-components: arm
// revisions: thumbv8m_base_none_eabi
// [thumbv8m_base_none_eabi] compile-flags: --target thumbv8m.base-none-eabi
// [thumbv8m_base_none_eabi] needs-llvm-components: arm
// revisions: thumbv8m_main_none_eabi
// [thumbv8m_main_none_eabi] compile-flags: --target thumbv8m.main-none-eabi
// [thumbv8m_main_none_eabi] needs-llvm-components: arm
// revisions: thumbv8m_main_none_eabihf
// [thumbv8m_main_none_eabihf] compile-flags: --target thumbv8m.main-none-eabihf
// [thumbv8m_main_none_eabihf] needs-llvm-components: arm
// revisions: wasm32_unknown_emscripten
// [wasm32_unknown_emscripten] compile-flags: --target wasm32-unknown-emscripten
// [wasm32_unknown_emscripten] needs-llvm-components: webassembly
// revisions: wasm32_unknown_unknown
// [wasm32_unknown_unknown] compile-flags: --target wasm32-unknown-unknown
// [wasm32_unknown_unknown] needs-llvm-components: webassembly
// revisions: wasm32_wasi
// [wasm32_wasi] compile-flags: --target wasm32-wasi
// [wasm32_wasi] needs-llvm-components: webassembly
// revisions: wasm32_wasi_preview1_threads
// [wasm32_wasi_preview1_threads] compile-flags: --target wasm32-wasi-preview1-threads
// [wasm32_wasi_preview1_threads] needs-llvm-components: webassembly
// revisions: wasm64_unknown_unknown
// [wasm64_unknown_unknown] compile-flags: --target wasm64-unknown-unknown
// [wasm64_unknown_unknown] needs-llvm-components: webassembly
// revisions: x86_64_apple_darwin
// [x86_64_apple_darwin] compile-flags: --target x86_64-apple-darwin
// [x86_64_apple_darwin] needs-llvm-components: x86
// revisions: x86_64_apple_ios
// [x86_64_apple_ios] compile-flags: --target x86_64-apple-ios
// [x86_64_apple_ios] needs-llvm-components: x86
// revisions: x86_64_apple_ios_macabi
// [x86_64_apple_ios_macabi] compile-flags: --target x86_64-apple-ios-macabi
// [x86_64_apple_ios_macabi] needs-llvm-components: x86
// revisions: x86_64_apple_tvos
// [x86_64_apple_tvos] compile-flags: --target x86_64-apple-tvos
// [x86_64_apple_tvos] needs-llvm-components: x86
// revisions: x86_64_apple_watchos_sim
// [x86_64_apple_watchos_sim] compile-flags: --target x86_64-apple-watchos-sim
// [x86_64_apple_watchos_sim] needs-llvm-components: x86
// revisions: x86_64_fortanix_unknown_sgx
// [x86_64_fortanix_unknown_sgx] compile-flags: --target x86_64-fortanix-unknown-sgx
// [x86_64_fortanix_unknown_sgx] needs-llvm-components: x86
// revisions: x86_64_fuchsia
// [x86_64_fuchsia] compile-flags: --target x86_64-fuchsia
// [x86_64_fuchsia] needs-llvm-components: x86
// revisions: x86_64_linux_android
// [x86_64_linux_android] compile-flags: --target x86_64-linux-android
// [x86_64_linux_android] needs-llvm-components: x86
// revisions: x86_64_pc_nto_qnx710
// [x86_64_pc_nto_qnx710] compile-flags: --target x86_64-pc-nto-qnx710
// [x86_64_pc_nto_qnx710] needs-llvm-components: x86
// revisions: x86_64_pc_solaris
// [x86_64_pc_solaris] compile-flags: --target x86_64-pc-solaris
// [x86_64_pc_solaris] needs-llvm-components: x86
// revisions: x86_64_unikraft_linux_musl
// [x86_64_unikraft_linux_musl] compile-flags: --target x86_64-unikraft-linux-musl
// [x86_64_unikraft_linux_musl] needs-llvm-components: x86
// revisions: x86_64_unknown_dragonfly
// [x86_64_unknown_dragonfly] compile-flags: --target x86_64-unknown-dragonfly
// [x86_64_unknown_dragonfly] needs-llvm-components: x86
// revisions: x86_64_unknown_freebsd
// [x86_64_unknown_freebsd] compile-flags: --target x86_64-unknown-freebsd
// [x86_64_unknown_freebsd] needs-llvm-components: x86
// revisions: x86_64_unknown_fuchsia
// [x86_64_unknown_fuchsia] compile-flags: --target x86_64-unknown-fuchsia
// [x86_64_unknown_fuchsia] needs-llvm-components: x86
// revisions: x86_64_unknown_haiku
// [x86_64_unknown_haiku] compile-flags: --target x86_64-unknown-haiku
// [x86_64_unknown_haiku] needs-llvm-components: x86
// revisions: x86_64_unknown_hermit
// [x86_64_unknown_hermit] compile-flags: --target x86_64-unknown-hermit
// [x86_64_unknown_hermit] needs-llvm-components: x86
// revisions: x86_64_unknown_illumos
// [x86_64_unknown_illumos] compile-flags: --target x86_64-unknown-illumos
// [x86_64_unknown_illumos] needs-llvm-components: x86
// revisions: x86_64_unknown_l4re_uclibc
// [x86_64_unknown_l4re_uclibc] compile-flags: --target x86_64-unknown-l4re-uclibc
// [x86_64_unknown_l4re_uclibc] needs-llvm-components: x86
// revisions: x86_64_unknown_linux_gnu
// [x86_64_unknown_linux_gnu] compile-flags: --target x86_64-unknown-linux-gnu
// [x86_64_unknown_linux_gnu] needs-llvm-components: x86
// revisions: x86_64_unknown_linux_gnux32
// [x86_64_unknown_linux_gnux32] compile-flags: --target x86_64-unknown-linux-gnux32
// [x86_64_unknown_linux_gnux32] needs-llvm-components: x86
// revisions: x86_64_unknown_linux_musl
// [x86_64_unknown_linux_musl] compile-flags: --target x86_64-unknown-linux-musl
// [x86_64_unknown_linux_musl] needs-llvm-components: x86
// revisions: x86_64_unknown_linux_ohos
// [x86_64_unknown_linux_ohos] compile-flags: --target x86_64-unknown-linux-ohos
// [x86_64_unknown_linux_ohos] needs-llvm-components: x86
// revisions: x86_64_unknown_netbsd
// [x86_64_unknown_netbsd] compile-flags: --target x86_64-unknown-netbsd
// [x86_64_unknown_netbsd] needs-llvm-components: x86
// revisions: x86_64_unknown_none
// [x86_64_unknown_none] compile-flags: --target x86_64-unknown-none
// [x86_64_unknown_none] needs-llvm-components: x86
// revisions: x86_64_unknown_openbsd
// [x86_64_unknown_openbsd] compile-flags: --target x86_64-unknown-openbsd
// [x86_64_unknown_openbsd] needs-llvm-components: x86
// revisions: x86_64_unknown_redox
// [x86_64_unknown_redox] compile-flags: --target x86_64-unknown-redox
// [x86_64_unknown_redox] needs-llvm-components: x86
// revisions: x86_64_wrs_vxworks
// [x86_64_wrs_vxworks] compile-flags: --target x86_64-wrs-vxworks
// [x86_64_wrs_vxworks] needs-llvm-components: x86
// revisions: x86_64h_apple_darwin
// [x86_64h_apple_darwin] compile-flags: --target x86_64h-apple-darwin
// [x86_64h_apple_darwin] needs-llvm-components: x86
// Sanity-check that each target can produce assembly code.
#![feature(no_core, lang_items)]
#![no_std]
#![no_core]
#![crate_type = "lib"]
#[lang = "sized"]
trait Sized {}
pub fn test() -> u8 {
42
}
// CHECK: .section

View File

@ -0,0 +1,21 @@
// assembly-output: emit-asm
// ignore-tidy-linelength
// revisions: nvptx64_nvidia_cuda
// [nvptx64_nvidia_cuda] compile-flags: --target nvptx64-nvidia-cuda
// [nvptx64_nvidia_cuda] needs-llvm-components: nvptx
// Sanity-check that each target can produce assembly code.
#![feature(no_core, lang_items)]
#![no_std]
#![no_core]
#![crate_type = "lib"]
#[lang = "sized"]
trait Sized {}
pub fn test() -> u8 {
42
}
// CHECK: .version

View File

@ -0,0 +1,93 @@
// assembly-output: emit-asm
// ignore-tidy-linelength
// revisions: aarch64_pc_windows_msvc
// [aarch64_pc_windows_msvc] compile-flags: --target aarch64-pc-windows-msvc
// [aarch64_pc_windows_msvc] needs-llvm-components: aarch64
// revisions: aarch64_pc_windows_gnullvm
// [aarch64_pc_windows_gnullvm] compile-flags: --target aarch64-pc-windows-gnullvm
// [aarch64_pc_windows_gnullvm] needs-llvm-components: aarch64
// revisions: aarch64_unknown_uefi
// [aarch64_unknown_uefi] compile-flags: --target aarch64-unknown-uefi
// [aarch64_unknown_uefi] needs-llvm-components: aarch64
// revisions: aarch64_uwp_windows_msvc
// [aarch64_uwp_windows_msvc] compile-flags: --target aarch64-uwp-windows-msvc
// [aarch64_uwp_windows_msvc] needs-llvm-components: aarch64
// revisions: avr_unknown_gnu_atmega328
// [avr_unknown_gnu_atmega328] compile-flags: --target avr-unknown-gnu-atmega328
// [avr_unknown_gnu_atmega328] needs-llvm-components: avr
// revisions: bpfeb_unknown_none
// [bpfeb_unknown_none] compile-flags: --target bpfeb-unknown-none
// [bpfeb_unknown_none] needs-llvm-components: bpf
// revisions: bpfel_unknown_none
// [bpfel_unknown_none] compile-flags: --target bpfel-unknown-none
// [bpfel_unknown_none] needs-llvm-components: bpf
// revisions: i586_pc_windows_msvc
// [i586_pc_windows_msvc] compile-flags: --target i586-pc-windows-msvc
// [i586_pc_windows_msvc] needs-llvm-components: x86
// revisions: i686_pc_windows_gnu
// [i686_pc_windows_gnu] compile-flags: --target i686-pc-windows-gnu
// [i686_pc_windows_gnu] needs-llvm-components: x86
// revisions: i686_pc_windows_msvc
// [i686_pc_windows_msvc] compile-flags: --target i686-pc-windows-msvc
// [i686_pc_windows_msvc] needs-llvm-components: x86
// revisions: i686_pc_windows_gnullvm
// [i686_pc_windows_gnullvm] compile-flags: --target i686-pc-windows-gnullvm
// [i686_pc_windows_gnullvm] needs-llvm-components: x86
// revisions: i686_uwp_windows_gnu
// [i686_uwp_windows_gnu] compile-flags: --target i686-uwp-windows-gnu
// [i686_uwp_windows_gnu] needs-llvm-components: x86
// revisions: i686_unknown_uefi
// [i686_unknown_uefi] compile-flags: --target i686-unknown-uefi
// [i686_unknown_uefi] needs-llvm-components: x86
// revisions: i686_uwp_windows_msvc
// [i686_uwp_windows_msvc] compile-flags: --target i686-uwp-windows-msvc
// [i686_uwp_windows_msvc] needs-llvm-components: x86
// revisions: i686_win7_windows_msvc
// [i686_win7_windows_msvc] compile-flags: --target i686-win7-windows-msvc
// [i686_win7_windows_msvc] needs-llvm-components: x86
// revisions: powerpc64_ibm_aix
// [powerpc64_ibm_aix] compile-flags: --target powerpc64-ibm-aix
// [powerpc64_ibm_aix] needs-llvm-components: powerpc
// revisions: thumbv7a_uwp_windows_msvc
// [thumbv7a_uwp_windows_msvc] compile-flags: --target thumbv7a-uwp-windows-msvc
// [thumbv7a_uwp_windows_msvc] needs-llvm-components: arm
// revisions: thumbv7a_pc_windows_msvc
// [thumbv7a_pc_windows_msvc] compile-flags: --target thumbv7a-pc-windows-msvc
// [thumbv7a_pc_windows_msvc] needs-llvm-components: arm
// revisions: x86_64_pc_windows_gnu
// [x86_64_pc_windows_gnu] compile-flags: --target x86_64-pc-windows-gnu
// [x86_64_pc_windows_gnu] needs-llvm-components: x86
// revisions: x86_64_pc_windows_gnullvm
// [x86_64_pc_windows_gnullvm] compile-flags: --target x86_64-pc-windows-gnullvm
// [x86_64_pc_windows_gnullvm] needs-llvm-components: x86
// revisions: x86_64_pc_windows_msvc
// [x86_64_pc_windows_msvc] compile-flags: --target x86_64-pc-windows-msvc
// [x86_64_pc_windows_msvc] needs-llvm-components: x86
// revisions: x86_64_unknown_uefi
// [x86_64_unknown_uefi] compile-flags: --target x86_64-unknown-uefi
// [x86_64_unknown_uefi] needs-llvm-components: x86
// revisions: x86_64_uwp_windows_gnu
// [x86_64_uwp_windows_gnu] compile-flags: --target x86_64-uwp-windows-gnu
// [x86_64_uwp_windows_gnu] needs-llvm-components: x86
// revisions: x86_64_uwp_windows_msvc
// [x86_64_uwp_windows_msvc] compile-flags: --target x86_64-uwp-windows-msvc
// [x86_64_uwp_windows_msvc] needs-llvm-components: x86
// revisions: x86_64_win7_windows_msvc
// [x86_64_win7_windows_msvc] compile-flags: --target x86_64-win7-windows-msvc
// [x86_64_win7_windows_msvc] needs-llvm-components: x86
// Sanity-check that each target can produce assembly code.
#![feature(no_core, lang_items)]
#![no_std]
#![no_core]
#![crate_type = "lib"]
#[lang = "sized"]
trait Sized {}
pub fn test() -> u8 {
42
}
// CHECK: .file