Skip to content

Commit c5c3144

Browse files
committed
Merge commit '09fae60a86b848a2fc0ad219ecc4e438dc1eef86' into sync_cg_clif-2024-03-28
1 parent 22e4175 commit c5c3144

24 files changed

+841
-292
lines changed

Cargo.lock

+28-28
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

+6-6
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@ crate-type = ["dylib"]
88

99
[dependencies]
1010
# These have to be in sync with each other
11-
cranelift-codegen = { version = "0.105.2", default-features = false, features = ["std", "unwind", "all-arch"] }
12-
cranelift-frontend = { version = "0.105.2" }
13-
cranelift-module = { version = "0.105.2" }
14-
cranelift-native = { version = "0.105.2" }
15-
cranelift-jit = { version = "0.105.2", optional = true }
16-
cranelift-object = { version = "0.105.2" }
11+
cranelift-codegen = { version = "0.106.0", default-features = false, features = ["std", "unwind", "all-arch"] }
12+
cranelift-frontend = { version = "0.106.0" }
13+
cranelift-module = { version = "0.106.0" }
14+
cranelift-native = { version = "0.106.0" }
15+
cranelift-jit = { version = "0.106.0", optional = true }
16+
cranelift-object = { version = "0.106.0" }
1717
target-lexicon = "0.12.0"
1818
gimli = { version = "0.28", default-features = false, features = ["write"]}
1919
object = { version = "0.32", default-features = false, features = ["std", "read_core", "write", "archive", "coff", "elf", "macho", "pe"] }

patches/0022-coretests-Disable-not-compiling-tests.patch

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,6 @@ index 42a26ae..5ac1042 100644
3939
+#![cfg(test)]
4040
#![feature(alloc_layout_extra)]
4141
#![feature(array_chunks)]
42-
#![feature(array_windows)]
42+
#![feature(array_ptr_get)]
4343
--
4444
2.21.0 (Apple Git-122)

rust-toolchain

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
[toolchain]
2-
channel = "nightly-2024-03-16"
2+
channel = "nightly-2024-03-28"
33
components = ["rust-src", "rustc-dev", "llvm-tools"]

