Auto merge of #121370 - jieyouxu:migrate-compiletest-directives, r=oli-obk

Migrate compiletest to use `ui_test`-style `//@` directives

## Preface

There's an on-going effort to rewrite parts of or the entirety of compiletest
(<https://github.com/rust-lang/compiler-team/issues/536>). A step towards this involve migrating
compiletest tests to use the [`ui_test`](https://github.com/oli-obk/ui_test) framework, which
involves changing compiletest directives in `// <directive-name>` style to `ui_test`
`//@ <directive-name>` style (https://github.com/rust-lang/compiler-team/issues/512).

This PR aims to implement the directive-style change from `//` to `//`@`` for the remaining
non-"ui" test suite tests.

## Key Changes

1. All `tests/` tests now use `//`@`` directives.
2. Compiletest only accepts `//`@`` and issues an error if an old-style directive is detected.
3. `// ignore-tidy` and `// ignore-tidy-*` are considered tidy directives and are ignored by
   compiletest header parsing.

## Diff Generation

The diff is generated by:

- Collecting directives from `tests/` via hijacking compiletest to emit successfully parsed
  directive lines.
- Using a migration tool
  (<https://github.com/jieyouxu/compiletest-ui_test-header-migration/tree/master>) to replace
  `//` directives in compiletest tests with `//`@`.`

### Reproduction Steps

0. Delete the temporary file `$RUSTC_REPO_PATH/build/<target_triple>/test/__directive_lines.txt`,
   if the collection script was previously ran.
1. Use the <https://github.com/jieyouxu/rust/tree/collect-test-directives> collect-test-directives
   script, which outputs a temporary file recording headers occuring in each compiletest test.
   - You need to checkout this branch: `git checkout collect-test-directives`.
   - This needs to be rebased on latest master to ensure up-to-date test directives can be collected.
   - You need to run `./x test` on each of the `test/*` subfolders once:

        ```bash
        ./x test tests/assembly/ --stage 1 --force-rerun
        ./x test tests/codegen/ --stage 1 --force-rerun
        ./x test tests/codegen-units/ --stage 1 --force-rerun
        ./x test tests/coverage/ --stage 1 --force-rerun
        ./x test tests/coverage-run-rustdoc/ --stage 1 --force-rerun
        ./x test tests/debuginfo/ --stage 1 --force-rerun
        ./x test tests/incremental/ --stage 1 --force-rerun
        ./x test tests/mir-opt/ --stage 1 --force-rerun
        ./x test tests/pretty/ --stage 1 --force-rerun
        ./x test tests/run-make/ --stage 1 --force-rerun
        ./x test tests/run-make-fulldeps/ --stage 1 --force-rerun
        ./x test tests/run-pass-valgrind/ --stage 1 --force-rerun
        ./x test tests/rustdoc/ --stage 1 --force-rerun
        TARGET=<target-triple> ./x test tests/rustdoc-gui/ --stage 1 --force-rerun
        ./x test tests/rustdoc-js/ --stage 1 --force-rerun
        ./x test tests/rustdoc-js-std/ --stage 1 --force-rerun
        ./x test tests/rustdoc-json/ --stage 1 --force-rerun
        ./x test tests/rustdoc-ui/ --stage 1 --force-rerun
        ./x test tests/ui/ --stage 1 --force-rerun
        ./x test tests/ui-fulldeps/ --stage 1 --force-rerun
        ```

2. Checkout the `migrate-compiletest-directives` branch.
3. Run the migration tool <https://github.com/jieyouxu/compiletest-ui_test-header-migration>.
4. Check that the migration at least does not cause test failures if you change compiletest to
   accept `//`@`` directives only. This is also required if the test outputs somehow need to be
   blessed.
   - `RUSTC_TEST_FAIL_FAST=1 ./x test tests/<secondary-directory>  --stage 1 --bless`
5. Confirm that there is no difference after running the migration tool when you are on the
   `migrate-compiletest-directives` branch.

## Follow Up Work

- [ ] Adjust rustc-dev-guide docs for compiletest directives (this time for all the other suites and modes). <https://github.com/rust-lang/rustc-dev-guide/pull/1895>.
This commit is contained in:
bors 2024-02-22 16:39:09 +00:00
commit f62f490fd4
1837 changed files with 4876 additions and 4839 deletions

View File

@ -673,14 +673,17 @@ pub fn line_directive<'line>(
/// names. This is **not** an exhaustive list of all possible directives. Instead, this is a /// names. This is **not** an exhaustive list of all possible directives. Instead, this is a
/// best-effort approximation for diagnostics. /// best-effort approximation for diagnostics.
const DIAGNOSTICS_DIRECTIVE_NAMES: &[&str] = &[ const DIAGNOSTICS_DIRECTIVE_NAMES: &[&str] = &[
"assembly-output",
"aux-build", "aux-build",
"aux-crate", "aux-crate",
"build-aux-docs",
"build-fail", "build-fail",
"build-pass", "build-pass",
"check-fail", "check-fail",
"check-pass", "check-pass",
"check-run-results", "check-run-results",
"check-stdout", "check-stdout",
"check-test-line-numbers-match",
"compile-flags", "compile-flags",
"dont-check-compiler-stderr", "dont-check-compiler-stderr",
"dont-check-compiler-stdout", "dont-check-compiler-stdout",
@ -691,12 +694,16 @@ const DIAGNOSTICS_DIRECTIVE_NAMES: &[&str] = &[
"failure-status", "failure-status",
"forbid-output", "forbid-output",
"force-host", "force-host",
"ignore-16bit",
"ignore-32bit", "ignore-32bit",
"ignore-64bit", "ignore-64bit",
"ignore-aarch64", "ignore-aarch64",
"ignore-aarch64-unknown-linux-gnu", "ignore-aarch64-unknown-linux-gnu",
"ignore-android", "ignore-android",
"ignore-arm", "ignore-arm",
"ignore-avr",
"ignore-beta",
"ignore-cdb",
"ignore-compare-mode-next-solver", "ignore-compare-mode-next-solver",
"ignore-compare-mode-polonius", "ignore-compare-mode-polonius",
"ignore-cross-compile", "ignore-cross-compile",
@ -705,13 +712,21 @@ const DIAGNOSTICS_DIRECTIVE_NAMES: &[&str] = &[
"ignore-endian-big", "ignore-endian-big",
"ignore-freebsd", "ignore-freebsd",
"ignore-fuchsia", "ignore-fuchsia",
"ignore-gdb",
"ignore-gdb-version",
"ignore-gnu", "ignore-gnu",
"ignore-haiku", "ignore-haiku",
"ignore-horizon", "ignore-horizon",
"ignore-i686-pc-windows-msvc", "ignore-i686-pc-windows-msvc",
"ignore-ios", "ignore-ios",
"ignore-linux",
"ignore-lldb",
"ignore-llvm-version", "ignore-llvm-version",
"ignore-loongarch64",
"ignore-macos", "ignore-macos",
"ignore-mode-coverage-map",
"ignore-mode-coverage-run",
"ignore-msp430",
"ignore-msvc", "ignore-msvc",
"ignore-musl", "ignore-musl",
"ignore-netbsd", "ignore-netbsd",
@ -720,8 +735,13 @@ const DIAGNOSTICS_DIRECTIVE_NAMES: &[&str] = &[
"ignore-nvptx64", "ignore-nvptx64",
"ignore-openbsd", "ignore-openbsd",
"ignore-pass", "ignore-pass",
"ignore-remote",
"ignore-riscv64",
"ignore-s390x",
"ignore-sgx", "ignore-sgx",
"ignore-spirv", "ignore-spirv",
"ignore-stable",
"ignore-stage1",
"ignore-test", "ignore-test",
"ignore-thumbv8m.base-none-eabi", "ignore-thumbv8m.base-none-eabi",
"ignore-thumbv8m.main-none-eabi", "ignore-thumbv8m.main-none-eabi",
@ -731,9 +751,15 @@ const DIAGNOSTICS_DIRECTIVE_NAMES: &[&str] = &[
"ignore-wasm32", "ignore-wasm32",
"ignore-wasm32-bare", "ignore-wasm32-bare",
"ignore-windows", "ignore-windows",
"ignore-windows-gnu",
"ignore-x86", "ignore-x86",
"ignore-x86_64-apple-darwin",
"incremental", "incremental",
"known-bug", "known-bug",
"llvm-cov-flags",
"min-cdb-version",
"min-gdb-version",
"min-lldb-version",
"min-llvm-version", "min-llvm-version",
"needs-asm-support", "needs-asm-support",
"needs-dlltool", "needs-dlltool",
@ -742,11 +768,15 @@ const DIAGNOSTICS_DIRECTIVE_NAMES: &[&str] = &[
"needs-profiler-support", "needs-profiler-support",
"needs-relocation-model-pic", "needs-relocation-model-pic",
"needs-run-enabled", "needs-run-enabled",
"needs-rust-lldb",
"needs-sanitizer-address", "needs-sanitizer-address",
"needs-sanitizer-cfi", "needs-sanitizer-cfi",
"needs-sanitizer-hwaddress", "needs-sanitizer-hwaddress",
"needs-sanitizer-leak", "needs-sanitizer-leak",
"needs-sanitizer-memory", "needs-sanitizer-memory",
"needs-sanitizer-memtag",
"needs-sanitizer-safestack",
"needs-sanitizer-shadow-call-stack",
"needs-sanitizer-support", "needs-sanitizer-support",
"needs-sanitizer-thread", "needs-sanitizer-thread",
"needs-unwind", "needs-unwind",
@ -756,23 +786,42 @@ const DIAGNOSTICS_DIRECTIVE_NAMES: &[&str] = &[
"normalize-stderr-64bit", "normalize-stderr-64bit",
"normalize-stderr-test", "normalize-stderr-test",
"normalize-stdout-test", "normalize-stdout-test",
"only-16bit",
"only-32bit", "only-32bit",
"only-64bit", "only-64bit",
"only-aarch64", "only-aarch64",
"only-arm",
"only-avr",
"only-bpf",
"only-cdb",
"only-gnu", "only-gnu",
"only-i686-pc-windows-msvc", "only-i686-pc-windows-msvc",
"only-linux", "only-linux",
"only-loongarch64",
"only-loongarch64-unknown-linux-gnu",
"only-macos", "only-macos",
"only-mips",
"only-mips64",
"only-msp430",
"only-msvc", "only-msvc",
"only-nightly", "only-nightly",
"only-nvptx64",
"only-riscv64",
"only-sparc",
"only-sparc64",
"only-thumb",
"only-wasm32", "only-wasm32",
"only-wasm32-bare",
"only-windows", "only-windows",
"only-x86", "only-x86",
"only-x86_64", "only-x86_64",
"only-x86_64-fortanix-unknown-sgx",
"only-x86_64-pc-windows-msvc", "only-x86_64-pc-windows-msvc",
"only-x86_64-unknown-linux-gnu", "only-x86_64-unknown-linux-gnu",
"pp-exact", "pp-exact",
"pretty-compare-only",
"pretty-expanded", "pretty-expanded",
"pretty-mode",
"regex-error-pattern", "regex-error-pattern",
"remap-src-base", "remap-src-base",
"revisions", "revisions",
@ -783,7 +832,10 @@ const DIAGNOSTICS_DIRECTIVE_NAMES: &[&str] = &[
"rustc-env", "rustc-env",
"rustfix-only-machine-applicable", "rustfix-only-machine-applicable",
"should-fail", "should-fail",
"should-ice",
"stderr-per-bitwidth", "stderr-per-bitwidth",
"unit-test",
"unset-exec-env",
"unset-rustc-env", "unset-rustc-env",
]; ];
@ -817,7 +869,7 @@ struct HeaderLine<'ln> {
fn iter_header( fn iter_header(
mode: Mode, mode: Mode,
suite: &str, _suite: &str,
poisoned: &mut bool, poisoned: &mut bool,
testfile: &Path, testfile: &Path,
rdr: impl Read, rdr: impl Read,
@ -848,11 +900,7 @@ fn iter_header(
} }
} }
let comment = if testfile.extension().is_some_and(|e| e == "rs") { let comment = if testfile.extension().is_some_and(|e| e == "rs") { "//@" } else { "#" };
if mode == Mode::Ui && suite == "ui" { "//@" } else { "//" }
} else {
"#"
};
let mut rdr = BufReader::with_capacity(1024, rdr); let mut rdr = BufReader::with_capacity(1024, rdr);
let mut ln = String::new(); let mut ln = String::new();
@ -879,7 +927,7 @@ fn iter_header(
// First try to accept `ui_test` style comments // First try to accept `ui_test` style comments
} else if let Some((header_revision, directive)) = line_directive(comment, ln) { } else if let Some((header_revision, directive)) = line_directive(comment, ln) {
it(HeaderLine { line_number, original_line, header_revision, directive }); it(HeaderLine { line_number, original_line, header_revision, directive });
} else if mode == Mode::Ui && suite == "ui" && !REVISION_MAGIC_COMMENT_RE.is_match(ln) { } else if !REVISION_MAGIC_COMMENT_RE.is_match(ln) {
let Some((_, rest)) = line_directive("//", ln) else { let Some((_, rest)) = line_directive("//", ln) else {
continue; continue;
}; };
@ -899,7 +947,7 @@ fn iter_header(
// directive. We emit an error here to warn the user. // directive. We emit an error here to warn the user.
*poisoned = true; *poisoned = true;
eprintln!( eprintln!(
"error: detected legacy-style directives in ui test: {}:{}, please use `ui_test`-style directives `//@` instead:{:#?}", "error: detected legacy-style directives in compiletest test: {}:{}, please use `ui_test`-style directives `//@` instead:{:#?}",
testfile.display(), testfile.display(),
line_number, line_number,
line_directive("//", ln), line_directive("//", ln),
@ -912,7 +960,7 @@ fn iter_header(
// directive. We emit an error here to warn the user. // directive. We emit an error here to warn the user.
*poisoned = true; *poisoned = true;
eprintln!( eprintln!(
"error: detected legacy-style directives in ui test: {}:{}, please use `ui_test`-style directives `//@` instead:{:#?}", "error: detected legacy-style directives in compiletest test: {}:{}, please use `ui_test`-style directives `//@` instead:{:#?}",
testfile.display(), testfile.display(),
line_number, line_number,
line_directive("//", ln), line_directive("//", ln),
@ -1213,11 +1261,8 @@ pub fn make_test_description<R: Read>(
if let Some((_, post)) = original_line.trim_start().split_once("//") { if let Some((_, post)) = original_line.trim_start().split_once("//") {
let post = post.trim_start(); let post = post.trim_start();
if post.starts_with("ignore-tidy") if post.starts_with("ignore-tidy") {
&& config.mode == Mode::Ui // Not handled by compiletest.
&& config.suite == "ui"
{
// not handled by compiletest under the ui test mode and ui test suite.
} else { } else {
decision!(cfg::handle_ignore(config, ln)); decision!(cfg::handle_ignore(config, ln));
} }

View File

@ -578,12 +578,7 @@ fn ignore_mode() {
assert_eq!(config.mode, Mode::from_str(mode).unwrap()); assert_eq!(config.mode, Mode::from_str(mode).unwrap());
assert_ne!(config.mode, Mode::from_str(other).unwrap()); assert_ne!(config.mode, Mode::from_str(other).unwrap());
if mode == "ui" { assert!(check_ignore(&config, &format!("//@ ignore-mode-{mode}")));
assert!(check_ignore(&config, &format!("//@ ignore-mode-{mode}"))); assert!(!check_ignore(&config, &format!("//@ ignore-mode-{other}")));
assert!(!check_ignore(&config, &format!("//@ ignore-mode-{other}")));
} else {
assert!(check_ignore(&config, &format!("// ignore-mode-{mode}")));
assert!(!check_ignore(&config, &format!("// ignore-mode-{other}")));
}
} }
} }

View File

@ -3938,15 +3938,10 @@ impl<'test> TestCx<'test> {
self.props.compare_output_lines_by_subset, self.props.compare_output_lines_by_subset,
); );
} else if !expected_fixed.is_empty() { } else if !expected_fixed.is_empty() {
if self.config.suite == "ui" { panic!(
panic!( "the `//@ run-rustfix` directive wasn't found but a `*.fixed` \
"the `//@ run-rustfix` directive wasn't found but a `*.fixed` file was found" file was found"
); );
} else {
panic!(
"the `// run-rustfix` directive wasn't found but a `*.fixed` file was found"
);
}
} }
if errors > 0 { if errors > 0 {

View File

@ -7,7 +7,7 @@ use std::{collections::HashSet, path::Path};
const TARGET_DEFINITIONS_PATH: &str = "compiler/rustc_target/src/spec/targets/"; const TARGET_DEFINITIONS_PATH: &str = "compiler/rustc_target/src/spec/targets/";
const ASSEMBLY_TEST_PATH: &str = "tests/assembly/targets/"; const ASSEMBLY_TEST_PATH: &str = "tests/assembly/targets/";
const REVISION_LINE_START: &str = "// revisions: "; const REVISION_LINE_START: &str = "//@ revisions: ";
const EXCEPTIONS: &[&str] = &[ const EXCEPTIONS: &[&str] = &[
// FIXME: disabled since it fails on CI saying the csky component is missing // FIXME: disabled since it fails on CI saying the csky component is missing
"csky_unknown_linux_gnuabiv2", "csky_unknown_linux_gnuabiv2",

View File

@ -6,7 +6,7 @@ use std::path::Path;
use crate::walk::filter_not_rust; use crate::walk::filter_not_rust;
const COMMENT: &str = "//"; const COMMENT: &str = "//@";
const LLVM_COMPONENTS_HEADER: &str = "needs-llvm-components:"; const LLVM_COMPONENTS_HEADER: &str = "needs-llvm-components:";
const COMPILE_FLAGS_HEADER: &str = "compile-flags:"; const COMPILE_FLAGS_HEADER: &str = "compile-flags:";

View File

@ -1,7 +1,7 @@
// compile-flags: -C no-prepopulate-passes -Zbranch-protection=bti //@ compile-flags: -C no-prepopulate-passes -Zbranch-protection=bti
// assembly-output: emit-asm //@ assembly-output: emit-asm
// needs-asm-support //@ needs-asm-support
// only-aarch64 //@ only-aarch64
#![crate_type = "lib"] #![crate_type = "lib"]
#![feature(naked_functions)] #![feature(naked_functions)]

View File

@ -1,9 +1,9 @@
// Test that PAC instructions are emitted when branch-protection is specified. // Test that PAC instructions are emitted when branch-protection is specified.
// assembly-output: emit-asm //@ assembly-output: emit-asm
// compile-flags: --target aarch64-unknown-linux-gnu //@ compile-flags: --target aarch64-unknown-linux-gnu
// compile-flags: -Z branch-protection=pac-ret,leaf //@ compile-flags: -Z branch-protection=pac-ret,leaf
// needs-llvm-components: aarch64 //@ needs-llvm-components: aarch64
#![feature(no_core, lang_items)] #![feature(no_core, lang_items)]
#![no_std] #![no_std]

View File

@ -1,6 +1,6 @@
// assembly-output: emit-asm //@ assembly-output: emit-asm
// compile-flags: -Copt-level=1 //@ compile-flags: -Copt-level=1
// only-x86_64 //@ only-x86_64
#![crate_type="rlib"] #![crate_type="rlib"]
// CHECK-LABEL: align_offset_byte_ptr // CHECK-LABEL: align_offset_byte_ptr

View File

@ -1,6 +1,6 @@
// assembly-output: emit-asm //@ assembly-output: emit-asm
// compile-flags: --target aarch64-unknown-linux-gnu //@ compile-flags: --target aarch64-unknown-linux-gnu
// needs-llvm-components: aarch64 //@ needs-llvm-components: aarch64
#![feature(no_core, lang_items, rustc_attrs)] #![feature(no_core, lang_items, rustc_attrs)]
#![crate_type = "rlib"] #![crate_type = "rlib"]

View File

@ -1,7 +1,7 @@
// assembly-output: emit-asm //@ assembly-output: emit-asm
// compile-flags: -O //@ compile-flags: -O
// compile-flags: --target aarch64-unknown-linux-gnu //@ compile-flags: --target aarch64-unknown-linux-gnu
// needs-llvm-components: aarch64 //@ needs-llvm-components: aarch64
#![feature(no_core, lang_items, rustc_attrs)] #![feature(no_core, lang_items, rustc_attrs)]
#![crate_type = "rlib"] #![crate_type = "rlib"]

View File

@ -1,9 +1,9 @@
// assembly-output: emit-asm //@ assembly-output: emit-asm
// compile-flags: -O //@ compile-flags: -O
// compile-flags: --target aarch64-unknown-linux-gnu //@ compile-flags: --target aarch64-unknown-linux-gnu
// needs-llvm-components: aarch64 //@ needs-llvm-components: aarch64
// only-aarch64 //@ only-aarch64
// only-linux //@ only-linux
#![crate_type = "rlib"] #![crate_type = "rlib"]

View File

@ -1,6 +1,6 @@
// assembly-output: emit-asm //@ assembly-output: emit-asm
// compile-flags: --target aarch64-unknown-linux-gnu //@ compile-flags: --target aarch64-unknown-linux-gnu
// needs-llvm-components: aarch64 //@ needs-llvm-components: aarch64
#![feature(no_core, lang_items, rustc_attrs, repr_simd)] #![feature(no_core, lang_items, rustc_attrs, repr_simd)]
#![crate_type = "rlib"] #![crate_type = "rlib"]

View File

@ -1,8 +1,8 @@
// assembly-output: emit-asm //@ assembly-output: emit-asm
// compile-flags: -O //@ compile-flags: -O
// compile-flags: --target armv7-unknown-linux-gnueabihf //@ compile-flags: --target armv7-unknown-linux-gnueabihf
// compile-flags: -C target-feature=+neon //@ compile-flags: -C target-feature=+neon
// needs-llvm-components: arm //@ needs-llvm-components: arm
#![feature(no_core, lang_items, rustc_attrs, repr_simd)] #![feature(no_core, lang_items, rustc_attrs, repr_simd)]
#![crate_type = "rlib"] #![crate_type = "rlib"]

View File

@ -1,8 +1,8 @@
// assembly-output: emit-asm //@ assembly-output: emit-asm
// compile-flags: --target armv7-unknown-linux-gnueabihf //@ compile-flags: --target armv7-unknown-linux-gnueabihf
// compile-flags: -C target-feature=+neon //@ compile-flags: -C target-feature=+neon
// compile-flags: -C opt-level=0 //@ compile-flags: -C opt-level=0
// needs-llvm-components: arm //@ needs-llvm-components: arm
#![feature(no_core, lang_items, rustc_attrs, repr_simd)] #![feature(no_core, lang_items, rustc_attrs, repr_simd)]
#![crate_type = "rlib"] #![crate_type = "rlib"]

View File

@ -1,6 +1,6 @@
// assembly-output: emit-asm //@ assembly-output: emit-asm
// compile-flags: --target avr-unknown-gnu-atmega328 //@ compile-flags: --target avr-unknown-gnu-atmega328
// needs-llvm-components: avr //@ needs-llvm-components: avr
#![feature(no_core, lang_items, rustc_attrs, asm_experimental_arch)] #![feature(no_core, lang_items, rustc_attrs, asm_experimental_arch)]
#![crate_type = "rlib"] #![crate_type = "rlib"]

View File

@ -1,6 +1,6 @@
// assembly-output: emit-asm //@ assembly-output: emit-asm
// compile-flags: --target avr-unknown-gnu-atmega328 //@ compile-flags: --target avr-unknown-gnu-atmega328
// needs-llvm-components: avr //@ needs-llvm-components: avr
#![feature(no_core, lang_items, rustc_attrs, asm_experimental_arch)] #![feature(no_core, lang_items, rustc_attrs, asm_experimental_arch)]
#![crate_type = "rlib"] #![crate_type = "rlib"]

View File

@ -1,6 +1,6 @@
// assembly-output: emit-asm //@ assembly-output: emit-asm
// compile-flags: --target bpfel-unknown-none -C target_feature=+alu32 //@ compile-flags: --target bpfel-unknown-none -C target_feature=+alu32
// needs-llvm-components: bpf //@ needs-llvm-components: bpf
#![feature(no_core, lang_items, rustc_attrs, repr_simd, asm_experimental_arch)] #![feature(no_core, lang_items, rustc_attrs, repr_simd, asm_experimental_arch)]
#![crate_type = "rlib"] #![crate_type = "rlib"]

View File

@ -1,8 +1,8 @@
// only-x86_64 //@ only-x86_64
// only-linux //@ only-linux
// assembly-output: emit-asm //@ assembly-output: emit-asm
// compile-flags: -C llvm-args=--x86-asm-syntax=intel //@ compile-flags: -C llvm-args=--x86-asm-syntax=intel
// compile-flags: -C symbol-mangling-version=v0 //@ compile-flags: -C symbol-mangling-version=v0
#![feature(asm_const)] #![feature(asm_const)]
#![crate_type = "rlib"] #![crate_type = "rlib"]

View File

@ -1,6 +1,6 @@
// assembly-output: emit-asm //@ assembly-output: emit-asm
// compile-flags: --target hexagon-unknown-linux-musl //@ compile-flags: --target hexagon-unknown-linux-musl
// needs-llvm-components: hexagon //@ needs-llvm-components: hexagon
#![feature(no_core, lang_items, rustc_attrs, repr_simd, asm_experimental_arch)] #![feature(no_core, lang_items, rustc_attrs, repr_simd, asm_experimental_arch)]
#![crate_type = "rlib"] #![crate_type = "rlib"]

View File

@ -1,7 +1,7 @@
// assembly-output: emit-asm //@ assembly-output: emit-asm
// compile-flags: --crate-type=lib //@ compile-flags: --crate-type=lib
// only-x86_64 //@ only-x86_64
// ignore-sgx //@ ignore-sgx
#![feature(portable_simd)] #![feature(portable_simd)]

View File

@ -1,6 +1,6 @@
// assembly-output: emit-asm //@ assembly-output: emit-asm
// compile-flags: --target loongarch64-unknown-linux-gnu //@ compile-flags: --target loongarch64-unknown-linux-gnu
// needs-llvm-components: loongarch //@ needs-llvm-components: loongarch
#![feature(no_core, lang_items, rustc_attrs, asm_experimental_arch)] #![feature(no_core, lang_items, rustc_attrs, asm_experimental_arch)]
#![crate_type = "rlib"] #![crate_type = "rlib"]

View File

@ -1,6 +1,6 @@
// assembly-output: emit-asm //@ assembly-output: emit-asm
// compile-flags: --target m68k-unknown-linux-gnu //@ compile-flags: --target m68k-unknown-linux-gnu
// needs-llvm-components: m68k //@ needs-llvm-components: m68k
#![feature(no_core, lang_items, rustc_attrs, asm_experimental_arch)] #![feature(no_core, lang_items, rustc_attrs, asm_experimental_arch)]
#![crate_type = "rlib"] #![crate_type = "rlib"]

View File

@ -1,9 +1,9 @@
// revisions: mips32 mips64 //@ revisions: mips32 mips64
// assembly-output: emit-asm //@ assembly-output: emit-asm
//[mips32] compile-flags: --target mips-unknown-linux-gnu //@[mips32] compile-flags: --target mips-unknown-linux-gnu
//[mips32] needs-llvm-components: mips //@[mips32] needs-llvm-components: mips
//[mips64] compile-flags: --target mips64-unknown-linux-gnuabi64 //@[mips64] compile-flags: --target mips64-unknown-linux-gnuabi64
//[mips64] needs-llvm-components: mips //@[mips64] needs-llvm-components: mips
#![feature(no_core, lang_items, rustc_attrs, repr_simd, asm_experimental_arch)] #![feature(no_core, lang_items, rustc_attrs, repr_simd, asm_experimental_arch)]
#![crate_type = "rlib"] #![crate_type = "rlib"]

View File

@ -1,6 +1,6 @@
// assembly-output: emit-asm //@ assembly-output: emit-asm
// compile-flags: --target msp430-none-elf //@ compile-flags: --target msp430-none-elf
// needs-llvm-components: msp430 //@ needs-llvm-components: msp430
#![feature(no_core, lang_items, rustc_attrs, asm_experimental_arch, asm_const)] #![feature(no_core, lang_items, rustc_attrs, asm_experimental_arch, asm_const)]
#![crate_type = "rlib"] #![crate_type = "rlib"]

View File

@ -1,7 +1,7 @@
// assembly-output: emit-asm //@ assembly-output: emit-asm
// compile-flags: --target nvptx64-nvidia-cuda //@ compile-flags: --target nvptx64-nvidia-cuda
// compile-flags: --crate-type cdylib //@ compile-flags: --crate-type cdylib
// needs-llvm-components: nvptx //@ needs-llvm-components: nvptx
#![feature(no_core, lang_items, rustc_attrs, asm_experimental_arch)] #![feature(no_core, lang_items, rustc_attrs, asm_experimental_arch)]
#![no_core] #![no_core]

View File

@ -1,9 +1,9 @@
// revisions: powerpc powerpc64 //@ revisions: powerpc powerpc64
// assembly-output: emit-asm //@ assembly-output: emit-asm
//[powerpc] compile-flags: --target powerpc-unknown-linux-gnu //@[powerpc] compile-flags: --target powerpc-unknown-linux-gnu
//[powerpc] needs-llvm-components: powerpc //@[powerpc] needs-llvm-components: powerpc
//[powerpc64] compile-flags: --target powerpc64-unknown-linux-gnu //@[powerpc64] compile-flags: --target powerpc64-unknown-linux-gnu
//[powerpc64] needs-llvm-components: powerpc //@[powerpc64] needs-llvm-components: powerpc
#![feature(no_core, lang_items, rustc_attrs, repr_simd, asm_experimental_arch)] #![feature(no_core, lang_items, rustc_attrs, repr_simd, asm_experimental_arch)]
#![crate_type = "rlib"] #![crate_type = "rlib"]

View File

@ -1,10 +1,10 @@
// revisions: riscv64 riscv32 //@ revisions: riscv64 riscv32
// assembly-output: emit-asm //@ assembly-output: emit-asm
//[riscv64] compile-flags: --target riscv64imac-unknown-none-elf //@[riscv64] compile-flags: --target riscv64imac-unknown-none-elf
//[riscv64] needs-llvm-components: riscv //@[riscv64] needs-llvm-components: riscv
//[riscv32] compile-flags: --target riscv32imac-unknown-none-elf //@[riscv32] compile-flags: --target riscv32imac-unknown-none-elf
//[riscv32] needs-llvm-components: riscv //@[riscv32] needs-llvm-components: riscv
// compile-flags: -C target-feature=+d //@ compile-flags: -C target-feature=+d
#![feature(no_core, lang_items, rustc_attrs)] #![feature(no_core, lang_items, rustc_attrs)]
#![crate_type = "rlib"] #![crate_type = "rlib"]

View File

@ -1,7 +1,7 @@
// revisions: s390x //@ revisions: s390x
// assembly-output: emit-asm //@ assembly-output: emit-asm
//[s390x] compile-flags: --target s390x-unknown-linux-gnu //@[s390x] compile-flags: --target s390x-unknown-linux-gnu
//[s390x] needs-llvm-components: systemz //@[s390x] needs-llvm-components: systemz
#![feature(no_core, lang_items, rustc_attrs, repr_simd, asm_experimental_arch)] #![feature(no_core, lang_items, rustc_attrs, repr_simd, asm_experimental_arch)]
#![crate_type = "rlib"] #![crate_type = "rlib"]

View File

@ -1,7 +1,7 @@
// assembly-output: emit-asm //@ assembly-output: emit-asm
// compile-flags: --target wasm32-unknown-unknown //@ compile-flags: --target wasm32-unknown-unknown
// compile-flags: --crate-type cdylib //@ compile-flags: --crate-type cdylib
// needs-llvm-components: webassembly //@ needs-llvm-components: webassembly
#![feature(no_core, lang_items, rustc_attrs, asm_experimental_arch)] #![feature(no_core, lang_items, rustc_attrs, asm_experimental_arch)]
#![no_core] #![no_core]

View File

@ -1,12 +1,12 @@
// revisions: x86_64 i686 //@ revisions: x86_64 i686
// assembly-output: emit-asm //@ assembly-output: emit-asm
// compile-flags: -O //@ compile-flags: -O
//[x86_64] compile-flags: --target x86_64-unknown-linux-gnu //@[x86_64] compile-flags: --target x86_64-unknown-linux-gnu
//[x86_64] needs-llvm-components: x86 //@[x86_64] needs-llvm-components: x86
//[i686] compile-flags: --target i686-unknown-linux-gnu //@[i686] compile-flags: --target i686-unknown-linux-gnu
//[i686] needs-llvm-components: x86 //@[i686] needs-llvm-components: x86
// compile-flags: -C llvm-args=--x86-asm-syntax=intel //@ compile-flags: -C llvm-args=--x86-asm-syntax=intel
// compile-flags: -C target-feature=+avx512bw //@ compile-flags: -C target-feature=+avx512bw
#![feature(no_core, lang_items, rustc_attrs)] #![feature(no_core, lang_items, rustc_attrs)]
#![crate_type = "rlib"] #![crate_type = "rlib"]

View File

@ -1,11 +1,11 @@
// revisions: x86_64 i686 //@ revisions: x86_64 i686
// assembly-output: emit-asm //@ assembly-output: emit-asm
//[x86_64] compile-flags: --target x86_64-unknown-linux-gnu //@[x86_64] compile-flags: --target x86_64-unknown-linux-gnu
//[x86_64] needs-llvm-components: x86 //@[x86_64] needs-llvm-components: x86
//[i686] compile-flags: --target i686-unknown-linux-gnu //@[i686] compile-flags: --target i686-unknown-linux-gnu
//[i686] needs-llvm-components: x86 //@[i686] needs-llvm-components: x86
// compile-flags: -C llvm-args=--x86-asm-syntax=intel //@ compile-flags: -C llvm-args=--x86-asm-syntax=intel
// compile-flags: -C target-feature=+avx512bw //@ compile-flags: -C target-feature=+avx512bw
#![feature(no_core, lang_items, rustc_attrs, repr_simd)] #![feature(no_core, lang_items, rustc_attrs, repr_simd)]
#![crate_type = "rlib"] #![crate_type = "rlib"]

View File

@ -1,8 +1,8 @@
// only-x86_64 //@ only-x86_64
// ignore-sgx Tests incompatible with LVI mitigations //@ ignore-sgx Tests incompatible with LVI mitigations
// assembly-output: emit-asm //@ assembly-output: emit-asm
// make sure the feature is not enabled at compile-time // make sure the feature is not enabled at compile-time
// compile-flags: -C opt-level=3 -C target-feature=-sse4.1 -C llvm-args=-x86-asm-syntax=intel //@ compile-flags: -C opt-level=3 -C target-feature=-sse4.1 -C llvm-args=-x86-asm-syntax=intel
#![feature(target_feature_11)] #![feature(target_feature_11)]
#![crate_type = "rlib"] #![crate_type = "rlib"]

View File

@ -1,7 +1,7 @@
// Makes sure that `-Z dwarf-version=4` causes `rustc` to emit DWARF version 4. // Makes sure that `-Z dwarf-version=4` causes `rustc` to emit DWARF version 4.
// assembly-output: emit-asm //@ assembly-output: emit-asm
// compile-flags: -g --target x86_64-unknown-linux-gnu -Z dwarf-version=4 -Copt-level=0 //@ compile-flags: -g --target x86_64-unknown-linux-gnu -Z dwarf-version=4 -Copt-level=0
// needs-llvm-components: x86 //@ needs-llvm-components: x86
#![feature(no_core, lang_items)] #![feature(no_core, lang_items)]
#![crate_type = "rlib"] #![crate_type = "rlib"]

View File

@ -1,7 +1,7 @@
// Makes sure that `-Z dwarf-version=5` causes `rustc` to emit DWARF version 5. // Makes sure that `-Z dwarf-version=5` causes `rustc` to emit DWARF version 5.
// assembly-output: emit-asm //@ assembly-output: emit-asm
// compile-flags: -g --target x86_64-unknown-linux-gnu -Z dwarf-version=5 -Copt-level=0 //@ compile-flags: -g --target x86_64-unknown-linux-gnu -Z dwarf-version=5 -Copt-level=0
// needs-llvm-components: x86 //@ needs-llvm-components: x86
#![feature(no_core, lang_items)] #![feature(no_core, lang_items)]
#![crate_type = "rlib"] #![crate_type = "rlib"]

View File

@ -1,9 +1,9 @@
// assembly-output: emit-asm //@ assembly-output: emit-asm
// only-x86_64 //@ only-x86_64
// ignore-sgx //@ ignore-sgx
// revisions: opt-speed opt-size //@ revisions: opt-speed opt-size
// [opt-speed] compile-flags: -Copt-level=2 -Cdebug-assertions=no //@ [opt-speed] compile-flags: -Copt-level=2 -Cdebug-assertions=no
// [opt-size] compile-flags: -Copt-level=s -Cdebug-assertions=no //@ [opt-size] compile-flags: -Copt-level=s -Cdebug-assertions=no
#![crate_type="rlib"] #![crate_type="rlib"]
#![feature(core_intrinsics)] #![feature(core_intrinsics)]

View File

@ -1,8 +1,8 @@
// assembly-output: emit-asm //@ assembly-output: emit-asm
// # zen3 previously exhibited odd vectorization // # zen3 previously exhibited odd vectorization
// compile-flags: --crate-type=lib -Ctarget-cpu=znver3 -O //@ compile-flags: --crate-type=lib -Ctarget-cpu=znver3 -O
// only-x86_64 //@ only-x86_64
// ignore-sgx //@ ignore-sgx
use std::iter; use std::iter;

View File

@ -1,8 +1,8 @@
// Check that niche selection prefers zero and that jumps are optimized away. // Check that niche selection prefers zero and that jumps are optimized away.
// See https://github.com/rust-lang/rust/pull/87794 // See https://github.com/rust-lang/rust/pull/87794
// assembly-output: emit-asm //@ assembly-output: emit-asm
// only-x86 //@ only-x86
// compile-flags: -Copt-level=3 //@ compile-flags: -Copt-level=3
#![crate_type = "lib"] #![crate_type = "lib"]

View File

@ -1,11 +1,11 @@
// assembly-output: ptx-linker //@ assembly-output: ptx-linker
// compile-flags: --crate-type cdylib //@ compile-flags: --crate-type cdylib
// only-nvptx64 //@ only-nvptx64
// ignore-nvptx64 //@ ignore-nvptx64
#![no_std] #![no_std]
// aux-build: breakpoint-panic-handler.rs //@ aux-build: breakpoint-panic-handler.rs
extern crate breakpoint_panic_handler; extern crate breakpoint_panic_handler;
// Verify default target arch with ptx-linker. // Verify default target arch with ptx-linker.

View File

@ -1,7 +1,7 @@
// assembly-output: emit-asm //@ assembly-output: emit-asm
// compile-flags: --crate-type rlib //@ compile-flags: --crate-type rlib
// only-nvptx64 //@ only-nvptx64
// ignore-nvptx64 //@ ignore-nvptx64
#![no_std] #![no_std]

View File

@ -1,11 +1,11 @@
// assembly-output: ptx-linker //@ assembly-output: ptx-linker
// compile-flags: --crate-type cdylib -C link-arg=--arch=sm_60 //@ compile-flags: --crate-type cdylib -C link-arg=--arch=sm_60
// only-nvptx64 //@ only-nvptx64
// ignore-nvptx64 //@ ignore-nvptx64
#![no_std] #![no_std]
// aux-build: breakpoint-panic-handler.rs //@ aux-build: breakpoint-panic-handler.rs
extern crate breakpoint_panic_handler; extern crate breakpoint_panic_handler;
// Verify target arch override via `link-arg`. // Verify target arch override via `link-arg`.

View File

@ -1,11 +1,11 @@
// assembly-output: ptx-linker //@ assembly-output: ptx-linker
// compile-flags: --crate-type cdylib -C target-cpu=sm_50 //@ compile-flags: --crate-type cdylib -C target-cpu=sm_50
// only-nvptx64 //@ only-nvptx64
// ignore-nvptx64 //@ ignore-nvptx64
#![no_std] #![no_std]
// aux-build: breakpoint-panic-handler.rs //@ aux-build: breakpoint-panic-handler.rs
extern crate breakpoint_panic_handler; extern crate breakpoint_panic_handler;
// Verify target arch override via `target-cpu`. // Verify target arch override via `target-cpu`.

View File

@ -1,14 +1,14 @@
// assembly-output: ptx-linker //@ assembly-output: ptx-linker
// compile-flags: --crate-type cdylib //@ compile-flags: --crate-type cdylib
// only-nvptx64 //@ only-nvptx64
// ignore-nvptx64 //@ ignore-nvptx64
#![feature(abi_ptx, core_intrinsics)] #![feature(abi_ptx, core_intrinsics)]
#![no_std] #![no_std]
use core::intrinsics::*; use core::intrinsics::*;
// aux-build: breakpoint-panic-handler.rs //@ aux-build: breakpoint-panic-handler.rs
extern crate breakpoint_panic_handler; extern crate breakpoint_panic_handler;
// Currently, LLVM NVPTX backend can only emit atomic instructions with // Currently, LLVM NVPTX backend can only emit atomic instructions with

View File

@ -1,15 +1,15 @@
// assembly-output: ptx-linker //@ assembly-output: ptx-linker
// compile-flags: --crate-type cdylib //@ compile-flags: --crate-type cdylib
// only-nvptx64 //@ only-nvptx64
// ignore-nvptx64 //@ ignore-nvptx64
#![feature(abi_ptx)] #![feature(abi_ptx)]
#![no_std] #![no_std]
// aux-build: breakpoint-panic-handler.rs //@ aux-build: breakpoint-panic-handler.rs
extern crate breakpoint_panic_handler; extern crate breakpoint_panic_handler;
// aux-build: non-inline-dependency.rs //@ aux-build: non-inline-dependency.rs
extern crate non_inline_dependency as dep; extern crate non_inline_dependency as dep;
// Verify that no extra function declarations are present. // Verify that no extra function declarations are present.

View File

@ -1,7 +1,7 @@
// assembly-output: ptx-linker //@ assembly-output: ptx-linker
// compile-flags: --crate-type cdylib -C target-cpu=sm_86 //@ compile-flags: --crate-type cdylib -C target-cpu=sm_86
// only-nvptx64 //@ only-nvptx64
// ignore-nvptx64 //@ ignore-nvptx64
// The following ABI tests are made with nvcc 11.6 does. // The following ABI tests are made with nvcc 11.6 does.
// //

View File

@ -1,16 +1,16 @@
// assembly-output: ptx-linker //@ assembly-output: ptx-linker
// compile-flags: --crate-type bin //@ compile-flags: --crate-type bin
// only-nvptx64 //@ only-nvptx64
// ignore-nvptx64 //@ ignore-nvptx64
#![feature(abi_ptx)] #![feature(abi_ptx)]
#![no_main] #![no_main]
#![no_std] #![no_std]
// aux-build: breakpoint-panic-handler.rs //@ aux-build: breakpoint-panic-handler.rs
extern crate breakpoint_panic_handler; extern crate breakpoint_panic_handler;
// aux-build: non-inline-dependency.rs //@ aux-build: non-inline-dependency.rs
extern crate non_inline_dependency as dep; extern crate non_inline_dependency as dep;
// Make sure declarations are there. // Make sure declarations are there.

View File

@ -1,15 +1,15 @@
// assembly-output: ptx-linker //@ assembly-output: ptx-linker
// compile-flags: --crate-type cdylib //@ compile-flags: --crate-type cdylib
// only-nvptx64 //@ only-nvptx64
// ignore-nvptx64 //@ ignore-nvptx64
#![feature(abi_ptx)] #![feature(abi_ptx)]
#![no_std] #![no_std]
// aux-build: breakpoint-panic-handler.rs //@ aux-build: breakpoint-panic-handler.rs
extern crate breakpoint_panic_handler; extern crate breakpoint_panic_handler;
// aux-build: non-inline-dependency.rs //@ aux-build: non-inline-dependency.rs
extern crate non_inline_dependency as dep; extern crate non_inline_dependency as dep;
// Make sure declarations are there. // Make sure declarations are there.

View File

@ -1,12 +1,12 @@
// assembly-output: ptx-linker //@ assembly-output: ptx-linker
// compile-flags: --crate-type cdylib //@ compile-flags: --crate-type cdylib
// only-nvptx64 //@ only-nvptx64
// ignore-nvptx64 //@ ignore-nvptx64
#![feature(abi_ptx)] #![feature(abi_ptx)]
#![no_std] #![no_std]
// aux-build: breakpoint-panic-handler.rs //@ aux-build: breakpoint-panic-handler.rs
extern crate breakpoint_panic_handler; extern crate breakpoint_panic_handler;
// Verify function name doesn't contain unacceaptable characters. // Verify function name doesn't contain unacceaptable characters.

View File

@ -1,11 +1,11 @@
// revisions: WIN LIN //@ revisions: WIN LIN
// [WIN] only-windows //@ [WIN] only-windows
// [LIN] only-linux //@ [LIN] only-linux
// assembly-output: emit-asm //@ assembly-output: emit-asm
// compile-flags: --crate-type=lib -O -C llvm-args=-x86-asm-syntax=intel //@ compile-flags: --crate-type=lib -O -C llvm-args=-x86-asm-syntax=intel
// only-x86_64 //@ only-x86_64
// ignore-sgx //@ ignore-sgx
// ignore-debug //@ ignore-debug
use std::cmp::Ordering; use std::cmp::Ordering;

View File

@ -1,6 +1,6 @@
// assembly-output: emit-asm //@ assembly-output: emit-asm
// only-x86_64-unknown-linux-gnu //@ only-x86_64-unknown-linux-gnu
// compile-flags: -C panic=unwind -C force-unwind-tables=n -O //@ compile-flags: -C panic=unwind -C force-unwind-tables=n -O
#![crate_type = "lib"] #![crate_type = "lib"]

View File

@ -1,6 +1,6 @@
// assembly-output: emit-asm //@ assembly-output: emit-asm
// only-x86_64-unknown-linux-gnu //@ only-x86_64-unknown-linux-gnu
// compile-flags: -C panic=unwind -C force-unwind-tables=n //@ compile-flags: -C panic=unwind -C force-unwind-tables=n
#![crate_type = "lib"] #![crate_type = "lib"]

View File

@ -1,7 +1,7 @@
// revisions: x64 //@ revisions: x64
// assembly-output: emit-asm //@ assembly-output: emit-asm
// [x64] compile-flags: --target x86_64-unknown-linux-gnu -Crelocation-model=pic //@ [x64] compile-flags: --target x86_64-unknown-linux-gnu -Crelocation-model=pic
// [x64] needs-llvm-components: x86 //@ [x64] needs-llvm-components: x86
#![feature(no_core, lang_items)] #![feature(no_core, lang_items)]

View File

@ -1,7 +1,7 @@
// revisions: x64 //@ revisions: x64
// assembly-output: emit-asm //@ assembly-output: emit-asm
// [x64] compile-flags: --target x86_64-unknown-linux-gnu -Crelocation-model=pie //@ [x64] compile-flags: --target x86_64-unknown-linux-gnu -Crelocation-model=pie
// [x64] needs-llvm-components: x86 //@ [x64] needs-llvm-components: x86
#![feature(no_core, lang_items)] #![feature(no_core, lang_items)]

View File

@ -1,11 +1,11 @@
// revisions: WIN LIN //@ revisions: WIN LIN
// [WIN] only-windows //@ [WIN] only-windows
// [LIN] only-linux //@ [LIN] only-linux
// assembly-output: emit-asm //@ assembly-output: emit-asm
// compile-flags: --crate-type=lib -O -C llvm-args=-x86-asm-syntax=intel //@ compile-flags: --crate-type=lib -O -C llvm-args=-x86-asm-syntax=intel
// only-x86_64 //@ only-x86_64
// ignore-sgx //@ ignore-sgx
// ignore-debug //@ ignore-debug
#![feature(str_internals)] #![feature(str_internals)]

View File

@ -2,9 +2,9 @@
// - float structure members are passes in floating point registers // - float structure members are passes in floating point registers
// (#86163) // (#86163)
// assembly-output: emit-asm //@ assembly-output: emit-asm
// needs-llvm-components: sparc //@ needs-llvm-components: sparc
// compile-flags: --target=sparcv9-sun-solaris -Copt-level=3 //@ compile-flags: --target=sparcv9-sun-solaris -Copt-level=3
#![crate_type = "lib"] #![crate_type = "lib"]
#![feature(no_core, lang_items)] #![feature(no_core, lang_items)]
#![no_core] #![no_core]

View File

@ -1,12 +1,12 @@
// revisions: x86_64 i686 aarch64 //@ revisions: x86_64 i686 aarch64
// assembly-output: emit-asm //@ assembly-output: emit-asm
//[x86_64] compile-flags: --target x86_64-unknown-linux-gnu -C llvm-args=-x86-asm-syntax=intel //@[x86_64] compile-flags: --target x86_64-unknown-linux-gnu -C llvm-args=-x86-asm-syntax=intel
//[x86_64] needs-llvm-components: x86 //@[x86_64] needs-llvm-components: x86
//[i686] compile-flags: --target i686-unknown-linux-gnu -C llvm-args=-x86-asm-syntax=intel //@[i686] compile-flags: --target i686-unknown-linux-gnu -C llvm-args=-x86-asm-syntax=intel
//[i686] needs-llvm-components: x86 //@[i686] needs-llvm-components: x86
//[aarch64] compile-flags: --target aarch64-unknown-linux-gnu //@[aarch64] compile-flags: --target aarch64-unknown-linux-gnu
//[aarch64] needs-llvm-components: aarch64 //@[aarch64] needs-llvm-components: aarch64
//[aarch64] min-llvm-version: 18 //@[aarch64] min-llvm-version: 18
#![feature(no_core, lang_items)] #![feature(no_core, lang_items)]
#![crate_type = "lib"] #![crate_type = "lib"]

View File

@ -1,13 +1,13 @@
// revisions: all strong basic none missing //@ revisions: all strong basic none missing
// assembly-output: emit-asm //@ assembly-output: emit-asm
// only-windows //@ only-windows
// only-msvc //@ only-msvc
// ignore-64bit 64-bit table based SEH has slightly different behaviors than classic SEH //@ ignore-64bit 64-bit table based SEH has slightly different behaviors than classic SEH
// [all] compile-flags: -Z stack-protector=all //@ [all] compile-flags: -Z stack-protector=all
// [strong] compile-flags: -Z stack-protector=strong //@ [strong] compile-flags: -Z stack-protector=strong
// [basic] compile-flags: -Z stack-protector=basic //@ [basic] compile-flags: -Z stack-protector=basic
// [none] compile-flags: -Z stack-protector=none //@ [none] compile-flags: -Z stack-protector=none
// compile-flags: -C opt-level=2 -Z merge-functions=disabled //@ compile-flags: -C opt-level=2 -Z merge-functions=disabled
#![crate_type = "lib"] #![crate_type = "lib"]

View File

@ -1,13 +1,13 @@
// revisions: all strong basic none missing //@ revisions: all strong basic none missing
// assembly-output: emit-asm //@ assembly-output: emit-asm
// only-windows //@ only-windows
// only-msvc //@ only-msvc
// ignore-32bit 64-bit table based SEH has slightly different behaviors than classic SEH //@ ignore-32bit 64-bit table based SEH has slightly different behaviors than classic SEH
// [all] compile-flags: -Z stack-protector=all //@ [all] compile-flags: -Z stack-protector=all
// [strong] compile-flags: -Z stack-protector=strong //@ [strong] compile-flags: -Z stack-protector=strong
// [basic] compile-flags: -Z stack-protector=basic //@ [basic] compile-flags: -Z stack-protector=basic
// [none] compile-flags: -Z stack-protector=none //@ [none] compile-flags: -Z stack-protector=none
// compile-flags: -C opt-level=2 -Z merge-functions=disabled //@ compile-flags: -C opt-level=2 -Z merge-functions=disabled
#![crate_type = "lib"] #![crate_type = "lib"]

View File

@ -1,15 +1,15 @@
// revisions: all strong basic none missing //@ revisions: all strong basic none missing
// assembly-output: emit-asm //@ assembly-output: emit-asm
// ignore-macos slightly different policy on stack protection of arrays //@ ignore-macos slightly different policy on stack protection of arrays
// ignore-msvc stack check code uses different function names //@ ignore-msvc stack check code uses different function names
// ignore-nvptx64 stack protector is not supported //@ ignore-nvptx64 stack protector is not supported
// ignore-wasm32-bare //@ ignore-wasm32-bare
// [all] compile-flags: -Z stack-protector=all //@ [all] compile-flags: -Z stack-protector=all
// [strong] compile-flags: -Z stack-protector=strong //@ [strong] compile-flags: -Z stack-protector=strong
// [basic] compile-flags: -Z stack-protector=basic //@ [basic] compile-flags: -Z stack-protector=basic
// [none] compile-flags: -Z stack-protector=none //@ [none] compile-flags: -Z stack-protector=none
// compile-flags: -C opt-level=2 -Z merge-functions=disabled //@ compile-flags: -C opt-level=2 -Z merge-functions=disabled
// min-llvm-version: 17.0.2 //@ min-llvm-version: 17.0.2
#![crate_type = "lib"] #![crate_type = "lib"]

View File

@ -1,182 +1,182 @@
// Test that stack smash protection code is emitted for all tier1 and tier2 // Test that stack smash protection code is emitted for all tier1 and tier2
// targets, with the exception of nvptx64-nvidia-cuda // targets, with the exception of nvptx64-nvidia-cuda
// //
// revisions: r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 r23 //@ revisions: r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 r23
// revisions: r24 r25 r26 r27 r28 r29 r30 r31 r32 r33 r35 r36 r37 r38 r39 r40 r41 r42 r43 r44 //@ revisions: r24 r25 r26 r27 r28 r29 r30 r31 r32 r33 r35 r36 r37 r38 r39 r40 r41 r42 r43 r44
// revisions: r45 r46 r47 r48 r49 r50 r51 r52 r53 r54 r55 r56 r57 r58 r59 r60 r61 r62 r63 r64 r65 //@ revisions: r45 r46 r47 r48 r49 r50 r51 r52 r53 r54 r55 r56 r57 r58 r59 r60 r61 r62 r63 r64 r65
// revisions: r66 r67 r68 r69 r70 r71 r72 r73 r74 r75 r76 r77 r78 r79 r80 r81 r82 r83 r84 //@ revisions: r66 r67 r68 r69 r70 r71 r72 r73 r74 r75 r76 r77 r78 r79 r80 r81 r82 r83 r84 r85
// assembly-output: emit-asm //@ assembly-output: emit-asm
// [r1] compile-flags: --target aarch64-unknown-linux-gnu //@ [r1] compile-flags: --target aarch64-unknown-linux-gnu
// [r1] needs-llvm-components: aarch64 //@ [r1] needs-llvm-components: aarch64
// [r2] compile-flags: --target i686-pc-windows-gnu //@ [r2] compile-flags: --target i686-pc-windows-gnu
// [r2] needs-llvm-components: x86 //@ [r2] needs-llvm-components: x86
// [r3] compile-flags: --target i686-pc-windows-msvc //@ [r3] compile-flags: --target i686-pc-windows-msvc
// [r3] needs-llvm-components: x86 //@ [r3] needs-llvm-components: x86
// [r4] compile-flags: --target i686-unknown-linux-gnu //@ [r4] compile-flags: --target i686-unknown-linux-gnu
// [r4] needs-llvm-components: x86 //@ [r4] needs-llvm-components: x86
// [r5] compile-flags: --target x86_64-apple-darwin //@ [r5] compile-flags: --target x86_64-apple-darwin
// [r5] needs-llvm-components: x86 //@ [r5] needs-llvm-components: x86
// [r6] compile-flags: --target x86_64-pc-windows-gnu //@ [r6] compile-flags: --target x86_64-pc-windows-gnu
// [r6] needs-llvm-components: x86 //@ [r6] needs-llvm-components: x86
// [r7] compile-flags: --target x86_64-pc-windows-msvc //@ [r7] compile-flags: --target x86_64-pc-windows-msvc
// [r7] needs-llvm-components: x86 //@ [r7] needs-llvm-components: x86
// [r8] compile-flags: --target x86_64-unknown-linux-gnu //@ [r8] compile-flags: --target x86_64-unknown-linux-gnu
// [r8] needs-llvm-components: x86 //@ [r8] needs-llvm-components: x86
// [r9] compile-flags: --target aarch64-apple-darwin //@ [r9] compile-flags: --target aarch64-apple-darwin
// [r9] needs-llvm-components: aarch64 //@ [r9] needs-llvm-components: aarch64
// [r10] compile-flags: --target aarch64-apple-ios //@ [r10] compile-flags: --target aarch64-apple-ios
// [r10] needs-llvm-components: aarch64 //@ [r10] needs-llvm-components: aarch64
// [r11] compile-flags: --target aarch64-unknown-fuchsia //@ [r11] compile-flags: --target aarch64-unknown-fuchsia
// [r11] needs-llvm-components: aarch64 //@ [r11] needs-llvm-components: aarch64
// [r12] compile-flags: --target aarch64-linux-android //@ [r12] compile-flags: --target aarch64-linux-android
// [r12] needs-llvm-components: aarch64 //@ [r12] needs-llvm-components: aarch64
// [r13] compile-flags: --target aarch64-pc-windows-msvc //@ [r13] compile-flags: --target aarch64-pc-windows-msvc
// [r13] needs-llvm-components: aarch64 //@ [r13] needs-llvm-components: aarch64
// [r14] compile-flags: --target aarch64-unknown-linux-musl //@ [r14] compile-flags: --target aarch64-unknown-linux-musl
// [r14] needs-llvm-components: aarch64 //@ [r14] needs-llvm-components: aarch64
// [r15] compile-flags: --target aarch64-unknown-none //@ [r15] compile-flags: --target aarch64-unknown-none
// [r15] needs-llvm-components: aarch64 //@ [r15] needs-llvm-components: aarch64
// [r16] compile-flags: --target aarch64-unknown-none-softfloat //@ [r16] compile-flags: --target aarch64-unknown-none-softfloat
// [r16] needs-llvm-components: aarch64 //@ [r16] needs-llvm-components: aarch64
// [r17] compile-flags: --target arm-linux-androideabi //@ [r17] compile-flags: --target arm-linux-androideabi
// [r17] needs-llvm-components: arm //@ [r17] needs-llvm-components: arm
// [r18] compile-flags: --target arm-unknown-linux-gnueabi //@ [r18] compile-flags: --target arm-unknown-linux-gnueabi
// [r18] needs-llvm-components: arm //@ [r18] needs-llvm-components: arm
// [r19] compile-flags: --target arm-unknown-linux-gnueabihf //@ [r19] compile-flags: --target arm-unknown-linux-gnueabihf
// [r19] needs-llvm-components: arm //@ [r19] needs-llvm-components: arm
// [r20] compile-flags: --target arm-unknown-linux-musleabi //@ [r20] compile-flags: --target arm-unknown-linux-musleabi
// [r20] needs-llvm-components: arm //@ [r20] needs-llvm-components: arm
// [r21] compile-flags: --target arm-unknown-linux-musleabihf //@ [r21] compile-flags: --target arm-unknown-linux-musleabihf
// [r21] needs-llvm-components: arm //@ [r21] needs-llvm-components: arm
// [r22] compile-flags: --target armebv7r-none-eabi //@ [r22] compile-flags: --target armebv7r-none-eabi
// [r22] needs-llvm-components: arm //@ [r22] needs-llvm-components: arm
// [r23] compile-flags: --target armebv7r-none-eabihf //@ [r23] compile-flags: --target armebv7r-none-eabihf
// [r23] needs-llvm-components: arm //@ [r23] needs-llvm-components: arm
// [r24] compile-flags: --target armv5te-unknown-linux-gnueabi //@ [r24] compile-flags: --target armv5te-unknown-linux-gnueabi
// [r24] needs-llvm-components: arm //@ [r24] needs-llvm-components: arm
// [r25] compile-flags: --target armv5te-unknown-linux-musleabi //@ [r25] compile-flags: --target armv5te-unknown-linux-musleabi
// [r25] needs-llvm-components: arm //@ [r25] needs-llvm-components: arm
// [r26] compile-flags: --target armv7-linux-androideabi //@ [r26] compile-flags: --target armv7-linux-androideabi
// [r26] needs-llvm-components: arm //@ [r26] needs-llvm-components: arm
// [r27] compile-flags: --target armv7a-none-eabi //@ [r27] compile-flags: --target armv7a-none-eabi
// [r27] needs-llvm-components: arm //@ [r27] needs-llvm-components: arm
// [r28] compile-flags: --target armv7r-none-eabi //@ [r28] compile-flags: --target armv7r-none-eabi
// [r28] needs-llvm-components: arm //@ [r28] needs-llvm-components: arm
// [r29] compile-flags: --target armv7r-none-eabihf //@ [r29] compile-flags: --target armv7r-none-eabihf
// [r29] needs-llvm-components: arm //@ [r29] needs-llvm-components: arm
// [r30] compile-flags: --target armv7-unknown-linux-gnueabi //@ [r30] compile-flags: --target armv7-unknown-linux-gnueabi
// [r30] needs-llvm-components: arm //@ [r30] needs-llvm-components: arm
// [r31] compile-flags: --target armv7-unknown-linux-gnueabihf //@ [r31] compile-flags: --target armv7-unknown-linux-gnueabihf
// [r31] needs-llvm-components: arm //@ [r31] needs-llvm-components: arm
// [r32] compile-flags: --target armv7-unknown-linux-musleabi //@ [r32] compile-flags: --target armv7-unknown-linux-musleabi
// [r32] needs-llvm-components: arm //@ [r32] needs-llvm-components: arm
// [r33] compile-flags: --target armv7-unknown-linux-musleabihf //@ [r33] compile-flags: --target armv7-unknown-linux-musleabihf
// [r33] needs-llvm-components: arm //@ [r33] needs-llvm-components: arm
// [r35] compile-flags: --target i586-pc-windows-msvc //@ [r35] compile-flags: --target i586-pc-windows-msvc
// [r35] needs-llvm-components: x86 //@ [r35] needs-llvm-components: x86
// [r36] compile-flags: --target i586-unknown-linux-gnu //@ [r36] compile-flags: --target i586-unknown-linux-gnu
// [r36] needs-llvm-components: x86 //@ [r36] needs-llvm-components: x86
// [r37] compile-flags: --target i586-unknown-linux-musl //@ [r37] compile-flags: --target i586-unknown-linux-musl
// [r37] needs-llvm-components: x86 //@ [r37] needs-llvm-components: x86
// [r38] compile-flags: --target i686-linux-android //@ [r38] compile-flags: --target i686-linux-android
// [r38] needs-llvm-components: x86 //@ [r38] needs-llvm-components: x86
// [r39] compile-flags: --target i686-unknown-freebsd //@ [r39] compile-flags: --target i686-unknown-freebsd
// [r39] needs-llvm-components: x86 //@ [r39] needs-llvm-components: x86
// [r40] compile-flags: --target i686-unknown-linux-musl //@ [r40] compile-flags: --target i686-unknown-linux-musl
// [r40] needs-llvm-components: x86 //@ [r40] needs-llvm-components: x86
// [r41] compile-flags: --target mips-unknown-linux-gnu //@ [r41] compile-flags: --target mips-unknown-linux-gnu
// [r41] needs-llvm-components: mips //@ [r41] needs-llvm-components: mips
// [r42] compile-flags: --target mips-unknown-linux-musl //@ [r42] compile-flags: --target mips-unknown-linux-musl
// [r42] needs-llvm-components: mips //@ [r42] needs-llvm-components: mips
// [r43] compile-flags: --target mips64-unknown-linux-gnuabi64 //@ [r43] compile-flags: --target mips64-unknown-linux-gnuabi64
// [r43] needs-llvm-components: mips //@ [r43] needs-llvm-components: mips
// [r44] compile-flags: --target mips64-unknown-linux-muslabi64 //@ [r44] compile-flags: --target mips64-unknown-linux-muslabi64
// [r44] needs-llvm-components: mips //@ [r44] needs-llvm-components: mips
// [r45] compile-flags: --target mips64el-unknown-linux-gnuabi64 //@ [r45] compile-flags: --target mips64el-unknown-linux-gnuabi64
// [r45] needs-llvm-components: mips //@ [r45] needs-llvm-components: mips
// [r46] compile-flags: --target mips64el-unknown-linux-muslabi64 //@ [r46] compile-flags: --target mips64el-unknown-linux-muslabi64
// [r46] needs-llvm-components: mips //@ [r46] needs-llvm-components: mips
// [r47] compile-flags: --target mipsel-unknown-linux-gnu //@ [r47] compile-flags: --target mipsel-unknown-linux-gnu
// [r47] needs-llvm-components: mips //@ [r47] needs-llvm-components: mips
// [r48] compile-flags: --target mipsel-unknown-linux-musl //@ [r48] compile-flags: --target mipsel-unknown-linux-musl
// [r48] needs-llvm-components: mips //@ [r48] needs-llvm-components: mips
// [r49] compile-flags: --target nvptx64-nvidia-cuda //@ [r49] compile-flags: --target nvptx64-nvidia-cuda
// [r49] needs-llvm-components: nvptx //@ [r49] needs-llvm-components: nvptx
// [r50] compile-flags: --target powerpc-unknown-linux-gnu //@ [r50] compile-flags: --target powerpc-unknown-linux-gnu
// [r50] needs-llvm-components: powerpc //@ [r50] needs-llvm-components: powerpc
// [r51] compile-flags: --target powerpc64-unknown-linux-gnu //@ [r51] compile-flags: --target powerpc64-unknown-linux-gnu
// [r51] needs-llvm-components: powerpc //@ [r51] needs-llvm-components: powerpc
// [r52] compile-flags: --target powerpc64le-unknown-linux-gnu //@ [r52] compile-flags: --target powerpc64le-unknown-linux-gnu
// [r52] needs-llvm-components: powerpc //@ [r52] needs-llvm-components: powerpc
// [r53] compile-flags: --target riscv32i-unknown-none-elf //@ [r53] compile-flags: --target riscv32i-unknown-none-elf
// [r53] needs-llvm-components: riscv //@ [r53] needs-llvm-components: riscv
// [r54] compile-flags: --target riscv32imac-unknown-none-elf //@ [r54] compile-flags: --target riscv32imac-unknown-none-elf
// [r54] needs-llvm-components: riscv //@ [r54] needs-llvm-components: riscv
// [r55] compile-flags:--target riscv32imc-unknown-none-elf //@ [r55] compile-flags:--target riscv32imc-unknown-none-elf
// [r55] needs-llvm-components: riscv //@ [r55] needs-llvm-components: riscv
// [r56] compile-flags:--target riscv64gc-unknown-linux-gnu //@ [r56] compile-flags:--target riscv64gc-unknown-linux-gnu
// [r56] needs-llvm-components: riscv //@ [r56] needs-llvm-components: riscv
// [r57] compile-flags:--target riscv64gc-unknown-none-elf //@ [r57] compile-flags:--target riscv64gc-unknown-none-elf
// [r57] needs-llvm-components: riscv //@ [r57] needs-llvm-components: riscv
// [r58] compile-flags:--target riscv64imac-unknown-none-elf //@ [r58] compile-flags:--target riscv64imac-unknown-none-elf
// [r58] needs-llvm-components: riscv //@ [r58] needs-llvm-components: riscv
// [r59] compile-flags:--target s390x-unknown-linux-gnu //@ [r59] compile-flags:--target s390x-unknown-linux-gnu
// [r59] needs-llvm-components: systemz //@ [r59] needs-llvm-components: systemz
// [r60] compile-flags:--target sparc64-unknown-linux-gnu //@ [r60] compile-flags:--target sparc64-unknown-linux-gnu
// [r60] needs-llvm-components: sparc //@ [r60] needs-llvm-components: sparc
// [r61] compile-flags:--target sparcv9-sun-solaris //@ [r61] compile-flags:--target sparcv9-sun-solaris
// [r61] needs-llvm-components: sparc //@ [r61] needs-llvm-components: sparc
// [r62] compile-flags:--target thumbv6m-none-eabi //@ [r62] compile-flags:--target thumbv6m-none-eabi
// [r62] needs-llvm-components: arm //@ [r62] needs-llvm-components: arm
// [r63] compile-flags:--target thumbv7em-none-eabi //@ [r63] compile-flags:--target thumbv7em-none-eabi
// [r63] needs-llvm-components: arm //@ [r63] needs-llvm-components: arm
// [r64] compile-flags:--target thumbv7em-none-eabihf //@ [r64] compile-flags:--target thumbv7em-none-eabihf
// [r64] needs-llvm-components: arm //@ [r64] needs-llvm-components: arm
// [r65] compile-flags:--target thumbv7m-none-eabi //@ [r65] compile-flags:--target thumbv7m-none-eabi
// [r65] needs-llvm-components: arm //@ [r65] needs-llvm-components: arm
// [r66] compile-flags:--target thumbv7neon-linux-androideabi //@ [r66] compile-flags:--target thumbv7neon-linux-androideabi
// [r66] needs-llvm-components: arm //@ [r66] needs-llvm-components: arm
// [r67] compile-flags:--target thumbv7neon-unknown-linux-gnueabihf //@ [r67] compile-flags:--target thumbv7neon-unknown-linux-gnueabihf
// [r67] needs-llvm-components: arm //@ [r67] needs-llvm-components: arm
// [r68] compile-flags:--target thumbv8m.base-none-eabi //@ [r68] compile-flags:--target thumbv8m.base-none-eabi
// [r68] needs-llvm-components: arm //@ [r68] needs-llvm-components: arm
// [r69] compile-flags:--target thumbv8m.main-none-eabi //@ [r69] compile-flags:--target thumbv8m.main-none-eabi
// [r69] needs-llvm-components: arm //@ [r69] needs-llvm-components: arm
// [r70] compile-flags:--target thumbv8m.main-none-eabihf //@ [r70] compile-flags:--target thumbv8m.main-none-eabihf
// [r70] needs-llvm-components: arm //@ [r70] needs-llvm-components: arm
// [r71] compile-flags:--target wasm32-unknown-emscripten //@ [r71] compile-flags:--target wasm32-unknown-emscripten
// [r71] needs-llvm-components: webassembly //@ [r71] needs-llvm-components: webassembly
// [r72] compile-flags:--target wasm32-unknown-unknown //@ [r72] compile-flags:--target wasm32-unknown-unknown
// [r72] needs-llvm-components: webassembly //@ [r72] needs-llvm-components: webassembly
// [r73] compile-flags:--target wasm32-wasi //@ [r73] compile-flags:--target wasm32-wasi
// [r73] needs-llvm-components: webassembly //@ [r73] needs-llvm-components: webassembly
// [r74] compile-flags:--target wasm32-wasi-preview1-threads //@ [r74] compile-flags:--target wasm32-wasi-preview1-threads
// [r74] needs-llvm-components: webassembly //@ [r74] needs-llvm-components: webassembly
// [r75] compile-flags:--target x86_64-apple-ios //@ [r75] compile-flags:--target x86_64-apple-ios
// [r75] needs-llvm-components: x86 //@ [r75] needs-llvm-components: x86
// [r76] compile-flags:--target x86_64-fortanix-unknown-sgx //@ [r76] compile-flags:--target x86_64-fortanix-unknown-sgx
// [r76] needs-llvm-components: x86 //@ [r76] needs-llvm-components: x86
// [r77] compile-flags:--target x86_64-unknown-fuchsia //@ [r77] compile-flags:--target x86_64-unknown-fuchsia
// [r77] needs-llvm-components: x86 //@ [r77] needs-llvm-components: x86
// [r78] compile-flags:--target x86_64-linux-android //@ [r78] compile-flags:--target x86_64-linux-android
// [r78] needs-llvm-components: x86 //@ [r78] needs-llvm-components: x86
// [r79] compile-flags:--target x86_64-pc-solaris //@ [r79] compile-flags:--target x86_64-pc-solaris
// [r79] needs-llvm-components: x86 //@ [r79] needs-llvm-components: x86
// [r80] compile-flags:--target x86_64-unknown-freebsd //@ [r80] compile-flags:--target x86_64-unknown-freebsd
// [r80] needs-llvm-components: x86 //@ [r80] needs-llvm-components: x86
// [r81] compile-flags:--target x86_64-unknown-illumos //@ [r81] compile-flags:--target x86_64-unknown-illumos
// [r81] needs-llvm-components: x86 //@ [r81] needs-llvm-components: x86
// [r82] compile-flags:--target x86_64-unknown-linux-gnux32 //@ [r82] compile-flags:--target x86_64-unknown-linux-gnux32
// [r82] needs-llvm-components: x86 //@ [r82] needs-llvm-components: x86
// [r83] compile-flags:--target x86_64-unknown-linux-musl //@ [r83] compile-flags:--target x86_64-unknown-linux-musl
// [r83] needs-llvm-components: x86 //@ [r83] needs-llvm-components: x86
// [r84] compile-flags:--target x86_64-unknown-netbsd //@ [r84] compile-flags:--target x86_64-unknown-netbsd
// [r84] needs-llvm-components: x86 //@ [r84] needs-llvm-components: x86
// [r85] compile-flags: --target x86_64-unknown-redox //@ [r85] compile-flags: --target x86_64-unknown-redox
// [r85] needs-llvm-components: x86 //@ [r85] needs-llvm-components: x86
// compile-flags: -Z stack-protector=all //@ compile-flags: -Z stack-protector=all
// compile-flags: -C opt-level=2 //@ compile-flags: -C opt-level=2
#![crate_type = "lib"] #![crate_type = "lib"]
@ -283,4 +283,5 @@ pub fn foo() {
// r82: __stack_chk_fail // r82: __stack_chk_fail
// r83: __stack_chk_fail // r83: __stack_chk_fail
// r84: __stack_chk_fail // r84: __stack_chk_fail
// r85: __stack_chk_fail
} }

View File

@ -1,12 +1,12 @@
// revisions: x64 A64 ppc64le //@ revisions: x64 A64 ppc64le
// assembly-output: emit-asm //@ assembly-output: emit-asm
// [x64] compile-flags: --target x86_64-unknown-linux-gnu -Crelocation-model=static //@ [x64] compile-flags: --target x86_64-unknown-linux-gnu -Crelocation-model=static
// [x64] needs-llvm-components: x86 //@ [x64] needs-llvm-components: x86
// [A64] compile-flags: --target aarch64-unknown-linux-gnu -Crelocation-model=static //@ [A64] compile-flags: --target aarch64-unknown-linux-gnu -Crelocation-model=static
// [A64] needs-llvm-components: aarch64 //@ [A64] needs-llvm-components: aarch64
// [ppc64le] compile-flags: --target powerpc64le-unknown-linux-gnu -Crelocation-model=static //@ [ppc64le] compile-flags: --target powerpc64le-unknown-linux-gnu -Crelocation-model=static
// [ppc64le] needs-llvm-components: powerpc //@ [ppc64le] needs-llvm-components: powerpc
// ignore-debug: alignment checks insert panics that we don't have a lang item for //@ ignore-debug: alignment checks insert panics that we don't have a lang item for
#![feature(no_core, lang_items)] #![feature(no_core, lang_items)]
#![no_core] #![no_core]

View File

@ -1,7 +1,7 @@
// assembly-output: emit-asm //@ assembly-output: emit-asm
// compile-flags: -Copt-level=1 //@ compile-flags: -Copt-level=1
// only-x86_64 //@ only-x86_64
// ignore-sgx //@ ignore-sgx
#![crate_type = "rlib"] #![crate_type = "rlib"]
// CHECK-LABEL: old_style // CHECK-LABEL: old_style

View File

@ -1,9 +1,9 @@
// assembly-output: emit-asm //@ assembly-output: emit-asm
// needs-llvm-components: x86 //@ needs-llvm-components: x86
// revisions: TWOFLAGS SINGLEFLAG //@ revisions: TWOFLAGS SINGLEFLAG
// compile-flags: --target=x86_64-unknown-linux-gnu //@ compile-flags: --target=x86_64-unknown-linux-gnu
// [TWOFLAGS] compile-flags: -C target-feature=+rdrnd -C target-feature=+rdseed //@ [TWOFLAGS] compile-flags: -C target-feature=+rdrnd -C target-feature=+rdseed
// [SINGLEFLAG] compile-flags: -C target-feature=+rdrnd,+rdseed //@ [SINGLEFLAG] compile-flags: -C target-feature=+rdrnd,+rdseed
// Target features set via flags aren't necessarily reflected in the IR, so the only way to test // Target features set via flags aren't necessarily reflected in the IR, so the only way to test
// them is to build code that requires the features to be enabled to work. // them is to build code that requires the features to be enabled to work.

File diff suppressed because it is too large Load Diff

View File

@ -1,68 +1,68 @@
// assembly-output: emit-asm //@ assembly-output: emit-asm
// ignore-tidy-linelength // ignore-tidy-linelength
// revisions: aarch64_apple_darwin //@ revisions: aarch64_apple_darwin
// [aarch64_apple_darwin] compile-flags: --target aarch64-apple-darwin //@ [aarch64_apple_darwin] compile-flags: --target aarch64-apple-darwin
// [aarch64_apple_darwin] needs-llvm-components: aarch64 //@ [aarch64_apple_darwin] needs-llvm-components: aarch64
// revisions: aarch64_apple_ios //@ revisions: aarch64_apple_ios
// [aarch64_apple_ios] compile-flags: --target aarch64-apple-ios //@ [aarch64_apple_ios] compile-flags: --target aarch64-apple-ios
// [aarch64_apple_ios] needs-llvm-components: aarch64 //@ [aarch64_apple_ios] needs-llvm-components: aarch64
// revisions: aarch64_apple_ios_macabi //@ revisions: aarch64_apple_ios_macabi
// [aarch64_apple_ios_macabi] compile-flags: --target aarch64-apple-ios-macabi //@ [aarch64_apple_ios_macabi] compile-flags: --target aarch64-apple-ios-macabi
// [aarch64_apple_ios_macabi] needs-llvm-components: aarch64 //@ [aarch64_apple_ios_macabi] needs-llvm-components: aarch64
// revisions: aarch64_apple_ios_sim //@ revisions: aarch64_apple_ios_sim
// [aarch64_apple_ios_sim] compile-flags: --target aarch64-apple-ios-sim //@ [aarch64_apple_ios_sim] compile-flags: --target aarch64-apple-ios-sim
// [aarch64_apple_ios_sim] needs-llvm-components: aarch64 //@ [aarch64_apple_ios_sim] needs-llvm-components: aarch64
// revisions: aarch64_apple_tvos //@ revisions: aarch64_apple_tvos
// [aarch64_apple_tvos] compile-flags: --target aarch64-apple-tvos //@ [aarch64_apple_tvos] compile-flags: --target aarch64-apple-tvos
// [aarch64_apple_tvos] needs-llvm-components: aarch64 //@ [aarch64_apple_tvos] needs-llvm-components: aarch64
// revisions: aarch64_apple_tvos_sim //@ revisions: aarch64_apple_tvos_sim
// [aarch64_apple_tvos_sim] compile-flags: --target aarch64-apple-tvos-sim //@ [aarch64_apple_tvos_sim] compile-flags: --target aarch64-apple-tvos-sim
// [aarch64_apple_tvos_sim] needs-llvm-components: aarch64 //@ [aarch64_apple_tvos_sim] needs-llvm-components: aarch64
// revisions: aarch64_apple_watchos //@ revisions: aarch64_apple_watchos
// [aarch64_apple_watchos] compile-flags: --target aarch64-apple-watchos //@ [aarch64_apple_watchos] compile-flags: --target aarch64-apple-watchos
// [aarch64_apple_watchos] needs-llvm-components: aarch64 //@ [aarch64_apple_watchos] needs-llvm-components: aarch64
// revisions: aarch64_apple_watchos_sim //@ revisions: aarch64_apple_watchos_sim
// [aarch64_apple_watchos_sim] compile-flags: --target aarch64-apple-watchos-sim //@ [aarch64_apple_watchos_sim] compile-flags: --target aarch64-apple-watchos-sim
// [aarch64_apple_watchos_sim] needs-llvm-components: aarch64 //@ [aarch64_apple_watchos_sim] needs-llvm-components: aarch64
// revisions: arm64_32_apple_watchos //@ revisions: arm64_32_apple_watchos
// [arm64_32_apple_watchos] compile-flags: --target arm64_32-apple-watchos //@ [arm64_32_apple_watchos] compile-flags: --target arm64_32-apple-watchos
// [arm64_32_apple_watchos] needs-llvm-components: aarch64 //@ [arm64_32_apple_watchos] needs-llvm-components: aarch64
// revisions: arm64e_apple_darwin //@ revisions: arm64e_apple_darwin
// [arm64e_apple_darwin] compile-flags: --target arm64e-apple-darwin //@ [arm64e_apple_darwin] compile-flags: --target arm64e-apple-darwin
// [arm64e_apple_darwin] needs-llvm-components: aarch64 //@ [arm64e_apple_darwin] needs-llvm-components: aarch64
// revisions: arm64e_apple_ios //@ revisions: arm64e_apple_ios
// [arm64e_apple_ios] compile-flags: --target arm64e-apple-ios //@ [arm64e_apple_ios] compile-flags: --target arm64e-apple-ios
// [arm64e_apple_ios] needs-llvm-components: aarch64 //@ [arm64e_apple_ios] needs-llvm-components: aarch64
// revisions: armv7k_apple_watchos //@ revisions: armv7k_apple_watchos
// [armv7k_apple_watchos] compile-flags: --target armv7k-apple-watchos //@ [armv7k_apple_watchos] compile-flags: --target armv7k-apple-watchos
// [armv7k_apple_watchos] needs-llvm-components: arm //@ [armv7k_apple_watchos] needs-llvm-components: arm
// revisions: armv7s_apple_ios //@ revisions: armv7s_apple_ios
// [armv7s_apple_ios] compile-flags: --target armv7s-apple-ios //@ [armv7s_apple_ios] compile-flags: --target armv7s-apple-ios
// [armv7s_apple_ios] needs-llvm-components: arm //@ [armv7s_apple_ios] needs-llvm-components: arm
// revisions: i386_apple_ios //@ revisions: i386_apple_ios
// [i386_apple_ios] compile-flags: --target i386-apple-ios //@ [i386_apple_ios] compile-flags: --target i386-apple-ios
// [i386_apple_ios] needs-llvm-components: x86 //@ [i386_apple_ios] needs-llvm-components: x86
// revisions: i686_apple_darwin //@ revisions: i686_apple_darwin
// [i686_apple_darwin] compile-flags: --target i686-apple-darwin //@ [i686_apple_darwin] compile-flags: --target i686-apple-darwin
// [i686_apple_darwin] needs-llvm-components: x86 //@ [i686_apple_darwin] needs-llvm-components: x86
// revisions: x86_64_apple_darwin //@ revisions: x86_64_apple_darwin
// [x86_64_apple_darwin] compile-flags: --target x86_64-apple-darwin //@ [x86_64_apple_darwin] compile-flags: --target x86_64-apple-darwin
// [x86_64_apple_darwin] needs-llvm-components: x86 //@ [x86_64_apple_darwin] needs-llvm-components: x86
// revisions: x86_64_apple_ios //@ revisions: x86_64_apple_ios
// [x86_64_apple_ios] compile-flags: --target x86_64-apple-ios //@ [x86_64_apple_ios] compile-flags: --target x86_64-apple-ios
// [x86_64_apple_ios] needs-llvm-components: x86 //@ [x86_64_apple_ios] needs-llvm-components: x86
// revisions: x86_64_apple_ios_macabi //@ revisions: x86_64_apple_ios_macabi
// [x86_64_apple_ios_macabi] compile-flags: --target 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 //@ [x86_64_apple_ios_macabi] needs-llvm-components: x86
// revisions: x86_64_apple_tvos //@ revisions: x86_64_apple_tvos
// [x86_64_apple_tvos] compile-flags: --target x86_64-apple-tvos //@ [x86_64_apple_tvos] compile-flags: --target x86_64-apple-tvos
// [x86_64_apple_tvos] needs-llvm-components: x86 //@ [x86_64_apple_tvos] needs-llvm-components: x86
// revisions: x86_64_apple_watchos_sim //@ revisions: x86_64_apple_watchos_sim
// [x86_64_apple_watchos_sim] compile-flags: --target 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 //@ [x86_64_apple_watchos_sim] needs-llvm-components: x86
// revisions: x86_64h_apple_darwin //@ revisions: x86_64h_apple_darwin
// [x86_64h_apple_darwin] compile-flags: --target x86_64h-apple-darwin //@ [x86_64h_apple_darwin] compile-flags: --target x86_64h-apple-darwin
// [x86_64h_apple_darwin] needs-llvm-components: x86 //@ [x86_64h_apple_darwin] needs-llvm-components: x86
// Sanity-check that each target can produce assembly code. // Sanity-check that each target can produce assembly code.

View File

@ -1,8 +1,8 @@
// assembly-output: emit-asm //@ assembly-output: emit-asm
// ignore-tidy-linelength // ignore-tidy-linelength
// revisions: nvptx64_nvidia_cuda //@ revisions: nvptx64_nvidia_cuda
// [nvptx64_nvidia_cuda] compile-flags: --target nvptx64-nvidia-cuda //@ [nvptx64_nvidia_cuda] compile-flags: --target nvptx64-nvidia-cuda
// [nvptx64_nvidia_cuda] needs-llvm-components: nvptx //@ [nvptx64_nvidia_cuda] needs-llvm-components: nvptx
// Sanity-check that each target can produce assembly code. // Sanity-check that each target can produce assembly code.

View File

@ -1,80 +1,80 @@
// assembly-output: emit-asm //@ assembly-output: emit-asm
// ignore-tidy-linelength // ignore-tidy-linelength
// revisions: aarch64_pc_windows_msvc //@ revisions: aarch64_pc_windows_msvc
// [aarch64_pc_windows_msvc] compile-flags: --target aarch64-pc-windows-msvc //@ [aarch64_pc_windows_msvc] compile-flags: --target aarch64-pc-windows-msvc
// [aarch64_pc_windows_msvc] needs-llvm-components: aarch64 //@ [aarch64_pc_windows_msvc] needs-llvm-components: aarch64
// revisions: aarch64_pc_windows_gnullvm //@ revisions: aarch64_pc_windows_gnullvm
// [aarch64_pc_windows_gnullvm] compile-flags: --target aarch64-pc-windows-gnullvm //@ [aarch64_pc_windows_gnullvm] compile-flags: --target aarch64-pc-windows-gnullvm
// [aarch64_pc_windows_gnullvm] needs-llvm-components: aarch64 //@ [aarch64_pc_windows_gnullvm] needs-llvm-components: aarch64
// revisions: aarch64_unknown_uefi //@ revisions: aarch64_unknown_uefi
// [aarch64_unknown_uefi] compile-flags: --target aarch64-unknown-uefi //@ [aarch64_unknown_uefi] compile-flags: --target aarch64-unknown-uefi
// [aarch64_unknown_uefi] needs-llvm-components: aarch64 //@ [aarch64_unknown_uefi] needs-llvm-components: aarch64
// revisions: aarch64_uwp_windows_msvc //@ revisions: aarch64_uwp_windows_msvc
// [aarch64_uwp_windows_msvc] compile-flags: --target aarch64-uwp-windows-msvc //@ [aarch64_uwp_windows_msvc] compile-flags: --target aarch64-uwp-windows-msvc
// [aarch64_uwp_windows_msvc] needs-llvm-components: aarch64 //@ [aarch64_uwp_windows_msvc] needs-llvm-components: aarch64
// revisions: avr_unknown_gnu_atmega328 //@ revisions: avr_unknown_gnu_atmega328
// [avr_unknown_gnu_atmega328] compile-flags: --target avr-unknown-gnu-atmega328 //@ [avr_unknown_gnu_atmega328] compile-flags: --target avr-unknown-gnu-atmega328
// [avr_unknown_gnu_atmega328] needs-llvm-components: avr //@ [avr_unknown_gnu_atmega328] needs-llvm-components: avr
// revisions: bpfeb_unknown_none //@ revisions: bpfeb_unknown_none
// [bpfeb_unknown_none] compile-flags: --target bpfeb-unknown-none //@ [bpfeb_unknown_none] compile-flags: --target bpfeb-unknown-none
// [bpfeb_unknown_none] needs-llvm-components: bpf //@ [bpfeb_unknown_none] needs-llvm-components: bpf
// revisions: bpfel_unknown_none //@ revisions: bpfel_unknown_none
// [bpfel_unknown_none] compile-flags: --target bpfel-unknown-none //@ [bpfel_unknown_none] compile-flags: --target bpfel-unknown-none
// [bpfel_unknown_none] needs-llvm-components: bpf //@ [bpfel_unknown_none] needs-llvm-components: bpf
// revisions: i586_pc_windows_msvc //@ revisions: i586_pc_windows_msvc
// [i586_pc_windows_msvc] compile-flags: --target i586-pc-windows-msvc //@ [i586_pc_windows_msvc] compile-flags: --target i586-pc-windows-msvc
// [i586_pc_windows_msvc] needs-llvm-components: x86 //@ [i586_pc_windows_msvc] needs-llvm-components: x86
// revisions: i686_pc_windows_gnu //@ revisions: i686_pc_windows_gnu
// [i686_pc_windows_gnu] compile-flags: --target i686-pc-windows-gnu //@ [i686_pc_windows_gnu] compile-flags: --target i686-pc-windows-gnu
// [i686_pc_windows_gnu] needs-llvm-components: x86 //@ [i686_pc_windows_gnu] needs-llvm-components: x86
// revisions: i686_pc_windows_msvc //@ revisions: i686_pc_windows_msvc
// [i686_pc_windows_msvc] compile-flags: --target i686-pc-windows-msvc //@ [i686_pc_windows_msvc] compile-flags: --target i686-pc-windows-msvc
// [i686_pc_windows_msvc] needs-llvm-components: x86 //@ [i686_pc_windows_msvc] needs-llvm-components: x86
// revisions: i686_pc_windows_gnullvm //@ revisions: i686_pc_windows_gnullvm
// [i686_pc_windows_gnullvm] compile-flags: --target i686-pc-windows-gnullvm //@ [i686_pc_windows_gnullvm] compile-flags: --target i686-pc-windows-gnullvm
// [i686_pc_windows_gnullvm] needs-llvm-components: x86 //@ [i686_pc_windows_gnullvm] needs-llvm-components: x86
// revisions: i686_uwp_windows_gnu //@ revisions: i686_uwp_windows_gnu
// [i686_uwp_windows_gnu] compile-flags: --target i686-uwp-windows-gnu //@ [i686_uwp_windows_gnu] compile-flags: --target i686-uwp-windows-gnu
// [i686_uwp_windows_gnu] needs-llvm-components: x86 //@ [i686_uwp_windows_gnu] needs-llvm-components: x86
// revisions: i686_unknown_uefi //@ revisions: i686_unknown_uefi
// [i686_unknown_uefi] compile-flags: --target i686-unknown-uefi //@ [i686_unknown_uefi] compile-flags: --target i686-unknown-uefi
// [i686_unknown_uefi] needs-llvm-components: x86 //@ [i686_unknown_uefi] needs-llvm-components: x86
// revisions: i686_uwp_windows_msvc //@ revisions: i686_uwp_windows_msvc
// [i686_uwp_windows_msvc] compile-flags: --target i686-uwp-windows-msvc //@ [i686_uwp_windows_msvc] compile-flags: --target i686-uwp-windows-msvc
// [i686_uwp_windows_msvc] needs-llvm-components: x86 //@ [i686_uwp_windows_msvc] needs-llvm-components: x86
// revisions: i686_win7_windows_msvc //@ revisions: i686_win7_windows_msvc
// [i686_win7_windows_msvc] compile-flags: --target i686-win7-windows-msvc //@ [i686_win7_windows_msvc] compile-flags: --target i686-win7-windows-msvc
// [i686_win7_windows_msvc] needs-llvm-components: x86 //@ [i686_win7_windows_msvc] needs-llvm-components: x86
// revisions: powerpc64_ibm_aix //@ revisions: powerpc64_ibm_aix
// [powerpc64_ibm_aix] compile-flags: --target powerpc64-ibm-aix //@ [powerpc64_ibm_aix] compile-flags: --target powerpc64-ibm-aix
// [powerpc64_ibm_aix] needs-llvm-components: powerpc //@ [powerpc64_ibm_aix] needs-llvm-components: powerpc
// revisions: thumbv7a_uwp_windows_msvc //@ revisions: thumbv7a_uwp_windows_msvc
// [thumbv7a_uwp_windows_msvc] compile-flags: --target thumbv7a-uwp-windows-msvc //@ [thumbv7a_uwp_windows_msvc] compile-flags: --target thumbv7a-uwp-windows-msvc
// [thumbv7a_uwp_windows_msvc] needs-llvm-components: arm //@ [thumbv7a_uwp_windows_msvc] needs-llvm-components: arm
// revisions: thumbv7a_pc_windows_msvc //@ revisions: thumbv7a_pc_windows_msvc
// [thumbv7a_pc_windows_msvc] compile-flags: --target thumbv7a-pc-windows-msvc //@ [thumbv7a_pc_windows_msvc] compile-flags: --target thumbv7a-pc-windows-msvc
// [thumbv7a_pc_windows_msvc] needs-llvm-components: arm //@ [thumbv7a_pc_windows_msvc] needs-llvm-components: arm
// revisions: x86_64_pc_windows_gnu //@ revisions: x86_64_pc_windows_gnu
// [x86_64_pc_windows_gnu] compile-flags: --target 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 //@ [x86_64_pc_windows_gnu] needs-llvm-components: x86
// revisions: x86_64_pc_windows_gnullvm //@ revisions: x86_64_pc_windows_gnullvm
// [x86_64_pc_windows_gnullvm] compile-flags: --target 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 //@ [x86_64_pc_windows_gnullvm] needs-llvm-components: x86
// revisions: x86_64_pc_windows_msvc //@ revisions: x86_64_pc_windows_msvc
// [x86_64_pc_windows_msvc] compile-flags: --target 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 //@ [x86_64_pc_windows_msvc] needs-llvm-components: x86
// revisions: x86_64_unknown_uefi //@ revisions: x86_64_unknown_uefi
// [x86_64_unknown_uefi] compile-flags: --target x86_64-unknown-uefi //@ [x86_64_unknown_uefi] compile-flags: --target x86_64-unknown-uefi
// [x86_64_unknown_uefi] needs-llvm-components: x86 //@ [x86_64_unknown_uefi] needs-llvm-components: x86
// revisions: x86_64_uwp_windows_gnu //@ revisions: x86_64_uwp_windows_gnu
// [x86_64_uwp_windows_gnu] compile-flags: --target 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 //@ [x86_64_uwp_windows_gnu] needs-llvm-components: x86
// revisions: x86_64_uwp_windows_msvc //@ revisions: x86_64_uwp_windows_msvc
// [x86_64_uwp_windows_msvc] compile-flags: --target 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 //@ [x86_64_uwp_windows_msvc] needs-llvm-components: x86
// revisions: x86_64_win7_windows_msvc //@ revisions: x86_64_win7_windows_msvc
// [x86_64_win7_windows_msvc] compile-flags: --target 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 //@ [x86_64_win7_windows_msvc] needs-llvm-components: x86
// Sanity-check that each target can produce assembly code. // Sanity-check that each target can produce assembly code.

View File

@ -1,6 +1,6 @@
// compile-flags: -O -C lto=thin -C prefer-dynamic=no //@ compile-flags: -O -C lto=thin -C prefer-dynamic=no
// only-x86_64-unknown-linux-gnu //@ only-x86_64-unknown-linux-gnu
// assembly-output: emit-asm //@ assembly-output: emit-asm
// CHECK: main // CHECK: main

View File

@ -1,8 +1,8 @@
// only-wasm32-bare //@ only-wasm32-bare
// assembly-output: emit-asm //@ assembly-output: emit-asm
// compile-flags: -C target-feature=+exception-handling //@ compile-flags: -C target-feature=+exception-handling
// compile-flags: -C panic=unwind //@ compile-flags: -C panic=unwind
// compile-flags: -C llvm-args=-wasm-enable-eh //@ compile-flags: -C llvm-args=-wasm-enable-eh
#![crate_type = "lib"] #![crate_type = "lib"]
#![feature(core_intrinsics)] #![feature(core_intrinsics)]

View File

@ -1,8 +1,8 @@
// assembly-output: emit-asm //@ assembly-output: emit-asm
// compile-flags: --crate-type=lib -O -C llvm-args=-x86-asm-syntax=intel //@ compile-flags: --crate-type=lib -O -C llvm-args=-x86-asm-syntax=intel
// only-x86_64 //@ only-x86_64
// ignore-sgx //@ ignore-sgx
// ignore-macos (manipulates rsp too) //@ ignore-macos (manipulates rsp too)
// Depending on various codegen choices, this might end up copying // Depending on various codegen choices, this might end up copying
// a `<2 x i8>`, an `i16`, or two `i8`s. // a `<2 x i8>`, an `i16`, or two `i8`s.

View File

@ -1,10 +1,10 @@
// Floating-point clamp is designed to be implementable as max+min, // Floating-point clamp is designed to be implementable as max+min,
// so check to make sure that's what it's actually emitting. // so check to make sure that's what it's actually emitting.
// assembly-output: emit-asm //@ assembly-output: emit-asm
// compile-flags: --crate-type=lib -O -C llvm-args=-x86-asm-syntax=intel //@ compile-flags: --crate-type=lib -O -C llvm-args=-x86-asm-syntax=intel
// only-x86_64 //@ only-x86_64
// ignore-sgx //@ ignore-sgx
// CHECK-LABEL: clamp_demo: // CHECK-LABEL: clamp_demo:
#[no_mangle] #[no_mangle]

View File

@ -1,8 +1,8 @@
// Test LVI load hardening on SGX enclave code // Test LVI load hardening on SGX enclave code
// assembly-output: emit-asm //@ assembly-output: emit-asm
// compile-flags: --crate-type staticlib //@ compile-flags: --crate-type staticlib
// only-x86_64-fortanix-unknown-sgx //@ only-x86_64-fortanix-unknown-sgx
#[no_mangle] #[no_mangle]
pub extern fn plus_one(r: &mut u64) { pub extern fn plus_one(r: &mut u64) {

View File

@ -1,8 +1,8 @@
// Test LVI ret hardening on generic rust code // Test LVI ret hardening on generic rust code
// assembly-output: emit-asm //@ assembly-output: emit-asm
// compile-flags: --crate-type staticlib //@ compile-flags: --crate-type staticlib
// only-x86_64-fortanix-unknown-sgx //@ only-x86_64-fortanix-unknown-sgx
#[no_mangle] #[no_mangle]
pub extern fn myret() {} pub extern fn myret() {}

View File

@ -1,8 +1,8 @@
// Test LVI load hardening on SGX inline assembly code // Test LVI load hardening on SGX inline assembly code
// assembly-output: emit-asm //@ assembly-output: emit-asm
// compile-flags: --crate-type staticlib //@ compile-flags: --crate-type staticlib
// only-x86_64-fortanix-unknown-sgx //@ only-x86_64-fortanix-unknown-sgx
use std::arch::asm; use std::arch::asm;

View File

@ -1,16 +1,16 @@
// Test that the function return is (not) converted into a jump to the thunk // Test that the function return is (not) converted into a jump to the thunk
// when the `-Zfunction-return={keep,thunk-extern}` flag is (not) set. // when the `-Zfunction-return={keep,thunk-extern}` flag is (not) set.
// revisions: unset keep thunk-extern keep-thunk-extern thunk-extern-keep //@ revisions: unset keep thunk-extern keep-thunk-extern thunk-extern-keep
// assembly-output: emit-asm //@ assembly-output: emit-asm
// compile-flags: -O //@ compile-flags: -O
// [keep] compile-flags: -Zfunction-return=keep //@ [keep] compile-flags: -Zfunction-return=keep
// [thunk-extern] compile-flags: -Zfunction-return=thunk-extern //@ [thunk-extern] compile-flags: -Zfunction-return=thunk-extern
// [keep-thunk-extern] compile-flags: -Zfunction-return=keep -Zfunction-return=thunk-extern //@ [keep-thunk-extern] compile-flags: -Zfunction-return=keep -Zfunction-return=thunk-extern
// [thunk-extern-keep] compile-flags: -Zfunction-return=thunk-extern -Zfunction-return=keep //@ [thunk-extern-keep] compile-flags: -Zfunction-return=thunk-extern -Zfunction-return=keep
// only-x86_64 //@ only-x86_64
// ignore-x86_64-apple-darwin Symbol is called `___x86_return_thunk` (Darwin's extra underscore) //@ ignore-x86_64-apple-darwin Symbol is called `___x86_return_thunk` (Darwin's extra underscore)
// ignore-sgx Tests incompatible with LVI mitigations //@ ignore-sgx Tests incompatible with LVI mitigations
#![crate_type = "lib"] #![crate_type = "lib"]

View File

@ -1,7 +1,7 @@
// compile-flags: -C no-prepopulate-passes -Zcf-protection=full //@ compile-flags: -C no-prepopulate-passes -Zcf-protection=full
// assembly-output: emit-asm //@ assembly-output: emit-asm
// needs-asm-support //@ needs-asm-support
// only-x86_64 //@ only-x86_64
#![crate_type = "lib"] #![crate_type = "lib"]
#![feature(naked_functions)] #![feature(naked_functions)]

View File

@ -1,12 +1,12 @@
// Test that jump tables are (not) emitted when the `-Zno-jump-tables` // Test that jump tables are (not) emitted when the `-Zno-jump-tables`
// flag is (not) set. // flag is (not) set.
// revisions: unset set //@ revisions: unset set
// assembly-output: emit-asm //@ assembly-output: emit-asm
// compile-flags: -O //@ compile-flags: -O
// [set] compile-flags: -Zno-jump-tables //@ [set] compile-flags: -Zno-jump-tables
// only-x86_64 //@ only-x86_64
// ignore-sgx //@ ignore-sgx
#![crate_type = "lib"] #![crate_type = "lib"]

View File

@ -1,6 +1,6 @@
// only-x86_64 //@ only-x86_64
// assembly-output: emit-asm //@ assembly-output: emit-asm
// compile-flags: --crate-type staticlib -Ctarget-feature=+sse4.2 //@ compile-flags: --crate-type staticlib -Ctarget-feature=+sse4.2
// CHECK-LABEL: banana // CHECK-LABEL: banana
// CHECK: crc32 // CHECK: crc32

View File

@ -1,5 +1,5 @@
// needs-asm-support //@ needs-asm-support
// compile-flags: -Ccodegen-units=1 -Zprint-mono-items=lazy --crate-type=lib //@ compile-flags: -Ccodegen-units=1 -Zprint-mono-items=lazy --crate-type=lib
#[inline(always)] #[inline(always)]
pub unsafe fn f() { pub unsafe fn f() {

View File

@ -1,4 +1,4 @@
// compile-flags: -Copt-level=0 //@ compile-flags: -Copt-level=0
#![crate_type = "lib"] #![crate_type = "lib"]

View File

@ -1,14 +1,14 @@
// In the current version of the collector that still has to support // In the current version of the collector that still has to support
// legacy-codegen, closures do not generate their own MonoItems, so we are // legacy-codegen, closures do not generate their own MonoItems, so we are
// ignoring this test until MIR codegen has taken over completely // ignoring this test until MIR codegen has taken over completely
// ignore-test //@ ignore-test
// compile-flags:-Zprint-mono-items=eager //@ compile-flags:-Zprint-mono-items=eager
#![deny(dead_code)] #![deny(dead_code)]
#![feature(start)] #![feature(start)]
// aux-build:cgu_extern_closures.rs //@ aux-build:cgu_extern_closures.rs
extern crate cgu_extern_closures; extern crate cgu_extern_closures;
//~ MONO_ITEM fn cross_crate_closures::start[0] //~ MONO_ITEM fn cross_crate_closures::start[0]

View File

@ -1,9 +1,9 @@
// compile-flags:-Zprint-mono-items=eager //@ compile-flags:-Zprint-mono-items=eager
#![deny(dead_code)] #![deny(dead_code)]
#![feature(start)] #![feature(start)]
// aux-build:cgu_generic_function.rs //@ aux-build:cgu_generic_function.rs
extern crate cgu_generic_function; extern crate cgu_generic_function;
//~ MONO_ITEM fn start //~ MONO_ITEM fn start

View File

@ -1,9 +1,9 @@
// compile-flags:-Zprint-mono-items=eager -Zinline-mir=no -Copt-level=0 //@ compile-flags:-Zprint-mono-items=eager -Zinline-mir=no -Copt-level=0
#![deny(dead_code)] #![deny(dead_code)]
#![feature(start)] #![feature(start)]
// aux-build:cgu_export_trait_method.rs //@ aux-build:cgu_export_trait_method.rs
extern crate cgu_export_trait_method; extern crate cgu_export_trait_method;
use cgu_export_trait_method::Trait; use cgu_export_trait_method::Trait;

View File

@ -1,6 +1,6 @@
// //
// compile-flags:-Zprint-mono-items=eager //@ compile-flags:-Zprint-mono-items=eager
// compile-flags:-Zinline-in-all-cgus //@ compile-flags:-Zinline-in-all-cgus
#![feature(start)] #![feature(start)]

View File

@ -1,4 +1,4 @@
// compile-flags:-Zprint-mono-items=eager -Zinline-mir=no //@ compile-flags:-Zprint-mono-items=eager -Zinline-mir=no
#![deny(dead_code)] #![deny(dead_code)]
#![feature(start)] #![feature(start)]

View File

@ -1,6 +1,6 @@
// //
// compile-flags:-Zprint-mono-items=eager //@ compile-flags:-Zprint-mono-items=eager
// compile-flags:-Zinline-in-all-cgus //@ compile-flags:-Zinline-in-all-cgus
#![deny(dead_code)] #![deny(dead_code)]
#![feature(start)] #![feature(start)]

View File

@ -1,4 +1,4 @@
// compile-flags:-Zprint-mono-items=eager -Zinline-mir=no //@ compile-flags:-Zprint-mono-items=eager -Zinline-mir=no
#![deny(dead_code)] #![deny(dead_code)]
#![feature(start)] #![feature(start)]

View File

@ -1,4 +1,4 @@
// compile-flags:-Zprint-mono-items=eager -Zinline-mir=no //@ compile-flags:-Zprint-mono-items=eager -Zinline-mir=no
#![deny(dead_code)] #![deny(dead_code)]
#![feature(start)] #![feature(start)]

View File

@ -1,4 +1,4 @@
// compile-flags:-Zprint-mono-items=eager //@ compile-flags:-Zprint-mono-items=eager
#![deny(dead_code)] #![deny(dead_code)]
#![feature(start)] #![feature(start)]

View File

@ -1,4 +1,4 @@
// compile-flags:-Zprint-mono-items=lazy //@ compile-flags:-Zprint-mono-items=lazy
// rust-lang/rust#90405 // rust-lang/rust#90405
// Ensure implicit panic calls are collected // Ensure implicit panic calls are collected

View File

@ -1,5 +1,5 @@
// //
// compile-flags:-Zprint-mono-items=eager -Zinline-in-all-cgus -Zmir-opt-level=0 //@ compile-flags:-Zprint-mono-items=eager -Zinline-in-all-cgus -Zmir-opt-level=0
#![deny(dead_code)] #![deny(dead_code)]
#![feature(start)] #![feature(start)]

View File

@ -1,4 +1,4 @@
// compile-flags:-Zprint-mono-items=eager -Copt-level=0 //@ compile-flags:-Zprint-mono-items=eager -Copt-level=0
#![deny(dead_code)] #![deny(dead_code)]
#![feature(start)] #![feature(start)]

View File

@ -1,10 +1,10 @@
// In the current version of the collector that still has to support // In the current version of the collector that still has to support
// legacy-codegen, closures do not generate their own MonoItems, so we are // legacy-codegen, closures do not generate their own MonoItems, so we are
// ignoring this test until MIR codegen has taken over completely // ignoring this test until MIR codegen has taken over completely
// ignore-test //@ ignore-test
// //
// compile-flags:-Zprint-mono-items=eager //@ compile-flags:-Zprint-mono-items=eager
#![deny(dead_code)] #![deny(dead_code)]
#![feature(start)] #![feature(start)]

View File

@ -1,6 +1,6 @@
// //
// compile-flags:-Zprint-mono-items=eager //@ compile-flags:-Zprint-mono-items=eager
// compile-flags:-Zinline-in-all-cgus //@ compile-flags:-Zinline-in-all-cgus
#![deny(dead_code)] #![deny(dead_code)]
#![feature(start)] #![feature(start)]

View File

@ -1,4 +1,4 @@
// compile-flags:-Zprint-mono-items=eager //@ compile-flags:-Zprint-mono-items=eager
#![deny(dead_code)] #![deny(dead_code)]
#![feature(start)] #![feature(start)]

View File

@ -1,4 +1,4 @@
// compile-flags:-Zprint-mono-items=eager //@ compile-flags:-Zprint-mono-items=eager
#![deny(dead_code)] #![deny(dead_code)]
#![crate_type="lib"] #![crate_type="lib"]

View File

@ -1,4 +1,4 @@
// compile-flags:-Zprint-mono-items=eager -Zpolymorphize=on //@ compile-flags:-Zprint-mono-items=eager -Zpolymorphize=on
#![feature(start)] #![feature(start)]

View File

@ -1,4 +1,4 @@
// compile-flags:-Zprint-mono-items=eager //@ compile-flags:-Zprint-mono-items=eager
#![deny(dead_code)] #![deny(dead_code)]
#![feature(start)] #![feature(start)]

View File

@ -1,4 +1,4 @@
// compile-flags:-Zprint-mono-items=eager -Zinline-mir=no //@ compile-flags:-Zprint-mono-items=eager -Zinline-mir=no
#![deny(dead_code)] #![deny(dead_code)]
#![feature(start)] #![feature(start)]

View File

@ -1,4 +1,4 @@
// compile-flags:-Zprint-mono-items=eager -Zinline-mir=no //@ compile-flags:-Zprint-mono-items=eager -Zinline-mir=no
#![deny(dead_code)] #![deny(dead_code)]
#![feature(start)] #![feature(start)]

View File

@ -1,4 +1,4 @@
// compile-flags:-Zprint-mono-items=eager -Zpolymorphize=on -Zinline-mir=no //@ compile-flags:-Zprint-mono-items=eager -Zpolymorphize=on -Zinline-mir=no
#![deny(dead_code)] #![deny(dead_code)]
#![feature(start)] #![feature(start)]

Some files were not shown because too many files have changed in this diff Show More