Skip to content

Commit c0bbebf

Browse files
Rollup merge of #148068 - tmiasko:doctest-target-modifiers, r=GuillaumeGomez
rustdoc: Use configured target modifiers when collecting doctests To support loading dependencies with target modifiers and avoid ABI mismatch errors. Fixes #146465.
2 parents c8625a5 + accd1fe commit c0bbebf

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed

src/librustdoc/doctest.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,7 @@ pub(crate) fn run(dcx: DiagCtxtHandle<'_>, input: Input, options: RustdocOptions
166166
remap_path_prefix: options.remap_path_prefix.clone(),
167167
unstable_opts: options.unstable_opts.clone(),
168168
error_format: options.error_format.clone(),
169+
target_modifiers: options.target_modifiers.clone(),
169170
..config::Options::default()
170171
};
171172

tests/run-make/rustdoc-target-modifiers/rmake.rs

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,43 @@ fn main() {
2525
.target("aarch64-unknown-none-softfloat")
2626
.arg("-Zfixed-x18")
2727
.run();
28+
29+
rustdoc()
30+
.input("c.rs")
31+
.crate_type("rlib")
32+
.extern_("d", "libd.rmeta")
33+
.target("aarch64-unknown-none-softfloat")
34+
.arg("-Zfixed-x18")
35+
.arg("--test")
36+
.run();
37+
38+
rustdoc()
39+
.input("c.rs")
40+
.edition("2024")
41+
.crate_type("rlib")
42+
.extern_("d", "libd.rmeta")
43+
.target("aarch64-unknown-none-softfloat")
44+
.arg("-Zfixed-x18")
45+
.arg("--test")
46+
.run();
47+
48+
// rustdoc --test detects ABI mismatch
49+
rustdoc()
50+
.input("c.rs")
51+
.crate_type("rlib")
52+
.extern_("d", "libd.rmeta")
53+
.target("aarch64-unknown-none-softfloat")
54+
.arg("--test")
55+
.run_fail()
56+
.assert_stderr_contains("mixing `-Zfixed-x18` will cause an ABI mismatch");
57+
58+
// rustdoc --test -Cunsafe-allow-abi-mismatch=... ignores the mismatch
59+
rustdoc()
60+
.input("c.rs")
61+
.crate_type("rlib")
62+
.extern_("d", "libd.rmeta")
63+
.target("aarch64-unknown-none-softfloat")
64+
.arg("--test")
65+
.arg("-Cunsafe-allow-abi-mismatch=fixed-x18")
66+
.run();
2867
}

0 commit comments

Comments
 (0)