scripts/rustc-clif.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,10 @@ fn main() {
2626
codegen_backend_arg.push(cg_clif_dylib_path);
2727
args.push(codegen_backend_arg);
2828
}
29-
if !passed_args.iter().any(|arg| {
30-
arg == "--sysroot" || arg.to_str().is_some_and(|s| s.starts_with("--sysroot="))
31-
}) {
29+
if !passed_args
30+
.iter()
31+
.any(|arg| arg == "--sysroot" || arg.to_str().is_some_and(|s| s.starts_with("--sysroot=")))
32+
{
3233
args.push(OsString::from("--sysroot"));
3334
args.push(OsString::from(sysroot.to_str().unwrap()));
3435
}

scripts/rustdoc-clif.rs

+9-3
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,18 @@ fn main() {
2626
codegen_backend_arg.push(cg_clif_dylib_path);
2727
args.push(codegen_backend_arg);
2828
}
29-
if !passed_args.iter().any(|arg| {
30-
arg == "--sysroot" || arg.to_str().is_some_and(|s| s.starts_with("--sysroot="))
31-
}) {
29+
if !passed_args
30+
.iter()
31+
.any(|arg| arg == "--sysroot" || arg.to_str().is_some_and(|s| s.starts_with("--sysroot=")))
32+
{
3233
args.push(OsString::from("--sysroot"));
3334
args.push(OsString::from(sysroot.to_str().unwrap()));
3435
}
36+
if passed_args.is_empty() {
37+
// Don't pass any arguments when the user didn't pass any arguments
38+
// either to ensure the help message is shown.
39+
args.clear();
40+
}
3541
args.extend(passed_args);
3642

3743
let rustdoc = if let Some(rustdoc) = option_env!("RUSTDOC") {

scripts/test_rustc_tests.sh

+26-28
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,6 @@ pushd rust
1010

1111
command -v rg >/dev/null 2>&1 || cargo install ripgrep
1212

13-
# FIXME(rust-lang/rust#122196) fix stage0 rmake.rs run-make tests and remove
14-
# this workaround
15-
for test in $(ls tests/run-make); do
16-
if [[ -e "tests/run-make/$test/rmake.rs" ]]; then
17-
rm -r "tests/run-make/$test"
18-
fi
19-
done
20-
2113
# FIXME remove this workaround once ICE tests no longer emit an outdated nightly message
2214
for test in $(rg -i --files-with-matches "//@(\[.*\])? failure-status: 101" tests/ui); do
2315
echo "rm $test"
@@ -42,7 +34,6 @@ rm tests/ui/parser/unclosed-delimiter-in-dep.rs # submodule contains //~ERROR
4234
# ================
4335

4436
# vendor intrinsics
45-
rm tests/ui/simd/array-type.rs # "Index argument for `simd_insert` is not a constant"
4637
rm tests/ui/asm/x86_64/evex512-implicit-feature.rs # unimplemented AVX512 x86 vendor intrinsic
4738

4839
# exotic linkages
@@ -59,12 +50,9 @@ rm -r tests/run-make/c-link-to-rust-va-list-fn # requires callee side vararg sup
5950
rm -r tests/run-pass-valgrind/unsized-locals
6051

6152
# misc unimplemented things
62-
rm tests/ui/intrinsics/intrinsic-nearby.rs # unimplemented nearbyintf32 and nearbyintf64 intrinsics
6353
rm tests/ui/target-feature/missing-plusminus.rs # error not implemented
64-
rm -r tests/run-make/emit-named-files # requires full --emit support
6554
rm -r tests/run-make/repr128-dwarf # debuginfo test
6655
rm -r tests/run-make/split-debuginfo # same
67-
rm -r tests/run-make/symbols-include-type-name # --emit=asm not supported
6856
rm -r tests/run-make/target-specs # i686 not supported by Cranelift
6957
rm -r tests/run-make/mismatching-target-triples # same
7058
rm tests/ui/asm/x86_64/issue-96797.rs # const and sym inline asm operands don't work entirely correctly
@@ -102,42 +90,39 @@ rm tests/ui/abi/stack-protector.rs # requires stack protector support
10290
rm -r tests/run-make/emit-stack-sizes # requires support for -Z emit-stack-sizes
10391
rm -r tests/run-make/optimization-remarks-dir # remarks are LLVM specific
10492

93+
# requires asm, llvm-ir and/or llvm-bc emit support
94+
# =============================================
95+
rm -r tests/run-make/emit-named-files
96+
rm -r tests/run-make/issue-30063
97+
rm -r tests/run-make/multiple-emits
98+
rm -r tests/run-make/output-type-permutations
99+
rm -r tests/run-make/emit-to-stdout
100+
rm -r tests/run-make/compressed-debuginfo
101+
rm -r tests/run-make/symbols-include-type-name
102+
103+
105104
# giving different but possibly correct results
106105
# =============================================
107106
rm tests/ui/mir/mir_misc_casts.rs # depends on deduplication of constants
108107
rm tests/ui/mir/mir_raw_fat_ptr.rs # same
109108
rm tests/ui/consts/issue-33537.rs # same
110109
rm tests/ui/consts/const-mut-refs-crate.rs # same
111110

112-
# rustdoc-clif passes extra args, suppressing the help message when no args are passed
113-
rm -r tests/run-make/issue-88756-default-output
114-
115111
# doesn't work due to the way the rustc test suite is invoked.
116112
# should work when using ./x.py test the way it is intended
117113
# ============================================================
118114
rm -r tests/run-make/remap-path-prefix-dwarf # requires llvm-dwarfdump
115+
rm -r tests/run-make/compiler-builtins # Expects lib/rustlib/src/rust to contains the standard library source
119116

120117
# genuine bugs
121118
# ============
122119
rm tests/incremental/spike-neg1.rs # errors out for some reason
123120
rm tests/incremental/spike-neg2.rs # same
124-
125-
rm -r tests/run-make/issue-51671 # wrong filename given in case of --emit=obj
126-
rm -r tests/run-make/issue-30063 # same
127-
rm -r tests/run-make/multiple-emits # same
128-
rm -r tests/run-make/output-type-permutations # same
129-
rm -r tests/run-make/used # same
130-
rm -r tests/run-make/no-alloc-shim
131-
rm -r tests/run-make/emit-to-stdout
132-
rm -r tests/run-make/compressed-debuginfo
133-
134121
rm -r tests/run-make/extern-fn-explicit-align # argument alignment not yet supported
135-
136-
rm tests/ui/codegen/subtyping-enforces-type-equality.rs # assert_assignable bug with Coroutine's
122+
rm -r tests/run-make/panic-abort-eh_frame # .eh_frame emitted with panic=abort
137123

138124
# bugs in the test suite
139125
# ======================
140-
rm tests/ui/backtrace.rs # TODO warning
141126
rm tests/ui/process/nofile-limit.rs # TODO some AArch64 linking issue
142127

143128
rm tests/ui/stdio-is-blocking.rs # really slow with unoptimized libstd
@@ -160,6 +145,19 @@ index ea06b620c4c..b969d0009c6 100644
160145
ifdef RUSTC_LINKER
161146
RUSTC := \$(RUSTC) -Clinker='\$(RUSTC_LINKER)'
162147
RUSTDOC := \$(RUSTDOC) -Clinker='\$(RUSTC_LINKER)'
148+
diff --git a/src/tools/run-make-support/src/rustdoc.rs b/src/tools/run-make-support/src/rustdoc.rs
149+
index 9607ff02f96..b7d97caf9a2 100644
150+
--- a/src/tools/run-make-support/src/rustdoc.rs
151+
+++ b/src/tools/run-make-support/src/rustdoc.rs
152+
@@ -34,8 +34,6 @@ pub fn bare() -> Self {
153+
/// Construct a \`rustdoc\` invocation with \`-L \$(TARGET_RPATH_DIR)\` set.
154+
pub fn new() -> Self {
155+
let mut cmd = setup_common();
156+
- let target_rpath_dir = env::var_os("TARGET_RPATH_DIR").unwrap();
157+
- cmd.arg(format!("-L{}", target_rpath_dir.to_string_lossy()));
158+
Self { cmd }
159+
}
160+
163161
EOF
164162

165163
echo "[TEST] rustc test suite"

src/abi/mod.rs

+2-5
Original file line numberDiff line numberDiff line change
@@ -222,17 +222,15 @@ pub(crate) fn codegen_fn_prelude<'tcx>(fx: &mut FunctionCx<'_, '_, 'tcx>, start_
222222
Spread(Vec<Option<CValue<'tcx>>>),
223223
}
224224

225-
let fn_abi = fx.fn_abi.take().unwrap();
226-
227225
// FIXME implement variadics in cranelift
228-
if fn_abi.c_variadic {
226+
if fx.fn_abi.c_variadic {
229227
fx.tcx.dcx().span_fatal(
230228
fx.mir.span,
231229
"Defining variadic functions is not yet supported by Cranelift",
232230
);
233231
}
234232

235-
let mut arg_abis_iter = fn_abi.args.iter();
233+
let mut arg_abis_iter = fx.fn_abi.args.iter();
236234

237235
let func_params = fx
238236
.mir
@@ -279,7 +277,6 @@ pub(crate) fn codegen_fn_prelude<'tcx>(fx: &mut FunctionCx<'_, '_, 'tcx>, start_
279277
}
280278

281279
assert!(arg_abis_iter.next().is_none(), "ArgAbi left behind");
282-
fx.fn_abi = Some(fn_abi);
283280
assert!(block_params_iter.next().is_none(), "arg_value left behind");
284281

285282
self::comments::add_locals_header_comment(fx);

0 commit comments

Comments
 (0)