diff --git a/src/doc/rustc-dev-guide/src/tests/directives.md b/src/doc/rustc-dev-guide/src/tests/directives.md index 34d25b1d6dbc2..4ae5a4144fb81 100644 --- a/src/doc/rustc-dev-guide/src/tests/directives.md +++ b/src/doc/rustc-dev-guide/src/tests/directives.md @@ -133,7 +133,7 @@ means the test won't be compiled or run. Some examples of `X` in `ignore-X` or `only-X`: - A full target triple: `aarch64-apple-ios` -- Architecture: `aarch64`, `arm`, `mips`, `wasm32`, `x86_64`, `x86`, +- Architecture: `aarch64`, `arm`, `csky`, `mips`, `mips64`, `wasm32`, `x86_64`, `x86`, ... - OS: `android`, `emscripten`, `freebsd`, `ios`, `linux`, `macos`, `windows`, ... diff --git a/src/tools/compiletest/src/directives/directive_names.rs b/src/tools/compiletest/src/directives/directive_names.rs index e1b6e70d90f04..72e9787fe42ec 100644 --- a/src/tools/compiletest/src/directives/directive_names.rs +++ b/src/tools/compiletest/src/directives/directive_names.rs @@ -67,6 +67,7 @@ pub(crate) const KNOWN_DIRECTIVE_NAMES: &[&str] = &[ "ignore-coverage-map", "ignore-coverage-run", "ignore-cross-compile", + "ignore-csky", "ignore-eabi", "ignore-elf", "ignore-emscripten", @@ -91,6 +92,8 @@ pub(crate) const KNOWN_DIRECTIVE_NAMES: &[&str] = &[ "ignore-loongarch64", "ignore-macabi", "ignore-macos", + "ignore-mips", + "ignore-mips64", "ignore-msp430", "ignore-msvc", "ignore-musl", diff --git a/tests/ui/explicit-tail-calls/become-indirect-return.rs b/tests/ui/explicit-tail-calls/become-indirect-return.rs index b1e552bca0293..8cf733dbfdff5 100644 --- a/tests/ui/explicit-tail-calls/become-indirect-return.rs +++ b/tests/ui/explicit-tail-calls/become-indirect-return.rs @@ -2,6 +2,27 @@ //@ ignore-backends: gcc //@ ignore-wasm 'tail-call' feature not enabled in target wasm32-wasip1 //@ ignore-cross-compile +// +// LLVM musttail support is incomplete for these targets. +// See https://github.com/rust-lang/rust/issues/148748 for the target test matrix. +// See https://github.com/llvm/llvm-project/issues/63214 for AIX and PowerPC. +// See https://github.com/llvm/llvm-project/issues/57795 for MIPS and MIPS64. +//@ ignore-aix +//@ ignore-csky +//@ ignore-mips +//@ ignore-mips64 +//@ ignore-powerpc +//@ ignore-powerpc64 +// +// LLVM musttail support is lacking for sret lowering on these targets. +// Returning `[u8; 24]` uses sret lowering here. +// See https://github.com/llvm/llvm-project/issues/157814 for RISC-V. +// See https://github.com/llvm/llvm-project/issues/168152 for LoongArch. +// RISC-V fix: https://github.com/llvm/llvm-project/pull/185094, should be in LLVM 23. +// LoongArch will likely be fixed with similar changes. +//@ ignore-riscv64 +//@ ignore-loongarch32 +//@ ignore-loongarch64 #![expect(incomplete_features)] #![feature(explicit_tail_calls)] diff --git a/tests/ui/explicit-tail-calls/indirect.rs b/tests/ui/explicit-tail-calls/indirect.rs index 537976b7f6f43..b3e2613efad25 100644 --- a/tests/ui/explicit-tail-calls/indirect.rs +++ b/tests/ui/explicit-tail-calls/indirect.rs @@ -2,7 +2,26 @@ //@ ignore-backends: gcc // //@ ignore-wasm +// +// LLVM musttail support is incomplete for these targets. +// See https://github.com/rust-lang/rust/issues/148748 for the target test matrix. +// See https://github.com/llvm/llvm-project/issues/63214 for AIX and PowerPC. +// See https://github.com/llvm/llvm-project/issues/57795 for MIPS and MIPS64. +//@ ignore-aix +//@ ignore-csky +//@ ignore-mips +//@ ignore-mips64 +//@ ignore-powerpc +//@ ignore-powerpc64 +// +// LLVM musttail support is lacking for indirect arguments that do not fit in registers. +// See https://github.com/llvm/llvm-project/issues/157814 for RISC-V. +// See https://github.com/llvm/llvm-project/issues/168152 for LoongArch. +// RISC-V fix: https://github.com/llvm/llvm-project/pull/185094, should be in LLVM 23. +// LoongArch will likely be fixed with similar changes. //@ ignore-riscv64 +//@ ignore-loongarch32 +//@ ignore-loongarch64 #![feature(explicit_tail_calls)] #![expect(incomplete_features)]