about summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/codegen/asm/avr-clobbers.rs43
-rw-r--r--tests/run-make/crate-loading-crate-depends-on-itself/foo-current.rs14
-rw-r--r--tests/run-make/crate-loading-crate-depends-on-itself/foo-prev.rs6
-rw-r--r--tests/run-make/crate-loading-crate-depends-on-itself/foo.stderr34
-rw-r--r--tests/run-make/crate-loading-crate-depends-on-itself/rmake.rs31
-rw-r--r--tests/run-make/crate-loading/multiple-dep-versions.stderr127
-rw-r--r--tests/run-make/crate-loading/rmake.rs95
-rw-r--r--tests/rustdoc-gui/deref-block.goml8
-rw-r--r--tests/rustdoc-gui/docblock-table-overflow.goml2
-rw-r--r--tests/rustdoc-gui/item-info-alignment.goml2
-rw-r--r--tests/rustdoc-gui/item-info.goml2
-rw-r--r--tests/rustdoc-gui/methods-left-margin.goml1
-rw-r--r--tests/rustdoc-gui/notable-trait.goml14
-rw-r--r--tests/rustdoc-gui/toggle-docs-mobile.goml2
-rw-r--r--tests/rustdoc-ui/doctest/doctest-output-include-fail.rs2
-rw-r--r--tests/rustdoc-ui/doctest/doctest-output.rs2
-rw-r--r--tests/rustdoc-ui/doctest/relative-path-include-bytes-132203.rs2
-rw-r--r--tests/ui/asm/loongarch/bad-reg.loongarch64_lp64d.stderr38
-rw-r--r--tests/ui/asm/loongarch/bad-reg.loongarch64_lp64s.stderr62
-rw-r--r--tests/ui/asm/loongarch/bad-reg.rs45
-rw-r--r--tests/ui/c-variadic/feature-gate-extended_varargs_abi_support.rs19
-rw-r--r--tests/ui/c-variadic/feature-gate-extended_varargs_abi_support.stderr52
-rw-r--r--tests/ui/c-variadic/variadic-ffi-1.stderr2
-rw-r--r--tests/ui/c-variadic/variadic-ffi-2-arm.rs1
-rw-r--r--tests/ui/c-variadic/variadic-ffi-2.rs1
-rw-r--r--tests/ui/c-variadic/variadic-ffi-2.stderr2
-rw-r--r--tests/ui/cmse-nonsecure/cmse-nonsecure-call/generics.rs2
-rw-r--r--tests/ui/cmse-nonsecure/cmse-nonsecure-call/generics.stderr2
-rw-r--r--tests/ui/coroutine/async-gen-deduce-yield.rs2
-rw-r--r--tests/ui/coroutine/async-gen-yield-ty-is-unit.rs2
-rw-r--r--tests/ui/drop/drop_order.rs1
-rw-r--r--tests/ui/drop/lint-if-let-rescope-gated.edition2021.stderr6
-rw-r--r--tests/ui/drop/lint-if-let-rescope-gated.rs1
-rw-r--r--tests/ui/drop/tail-expr-drop-order-negative.edition2024.stderr2
-rw-r--r--tests/ui/drop/tail-expr-drop-order-negative.rs1
-rw-r--r--tests/ui/editions/never-type-fallback-breaking.e2021.fixed1
-rw-r--r--tests/ui/editions/never-type-fallback-breaking.e2021.stderr12
-rw-r--r--tests/ui/editions/never-type-fallback-breaking.e2024.stderr10
-rw-r--r--tests/ui/editions/never-type-fallback-breaking.rs1
-rw-r--r--tests/ui/editions/never-type-fallback.rs1
-rw-r--r--tests/ui/error-codes/E0045.stderr2
-rw-r--r--tests/ui/hello.rs2
-rw-r--r--tests/ui/impl-trait/variance.e2024.stderr8
-rw-r--r--tests/ui/impl-trait/variance.new.stderr8
-rw-r--r--tests/ui/impl-trait/variance.old.stderr8
-rw-r--r--tests/ui/impl-trait/variance.rs1
-rw-r--r--tests/ui/lifetimes/raw/gen-lt.e2024.stderr2
-rw-r--r--tests/ui/lifetimes/raw/gen-lt.rs1
-rw-r--r--tests/ui/lifetimes/refcell-in-tail-expr.edition2021.stderr2
-rw-r--r--tests/ui/lifetimes/refcell-in-tail-expr.rs1
-rw-r--r--tests/ui/lifetimes/shorter-tail-expr-lifetime.edition2021.stderr2
-rw-r--r--tests/ui/lifetimes/shorter-tail-expr-lifetime.rs1
-rw-r--r--tests/ui/lifetimes/tail-expr-lock-poisoning.rs1
-rw-r--r--tests/ui/lifetimes/temporary-lifetime-extension.rs1
-rw-r--r--tests/ui/lint/static-mut-refs.e2021.stderr24
-rw-r--r--tests/ui/lint/static-mut-refs.e2024.stderr24
-rw-r--r--tests/ui/lint/static-mut-refs.rs1
-rw-r--r--tests/ui/macros/macro-missing-fragment.e2015.stderr22
-rw-r--r--tests/ui/macros/macro-missing-fragment.e2024.stderr8
-rw-r--r--tests/ui/macros/macro-missing-fragment.rs1
-rw-r--r--tests/ui/mir/mir_let_chains_drop_order.rs1
-rw-r--r--tests/ui/never_type/lint-never-type-fallback-flowing-into-unsafe.e2015.stderr20
-rw-r--r--tests/ui/never_type/lint-never-type-fallback-flowing-into-unsafe.e2024.stderr22
-rw-r--r--tests/ui/never_type/lint-never-type-fallback-flowing-into-unsafe.rs1
-rw-r--r--tests/ui/nll/issue-54556-niconii.edition2021.stderr2
-rw-r--r--tests/ui/nll/issue-54556-niconii.rs1
-rw-r--r--tests/ui/proc-macro/macro_rules_edition_from_pm.rs1
-rw-r--r--tests/ui/rust-2024/prelude-migration/future-poll-already-future.rs1
-rw-r--r--tests/ui/rust-2024/prelude-migration/future-poll-async-block.e2021.fixed1
-rw-r--r--tests/ui/rust-2024/prelude-migration/future-poll-async-block.e2021.stderr4
-rw-r--r--tests/ui/rust-2024/prelude-migration/future-poll-async-block.rs1
-rw-r--r--tests/ui/rust-2024/prelude-migration/future-poll-not-future-pinned.e2021.fixed1
-rw-r--r--tests/ui/rust-2024/prelude-migration/future-poll-not-future-pinned.e2021.stderr4
-rw-r--r--tests/ui/rust-2024/prelude-migration/future-poll-not-future-pinned.rs1
-rw-r--r--tests/ui/rust-2024/prelude-migration/future-poll-not-future.rs1
-rw-r--r--tests/ui/rust-2024/prelude-migration/into-future-adt.e2021.fixed1
-rw-r--r--tests/ui/rust-2024/prelude-migration/into-future-adt.e2021.stderr4
-rw-r--r--tests/ui/rust-2024/prelude-migration/into-future-adt.rs1
-rw-r--r--tests/ui/rust-2024/prelude-migration/into-future-already-into-future.rs1
-rw-r--r--tests/ui/rust-2024/prelude-migration/into-future-not-into-future.e2021.fixed1
-rw-r--r--tests/ui/rust-2024/prelude-migration/into-future-not-into-future.e2021.stderr4
-rw-r--r--tests/ui/rust-2024/prelude-migration/into-future-not-into-future.rs1
-rw-r--r--tests/ui/rust-2024/unsafe-attributes/unsafe-attribute-marked.rs1
-rw-r--r--tests/ui/rust-2024/unsafe-attributes/unsafe-attributes-from-pm.rs1
-rw-r--r--tests/ui/rust-2024/unsafe-attributes/unsafe-attributes.edition2024.stderr2
-rw-r--r--tests/ui/rust-2024/unsafe-attributes/unsafe-attributes.rs1
-rw-r--r--tests/ui/rust-2024/unsafe-before_exec.e2024.stderr2
-rw-r--r--tests/ui/rust-2024/unsafe-before_exec.rs1
-rw-r--r--tests/ui/rust-2024/unsafe-env.e2021.stderr12
-rw-r--r--tests/ui/rust-2024/unsafe-env.e2024.stderr20
-rw-r--r--tests/ui/rust-2024/unsafe-env.rs1
-rw-r--r--tests/ui/rust-2024/unsafe-extern-blocks/extern-items-unsafe.edition2021.stderr4
-rw-r--r--tests/ui/rust-2024/unsafe-extern-blocks/extern-items-unsafe.edition2024.stderr4
-rw-r--r--tests/ui/rust-2024/unsafe-extern-blocks/extern-items-unsafe.rs1
-rw-r--r--tests/ui/rust-2024/unsafe-extern-blocks/extern-items.edition2024.stderr2
-rw-r--r--tests/ui/rust-2024/unsafe-extern-blocks/extern-items.rs1
-rw-r--r--tests/ui/rust-2024/unsafe-extern-blocks/safe-items.rs1
-rw-r--r--tests/ui/rust-2024/unsafe-extern-blocks/safe-unsafe-on-unadorned-extern-block.edition2021.stderr4
-rw-r--r--tests/ui/rust-2024/unsafe-extern-blocks/safe-unsafe-on-unadorned-extern-block.edition2024.stderr6
-rw-r--r--tests/ui/rust-2024/unsafe-extern-blocks/safe-unsafe-on-unadorned-extern-block.rs1
-rw-r--r--tests/ui/rust-2024/unsafe-extern-blocks/unsafe-items.edition2021.stderr4
-rw-r--r--tests/ui/rust-2024/unsafe-extern-blocks/unsafe-items.edition2024.stderr4
-rw-r--r--tests/ui/rust-2024/unsafe-extern-blocks/unsafe-items.rs1
-rw-r--r--tests/ui/traits/solver-cycles/107481-self-referential-struct-cow-as-last-field.rs19
104 files changed, 597 insertions, 344 deletions
diff --git a/tests/codegen/asm/avr-clobbers.rs b/tests/codegen/asm/avr-clobbers.rs
new file mode 100644
index 00000000000..6e0c75368e2
--- /dev/null
+++ b/tests/codegen/asm/avr-clobbers.rs
@@ -0,0 +1,43 @@
+//@ assembly-output: emit-asm
+//@ compile-flags: --target avr-unknown-gnu-atmega328
+//@ needs-llvm-components: avr
+
+#![crate_type = "rlib"]
+#![feature(no_core, rustc_attrs, lang_items, asm_experimental_arch)]
+#![no_core]
+
+#[lang = "sized"]
+trait Sized {}
+
+#[rustc_builtin_macro]
+macro_rules! asm {
+    () => {};
+}
+
+// CHECK-LABEL: @sreg_is_clobbered
+// CHECK: void asm sideeffect "", "~{sreg}"()
+#[no_mangle]
+pub unsafe fn sreg_is_clobbered() {
+    asm!("", options(nostack, nomem));
+}
+
+// CHECK-LABEL: @sreg_is_not_clobbered_if_preserve_flags_is_used
+// CHECK: void asm sideeffect "", ""()
+#[no_mangle]
+pub unsafe fn sreg_is_not_clobbered_if_preserve_flags_is_used() {
+    asm!("", options(nostack, nomem, preserves_flags));
+}
+
+// CHECK-LABEL: @clobber_abi
+// CHECK: asm sideeffect "", "={r18},={r19},={r20},={r21},={r22},={r23},={r24},={r25},={r26},={r27},={r30},={r31},~{sreg}"()
+#[no_mangle]
+pub unsafe fn clobber_abi() {
+    asm!("", clobber_abi("C"), options(nostack, nomem));
+}
+
+// CHECK-LABEL: @clobber_abi_with_preserved_flags
+// CHECK: asm sideeffect "", "={r18},={r19},={r20},={r21},={r22},={r23},={r24},={r25},={r26},={r27},={r30},={r31}"()
+#[no_mangle]
+pub unsafe fn clobber_abi_with_preserved_flags() {
+    asm!("", clobber_abi("C"), options(nostack, nomem, preserves_flags));
+}
diff --git a/tests/run-make/crate-loading-crate-depends-on-itself/foo-current.rs b/tests/run-make/crate-loading-crate-depends-on-itself/foo-current.rs
new file mode 100644
index 00000000000..71b27cd85bf
--- /dev/null
+++ b/tests/run-make/crate-loading-crate-depends-on-itself/foo-current.rs
@@ -0,0 +1,14 @@
+#![crate_type = "lib"]
+#![crate_name = "foo"]
+
+extern crate foo;
+
+pub struct Struct;
+pub trait Trait {}
+impl Trait for Struct {}
+
+fn check_trait<T: Trait>() {}
+
+fn ice() {
+    check_trait::<foo::Struct>();
+}
diff --git a/tests/run-make/crate-loading-crate-depends-on-itself/foo-prev.rs b/tests/run-make/crate-loading-crate-depends-on-itself/foo-prev.rs
new file mode 100644
index 00000000000..19d3f3c972b
--- /dev/null
+++ b/tests/run-make/crate-loading-crate-depends-on-itself/foo-prev.rs
@@ -0,0 +1,6 @@
+#![crate_type = "lib"]
+#![crate_name = "foo"]
+
+pub struct Struct;
+pub trait Trait {}
+impl Trait for Struct {}
diff --git a/tests/run-make/crate-loading-crate-depends-on-itself/foo.stderr b/tests/run-make/crate-loading-crate-depends-on-itself/foo.stderr
new file mode 100644
index 00000000000..36379429530
--- /dev/null
+++ b/tests/run-make/crate-loading-crate-depends-on-itself/foo.stderr
@@ -0,0 +1,34 @@
+error[E0277]: the trait bound `foo::Struct: Trait` is not satisfied
+  --> foo-current.rs:13:19
+   |
+13 |     check_trait::<foo::Struct>();
+   |                   ^^^^^^^^^^^ the trait `Trait` is not implemented for `foo::Struct`
+   |
+note: there are multiple different versions of crate `foo` in the dependency graph
+  --> foo-current.rs:7:1
+   |
+4  | extern crate foo;
+   | ----------------- one version of crate `foo` is used here, as a direct dependency of the current crate
+5  |
+6  | pub struct Struct;
+   | ----------------- this type implements the required trait
+7  | pub trait Trait {}
+   | ^^^^^^^^^^^^^^^ this is the required trait
+   |
+  ::: foo-prev.rs:X:Y
+   |
+4  | pub struct Struct;
+   | ----------------- this type doesn't implement the required trait
+5  | pub trait Trait {}
+   | --------------- this is the found trait
+   = note: two types coming from two different versions of the same crate are different types even if they look the same
+   = help: you can use `cargo tree` to explore your dependency tree
+note: required by a bound in `check_trait`
+  --> foo-current.rs:10:19
+   |
+10 | fn check_trait<T: Trait>() {}
+   |                   ^^^^^ required by this bound in `check_trait`
+
+error: aborting due to 1 previous error
+
+For more information about this error, try `rustc --explain E0277`.
\ No newline at end of file
diff --git a/tests/run-make/crate-loading-crate-depends-on-itself/rmake.rs b/tests/run-make/crate-loading-crate-depends-on-itself/rmake.rs
new file mode 100644
index 00000000000..57e0cab92f1
--- /dev/null
+++ b/tests/run-make/crate-loading-crate-depends-on-itself/rmake.rs
@@ -0,0 +1,31 @@
+//@ only-linux
+//@ ignore-wasm32
+//@ ignore-wasm64
+// ignore-tidy-linelength
+
+// Verify that if the current crate depends on a different version of the same crate, *and* types
+// and traits of the different versions are mixed, we produce diagnostic output and not an ICE.
+// #133563
+
+use run_make_support::{diff, rust_lib_name, rustc};
+
+fn main() {
+    rustc().input("foo-prev.rs").run();
+
+    let out = rustc()
+        .extra_filename("current")
+        .metadata("current")
+        .input("foo-current.rs")
+        .extern_("foo", rust_lib_name("foo"))
+        .run_fail()
+        .stderr_utf8();
+
+    // We don't remap the path of the `foo-prev` crate, so we remap it here.
+    let mut lines: Vec<_> = out.lines().collect();
+    for line in &mut lines {
+        if line.starts_with("  ::: ") {
+            *line = "  ::: foo-prev.rs:X:Y";
+        }
+    }
+    diff().expected_file("foo.stderr").actual_text("(rustc)", &lines.join("\n")).run();
+}
diff --git a/tests/run-make/crate-loading/multiple-dep-versions.stderr b/tests/run-make/crate-loading/multiple-dep-versions.stderr
new file mode 100644
index 00000000000..5888aad8f37
--- /dev/null
+++ b/tests/run-make/crate-loading/multiple-dep-versions.stderr
@@ -0,0 +1,127 @@
+error[E0277]: the trait bound `dep_2_reexport::Type: Trait` is not satisfied
+  --> replaced
+   |
+LL |     do_something(Type);
+   |     ------------ ^^^^ the trait `Trait` is not implemented for `dep_2_reexport::Type`
+   |     |
+   |     required by a bound introduced by this call
+   |
+note: there are multiple different versions of crate `dependency` in the dependency graph
+  --> replaced
+   |
+LL | pub struct Type(pub i32);
+   | --------------- this type implements the required trait
+LL | pub trait Trait {
+   | ^^^^^^^^^^^^^^^ this is the required trait
+   |
+  ::: replaced
+   |
+LL | extern crate dep_2_reexport;
+   | ---------------------------- one version of crate `dependency` is used here, as a dependency of crate `foo`
+LL | extern crate dependency;
+   | ------------------------ one version of crate `dependency` is used here, as a direct dependency of the current crate
+   |
+  ::: replaced
+   |
+LL | pub struct Type;
+   | --------------- this type doesn't implement the required trait
+LL | pub trait Trait {
+   | --------------- this is the found trait
+   = note: two types coming from two different versions of the same crate are different types even if they look the same
+   = help: you can use `cargo tree` to explore your dependency tree
+note: required by a bound in `do_something`
+  --> replaced
+   |
+LL | pub fn do_something<X: Trait>(_: X) {}
+   |                        ^^^^^ required by this bound in `do_something`
+
+error[E0599]: no method named `foo` found for struct `dep_2_reexport::Type` in the current scope
+  --> replaced
+   |
+LL |     Type.foo();
+   |          ^^^ method not found in `Type`
+   |
+note: there are multiple different versions of crate `dependency` in the dependency graph
+  --> replaced
+   |
+LL | pub trait Trait {
+   | ^^^^^^^^^^^^^^^ this is the trait that is needed
+LL |     fn foo(&self);
+   |     -------------- the method is available for `dep_2_reexport::Type` here
+   |
+  ::: replaced
+   |
+LL | use dependency::{Trait, do_something};
+   |                  ----- `Trait` imported here doesn't correspond to the right version of crate `dependency`
+   |
+  ::: replaced
+   |
+LL | pub trait Trait {
+   | --------------- this is the trait that was imported
+
+error[E0599]: no function or associated item named `bar` found for struct `dep_2_reexport::Type` in the current scope
+  --> replaced
+   |
+LL |     Type::bar();
+   |           ^^^ function or associated item not found in `Type`
+   |
+note: there are multiple different versions of crate `dependency` in the dependency graph
+  --> replaced
+   |
+LL | pub trait Trait {
+   | ^^^^^^^^^^^^^^^ this is the trait that is needed
+LL |     fn foo(&self);
+LL |     fn bar();
+   |     --------- the associated function is available for `dep_2_reexport::Type` here
+   |
+  ::: replaced
+   |
+LL | use dependency::{Trait, do_something};
+   |                  ----- `Trait` imported here doesn't correspond to the right version of crate `dependency`
+   |
+  ::: replaced
+   |
+LL | pub trait Trait {
+   | --------------- this is the trait that was imported
+
+error[E0277]: the trait bound `OtherType: Trait` is not satisfied
+  --> replaced
+   |
+LL |     do_something(OtherType);
+   |     ------------ ^^^^^^^^^ the trait `Trait` is not implemented for `OtherType`
+   |     |
+   |     required by a bound introduced by this call
+   |
+note: there are multiple different versions of crate `dependency` in the dependency graph
+  --> replaced
+   |
+LL | pub trait Trait {
+   | ^^^^^^^^^^^^^^^ this is the required trait
+   |
+  ::: replaced
+   |
+LL | extern crate dep_2_reexport;
+   | ---------------------------- one version of crate `dependency` is used here, as a dependency of crate `foo`
+LL | extern crate dependency;
+   | ------------------------ one version of crate `dependency` is used here, as a direct dependency of the current crate
+   |
+  ::: replaced
+   |
+LL | pub struct OtherType;
+   | -------------------- this type doesn't implement the required trait
+   |
+  ::: replaced
+   |
+LL | pub trait Trait {
+   | --------------- this is the found trait
+   = help: you can use `cargo tree` to explore your dependency tree
+note: required by a bound in `do_something`
+  --> replaced
+   |
+LL | pub fn do_something<X: Trait>(_: X) {}
+   |                        ^^^^^ required by this bound in `do_something`
+
+error: aborting due to 4 previous errors
+
+Some errors have detailed explanations: E0277, E0599.
+For more information about an error, try `rustc --explain E0277`.
\ No newline at end of file
diff --git a/tests/run-make/crate-loading/rmake.rs b/tests/run-make/crate-loading/rmake.rs
index 544bf9ab957..6ad456e3e3e 100644
--- a/tests/run-make/crate-loading/rmake.rs
+++ b/tests/run-make/crate-loading/rmake.rs
@@ -3,7 +3,7 @@
 //@ ignore-wasm64
 // ignore-tidy-linelength
 
-use run_make_support::{rust_lib_name, rustc};
+use run_make_support::{diff, rust_lib_name, rustc};
 
 fn main() {
     rustc().input("multiple-dep-versions-1.rs").run();
@@ -13,83 +13,26 @@ fn main() {
         .extern_("dependency", rust_lib_name("dependency2"))
         .run();
 
-    rustc()
+    let out = rustc()
         .input("multiple-dep-versions.rs")
         .extern_("dependency", rust_lib_name("dependency"))
         .extern_("dep_2_reexport", rust_lib_name("foo"))
+        .ui_testing()
         .run_fail()
-        .assert_stderr_contains(r#"error[E0277]: the trait bound `dep_2_reexport::Type: Trait` is not satisfied
-  --> multiple-dep-versions.rs:7:18
-   |
-7  |     do_something(Type);
-   |     ------------ ^^^^ the trait `Trait` is not implemented for `dep_2_reexport::Type`
-   |     |
-   |     required by a bound introduced by this call
-   |
-note: there are multiple different versions of crate `dependency` in the dependency graph"#)
-        .assert_stderr_contains(r#"
-3  | pub struct Type(pub i32);
-   | --------------- this type implements the required trait
-4  | pub trait Trait {
-   | ^^^^^^^^^^^^^^^ this is the required trait
-"#)
-        .assert_stderr_contains(r#"
-1  | extern crate dep_2_reexport;
-   | ---------------------------- one version of crate `dependency` is used here, as a dependency of crate `foo`
-2  | extern crate dependency;
-   | ------------------------ one version of crate `dependency` is used here, as a direct dependency of the current crate"#)
-        .assert_stderr_contains(r#"
-3  | pub struct Type;
-   | --------------- this type doesn't implement the required trait
-4  | pub trait Trait {
-   | --------------- this is the found trait
-   = note: two types coming from two different versions of the same crate are different types even if they look the same
-   = help: you can use `cargo tree` to explore your dependency tree"#)
-        .assert_stderr_contains(r#"note: required by a bound in `do_something`"#)
-        .assert_stderr_contains(r#"
-12 | pub fn do_something<X: Trait>(_: X) {}
-   |                        ^^^^^ required by this bound in `do_something`"#)
-        .assert_stderr_contains(r#"error[E0599]: no method named `foo` found for struct `dep_2_reexport::Type` in the current scope
- --> multiple-dep-versions.rs:8:10
-  |
-8 |     Type.foo();
-  |          ^^^ method not found in `Type`
-  |
-note: there are multiple different versions of crate `dependency` in the dependency graph"#)
-        .assert_stderr_contains(r#"
-4 | pub trait Trait {
-  | ^^^^^^^^^^^^^^^ this is the trait that is needed
-5 |     fn foo(&self);
-  |     -------------- the method is available for `dep_2_reexport::Type` here
-  |
- ::: multiple-dep-versions.rs:4:18
-  |
-4 | use dependency::{Trait, do_something};
-  |                  ----- `Trait` imported here doesn't correspond to the right version of crate `dependency`"#)
-        .assert_stderr_contains(r#"
-4 | pub trait Trait {
-  | --------------- this is the trait that was imported"#)
-        .assert_stderr_contains(r#"
-error[E0599]: no function or associated item named `bar` found for struct `dep_2_reexport::Type` in the current scope
- --> multiple-dep-versions.rs:9:11
-  |
-9 |     Type::bar();
-  |           ^^^ function or associated item not found in `Type`
-  |
-note: there are multiple different versions of crate `dependency` in the dependency graph"#)
-        .assert_stderr_contains(r#"
-4 | pub trait Trait {
-  | ^^^^^^^^^^^^^^^ this is the trait that is needed
-5 |     fn foo(&self);
-6 |     fn bar();
-  |     --------- the associated function is available for `dep_2_reexport::Type` here
-  |
- ::: multiple-dep-versions.rs:4:18
-  |
-4 | use dependency::{Trait, do_something};
-  |                  ----- `Trait` imported here doesn't correspond to the right version of crate `dependency`"#)
-        .assert_stderr_contains(
-          r#"
-6  | pub struct OtherType;
-   | -------------------- this type doesn't implement the required trait"#);
+        .stderr_utf8();
+
+    // We don't remap all the paths, so we remap it here.
+    let mut lines: Vec<_> = out.lines().collect();
+    for line in &mut lines {
+        if line.starts_with("  --> ") {
+            *line = "  --> replaced";
+        }
+        if line.starts_with("  ::: ") {
+            *line = "  ::: replaced";
+        }
+    }
+    diff()
+        .expected_file("multiple-dep-versions.stderr")
+        .actual_text("(rustc)", &lines.join("\n"))
+        .run();
 }
diff --git a/tests/rustdoc-gui/deref-block.goml b/tests/rustdoc-gui/deref-block.goml
index 24f612f8a6f..97930b61ef4 100644
--- a/tests/rustdoc-gui/deref-block.goml
+++ b/tests/rustdoc-gui/deref-block.goml
@@ -20,8 +20,12 @@ assert-css: (".big-toggle summary::before", {
     "left": "-11px",
     "top": "9px",
 })
-// It should have the same X position as the other toggles.
-compare-elements-position: (".big-toggle summary::before", ".method-toggle summary::before", ["x"])
+// It should have a slightly different X position as the other toggles.
+store-position: (".big-toggle summary::before", {"x": big_toggle})
+store-position: (".method-toggle summary::before", {"x": small_toggle})
+assert: |big_toggle| < |small_toggle|
+// Margin is 0.5em so around 8 px.
+assert: |small_toggle| - |big_toggle| < 10
 // But still shouldn't have the same Y position.
 compare-elements-position-false: (
     ".big-toggle summary::before",
diff --git a/tests/rustdoc-gui/docblock-table-overflow.goml b/tests/rustdoc-gui/docblock-table-overflow.goml
index 1ca919d1eab..abfa820ef27 100644
--- a/tests/rustdoc-gui/docblock-table-overflow.goml
+++ b/tests/rustdoc-gui/docblock-table-overflow.goml
@@ -16,6 +16,6 @@ compare-elements-property: (
     "#implementations-list > details .docblock > p",
     ["scrollWidth"],
 )
-assert-property: ("#implementations-list > details .docblock", {"scrollWidth": "816"})
+assert-property: ("#implementations-list > details .docblock", {"scrollWidth": "835"})
 // However, since there is overflow in the <table>, its scroll width is bigger.
 assert-property: ("#implementations-list > details .docblock table", {"scrollWidth": "1572"})
diff --git a/tests/rustdoc-gui/item-info-alignment.goml b/tests/rustdoc-gui/item-info-alignment.goml
index cd0624056b9..075722bb539 100644
--- a/tests/rustdoc-gui/item-info-alignment.goml
+++ b/tests/rustdoc-gui/item-info-alignment.goml
@@ -4,7 +4,9 @@ go-to: "file://" + |DOC_PATH| + "/lib2/struct.ItemInfoAlignmentTest.html"
 
 // First, we try it in "desktop" mode.
 set-window-size: (1200, 870)
+wait-for-size: ("body", {"width": 1200})
 compare-elements-position: (".impl-items > .item-info", "summary > .item-info", ["x"])
 // Next, we try it in "mobile" mode (max-width: 700px).
 set-window-size: (650, 650)
+wait-for-size: ("body", {"width": 650})
 compare-elements-position: (".impl-items > .item-info", "summary > .item-info", ["x"])
diff --git a/tests/rustdoc-gui/item-info.goml b/tests/rustdoc-gui/item-info.goml
index 1636e149692..b5b0052fe61 100644
--- a/tests/rustdoc-gui/item-info.goml
+++ b/tests/rustdoc-gui/item-info.goml
@@ -19,7 +19,7 @@ store-position: (
     "//*[@class='stab portability']//code[normalize-space()='Win32_System_Diagnostics']",
     {"x": second_line_x, "y": second_line_y},
 )
-assert: |first_line_x| != |second_line_x| && |first_line_x| == 516 && |second_line_x| == 272
+assert: |first_line_x| != |second_line_x| && |first_line_x| == 521 && |second_line_x| == 277
 assert: |first_line_y| != |second_line_y| && |first_line_y| == 718 && |second_line_y| == 741
 
 // Now we ensure that they're not rendered on the same line.
diff --git a/tests/rustdoc-gui/methods-left-margin.goml b/tests/rustdoc-gui/methods-left-margin.goml
index 1003cec33f9..31b53faf756 100644
--- a/tests/rustdoc-gui/methods-left-margin.goml
+++ b/tests/rustdoc-gui/methods-left-margin.goml
@@ -1,7 +1,6 @@
 // This test is to ensure that methods are correctly aligned on the left side.
 
 go-to: "file://" + |DOC_PATH| + "/test_docs/struct.Foo.html"
-
 // First we ensure that we have methods with and without documentation.
 assert: ".impl-items > details.method-toggle > summary > section.method"
 assert: ".impl-items > section.method"
diff --git a/tests/rustdoc-gui/notable-trait.goml b/tests/rustdoc-gui/notable-trait.goml
index e02974e6082..4624fb80b37 100644
--- a/tests/rustdoc-gui/notable-trait.goml
+++ b/tests/rustdoc-gui/notable-trait.goml
@@ -62,9 +62,9 @@ define-function: (
 // We start with a wide screen.
 set-window-size: (1100, 600)
 call-function: ("check-notable-tooltip-position-complete", {
-    "x": 677,
-    "i_x": 955,
-    "popover_x": 463,
+    "x": 682,
+    "i_x": 960,
+    "popover_x": 468,
 })
 
 // Now only the `i` should be on the next line.
@@ -78,16 +78,16 @@ compare-elements-position-false: (
 // Now both the `i` and the struct name should be on the next line.
 set-window-size: (980, 600)
 call-function: ("check-notable-tooltip-position", {
-    "x": 245,
-    "i_x": 523,
+    "x": 250,
+    "i_x": 528,
 })
 
 // Checking on mobile now.
 set-window-size: (650, 600)
 wait-for-size: ("body", {"width": 650})
 call-function: ("check-notable-tooltip-position-complete", {
-    "x": 25,
-    "i_x": 303,
+    "x": 26,
+    "i_x": 305,
     "popover_x": 0,
 })
 
diff --git a/tests/rustdoc-gui/toggle-docs-mobile.goml b/tests/rustdoc-gui/toggle-docs-mobile.goml
index b69aa6e30ca..be12e4c19b3 100644
--- a/tests/rustdoc-gui/toggle-docs-mobile.goml
+++ b/tests/rustdoc-gui/toggle-docs-mobile.goml
@@ -18,7 +18,7 @@ assert-position: ("#implementations-list > details > summary::before", {"x": 4})
 // Assert the position of the toggle on a method.
 assert-position: (
     "#trait-implementations-list .impl-items .method-toggle > summary::before",
-    {"x": 4},
+    {"x": 6},
 )
 
 // Now we do the same but with a little bigger width
diff --git a/tests/rustdoc-ui/doctest/doctest-output-include-fail.rs b/tests/rustdoc-ui/doctest/doctest-output-include-fail.rs
index bae61992eb2..58612b682a0 100644
--- a/tests/rustdoc-ui/doctest/doctest-output-include-fail.rs
+++ b/tests/rustdoc-ui/doctest/doctest-output-include-fail.rs
@@ -1,5 +1,5 @@
 //@ edition:2024
-//@ compile-flags:--test --test-args=--test-threads=1 -Z unstable-options
+//@ compile-flags:--test --test-args=--test-threads=1
 //@ normalize-stdout-test: "tests/rustdoc-ui/doctest" -> "$$DIR"
 //@ normalize-stdout-test: "finished in \d+\.\d+s" -> "finished in $$TIME"
 //@ failure-status: 101
diff --git a/tests/rustdoc-ui/doctest/doctest-output.rs b/tests/rustdoc-ui/doctest/doctest-output.rs
index 0e5ccf0b090..946bc550b12 100644
--- a/tests/rustdoc-ui/doctest/doctest-output.rs
+++ b/tests/rustdoc-ui/doctest/doctest-output.rs
@@ -4,7 +4,7 @@
 //@[edition2015]compile-flags:--test --test-args=--test-threads=1
 //@[edition2024]edition:2015
 //@[edition2024]aux-build:extern_macros.rs
-//@[edition2024]compile-flags:--test --test-args=--test-threads=1 -Z unstable-options
+//@[edition2024]compile-flags:--test --test-args=--test-threads=1
 //@ normalize-stdout-test: "tests/rustdoc-ui/doctest" -> "$$DIR"
 //@ normalize-stdout-test: "finished in \d+\.\d+s" -> "finished in $$TIME"
 //@ check-pass
diff --git a/tests/rustdoc-ui/doctest/relative-path-include-bytes-132203.rs b/tests/rustdoc-ui/doctest/relative-path-include-bytes-132203.rs
index b393d126306..5a1d4d0a60d 100644
--- a/tests/rustdoc-ui/doctest/relative-path-include-bytes-132203.rs
+++ b/tests/rustdoc-ui/doctest/relative-path-include-bytes-132203.rs
@@ -6,7 +6,7 @@
 //@[edition2015]compile-flags:--test --test-args=--test-threads=1
 //@[edition2024]edition:2024
 //@[edition2024]check-pass
-//@[edition2024]compile-flags:--test --test-args=--test-threads=1 -Z unstable-options
+//@[edition2024]compile-flags:--test --test-args=--test-threads=1
 //@ normalize-stdout-test: "tests/rustdoc-ui/doctest" -> "$$DIR"
 //@ normalize-stdout-test: "finished in \d+\.\d+s" -> "finished in $$TIME"
 
diff --git a/tests/ui/asm/loongarch/bad-reg.loongarch64_lp64d.stderr b/tests/ui/asm/loongarch/bad-reg.loongarch64_lp64d.stderr
new file mode 100644
index 00000000000..0e544119650
--- /dev/null
+++ b/tests/ui/asm/loongarch/bad-reg.loongarch64_lp64d.stderr
@@ -0,0 +1,38 @@
+error: invalid register `$r0`: constant zero cannot be used as an operand for inline asm
+  --> $DIR/bad-reg.rs:22:18
+   |
+LL |         asm!("", out("$r0") _);
+   |                  ^^^^^^^^^^^^
+
+error: invalid register `$tp`: reserved for TLS
+  --> $DIR/bad-reg.rs:24:18
+   |
+LL |         asm!("", out("$tp") _);
+   |                  ^^^^^^^^^^^^
+
+error: invalid register `$sp`: the stack pointer cannot be used as an operand for inline asm
+  --> $DIR/bad-reg.rs:26:18
+   |
+LL |         asm!("", out("$sp") _);
+   |                  ^^^^^^^^^^^^
+
+error: invalid register `$r21`: reserved by the ABI
+  --> $DIR/bad-reg.rs:28:18
+   |
+LL |         asm!("", out("$r21") _);
+   |                  ^^^^^^^^^^^^^
+
+error: invalid register `$fp`: the frame pointer cannot be used as an operand for inline asm
+  --> $DIR/bad-reg.rs:30:18
+   |
+LL |         asm!("", out("$fp") _);
+   |                  ^^^^^^^^^^^^
+
+error: invalid register `$r31`: $r31 is used internally by LLVM and cannot be used as an operand for inline asm
+  --> $DIR/bad-reg.rs:32:18
+   |
+LL |         asm!("", out("$r31") _);
+   |                  ^^^^^^^^^^^^^
+
+error: aborting due to 6 previous errors
+
diff --git a/tests/ui/asm/loongarch/bad-reg.loongarch64_lp64s.stderr b/tests/ui/asm/loongarch/bad-reg.loongarch64_lp64s.stderr
new file mode 100644
index 00000000000..6d0410dc6a1
--- /dev/null
+++ b/tests/ui/asm/loongarch/bad-reg.loongarch64_lp64s.stderr
@@ -0,0 +1,62 @@
+error: invalid register `$r0`: constant zero cannot be used as an operand for inline asm
+  --> $DIR/bad-reg.rs:22:18
+   |
+LL |         asm!("", out("$r0") _);
+   |                  ^^^^^^^^^^^^
+
+error: invalid register `$tp`: reserved for TLS
+  --> $DIR/bad-reg.rs:24:18
+   |
+LL |         asm!("", out("$tp") _);
+   |                  ^^^^^^^^^^^^
+
+error: invalid register `$sp`: the stack pointer cannot be used as an operand for inline asm
+  --> $DIR/bad-reg.rs:26:18
+   |
+LL |         asm!("", out("$sp") _);
+   |                  ^^^^^^^^^^^^
+
+error: invalid register `$r21`: reserved by the ABI
+  --> $DIR/bad-reg.rs:28:18
+   |
+LL |         asm!("", out("$r21") _);
+   |                  ^^^^^^^^^^^^^
+
+error: invalid register `$fp`: the frame pointer cannot be used as an operand for inline asm
+  --> $DIR/bad-reg.rs:30:18
+   |
+LL |         asm!("", out("$fp") _);
+   |                  ^^^^^^^^^^^^
+
+error: invalid register `$r31`: $r31 is used internally by LLVM and cannot be used as an operand for inline asm
+  --> $DIR/bad-reg.rs:32:18
+   |
+LL |         asm!("", out("$r31") _);
+   |                  ^^^^^^^^^^^^^
+
+error: register class `freg` requires at least one of the following target features: d, f
+  --> $DIR/bad-reg.rs:36:26
+   |
+LL |         asm!("/* {} */", in(freg) f);
+   |                          ^^^^^^^^^^
+
+error: register class `freg` requires at least one of the following target features: d, f
+  --> $DIR/bad-reg.rs:38:26
+   |
+LL |         asm!("/* {} */", out(freg) _);
+   |                          ^^^^^^^^^^^
+
+error: register class `freg` requires at least one of the following target features: d, f
+  --> $DIR/bad-reg.rs:40:26
+   |
+LL |         asm!("/* {} */", in(freg) d);
+   |                          ^^^^^^^^^^
+
+error: register class `freg` requires at least one of the following target features: d, f
+  --> $DIR/bad-reg.rs:42:26
+   |
+LL |         asm!("/* {} */", out(freg) d);
+   |                          ^^^^^^^^^^^
+
+error: aborting due to 10 previous errors
+
diff --git a/tests/ui/asm/loongarch/bad-reg.rs b/tests/ui/asm/loongarch/bad-reg.rs
new file mode 100644
index 00000000000..c5288cc78b7
--- /dev/null
+++ b/tests/ui/asm/loongarch/bad-reg.rs
@@ -0,0 +1,45 @@
+//@ add-core-stubs
+//@ needs-asm-support
+//@ revisions: loongarch64_lp64d loongarch64_lp64s
+//@[loongarch64_lp64d] compile-flags: --target loongarch64-unknown-linux-gnu
+//@[loongarch64_lp64d] needs-llvm-components: loongarch
+//@[loongarch64_lp64s] compile-flags: --target loongarch64-unknown-none-softfloat
+//@[loongarch64_lp64s] needs-llvm-components: loongarch
+
+#![crate_type = "lib"]
+#![feature(no_core, rustc_attrs)]
+#![no_core]
+
+extern crate minicore;
+use minicore::*;
+
+fn f() {
+    let mut x = 0;
+    let mut f = 0.0_f32;
+    let mut d = 0.0_f64;
+    unsafe {
+        // Unsupported registers
+        asm!("", out("$r0") _);
+        //~^ ERROR constant zero cannot be used as an operand for inline asm
+        asm!("", out("$tp") _);
+        //~^ ERROR invalid register `$tp`: reserved for TLS
+        asm!("", out("$sp") _);
+        //~^ ERROR invalid register `$sp`: the stack pointer cannot be used as an operand for inline asm
+        asm!("", out("$r21") _);
+        //~^ ERROR invalid register `$r21`: reserved by the ABI
+        asm!("", out("$fp") _);
+        //~^ ERROR invalid register `$fp`: the frame pointer cannot be used as an operand for inline asm
+        asm!("", out("$r31") _);
+        //~^ ERROR invalid register `$r31`: $r31 is used internally by LLVM and cannot be used as an operand for inline asm
+
+        asm!("", out("$f0") _); // ok
+        asm!("/* {} */", in(freg) f);
+        //[loongarch64_lp64s]~^ ERROR register class `freg` requires at least one of the following target features: d, f
+        asm!("/* {} */", out(freg) _);
+        //[loongarch64_lp64s]~^ ERROR register class `freg` requires at least one of the following target features: d, f
+        asm!("/* {} */", in(freg) d);
+        //[loongarch64_lp64s]~^ ERROR register class `freg` requires at least one of the following target features: d, f
+        asm!("/* {} */", out(freg) d);
+        //[loongarch64_lp64s]~^ ERROR register class `freg` requires at least one of the following target features: d, f
+    }
+}
diff --git a/tests/ui/c-variadic/feature-gate-extended_varargs_abi_support.rs b/tests/ui/c-variadic/feature-gate-extended_varargs_abi_support.rs
deleted file mode 100644
index d47a8e085fd..00000000000
--- a/tests/ui/c-variadic/feature-gate-extended_varargs_abi_support.rs
+++ /dev/null
@@ -1,19 +0,0 @@
-//@ only-x86_64
-
-fn efiapi(f: extern "efiapi" fn(usize, ...)) {
-    //~^ ERROR: C-variadic function must have a compatible calling convention, like `C` or `cdecl`
-    //~^^ ERROR: using calling conventions other than `C` or `cdecl` for varargs functions is unstable
-    f(22, 44);
-}
-fn sysv(f: extern "sysv64" fn(usize, ...)) {
-    //~^ ERROR: C-variadic function must have a compatible calling convention, like `C` or `cdecl`
-    //~^^ ERROR: using calling conventions other than `C` or `cdecl` for varargs functions is unstable
-    f(22, 44);
-}
-fn win(f: extern "win64" fn(usize, ...)) {
-    //~^ ERROR: C-variadic function must have a compatible calling convention, like `C` or `cdecl`
-    //~^^ ERROR: using calling conventions other than `C` or `cdecl` for varargs functions is unstable
-    f(22, 44);
-}
-
-fn main() {}
diff --git a/tests/ui/c-variadic/feature-gate-extended_varargs_abi_support.stderr b/tests/ui/c-variadic/feature-gate-extended_varargs_abi_support.stderr
deleted file mode 100644
index 41be3784245..00000000000
--- a/tests/ui/c-variadic/feature-gate-extended_varargs_abi_support.stderr
+++ /dev/null
@@ -1,52 +0,0 @@
-error[E0658]: using calling conventions other than `C` or `cdecl` for varargs functions is unstable
-  --> $DIR/feature-gate-extended_varargs_abi_support.rs:3:14
-   |
-LL | fn efiapi(f: extern "efiapi" fn(usize, ...)) {
-   |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: see issue #100189 <https://github.com/rust-lang/rust/issues/100189> for more information
-   = help: add `#![feature(extended_varargs_abi_support)]` to the crate attributes to enable
-   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
-
-error[E0045]: C-variadic function must have a compatible calling convention, like `C` or `cdecl`
-  --> $DIR/feature-gate-extended_varargs_abi_support.rs:3:14
-   |
-LL | fn efiapi(f: extern "efiapi" fn(usize, ...)) {
-   |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ C-variadic function must have a compatible calling convention
-
-error[E0658]: using calling conventions other than `C` or `cdecl` for varargs functions is unstable
-  --> $DIR/feature-gate-extended_varargs_abi_support.rs:8:12
-   |
-LL | fn sysv(f: extern "sysv64" fn(usize, ...)) {
-   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: see issue #100189 <https://github.com/rust-lang/rust/issues/100189> for more information
-   = help: add `#![feature(extended_varargs_abi_support)]` to the crate attributes to enable
-   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
-
-error[E0045]: C-variadic function must have a compatible calling convention, like `C` or `cdecl`
-  --> $DIR/feature-gate-extended_varargs_abi_support.rs:8:12
-   |
-LL | fn sysv(f: extern "sysv64" fn(usize, ...)) {
-   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ C-variadic function must have a compatible calling convention
-
-error[E0658]: using calling conventions other than `C` or `cdecl` for varargs functions is unstable
-  --> $DIR/feature-gate-extended_varargs_abi_support.rs:13:11
-   |
-LL | fn win(f: extern "win64" fn(usize, ...)) {
-   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: see issue #100189 <https://github.com/rust-lang/rust/issues/100189> for more information
-   = help: add `#![feature(extended_varargs_abi_support)]` to the crate attributes to enable
-   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
-
-error[E0045]: C-variadic function must have a compatible calling convention, like `C` or `cdecl`
-  --> $DIR/feature-gate-extended_varargs_abi_support.rs:13:11
-   |
-LL | fn win(f: extern "win64" fn(usize, ...)) {
-   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ C-variadic function must have a compatible calling convention
-
-error: aborting due to 6 previous errors
-
-Some errors have detailed explanations: E0045, E0658.
-For more information about an error, try `rustc --explain E0045`.
diff --git a/tests/ui/c-variadic/variadic-ffi-1.stderr b/tests/ui/c-variadic/variadic-ffi-1.stderr
index 194710dfd21..7a54d043356 100644
--- a/tests/ui/c-variadic/variadic-ffi-1.stderr
+++ b/tests/ui/c-variadic/variadic-ffi-1.stderr
@@ -1,4 +1,4 @@
-error[E0045]: C-variadic function must have a compatible calling convention, like `C` or `cdecl`
+error[E0045]: C-variadic function must have a compatible calling convention, like `C`, `cdecl`, `system`, `aapcs`, `win64`, `sysv64` or `efiapi`
   --> $DIR/variadic-ffi-1.rs:9:5
    |
 LL |     fn printf(_: *const u8, ...);
diff --git a/tests/ui/c-variadic/variadic-ffi-2-arm.rs b/tests/ui/c-variadic/variadic-ffi-2-arm.rs
index 3b0a71007a0..82f9df5053c 100644
--- a/tests/ui/c-variadic/variadic-ffi-2-arm.rs
+++ b/tests/ui/c-variadic/variadic-ffi-2-arm.rs
@@ -1,6 +1,5 @@
 //@ only-arm
 //@ build-pass
-#![feature(extended_varargs_abi_support)]
 
 fn aapcs(f: extern "aapcs" fn(usize, ...)) {
     f(22, 44);
diff --git a/tests/ui/c-variadic/variadic-ffi-2.rs b/tests/ui/c-variadic/variadic-ffi-2.rs
index bafb7e2b20c..17a1065279f 100644
--- a/tests/ui/c-variadic/variadic-ffi-2.rs
+++ b/tests/ui/c-variadic/variadic-ffi-2.rs
@@ -1,5 +1,4 @@
 //@ ignore-arm stdcall isn't supported
-#![feature(extended_varargs_abi_support)]
 
 #[allow(unsupported_fn_ptr_calling_conventions)]
 fn baz(f: extern "stdcall" fn(usize, ...)) {
diff --git a/tests/ui/c-variadic/variadic-ffi-2.stderr b/tests/ui/c-variadic/variadic-ffi-2.stderr
index e52de93a926..fbf273b1f1d 100644
--- a/tests/ui/c-variadic/variadic-ffi-2.stderr
+++ b/tests/ui/c-variadic/variadic-ffi-2.stderr
@@ -1,5 +1,5 @@
 error[E0045]: C-variadic function must have a compatible calling convention, like `C`, `cdecl`, `system`, `aapcs`, `win64`, `sysv64` or `efiapi`
-  --> $DIR/variadic-ffi-2.rs:5:11
+  --> $DIR/variadic-ffi-2.rs:4:11
    |
 LL | fn baz(f: extern "stdcall" fn(usize, ...)) {
    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ C-variadic function must have a compatible calling convention
diff --git a/tests/ui/cmse-nonsecure/cmse-nonsecure-call/generics.rs b/tests/ui/cmse-nonsecure/cmse-nonsecure-call/generics.rs
index 9e0ffa75c22..da1327dace5 100644
--- a/tests/ui/cmse-nonsecure/cmse-nonsecure-call/generics.rs
+++ b/tests/ui/cmse-nonsecure/cmse-nonsecure-call/generics.rs
@@ -39,4 +39,4 @@ type WithTransparentTraitObject =
 //~^ ERROR return value of `"C-cmse-nonsecure-call"` function too large to pass via registers [E0798]
 
 type WithVarArgs = extern "C-cmse-nonsecure-call" fn(u32, ...);
-//~^ ERROR C-variadic function must have a compatible calling convention, like `C` or `cdecl` [E0045]
+//~^ ERROR C-variadic function must have a compatible calling convention, like `C`, `cdecl`, `system`, `aapcs`, `win64`, `sysv64` or `efiapi` [E0045]
diff --git a/tests/ui/cmse-nonsecure/cmse-nonsecure-call/generics.stderr b/tests/ui/cmse-nonsecure/cmse-nonsecure-call/generics.stderr
index 7cb8e135ea3..f20e67e3d94 100644
--- a/tests/ui/cmse-nonsecure/cmse-nonsecure-call/generics.stderr
+++ b/tests/ui/cmse-nonsecure/cmse-nonsecure-call/generics.stderr
@@ -68,7 +68,7 @@ LL |     extern "C-cmse-nonsecure-call" fn(WrapperTransparent) -> WrapperTranspa
    = note: functions with the `"C-cmse-nonsecure-call"` ABI must pass their result via the available return registers
    = note: the result must either be a (transparently wrapped) i64, u64 or f64, or be at most 4 bytes in size
 
-error[E0045]: C-variadic function must have a compatible calling convention, like `C` or `cdecl`
+error[E0045]: C-variadic function must have a compatible calling convention, like `C`, `cdecl`, `system`, `aapcs`, `win64`, `sysv64` or `efiapi`
   --> $DIR/generics.rs:41:20
    |
 LL | type WithVarArgs = extern "C-cmse-nonsecure-call" fn(u32, ...);
diff --git a/tests/ui/coroutine/async-gen-deduce-yield.rs b/tests/ui/coroutine/async-gen-deduce-yield.rs
index aee920e9773..f85e4a52e9b 100644
--- a/tests/ui/coroutine/async-gen-deduce-yield.rs
+++ b/tests/ui/coroutine/async-gen-deduce-yield.rs
@@ -1,4 +1,4 @@
-//@ compile-flags: --edition 2024 -Zunstable-options
+//@ compile-flags: --edition 2024
 //@ check-pass
 
 #![feature(async_iterator, gen_blocks)]
diff --git a/tests/ui/coroutine/async-gen-yield-ty-is-unit.rs b/tests/ui/coroutine/async-gen-yield-ty-is-unit.rs
index 62b9bafcd60..3875e26b544 100644
--- a/tests/ui/coroutine/async-gen-yield-ty-is-unit.rs
+++ b/tests/ui/coroutine/async-gen-yield-ty-is-unit.rs
@@ -1,4 +1,4 @@
-//@ compile-flags: --edition 2024 -Zunstable-options
+//@ compile-flags: --edition 2024
 //@ check-pass
 
 #![feature(async_iterator, gen_blocks, noop_waker)]
diff --git a/tests/ui/drop/drop_order.rs b/tests/ui/drop/drop_order.rs
index 7a999c7c330..d1a5b9bc5e2 100644
--- a/tests/ui/drop/drop_order.rs
+++ b/tests/ui/drop/drop_order.rs
@@ -2,7 +2,6 @@
 //@ compile-flags: -Z validate-mir
 //@ revisions: edition2021 edition2024
 //@ [edition2021] edition: 2021
-//@ [edition2024] compile-flags: -Z unstable-options
 //@ [edition2024] edition: 2024
 
 #![feature(let_chains)]
diff --git a/tests/ui/drop/lint-if-let-rescope-gated.edition2021.stderr b/tests/ui/drop/lint-if-let-rescope-gated.edition2021.stderr
index 48b7f3e11a6..7f9a0159950 100644
--- a/tests/ui/drop/lint-if-let-rescope-gated.edition2021.stderr
+++ b/tests/ui/drop/lint-if-let-rescope-gated.edition2021.stderr
@@ -1,5 +1,5 @@
 error: `if let` assigns a shorter lifetime since Edition 2024
-  --> $DIR/lint-if-let-rescope-gated.rs:27:8
+  --> $DIR/lint-if-let-rescope-gated.rs:26:8
    |
 LL |     if let Some(_value) = Droppy.get() {
    |        ^^^^^^^^^^^^^^^^^^^------^^^^^^
@@ -9,12 +9,12 @@ LL |     if let Some(_value) = Droppy.get() {
    = warning: this changes meaning in Rust 2024
    = note: for more information, see issue #124085 <https://github.com/rust-lang/rust/issues/124085>
 help: the value is now dropped here in Edition 2024
-  --> $DIR/lint-if-let-rescope-gated.rs:31:5
+  --> $DIR/lint-if-let-rescope-gated.rs:30:5
    |
 LL |     } else {
    |     ^
 note: the lint level is defined here
-  --> $DIR/lint-if-let-rescope-gated.rs:11:9
+  --> $DIR/lint-if-let-rescope-gated.rs:10:9
    |
 LL | #![deny(if_let_rescope)]
    |         ^^^^^^^^^^^^^^
diff --git a/tests/ui/drop/lint-if-let-rescope-gated.rs b/tests/ui/drop/lint-if-let-rescope-gated.rs
index ba0246573b4..f5538a37eef 100644
--- a/tests/ui/drop/lint-if-let-rescope-gated.rs
+++ b/tests/ui/drop/lint-if-let-rescope-gated.rs
@@ -5,7 +5,6 @@
 //@ revisions: edition2021 edition2024
 //@ [edition2021] edition: 2021
 //@ [edition2024] edition: 2024
-//@ [edition2024] compile-flags: -Zunstable-options
 //@ [edition2024] check-pass
 
 #![deny(if_let_rescope)]
diff --git a/tests/ui/drop/tail-expr-drop-order-negative.edition2024.stderr b/tests/ui/drop/tail-expr-drop-order-negative.edition2024.stderr
index bcce796570e..2c0b238eb5f 100644
--- a/tests/ui/drop/tail-expr-drop-order-negative.edition2024.stderr
+++ b/tests/ui/drop/tail-expr-drop-order-negative.edition2024.stderr
@@ -1,5 +1,5 @@
 error[E0716]: temporary value dropped while borrowed
-  --> $DIR/tail-expr-drop-order-negative.rs:9:15
+  --> $DIR/tail-expr-drop-order-negative.rs:8:15
    |
 LL |     x.replace(std::cell::RefCell::new(123).borrow()).is_some()
    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^                   - temporary value is freed at the end of this statement
diff --git a/tests/ui/drop/tail-expr-drop-order-negative.rs b/tests/ui/drop/tail-expr-drop-order-negative.rs
index 5ad04d0a67e..3b20691f8ea 100644
--- a/tests/ui/drop/tail-expr-drop-order-negative.rs
+++ b/tests/ui/drop/tail-expr-drop-order-negative.rs
@@ -1,5 +1,4 @@
 //@ revisions: edition2021 edition2024
-//@ [edition2024] compile-flags: -Zunstable-options
 //@ [edition2024] edition: 2024
 //@ [edition2021] check-pass
 
diff --git a/tests/ui/editions/never-type-fallback-breaking.e2021.fixed b/tests/ui/editions/never-type-fallback-breaking.e2021.fixed
index 75bc598d17b..91d30de74c7 100644
--- a/tests/ui/editions/never-type-fallback-breaking.e2021.fixed
+++ b/tests/ui/editions/never-type-fallback-breaking.e2021.fixed
@@ -2,7 +2,6 @@
 //
 //@[e2021] edition: 2021
 //@[e2024] edition: 2024
-//@[e2024] compile-flags: -Zunstable-options
 //
 //@[e2021] run-pass
 //@[e2021] run-rustfix
diff --git a/tests/ui/editions/never-type-fallback-breaking.e2021.stderr b/tests/ui/editions/never-type-fallback-breaking.e2021.stderr
index 454e88d4569..6fdb548c431 100644
--- a/tests/ui/editions/never-type-fallback-breaking.e2021.stderr
+++ b/tests/ui/editions/never-type-fallback-breaking.e2021.stderr
@@ -1,5 +1,5 @@
 warning: this function depends on never type fallback being `()`
-  --> $DIR/never-type-fallback-breaking.rs:17:1
+  --> $DIR/never-type-fallback-breaking.rs:16:1
    |
 LL | fn m() {
    | ^^^^^^
@@ -8,7 +8,7 @@ LL | fn m() {
    = note: for more information, see issue #123748 <https://github.com/rust-lang/rust/issues/123748>
    = help: specify the types explicitly
 note: in edition 2024, the requirement `!: Default` will fail
-  --> $DIR/never-type-fallback-breaking.rs:21:17
+  --> $DIR/never-type-fallback-breaking.rs:20:17
    |
 LL |         true => Default::default(),
    |                 ^^^^^^^^^^^^^^^^^^
@@ -19,7 +19,7 @@ LL |     let x: () = match true {
    |          ++++
 
 warning: this function depends on never type fallback being `()`
-  --> $DIR/never-type-fallback-breaking.rs:29:1
+  --> $DIR/never-type-fallback-breaking.rs:28:1
    |
 LL | fn q() -> Option<()> {
    | ^^^^^^^^^^^^^^^^^^^^
@@ -28,7 +28,7 @@ LL | fn q() -> Option<()> {
    = note: for more information, see issue #123748 <https://github.com/rust-lang/rust/issues/123748>
    = help: specify the types explicitly
 note: in edition 2024, the requirement `!: Default` will fail
-  --> $DIR/never-type-fallback-breaking.rs:36:5
+  --> $DIR/never-type-fallback-breaking.rs:35:5
    |
 LL |     deserialize()?;
    |     ^^^^^^^^^^^^^
@@ -38,7 +38,7 @@ LL |     deserialize::<()>()?;
    |                ++++++
 
 warning: this function depends on never type fallback being `()`
-  --> $DIR/never-type-fallback-breaking.rs:46:1
+  --> $DIR/never-type-fallback-breaking.rs:45:1
    |
 LL | fn meow() -> Result<(), ()> {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -47,7 +47,7 @@ LL | fn meow() -> Result<(), ()> {
    = note: for more information, see issue #123748 <https://github.com/rust-lang/rust/issues/123748>
    = help: specify the types explicitly
 note: in edition 2024, the requirement `(): From<!>` will fail
-  --> $DIR/never-type-fallback-breaking.rs:49:5
+  --> $DIR/never-type-fallback-breaking.rs:48:5
    |
 LL |     help(1)?;
    |     ^^^^^^^
diff --git a/tests/ui/editions/never-type-fallback-breaking.e2024.stderr b/tests/ui/editions/never-type-fallback-breaking.e2024.stderr
index 6258247f8b2..9d79dfb4099 100644
--- a/tests/ui/editions/never-type-fallback-breaking.e2024.stderr
+++ b/tests/ui/editions/never-type-fallback-breaking.e2024.stderr
@@ -1,5 +1,5 @@
 error[E0277]: the trait bound `!: Default` is not satisfied
-  --> $DIR/never-type-fallback-breaking.rs:21:17
+  --> $DIR/never-type-fallback-breaking.rs:20:17
    |
 LL |         true => Default::default(),
    |                 ^^^^^^^^^^^^^^^^^^ the trait `Default` is not implemented for `!`
@@ -8,7 +8,7 @@ LL |         true => Default::default(),
    = help: did you intend to use the type `()` here instead?
 
 error[E0277]: the trait bound `!: Default` is not satisfied
-  --> $DIR/never-type-fallback-breaking.rs:36:5
+  --> $DIR/never-type-fallback-breaking.rs:35:5
    |
 LL |     deserialize()?;
    |     ^^^^^^^^^^^^^ the trait `Default` is not implemented for `!`
@@ -16,13 +16,13 @@ LL |     deserialize()?;
    = note: this error might have been caused by changes to Rust's type-inference algorithm (see issue #48950 <https://github.com/rust-lang/rust/issues/48950> for more information)
    = help: did you intend to use the type `()` here instead?
 note: required by a bound in `deserialize`
-  --> $DIR/never-type-fallback-breaking.rs:32:23
+  --> $DIR/never-type-fallback-breaking.rs:31:23
    |
 LL |     fn deserialize<T: Default>() -> Option<T> {
    |                       ^^^^^^^ required by this bound in `deserialize`
 
 error[E0277]: the trait bound `(): From<!>` is not satisfied
-  --> $DIR/never-type-fallback-breaking.rs:49:5
+  --> $DIR/never-type-fallback-breaking.rs:48:5
    |
 LL |     help(1)?;
    |     ^^^^^^^ the trait `From<!>` is not implemented for `()`
@@ -39,7 +39,7 @@ LL |     help(1)?;
            and 4 others
    = note: required for `!` to implement `Into<()>`
 note: required by a bound in `help`
-  --> $DIR/never-type-fallback-breaking.rs:43:20
+  --> $DIR/never-type-fallback-breaking.rs:42:20
    |
 LL | fn help<'a: 'a, T: Into<()>, U>(_: U) -> Result<T, ()> {
    |                    ^^^^^^^^ required by this bound in `help`
diff --git a/tests/ui/editions/never-type-fallback-breaking.rs b/tests/ui/editions/never-type-fallback-breaking.rs
index 32e83e74139..24e33ff6bf6 100644
--- a/tests/ui/editions/never-type-fallback-breaking.rs
+++ b/tests/ui/editions/never-type-fallback-breaking.rs
@@ -2,7 +2,6 @@
 //
 //@[e2021] edition: 2021
 //@[e2024] edition: 2024
-//@[e2024] compile-flags: -Zunstable-options
 //
 //@[e2021] run-pass
 //@[e2021] run-rustfix
diff --git a/tests/ui/editions/never-type-fallback.rs b/tests/ui/editions/never-type-fallback.rs
index a5b75219295..987fb305763 100644
--- a/tests/ui/editions/never-type-fallback.rs
+++ b/tests/ui/editions/never-type-fallback.rs
@@ -2,7 +2,6 @@
 //
 //@[e2021] edition: 2021
 //@[e2024] edition: 2024
-//@[e2024] compile-flags: -Zunstable-options
 //
 //@ run-pass
 //@ check-run-results
diff --git a/tests/ui/error-codes/E0045.stderr b/tests/ui/error-codes/E0045.stderr
index 25b2f2654da..b8ee31a4049 100644
--- a/tests/ui/error-codes/E0045.stderr
+++ b/tests/ui/error-codes/E0045.stderr
@@ -1,4 +1,4 @@
-error[E0045]: C-variadic function must have a compatible calling convention, like `C` or `cdecl`
+error[E0045]: C-variadic function must have a compatible calling convention, like `C`, `cdecl`, `system`, `aapcs`, `win64`, `sysv64` or `efiapi`
   --> $DIR/E0045.rs:1:17
    |
 LL | extern "Rust" { fn foo(x: u8, ...); }
diff --git a/tests/ui/hello.rs b/tests/ui/hello.rs
index d23cbb61157..f329ee086f9 100644
--- a/tests/ui/hello.rs
+++ b/tests/ui/hello.rs
@@ -5,8 +5,6 @@
 //@[e2021] edition:2021
 //@[e2024] edition:2024
 
-//@[e2024] compile-flags: -Zunstable-options
-
 fn main() {
     println!("hello");
 }
diff --git a/tests/ui/impl-trait/variance.e2024.stderr b/tests/ui/impl-trait/variance.e2024.stderr
index 011ab3259c4..361a165da66 100644
--- a/tests/ui/impl-trait/variance.e2024.stderr
+++ b/tests/ui/impl-trait/variance.e2024.stderr
@@ -1,23 +1,23 @@
 error: ['a: *, 'a: o]
-  --> $DIR/variance.rs:14:36
+  --> $DIR/variance.rs:13:36
    |
 LL | fn not_captured_early<'a: 'a>() -> impl Sized {}
    |                                    ^^^^^^^^^^
 
 error: ['a: *, 'a: o]
-  --> $DIR/variance.rs:19:32
+  --> $DIR/variance.rs:18:32
    |
 LL | fn captured_early<'a: 'a>() -> impl Sized + Captures<'a> {}
    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^
 
 error: ['a: o]
-  --> $DIR/variance.rs:21:40
+  --> $DIR/variance.rs:20:40
    |
 LL | fn not_captured_late<'a>(_: &'a ()) -> impl Sized {}
    |                                        ^^^^^^^^^^
 
 error: ['a: o]
-  --> $DIR/variance.rs:26:36
+  --> $DIR/variance.rs:25:36
    |
 LL | fn captured_late<'a>(_: &'a ()) -> impl Sized + Captures<'a> {}
    |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/tests/ui/impl-trait/variance.new.stderr b/tests/ui/impl-trait/variance.new.stderr
index 011ab3259c4..361a165da66 100644
--- a/tests/ui/impl-trait/variance.new.stderr
+++ b/tests/ui/impl-trait/variance.new.stderr
@@ -1,23 +1,23 @@
 error: ['a: *, 'a: o]
-  --> $DIR/variance.rs:14:36
+  --> $DIR/variance.rs:13:36
    |
 LL | fn not_captured_early<'a: 'a>() -> impl Sized {}
    |                                    ^^^^^^^^^^
 
 error: ['a: *, 'a: o]
-  --> $DIR/variance.rs:19:32
+  --> $DIR/variance.rs:18:32
    |
 LL | fn captured_early<'a: 'a>() -> impl Sized + Captures<'a> {}
    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^
 
 error: ['a: o]
-  --> $DIR/variance.rs:21:40
+  --> $DIR/variance.rs:20:40
    |
 LL | fn not_captured_late<'a>(_: &'a ()) -> impl Sized {}
    |                                        ^^^^^^^^^^
 
 error: ['a: o]
-  --> $DIR/variance.rs:26:36
+  --> $DIR/variance.rs:25:36
    |
 LL | fn captured_late<'a>(_: &'a ()) -> impl Sized + Captures<'a> {}
    |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/tests/ui/impl-trait/variance.old.stderr b/tests/ui/impl-trait/variance.old.stderr
index ac3bcd2723f..578d6fd14cd 100644
--- a/tests/ui/impl-trait/variance.old.stderr
+++ b/tests/ui/impl-trait/variance.old.stderr
@@ -1,23 +1,23 @@
 error: ['a: *]
-  --> $DIR/variance.rs:14:36
+  --> $DIR/variance.rs:13:36
    |
 LL | fn not_captured_early<'a: 'a>() -> impl Sized {}
    |                                    ^^^^^^^^^^
 
 error: ['a: *, 'a: o]
-  --> $DIR/variance.rs:19:32
+  --> $DIR/variance.rs:18:32
    |
 LL | fn captured_early<'a: 'a>() -> impl Sized + Captures<'a> {}
    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^
 
 error: []
-  --> $DIR/variance.rs:21:40
+  --> $DIR/variance.rs:20:40
    |
 LL | fn not_captured_late<'a>(_: &'a ()) -> impl Sized {}
    |                                        ^^^^^^^^^^
 
 error: ['a: o]
-  --> $DIR/variance.rs:26:36
+  --> $DIR/variance.rs:25:36
    |
 LL | fn captured_late<'a>(_: &'a ()) -> impl Sized + Captures<'a> {}
    |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/tests/ui/impl-trait/variance.rs b/tests/ui/impl-trait/variance.rs
index 43f7207a904..1e359f033ff 100644
--- a/tests/ui/impl-trait/variance.rs
+++ b/tests/ui/impl-trait/variance.rs
@@ -1,6 +1,5 @@
 //@ revisions: old new e2024
 //@[e2024] edition: 2024
-//@[e2024] compile-flags: -Z unstable-options
 
 #![cfg_attr(new, feature(lifetime_capture_rules_2024))]
 
diff --git a/tests/ui/lifetimes/raw/gen-lt.e2024.stderr b/tests/ui/lifetimes/raw/gen-lt.e2024.stderr
index 232453df8ef..0f184853ece 100644
--- a/tests/ui/lifetimes/raw/gen-lt.e2024.stderr
+++ b/tests/ui/lifetimes/raw/gen-lt.e2024.stderr
@@ -1,5 +1,5 @@
 error: lifetimes cannot use keyword names
-  --> $DIR/gen-lt.rs:11:11
+  --> $DIR/gen-lt.rs:10:11
    |
 LL | fn gen_lt<'gen>() {}
    |           ^^^^
diff --git a/tests/ui/lifetimes/raw/gen-lt.rs b/tests/ui/lifetimes/raw/gen-lt.rs
index 4f3ede5b4a2..3c33dc285f0 100644
--- a/tests/ui/lifetimes/raw/gen-lt.rs
+++ b/tests/ui/lifetimes/raw/gen-lt.rs
@@ -2,7 +2,6 @@
 
 //@[e2021] edition:2021
 //@[e2024] edition:2024
-//@[e2024] compile-flags: -Zunstable-options
 
 //@[e2021] check-pass
 
diff --git a/tests/ui/lifetimes/refcell-in-tail-expr.edition2021.stderr b/tests/ui/lifetimes/refcell-in-tail-expr.edition2021.stderr
index 157a1c5e09b..6d7000a1370 100644
--- a/tests/ui/lifetimes/refcell-in-tail-expr.edition2021.stderr
+++ b/tests/ui/lifetimes/refcell-in-tail-expr.edition2021.stderr
@@ -1,5 +1,5 @@
 error[E0597]: `cell` does not live long enough
-  --> $DIR/refcell-in-tail-expr.rs:10:27
+  --> $DIR/refcell-in-tail-expr.rs:9:27
    |
 LL |     let cell = std::cell::RefCell::new(0u8);
    |         ---- binding `cell` declared here
diff --git a/tests/ui/lifetimes/refcell-in-tail-expr.rs b/tests/ui/lifetimes/refcell-in-tail-expr.rs
index 595e951f373..2cca7acbf5a 100644
--- a/tests/ui/lifetimes/refcell-in-tail-expr.rs
+++ b/tests/ui/lifetimes/refcell-in-tail-expr.rs
@@ -1,7 +1,6 @@
 //@ revisions: edition2021 edition2024
 //@ [edition2021] edition: 2021
 //@ [edition2024] edition: 2024
-//@ [edition2024] compile-flags: -Zunstable-options
 //@ [edition2024] check-pass
 
 fn main() {
diff --git a/tests/ui/lifetimes/shorter-tail-expr-lifetime.edition2021.stderr b/tests/ui/lifetimes/shorter-tail-expr-lifetime.edition2021.stderr
index 3c074c5c3a2..ac23c67a8e1 100644
--- a/tests/ui/lifetimes/shorter-tail-expr-lifetime.edition2021.stderr
+++ b/tests/ui/lifetimes/shorter-tail-expr-lifetime.edition2021.stderr
@@ -1,5 +1,5 @@
 error[E0597]: `c` does not live long enough
-  --> $DIR/shorter-tail-expr-lifetime.rs:8:5
+  --> $DIR/shorter-tail-expr-lifetime.rs:7:5
    |
 LL |     let c = std::cell::RefCell::new("..");
    |         - binding `c` declared here
diff --git a/tests/ui/lifetimes/shorter-tail-expr-lifetime.rs b/tests/ui/lifetimes/shorter-tail-expr-lifetime.rs
index 4195a8b6c32..25c530d4391 100644
--- a/tests/ui/lifetimes/shorter-tail-expr-lifetime.rs
+++ b/tests/ui/lifetimes/shorter-tail-expr-lifetime.rs
@@ -1,5 +1,4 @@
 //@ revisions: edition2021 edition2024
-//@ [edition2024] compile-flags: -Zunstable-options
 //@ [edition2024] edition: 2024
 //@ [edition2024] run-pass
 
diff --git a/tests/ui/lifetimes/tail-expr-lock-poisoning.rs b/tests/ui/lifetimes/tail-expr-lock-poisoning.rs
index ec74596a08d..6af6655149b 100644
--- a/tests/ui/lifetimes/tail-expr-lock-poisoning.rs
+++ b/tests/ui/lifetimes/tail-expr-lock-poisoning.rs
@@ -1,6 +1,5 @@
 //@ revisions: edition2021 edition2024
 //@ ignore-wasm no panic or subprocess support
-//@ [edition2024] compile-flags: -Zunstable-options
 //@ [edition2024] edition: 2024
 //@ run-pass
 //@ needs-unwind
diff --git a/tests/ui/lifetimes/temporary-lifetime-extension.rs b/tests/ui/lifetimes/temporary-lifetime-extension.rs
index d03027cf4a3..86c478af317 100644
--- a/tests/ui/lifetimes/temporary-lifetime-extension.rs
+++ b/tests/ui/lifetimes/temporary-lifetime-extension.rs
@@ -15,7 +15,6 @@
 //@ revisions: edition2021 edition2024
 //@ [edition2021] edition: 2021
 //@ [edition2024] edition: 2024
-//@ [edition2024] compile-flags: -Z unstable-options
 
 fn temp() -> (String, i32) {
     (String::from("Hello"), 1)
diff --git a/tests/ui/lint/static-mut-refs.e2021.stderr b/tests/ui/lint/static-mut-refs.e2021.stderr
index 09f560652e7..5a4e712b3c0 100644
--- a/tests/ui/lint/static-mut-refs.e2021.stderr
+++ b/tests/ui/lint/static-mut-refs.e2021.stderr
@@ -1,5 +1,5 @@
 warning: creating a shared reference to mutable static is discouraged
-  --> $DIR/static-mut-refs.rs:39:18
+  --> $DIR/static-mut-refs.rs:38:18
    |
 LL |         let _y = &X;
    |                  ^^ shared reference to mutable static
@@ -13,7 +13,7 @@ LL |         let _y = &raw const X;
    |                  ~~~~~~~~~~
 
 warning: creating a mutable reference to mutable static is discouraged
-  --> $DIR/static-mut-refs.rs:43:18
+  --> $DIR/static-mut-refs.rs:42:18
    |
 LL |         let _y = &mut X;
    |                  ^^^^^^ mutable reference to mutable static
@@ -26,7 +26,7 @@ LL |         let _y = &raw mut X;
    |                  ~~~~~~~~
 
 warning: creating a shared reference to mutable static is discouraged
-  --> $DIR/static-mut-refs.rs:51:22
+  --> $DIR/static-mut-refs.rs:50:22
    |
 LL |         let ref _a = X;
    |                      ^ shared reference to mutable static
@@ -35,7 +35,7 @@ LL |         let ref _a = X;
    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
 
 warning: creating a shared reference to mutable static is discouraged
-  --> $DIR/static-mut-refs.rs:55:25
+  --> $DIR/static-mut-refs.rs:54:25
    |
 LL |         let (_b, _c) = (&X, &Y);
    |                         ^^ shared reference to mutable static
@@ -48,7 +48,7 @@ LL |         let (_b, _c) = (&raw const X, &Y);
    |                         ~~~~~~~~~~
 
 warning: creating a shared reference to mutable static is discouraged
-  --> $DIR/static-mut-refs.rs:55:29
+  --> $DIR/static-mut-refs.rs:54:29
    |
 LL |         let (_b, _c) = (&X, &Y);
    |                             ^^ shared reference to mutable static
@@ -61,7 +61,7 @@ LL |         let (_b, _c) = (&X, &raw const Y);
    |                             ~~~~~~~~~~
 
 warning: creating a shared reference to mutable static is discouraged
-  --> $DIR/static-mut-refs.rs:61:13
+  --> $DIR/static-mut-refs.rs:60:13
    |
 LL |         foo(&X);
    |             ^^ shared reference to mutable static
@@ -74,7 +74,7 @@ LL |         foo(&raw const X);
    |             ~~~~~~~~~~
 
 warning: creating a shared reference to mutable static is discouraged
-  --> $DIR/static-mut-refs.rs:67:17
+  --> $DIR/static-mut-refs.rs:66:17
    |
 LL |         let _ = Z.len();
    |                 ^^^^^^^ shared reference to mutable static
@@ -83,7 +83,7 @@ LL |         let _ = Z.len();
    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
 
 warning: creating a shared reference to mutable static is discouraged
-  --> $DIR/static-mut-refs.rs:73:33
+  --> $DIR/static-mut-refs.rs:72:33
    |
 LL |         let _ = format!("{:?}", Z);
    |                                 ^ shared reference to mutable static
@@ -92,7 +92,7 @@ LL |         let _ = format!("{:?}", Z);
    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
 
 warning: creating a shared reference to mutable static is discouraged
-  --> $DIR/static-mut-refs.rs:77:18
+  --> $DIR/static-mut-refs.rs:76:18
    |
 LL |         let _v = &A.value;
    |                  ^^^^^^^^ shared reference to mutable static
@@ -105,7 +105,7 @@ LL |         let _v = &raw const A.value;
    |                  ~~~~~~~~~~
 
 warning: creating a shared reference to mutable static is discouraged
-  --> $DIR/static-mut-refs.rs:81:18
+  --> $DIR/static-mut-refs.rs:80:18
    |
 LL |         let _s = &A.s.value;
    |                  ^^^^^^^^^^ shared reference to mutable static
@@ -118,7 +118,7 @@ LL |         let _s = &raw const A.s.value;
    |                  ~~~~~~~~~~
 
 warning: creating a shared reference to mutable static is discouraged
-  --> $DIR/static-mut-refs.rs:85:22
+  --> $DIR/static-mut-refs.rs:84:22
    |
 LL |         let ref _v = A.value;
    |                      ^^^^^^^ shared reference to mutable static
@@ -127,7 +127,7 @@ LL |         let ref _v = A.value;
    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
 
 warning: creating a mutable reference to mutable static is discouraged
-  --> $DIR/static-mut-refs.rs:15:14
+  --> $DIR/static-mut-refs.rs:14:14
    |
 LL |         &mut ($x.0)
    |              ^^^^^^ mutable reference to mutable static
diff --git a/tests/ui/lint/static-mut-refs.e2024.stderr b/tests/ui/lint/static-mut-refs.e2024.stderr
index 2d2a4f7afe0..1b549272bd5 100644
--- a/tests/ui/lint/static-mut-refs.e2024.stderr
+++ b/tests/ui/lint/static-mut-refs.e2024.stderr
@@ -1,5 +1,5 @@
 error: creating a shared reference to mutable static is discouraged
-  --> $DIR/static-mut-refs.rs:39:18
+  --> $DIR/static-mut-refs.rs:38:18
    |
 LL |         let _y = &X;
    |                  ^^ shared reference to mutable static
@@ -13,7 +13,7 @@ LL |         let _y = &raw const X;
    |                  ~~~~~~~~~~
 
 error: creating a mutable reference to mutable static is discouraged
-  --> $DIR/static-mut-refs.rs:43:18
+  --> $DIR/static-mut-refs.rs:42:18
    |
 LL |         let _y = &mut X;
    |                  ^^^^^^ mutable reference to mutable static
@@ -26,7 +26,7 @@ LL |         let _y = &raw mut X;
    |                  ~~~~~~~~
 
 error: creating a shared reference to mutable static is discouraged
-  --> $DIR/static-mut-refs.rs:51:22
+  --> $DIR/static-mut-refs.rs:50:22
    |
 LL |         let ref _a = X;
    |                      ^ shared reference to mutable static
@@ -35,7 +35,7 @@ LL |         let ref _a = X;
    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
 
 error: creating a shared reference to mutable static is discouraged
-  --> $DIR/static-mut-refs.rs:55:25
+  --> $DIR/static-mut-refs.rs:54:25
    |
 LL |         let (_b, _c) = (&X, &Y);
    |                         ^^ shared reference to mutable static
@@ -48,7 +48,7 @@ LL |         let (_b, _c) = (&raw const X, &Y);
    |                         ~~~~~~~~~~
 
 error: creating a shared reference to mutable static is discouraged
-  --> $DIR/static-mut-refs.rs:55:29
+  --> $DIR/static-mut-refs.rs:54:29
    |
 LL |         let (_b, _c) = (&X, &Y);
    |                             ^^ shared reference to mutable static
@@ -61,7 +61,7 @@ LL |         let (_b, _c) = (&X, &raw const Y);
    |                             ~~~~~~~~~~
 
 error: creating a shared reference to mutable static is discouraged
-  --> $DIR/static-mut-refs.rs:61:13
+  --> $DIR/static-mut-refs.rs:60:13
    |
 LL |         foo(&X);
    |             ^^ shared reference to mutable static
@@ -74,7 +74,7 @@ LL |         foo(&raw const X);
    |             ~~~~~~~~~~
 
 error: creating a shared reference to mutable static is discouraged
-  --> $DIR/static-mut-refs.rs:67:17
+  --> $DIR/static-mut-refs.rs:66:17
    |
 LL |         let _ = Z.len();
    |                 ^^^^^^^ shared reference to mutable static
@@ -83,7 +83,7 @@ LL |         let _ = Z.len();
    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
 
 error: creating a shared reference to mutable static is discouraged
-  --> $DIR/static-mut-refs.rs:73:33
+  --> $DIR/static-mut-refs.rs:72:33
    |
 LL |         let _ = format!("{:?}", Z);
    |                                 ^ shared reference to mutable static
@@ -92,7 +92,7 @@ LL |         let _ = format!("{:?}", Z);
    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
 
 error: creating a shared reference to mutable static is discouraged
-  --> $DIR/static-mut-refs.rs:77:18
+  --> $DIR/static-mut-refs.rs:76:18
    |
 LL |         let _v = &A.value;
    |                  ^^^^^^^^ shared reference to mutable static
@@ -105,7 +105,7 @@ LL |         let _v = &raw const A.value;
    |                  ~~~~~~~~~~
 
 error: creating a shared reference to mutable static is discouraged
-  --> $DIR/static-mut-refs.rs:81:18
+  --> $DIR/static-mut-refs.rs:80:18
    |
 LL |         let _s = &A.s.value;
    |                  ^^^^^^^^^^ shared reference to mutable static
@@ -118,7 +118,7 @@ LL |         let _s = &raw const A.s.value;
    |                  ~~~~~~~~~~
 
 error: creating a shared reference to mutable static is discouraged
-  --> $DIR/static-mut-refs.rs:85:22
+  --> $DIR/static-mut-refs.rs:84:22
    |
 LL |         let ref _v = A.value;
    |                      ^^^^^^^ shared reference to mutable static
@@ -127,7 +127,7 @@ LL |         let ref _v = A.value;
    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
 
 error: creating a mutable reference to mutable static is discouraged
-  --> $DIR/static-mut-refs.rs:15:14
+  --> $DIR/static-mut-refs.rs:14:14
    |
 LL |         &mut ($x.0)
    |              ^^^^^^ mutable reference to mutable static
diff --git a/tests/ui/lint/static-mut-refs.rs b/tests/ui/lint/static-mut-refs.rs
index 3d84d7dbf40..1040dfcae7a 100644
--- a/tests/ui/lint/static-mut-refs.rs
+++ b/tests/ui/lint/static-mut-refs.rs
@@ -6,7 +6,6 @@
 //@ [e2021] run-pass
 
 //@ [e2024] edition:2024
-//@ [e2024] compile-flags: -Zunstable-options
 
 static mut FOO: (u32, u32) = (1, 2);
 
diff --git a/tests/ui/macros/macro-missing-fragment.e2015.stderr b/tests/ui/macros/macro-missing-fragment.e2015.stderr
index a068dc5c054..3d32f203d4a 100644
--- a/tests/ui/macros/macro-missing-fragment.e2015.stderr
+++ b/tests/ui/macros/macro-missing-fragment.e2015.stderr
@@ -1,11 +1,11 @@
 error: missing fragment specifier
-  --> $DIR/macro-missing-fragment.rs:9:20
+  --> $DIR/macro-missing-fragment.rs:8:20
    |
 LL |     ( $( any_token $field_rust_type )* ) => {};
    |                    ^^^^^^^^^^^^^^^^
 
 warning: missing fragment specifier
-  --> $DIR/macro-missing-fragment.rs:9:20
+  --> $DIR/macro-missing-fragment.rs:8:20
    |
 LL |     ( $( any_token $field_rust_type )* ) => {};
    |                    ^^^^^^^^^^^^^^^^
@@ -13,13 +13,13 @@ LL |     ( $( any_token $field_rust_type )* ) => {};
    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
    = note: for more information, see issue #40107 <https://github.com/rust-lang/rust/issues/40107>
 note: the lint level is defined here
-  --> $DIR/macro-missing-fragment.rs:6:9
+  --> $DIR/macro-missing-fragment.rs:5:9
    |
 LL | #![warn(missing_fragment_specifier)]
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 warning: missing fragment specifier
-  --> $DIR/macro-missing-fragment.rs:19:7
+  --> $DIR/macro-missing-fragment.rs:18:7
    |
 LL |     ( $name ) => {};
    |       ^^^^^
@@ -28,7 +28,7 @@ LL |     ( $name ) => {};
    = note: for more information, see issue #40107 <https://github.com/rust-lang/rust/issues/40107>
 
 warning: missing fragment specifier
-  --> $DIR/macro-missing-fragment.rs:26:7
+  --> $DIR/macro-missing-fragment.rs:25:7
    |
 LL |     ( $name ) => {};
    |       ^^^^^
@@ -40,7 +40,7 @@ error: aborting due to 1 previous error; 3 warnings emitted
 
 Future incompatibility report: Future breakage diagnostic:
 warning: missing fragment specifier
-  --> $DIR/macro-missing-fragment.rs:9:20
+  --> $DIR/macro-missing-fragment.rs:8:20
    |
 LL |     ( $( any_token $field_rust_type )* ) => {};
    |                    ^^^^^^^^^^^^^^^^
@@ -48,14 +48,14 @@ LL |     ( $( any_token $field_rust_type )* ) => {};
    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
    = note: for more information, see issue #40107 <https://github.com/rust-lang/rust/issues/40107>
 note: the lint level is defined here
-  --> $DIR/macro-missing-fragment.rs:6:9
+  --> $DIR/macro-missing-fragment.rs:5:9
    |
 LL | #![warn(missing_fragment_specifier)]
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Future breakage diagnostic:
 warning: missing fragment specifier
-  --> $DIR/macro-missing-fragment.rs:19:7
+  --> $DIR/macro-missing-fragment.rs:18:7
    |
 LL |     ( $name ) => {};
    |       ^^^^^
@@ -63,14 +63,14 @@ LL |     ( $name ) => {};
    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
    = note: for more information, see issue #40107 <https://github.com/rust-lang/rust/issues/40107>
 note: the lint level is defined here
-  --> $DIR/macro-missing-fragment.rs:6:9
+  --> $DIR/macro-missing-fragment.rs:5:9
    |
 LL | #![warn(missing_fragment_specifier)]
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Future breakage diagnostic:
 warning: missing fragment specifier
-  --> $DIR/macro-missing-fragment.rs:26:7
+  --> $DIR/macro-missing-fragment.rs:25:7
    |
 LL |     ( $name ) => {};
    |       ^^^^^
@@ -78,7 +78,7 @@ LL |     ( $name ) => {};
    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
    = note: for more information, see issue #40107 <https://github.com/rust-lang/rust/issues/40107>
 note: the lint level is defined here
-  --> $DIR/macro-missing-fragment.rs:6:9
+  --> $DIR/macro-missing-fragment.rs:5:9
    |
 LL | #![warn(missing_fragment_specifier)]
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/tests/ui/macros/macro-missing-fragment.e2024.stderr b/tests/ui/macros/macro-missing-fragment.e2024.stderr
index 0dc48e0c7b2..a9195063a5b 100644
--- a/tests/ui/macros/macro-missing-fragment.e2024.stderr
+++ b/tests/ui/macros/macro-missing-fragment.e2024.stderr
@@ -1,5 +1,5 @@
 error: missing fragment specifier
-  --> $DIR/macro-missing-fragment.rs:9:20
+  --> $DIR/macro-missing-fragment.rs:8:20
    |
 LL |     ( $( any_token $field_rust_type )* ) => {};
    |                    ^^^^^^^^^^^^^^^^
@@ -12,7 +12,7 @@ LL |     ( $( any_token $field_rust_type:spec )* ) => {};
    |                                    +++++
 
 error: missing fragment specifier
-  --> $DIR/macro-missing-fragment.rs:19:7
+  --> $DIR/macro-missing-fragment.rs:18:7
    |
 LL |     ( $name ) => {};
    |       ^^^^^
@@ -25,7 +25,7 @@ LL |     ( $name:spec ) => {};
    |            +++++
 
 error: missing fragment specifier
-  --> $DIR/macro-missing-fragment.rs:26:7
+  --> $DIR/macro-missing-fragment.rs:25:7
    |
 LL |     ( $name ) => {};
    |       ^^^^^
@@ -38,7 +38,7 @@ LL |     ( $name:spec ) => {};
    |            +++++
 
 error: missing fragment specifier
-  --> $DIR/macro-missing-fragment.rs:9:20
+  --> $DIR/macro-missing-fragment.rs:8:20
    |
 LL |     ( $( any_token $field_rust_type )* ) => {};
    |                    ^^^^^^^^^^^^^^^^
diff --git a/tests/ui/macros/macro-missing-fragment.rs b/tests/ui/macros/macro-missing-fragment.rs
index b7da87ae610..42387e8dbbf 100644
--- a/tests/ui/macros/macro-missing-fragment.rs
+++ b/tests/ui/macros/macro-missing-fragment.rs
@@ -1,7 +1,6 @@
 //@ revisions: e2015 e2024
 //@[e2015] edition:2015
 //@[e2024] edition:2024
-//@[e2024] compile-flags: -Zunstable-options
 
 #![warn(missing_fragment_specifier)]
 
diff --git a/tests/ui/mir/mir_let_chains_drop_order.rs b/tests/ui/mir/mir_let_chains_drop_order.rs
index 92199625207..8991c6db7b9 100644
--- a/tests/ui/mir/mir_let_chains_drop_order.rs
+++ b/tests/ui/mir/mir_let_chains_drop_order.rs
@@ -2,7 +2,6 @@
 //@ needs-unwind
 //@ revisions: edition2021 edition2024
 //@ [edition2021] edition: 2021
-//@ [edition2024] compile-flags: -Z unstable-options
 //@ [edition2024] edition: 2024
 
 // See `mir_drop_order.rs` for more information
diff --git a/tests/ui/never_type/lint-never-type-fallback-flowing-into-unsafe.e2015.stderr b/tests/ui/never_type/lint-never-type-fallback-flowing-into-unsafe.e2015.stderr
index 03bb0ca5f3a..ec1483b0aae 100644
--- a/tests/ui/never_type/lint-never-type-fallback-flowing-into-unsafe.e2015.stderr
+++ b/tests/ui/never_type/lint-never-type-fallback-flowing-into-unsafe.e2015.stderr
@@ -1,5 +1,5 @@
 warning: never type fallback affects this call to an `unsafe` function
-  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:13:18
+  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:12:18
    |
 LL |         unsafe { mem::zeroed() }
    |                  ^^^^^^^^^^^^^
@@ -14,7 +14,7 @@ LL |         unsafe { mem::zeroed::<()>() }
    |                             ++++++
 
 warning: never type fallback affects this call to an `unsafe` function
-  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:30:13
+  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:29:13
    |
 LL |             core::mem::transmute(Zst)
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -28,7 +28,7 @@ LL |             core::mem::transmute::<_, ()>(Zst)
    |                                 +++++++++
 
 warning: never type fallback affects this union access
-  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:47:18
+  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:46:18
    |
 LL |         unsafe { Union { a: () }.b }
    |                  ^^^^^^^^^^^^^^^^^
@@ -38,7 +38,7 @@ LL |         unsafe { Union { a: () }.b }
    = help: specify the type explicitly
 
 warning: never type fallback affects this raw pointer dereference
-  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:58:18
+  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:57:18
    |
 LL |         unsafe { *ptr::from_ref(&()).cast() }
    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -52,7 +52,7 @@ LL |         unsafe { *ptr::from_ref(&()).cast::<()>() }
    |                                          ++++++
 
 warning: never type fallback affects this call to an `unsafe` function
-  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:79:18
+  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:78:18
    |
 LL |         unsafe { internally_create(x) }
    |                  ^^^^^^^^^^^^^^^^^^^^
@@ -66,7 +66,7 @@ LL |         unsafe { internally_create::<()>(x) }
    |                                   ++++++
 
 warning: never type fallback affects this call to an `unsafe` function
-  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:97:18
+  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:96:18
    |
 LL |         unsafe { zeroed() }
    |                  ^^^^^^^^
@@ -80,7 +80,7 @@ LL |         let zeroed = mem::zeroed::<()>;
    |                                 ++++++
 
 warning: never type fallback affects this `unsafe` function
-  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:92:22
+  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:91:22
    |
 LL |         let zeroed = mem::zeroed;
    |                      ^^^^^^^^^^^
@@ -94,7 +94,7 @@ LL |         let zeroed = mem::zeroed::<()>;
    |                                 ++++++
 
 warning: never type fallback affects this `unsafe` function
-  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:115:17
+  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:114:17
    |
 LL |         let f = internally_create;
    |                 ^^^^^^^^^^^^^^^^^
@@ -108,7 +108,7 @@ LL |         let f = internally_create::<()>;
    |                                  ++++++
 
 warning: never type fallback affects this call to an `unsafe` method
-  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:140:13
+  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:139:13
    |
 LL |             S(marker::PhantomData).create_out_of_thin_air()
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -118,7 +118,7 @@ LL |             S(marker::PhantomData).create_out_of_thin_air()
    = help: specify the type explicitly
 
 warning: never type fallback affects this call to an `unsafe` function
-  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:158:19
+  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:157:19
    |
 LL |             match send_message::<_ /* ?0 */>() {
    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/tests/ui/never_type/lint-never-type-fallback-flowing-into-unsafe.e2024.stderr b/tests/ui/never_type/lint-never-type-fallback-flowing-into-unsafe.e2024.stderr
index cf12d699f2e..790facee09e 100644
--- a/tests/ui/never_type/lint-never-type-fallback-flowing-into-unsafe.e2024.stderr
+++ b/tests/ui/never_type/lint-never-type-fallback-flowing-into-unsafe.e2024.stderr
@@ -1,5 +1,5 @@
 error: never type fallback affects this call to an `unsafe` function
-  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:13:18
+  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:12:18
    |
 LL |         unsafe { mem::zeroed() }
    |                  ^^^^^^^^^^^^^
@@ -14,7 +14,7 @@ LL |         unsafe { mem::zeroed::<()>() }
    |                             ++++++
 
 error: never type fallback affects this call to an `unsafe` function
-  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:30:13
+  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:29:13
    |
 LL |             core::mem::transmute(Zst)
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -28,7 +28,7 @@ LL |             core::mem::transmute::<_, ()>(Zst)
    |                                 +++++++++
 
 error: never type fallback affects this union access
-  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:47:18
+  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:46:18
    |
 LL |         unsafe { Union { a: () }.b }
    |                  ^^^^^^^^^^^^^^^^^
@@ -38,7 +38,7 @@ LL |         unsafe { Union { a: () }.b }
    = help: specify the type explicitly
 
 error: never type fallback affects this raw pointer dereference
-  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:58:18
+  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:57:18
    |
 LL |         unsafe { *ptr::from_ref(&()).cast() }
    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -52,7 +52,7 @@ LL |         unsafe { *ptr::from_ref(&()).cast::<()>() }
    |                                          ++++++
 
 error: never type fallback affects this call to an `unsafe` function
-  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:79:18
+  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:78:18
    |
 LL |         unsafe { internally_create(x) }
    |                  ^^^^^^^^^^^^^^^^^^^^
@@ -66,7 +66,7 @@ LL |         unsafe { internally_create::<()>(x) }
    |                                   ++++++
 
 error: never type fallback affects this call to an `unsafe` function
-  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:97:18
+  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:96:18
    |
 LL |         unsafe { zeroed() }
    |                  ^^^^^^^^
@@ -80,7 +80,7 @@ LL |         let zeroed = mem::zeroed::<()>;
    |                                 ++++++
 
 error: never type fallback affects this `unsafe` function
-  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:92:22
+  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:91:22
    |
 LL |         let zeroed = mem::zeroed;
    |                      ^^^^^^^^^^^
@@ -94,7 +94,7 @@ LL |         let zeroed = mem::zeroed::<()>;
    |                                 ++++++
 
 error: never type fallback affects this `unsafe` function
-  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:115:17
+  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:114:17
    |
 LL |         let f = internally_create;
    |                 ^^^^^^^^^^^^^^^^^
@@ -108,7 +108,7 @@ LL |         let f = internally_create::<()>;
    |                                  ++++++
 
 error: never type fallback affects this call to an `unsafe` method
-  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:140:13
+  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:139:13
    |
 LL |             S(marker::PhantomData).create_out_of_thin_air()
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -118,7 +118,7 @@ LL |             S(marker::PhantomData).create_out_of_thin_air()
    = help: specify the type explicitly
 
 error: never type fallback affects this call to an `unsafe` function
-  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:158:19
+  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:157:19
    |
 LL |             match send_message::<_ /* ?0 */>() {
    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -136,7 +136,7 @@ LL |             match send_message::<() /* ?0 */>() {
    |                                  ~~
 
 warning: the type `!` does not permit zero-initialization
-  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:13:18
+  --> $DIR/lint-never-type-fallback-flowing-into-unsafe.rs:12:18
    |
 LL |         unsafe { mem::zeroed() }
    |                  ^^^^^^^^^^^^^ this code causes undefined behavior when executed
diff --git a/tests/ui/never_type/lint-never-type-fallback-flowing-into-unsafe.rs b/tests/ui/never_type/lint-never-type-fallback-flowing-into-unsafe.rs
index 19b51eea2f5..97e7a2f56bd 100644
--- a/tests/ui/never_type/lint-never-type-fallback-flowing-into-unsafe.rs
+++ b/tests/ui/never_type/lint-never-type-fallback-flowing-into-unsafe.rs
@@ -2,7 +2,6 @@
 //@[e2015] check-pass
 //@[e2024] check-fail
 //@[e2024] edition:2024
-//@[e2024] compile-flags: -Zunstable-options
 
 use std::{marker, mem, ptr};
 
diff --git a/tests/ui/nll/issue-54556-niconii.edition2021.stderr b/tests/ui/nll/issue-54556-niconii.edition2021.stderr
index abee09ed950..8bd559034b0 100644
--- a/tests/ui/nll/issue-54556-niconii.edition2021.stderr
+++ b/tests/ui/nll/issue-54556-niconii.edition2021.stderr
@@ -1,5 +1,5 @@
 error[E0597]: `counter` does not live long enough
-  --> $DIR/issue-54556-niconii.rs:28:20
+  --> $DIR/issue-54556-niconii.rs:27:20
    |
 LL |     let counter = Mutex;
    |         ------- binding `counter` declared here
diff --git a/tests/ui/nll/issue-54556-niconii.rs b/tests/ui/nll/issue-54556-niconii.rs
index f01e0523cbf..9d37adede6a 100644
--- a/tests/ui/nll/issue-54556-niconii.rs
+++ b/tests/ui/nll/issue-54556-niconii.rs
@@ -9,7 +9,6 @@
 //@ revisions: edition2021 edition2024
 //@ [edition2021] edition: 2021
 //@ [edition2024] edition: 2024
-//@ [edition2024] compile-flags: -Z unstable-options
 //@ [edition2024] check-pass
 
 struct Mutex;
diff --git a/tests/ui/proc-macro/macro_rules_edition_from_pm.rs b/tests/ui/proc-macro/macro_rules_edition_from_pm.rs
index 57ed54fd1df..8fc7d909749 100644
--- a/tests/ui/proc-macro/macro_rules_edition_from_pm.rs
+++ b/tests/ui/proc-macro/macro_rules_edition_from_pm.rs
@@ -6,7 +6,6 @@
 //@ revisions: edition2021 edition2024
 //@[edition2021] edition:2021
 //@[edition2024] edition:2024
-//@[edition2024] compile-flags: -Zunstable-options
 //@ check-pass
 
 // This checks how the expr fragment specifier works.
diff --git a/tests/ui/rust-2024/prelude-migration/future-poll-already-future.rs b/tests/ui/rust-2024/prelude-migration/future-poll-already-future.rs
index 7bf5118c340..0f0120b721f 100644
--- a/tests/ui/rust-2024/prelude-migration/future-poll-already-future.rs
+++ b/tests/ui/rust-2024/prelude-migration/future-poll-already-future.rs
@@ -1,7 +1,6 @@
 //@ revisions: e2021 e2024
 //@[e2021] edition: 2021
 //@[e2024] edition: 2024
-//@[e2024] compile-flags: -Zunstable-options
 //@ check-pass
 
 #![deny(rust_2024_prelude_collisions)]
diff --git a/tests/ui/rust-2024/prelude-migration/future-poll-async-block.e2021.fixed b/tests/ui/rust-2024/prelude-migration/future-poll-async-block.e2021.fixed
index 44850c8c45b..ff8c4beca6b 100644
--- a/tests/ui/rust-2024/prelude-migration/future-poll-async-block.e2021.fixed
+++ b/tests/ui/rust-2024/prelude-migration/future-poll-async-block.e2021.fixed
@@ -2,7 +2,6 @@
 //@[e2021] edition: 2021
 //@[e2021] run-rustfix
 //@[e2024] edition: 2024
-//@[e2024] compile-flags: -Zunstable-options
 //@[e2024] check-pass
 
 #![deny(rust_2024_prelude_collisions)]
diff --git a/tests/ui/rust-2024/prelude-migration/future-poll-async-block.e2021.stderr b/tests/ui/rust-2024/prelude-migration/future-poll-async-block.e2021.stderr
index 496b3197c34..15a3fa11414 100644
--- a/tests/ui/rust-2024/prelude-migration/future-poll-async-block.e2021.stderr
+++ b/tests/ui/rust-2024/prelude-migration/future-poll-async-block.e2021.stderr
@@ -1,5 +1,5 @@
 error: trait method `poll` will become ambiguous in Rust 2024
-  --> $DIR/future-poll-async-block.rs:14:5
+  --> $DIR/future-poll-async-block.rs:13:5
    |
 LL |     core::pin::pin!(async {}).poll(&mut context());
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: disambiguate the associated function: `Meow::poll(&core::pin::pin!(async {}), &mut context())`
@@ -7,7 +7,7 @@ LL |     core::pin::pin!(async {}).poll(&mut context());
    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/prelude.html>
 note: the lint level is defined here
-  --> $DIR/future-poll-async-block.rs:8:9
+  --> $DIR/future-poll-async-block.rs:7:9
    |
 LL | #![deny(rust_2024_prelude_collisions)]
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/tests/ui/rust-2024/prelude-migration/future-poll-async-block.rs b/tests/ui/rust-2024/prelude-migration/future-poll-async-block.rs
index 614e4c786c5..60b0b2689c2 100644
--- a/tests/ui/rust-2024/prelude-migration/future-poll-async-block.rs
+++ b/tests/ui/rust-2024/prelude-migration/future-poll-async-block.rs
@@ -2,7 +2,6 @@
 //@[e2021] edition: 2021
 //@[e2021] run-rustfix
 //@[e2024] edition: 2024
-//@[e2024] compile-flags: -Zunstable-options
 //@[e2024] check-pass
 
 #![deny(rust_2024_prelude_collisions)]
diff --git a/tests/ui/rust-2024/prelude-migration/future-poll-not-future-pinned.e2021.fixed b/tests/ui/rust-2024/prelude-migration/future-poll-not-future-pinned.e2021.fixed
index c96d1dcecc2..f68729e483a 100644
--- a/tests/ui/rust-2024/prelude-migration/future-poll-not-future-pinned.e2021.fixed
+++ b/tests/ui/rust-2024/prelude-migration/future-poll-not-future-pinned.e2021.fixed
@@ -2,7 +2,6 @@
 //@[e2021] edition: 2021
 //@[e2021] run-rustfix
 //@[e2024] edition: 2024
-//@[e2024] compile-flags: -Zunstable-options
 //@[e2024] check-pass
 
 #![deny(rust_2024_prelude_collisions)]
diff --git a/tests/ui/rust-2024/prelude-migration/future-poll-not-future-pinned.e2021.stderr b/tests/ui/rust-2024/prelude-migration/future-poll-not-future-pinned.e2021.stderr
index 020a00ccdec..633731c2a5a 100644
--- a/tests/ui/rust-2024/prelude-migration/future-poll-not-future-pinned.e2021.stderr
+++ b/tests/ui/rust-2024/prelude-migration/future-poll-not-future-pinned.e2021.stderr
@@ -1,5 +1,5 @@
 error: trait method `poll` will become ambiguous in Rust 2024
-  --> $DIR/future-poll-not-future-pinned.rs:18:5
+  --> $DIR/future-poll-not-future-pinned.rs:17:5
    |
 LL |     core::pin::pin!(()).poll();
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: disambiguate the associated function: `Meow::poll(&core::pin::pin!(()))`
@@ -7,7 +7,7 @@ LL |     core::pin::pin!(()).poll();
    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/prelude.html>
 note: the lint level is defined here
-  --> $DIR/future-poll-not-future-pinned.rs:8:9
+  --> $DIR/future-poll-not-future-pinned.rs:7:9
    |
 LL | #![deny(rust_2024_prelude_collisions)]
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/tests/ui/rust-2024/prelude-migration/future-poll-not-future-pinned.rs b/tests/ui/rust-2024/prelude-migration/future-poll-not-future-pinned.rs
index 21b170a5f1d..4845ef779e0 100644
--- a/tests/ui/rust-2024/prelude-migration/future-poll-not-future-pinned.rs
+++ b/tests/ui/rust-2024/prelude-migration/future-poll-not-future-pinned.rs
@@ -2,7 +2,6 @@
 //@[e2021] edition: 2021
 //@[e2021] run-rustfix
 //@[e2024] edition: 2024
-//@[e2024] compile-flags: -Zunstable-options
 //@[e2024] check-pass
 
 #![deny(rust_2024_prelude_collisions)]
diff --git a/tests/ui/rust-2024/prelude-migration/future-poll-not-future.rs b/tests/ui/rust-2024/prelude-migration/future-poll-not-future.rs
index 899b69ebfc2..36578e28b80 100644
--- a/tests/ui/rust-2024/prelude-migration/future-poll-not-future.rs
+++ b/tests/ui/rust-2024/prelude-migration/future-poll-not-future.rs
@@ -1,7 +1,6 @@
 //@ revisions: e2021 e2024
 //@[e2021] edition: 2021
 //@[e2024] edition: 2024
-//@[e2024] compile-flags: -Zunstable-options
 //@ check-pass
 
 #![deny(rust_2024_prelude_collisions)]
diff --git a/tests/ui/rust-2024/prelude-migration/into-future-adt.e2021.fixed b/tests/ui/rust-2024/prelude-migration/into-future-adt.e2021.fixed
index 0b0873eb238..03bf4ab19c1 100644
--- a/tests/ui/rust-2024/prelude-migration/into-future-adt.e2021.fixed
+++ b/tests/ui/rust-2024/prelude-migration/into-future-adt.e2021.fixed
@@ -2,7 +2,6 @@
 //@[e2021] edition: 2021
 //@[e2021] run-rustfix
 //@[e2024] edition: 2024
-//@[e2024] compile-flags: -Zunstable-options
 //@[e2024] check-pass
 
 #![deny(rust_2024_prelude_collisions)]
diff --git a/tests/ui/rust-2024/prelude-migration/into-future-adt.e2021.stderr b/tests/ui/rust-2024/prelude-migration/into-future-adt.e2021.stderr
index b74e80e2a4a..e67f07b4e46 100644
--- a/tests/ui/rust-2024/prelude-migration/into-future-adt.e2021.stderr
+++ b/tests/ui/rust-2024/prelude-migration/into-future-adt.e2021.stderr
@@ -1,5 +1,5 @@
 error: trait method `into_future` will become ambiguous in Rust 2024
-  --> $DIR/into-future-adt.rs:26:5
+  --> $DIR/into-future-adt.rs:25:5
    |
 LL |     Cat.into_future();
    |     ^^^^^^^^^^^^^^^^^ help: disambiguate the associated function: `Meow::into_future(&Cat)`
@@ -7,7 +7,7 @@ LL |     Cat.into_future();
    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/prelude.html>
 note: the lint level is defined here
-  --> $DIR/into-future-adt.rs:8:9
+  --> $DIR/into-future-adt.rs:7:9
    |
 LL | #![deny(rust_2024_prelude_collisions)]
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/tests/ui/rust-2024/prelude-migration/into-future-adt.rs b/tests/ui/rust-2024/prelude-migration/into-future-adt.rs
index 0db70930bc7..65edc88baab 100644
--- a/tests/ui/rust-2024/prelude-migration/into-future-adt.rs
+++ b/tests/ui/rust-2024/prelude-migration/into-future-adt.rs
@@ -2,7 +2,6 @@
 //@[e2021] edition: 2021
 //@[e2021] run-rustfix
 //@[e2024] edition: 2024
-//@[e2024] compile-flags: -Zunstable-options
 //@[e2024] check-pass
 
 #![deny(rust_2024_prelude_collisions)]
diff --git a/tests/ui/rust-2024/prelude-migration/into-future-already-into-future.rs b/tests/ui/rust-2024/prelude-migration/into-future-already-into-future.rs
index 6bc2ea31705..16ac89759f3 100644
--- a/tests/ui/rust-2024/prelude-migration/into-future-already-into-future.rs
+++ b/tests/ui/rust-2024/prelude-migration/into-future-already-into-future.rs
@@ -1,7 +1,6 @@
 //@ revisions: e2021 e2024
 //@[e2021] edition: 2021
 //@[e2024] edition: 2024
-//@[e2024] compile-flags: -Zunstable-options
 //@ check-pass
 
 #![deny(rust_2024_prelude_collisions)]
diff --git a/tests/ui/rust-2024/prelude-migration/into-future-not-into-future.e2021.fixed b/tests/ui/rust-2024/prelude-migration/into-future-not-into-future.e2021.fixed
index a798014d93d..4e082883395 100644
--- a/tests/ui/rust-2024/prelude-migration/into-future-not-into-future.e2021.fixed
+++ b/tests/ui/rust-2024/prelude-migration/into-future-not-into-future.e2021.fixed
@@ -2,7 +2,6 @@
 //@[e2021] edition: 2021
 //@[e2021] run-rustfix
 //@[e2024] edition: 2024
-//@[e2024] compile-flags: -Zunstable-options
 //@[e2024] check-pass
 
 #![deny(rust_2024_prelude_collisions)]
diff --git a/tests/ui/rust-2024/prelude-migration/into-future-not-into-future.e2021.stderr b/tests/ui/rust-2024/prelude-migration/into-future-not-into-future.e2021.stderr
index 6ea4580ca72..0588f5bf3f5 100644
--- a/tests/ui/rust-2024/prelude-migration/into-future-not-into-future.e2021.stderr
+++ b/tests/ui/rust-2024/prelude-migration/into-future-not-into-future.e2021.stderr
@@ -1,5 +1,5 @@
 error: trait method `into_future` will become ambiguous in Rust 2024
-  --> $DIR/into-future-not-into-future.rs:20:5
+  --> $DIR/into-future-not-into-future.rs:19:5
    |
 LL |     Cat.into_future();
    |     ^^^^^^^^^^^^^^^^^ help: disambiguate the associated function: `Meow::into_future(&Cat)`
@@ -7,7 +7,7 @@ LL |     Cat.into_future();
    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/prelude.html>
 note: the lint level is defined here
-  --> $DIR/into-future-not-into-future.rs:8:9
+  --> $DIR/into-future-not-into-future.rs:7:9
    |
 LL | #![deny(rust_2024_prelude_collisions)]
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/tests/ui/rust-2024/prelude-migration/into-future-not-into-future.rs b/tests/ui/rust-2024/prelude-migration/into-future-not-into-future.rs
index 23e81cfe6b4..f640d9b50bb 100644
--- a/tests/ui/rust-2024/prelude-migration/into-future-not-into-future.rs
+++ b/tests/ui/rust-2024/prelude-migration/into-future-not-into-future.rs
@@ -2,7 +2,6 @@
 //@[e2021] edition: 2021
 //@[e2021] run-rustfix
 //@[e2024] edition: 2024
-//@[e2024] compile-flags: -Zunstable-options
 //@[e2024] check-pass
 
 #![deny(rust_2024_prelude_collisions)]
diff --git a/tests/ui/rust-2024/unsafe-attributes/unsafe-attribute-marked.rs b/tests/ui/rust-2024/unsafe-attributes/unsafe-attribute-marked.rs
index 7c919fed976..79fba46c77f 100644
--- a/tests/ui/rust-2024/unsafe-attributes/unsafe-attribute-marked.rs
+++ b/tests/ui/rust-2024/unsafe-attributes/unsafe-attribute-marked.rs
@@ -1,7 +1,6 @@
 //@ revisions: edition2021 edition2024
 //@[edition2021] edition:2021
 //@[edition2024] edition:2024
-//@[edition2024] compile-flags: -Zunstable-options
 //@ check-pass
 
 
diff --git a/tests/ui/rust-2024/unsafe-attributes/unsafe-attributes-from-pm.rs b/tests/ui/rust-2024/unsafe-attributes/unsafe-attributes-from-pm.rs
index 4f369a8305b..e2c504e708c 100644
--- a/tests/ui/rust-2024/unsafe-attributes/unsafe-attributes-from-pm.rs
+++ b/tests/ui/rust-2024/unsafe-attributes/unsafe-attributes-from-pm.rs
@@ -5,7 +5,6 @@
 //@ check-pass
 //@[edition2021] edition:2021
 //@[edition2024] edition:2024
-//@[edition2024] compile-flags: -Zunstable-options
 //@ proc-macro: unsafe-attributes-pm.rs
 
 unsafe_attributes_pm::missing_unsafe!();
diff --git a/tests/ui/rust-2024/unsafe-attributes/unsafe-attributes.edition2024.stderr b/tests/ui/rust-2024/unsafe-attributes/unsafe-attributes.edition2024.stderr
index fb697e14ef1..5c3927a0928 100644
--- a/tests/ui/rust-2024/unsafe-attributes/unsafe-attributes.edition2024.stderr
+++ b/tests/ui/rust-2024/unsafe-attributes/unsafe-attributes.edition2024.stderr
@@ -1,5 +1,5 @@
 error: unsafe attribute used without unsafe
-  --> $DIR/unsafe-attributes.rs:8:3
+  --> $DIR/unsafe-attributes.rs:7:3
    |
 LL | #[no_mangle]
    |   ^^^^^^^^^ usage of unsafe attribute
diff --git a/tests/ui/rust-2024/unsafe-attributes/unsafe-attributes.rs b/tests/ui/rust-2024/unsafe-attributes/unsafe-attributes.rs
index f6f2994bb6d..4b161bc34ea 100644
--- a/tests/ui/rust-2024/unsafe-attributes/unsafe-attributes.rs
+++ b/tests/ui/rust-2024/unsafe-attributes/unsafe-attributes.rs
@@ -2,7 +2,6 @@
 //@[edition2021] edition:2021
 //@[edition2021] check-pass
 //@[edition2024] edition:2024
-//@[edition2024] compile-flags: -Zunstable-options
 
 
 #[no_mangle] //[edition2024]~ ERROR: unsafe attribute used without unsafe
diff --git a/tests/ui/rust-2024/unsafe-before_exec.e2024.stderr b/tests/ui/rust-2024/unsafe-before_exec.e2024.stderr
index 2798ccdefd0..10d0e8b830c 100644
--- a/tests/ui/rust-2024/unsafe-before_exec.e2024.stderr
+++ b/tests/ui/rust-2024/unsafe-before_exec.e2024.stderr
@@ -1,5 +1,5 @@
 error[E0133]: call to unsafe function `before_exec` is unsafe and requires unsafe block
-  --> $DIR/unsafe-before_exec.rs:14:5
+  --> $DIR/unsafe-before_exec.rs:13:5
    |
 LL |     cmd.before_exec(|| Ok(()));
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
diff --git a/tests/ui/rust-2024/unsafe-before_exec.rs b/tests/ui/rust-2024/unsafe-before_exec.rs
index 540394da80e..44a955e229d 100644
--- a/tests/ui/rust-2024/unsafe-before_exec.rs
+++ b/tests/ui/rust-2024/unsafe-before_exec.rs
@@ -3,7 +3,6 @@
 //@[e2021] edition: 2021
 //@[e2021] check-pass
 //@[e2024] edition: 2024
-//@[e2024] compile-flags: -Zunstable-options
 
 use std::process::Command;
 use std::os::unix::process::CommandExt;
diff --git a/tests/ui/rust-2024/unsafe-env.e2021.stderr b/tests/ui/rust-2024/unsafe-env.e2021.stderr
index 90c1df192aa..6f9618eb14b 100644
--- a/tests/ui/rust-2024/unsafe-env.e2021.stderr
+++ b/tests/ui/rust-2024/unsafe-env.e2021.stderr
@@ -1,5 +1,5 @@
 error[E0133]: call to unsafe function `unsafe_fn` is unsafe and requires unsafe block
-  --> $DIR/unsafe-env.rs:15:9
+  --> $DIR/unsafe-env.rs:14:9
    |
 LL |         unsafe_fn();
    |         ^^^^^^^^^^^ call to unsafe function
@@ -7,18 +7,18 @@ LL |         unsafe_fn();
    = note: for more information, see issue #71668 <https://github.com/rust-lang/rust/issues/71668>
    = note: consult the function's documentation for information on how to avoid undefined behavior
 note: an unsafe function restricts its caller, but its body is safe by default
-  --> $DIR/unsafe-env.rs:9:1
+  --> $DIR/unsafe-env.rs:8:1
    |
 LL | unsafe fn unsafe_fn() {
    | ^^^^^^^^^^^^^^^^^^^^^
 note: the lint level is defined here
-  --> $DIR/unsafe-env.rs:8:8
+  --> $DIR/unsafe-env.rs:7:8
    |
 LL | #[deny(unsafe_op_in_unsafe_fn)]
    |        ^^^^^^^^^^^^^^^^^^^^^^
 
 error[E0133]: call to unsafe function `unsafe_fn` is unsafe and requires unsafe function or block
-  --> $DIR/unsafe-env.rs:33:5
+  --> $DIR/unsafe-env.rs:32:5
    |
 LL |     unsafe_fn();
    |     ^^^^^^^^^^^ call to unsafe function
@@ -26,13 +26,13 @@ LL |     unsafe_fn();
    = note: consult the function's documentation for information on how to avoid undefined behavior
 
 error: unnecessary `unsafe` block
-  --> $DIR/unsafe-env.rs:36:5
+  --> $DIR/unsafe-env.rs:35:5
    |
 LL |     unsafe {
    |     ^^^^^^ unnecessary `unsafe` block
    |
 note: the lint level is defined here
-  --> $DIR/unsafe-env.rs:21:8
+  --> $DIR/unsafe-env.rs:20:8
    |
 LL | #[deny(unused_unsafe)]
    |        ^^^^^^^^^^^^^
diff --git a/tests/ui/rust-2024/unsafe-env.e2024.stderr b/tests/ui/rust-2024/unsafe-env.e2024.stderr
index 5ecdf3cd7a7..04a35933c79 100644
--- a/tests/ui/rust-2024/unsafe-env.e2024.stderr
+++ b/tests/ui/rust-2024/unsafe-env.e2024.stderr
@@ -1,5 +1,5 @@
 error[E0133]: call to unsafe function `std::env::set_var` is unsafe and requires unsafe block
-  --> $DIR/unsafe-env.rs:10:5
+  --> $DIR/unsafe-env.rs:9:5
    |
 LL |     env::set_var("FOO", "BAR");
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
@@ -7,18 +7,18 @@ LL |     env::set_var("FOO", "BAR");
    = note: for more information, see issue #71668 <https://github.com/rust-lang/rust/issues/71668>
    = note: consult the function's documentation for information on how to avoid undefined behavior
 note: an unsafe function restricts its caller, but its body is safe by default
-  --> $DIR/unsafe-env.rs:9:1
+  --> $DIR/unsafe-env.rs:8:1
    |
 LL | unsafe fn unsafe_fn() {
    | ^^^^^^^^^^^^^^^^^^^^^
 note: the lint level is defined here
-  --> $DIR/unsafe-env.rs:8:8
+  --> $DIR/unsafe-env.rs:7:8
    |
 LL | #[deny(unsafe_op_in_unsafe_fn)]
    |        ^^^^^^^^^^^^^^^^^^^^^^
 
 error[E0133]: call to unsafe function `std::env::remove_var` is unsafe and requires unsafe block
-  --> $DIR/unsafe-env.rs:12:5
+  --> $DIR/unsafe-env.rs:11:5
    |
 LL |     env::remove_var("FOO");
    |     ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
@@ -27,7 +27,7 @@ LL |     env::remove_var("FOO");
    = note: consult the function's documentation for information on how to avoid undefined behavior
 
 error[E0133]: call to unsafe function `unsafe_fn` is unsafe and requires unsafe block
-  --> $DIR/unsafe-env.rs:15:9
+  --> $DIR/unsafe-env.rs:14:9
    |
 LL |         unsafe_fn();
    |         ^^^^^^^^^^^ call to unsafe function
@@ -36,7 +36,7 @@ LL |         unsafe_fn();
    = note: consult the function's documentation for information on how to avoid undefined behavior
 
 error[E0133]: call to unsafe function `set_var` is unsafe and requires unsafe block
-  --> $DIR/unsafe-env.rs:23:5
+  --> $DIR/unsafe-env.rs:22:5
    |
 LL |     env::set_var("FOO", "BAR");
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
@@ -44,7 +44,7 @@ LL |     env::set_var("FOO", "BAR");
    = note: consult the function's documentation for information on how to avoid undefined behavior
 
 error[E0133]: call to unsafe function `remove_var` is unsafe and requires unsafe block
-  --> $DIR/unsafe-env.rs:25:5
+  --> $DIR/unsafe-env.rs:24:5
    |
 LL |     env::remove_var("FOO");
    |     ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
@@ -52,7 +52,7 @@ LL |     env::remove_var("FOO");
    = note: consult the function's documentation for information on how to avoid undefined behavior
 
 error[E0133]: call to unsafe function `unsafe_fn` is unsafe and requires unsafe block
-  --> $DIR/unsafe-env.rs:33:5
+  --> $DIR/unsafe-env.rs:32:5
    |
 LL |     unsafe_fn();
    |     ^^^^^^^^^^^ call to unsafe function
@@ -60,13 +60,13 @@ LL |     unsafe_fn();
    = note: consult the function's documentation for information on how to avoid undefined behavior
 
 error: unnecessary `unsafe` block
-  --> $DIR/unsafe-env.rs:36:5
+  --> $DIR/unsafe-env.rs:35:5
    |
 LL |     unsafe {
    |     ^^^^^^ unnecessary `unsafe` block
    |
 note: the lint level is defined here
-  --> $DIR/unsafe-env.rs:21:8
+  --> $DIR/unsafe-env.rs:20:8
    |
 LL | #[deny(unused_unsafe)]
    |        ^^^^^^^^^^^^^
diff --git a/tests/ui/rust-2024/unsafe-env.rs b/tests/ui/rust-2024/unsafe-env.rs
index 601f44e1d3e..4a7c646323a 100644
--- a/tests/ui/rust-2024/unsafe-env.rs
+++ b/tests/ui/rust-2024/unsafe-env.rs
@@ -1,7 +1,6 @@
 //@ revisions: e2021 e2024
 //@[e2021] edition: 2021
 //@[e2024] edition: 2024
-//@[e2024] compile-flags: -Zunstable-options
 
 use std::env;
 
diff --git a/tests/ui/rust-2024/unsafe-extern-blocks/extern-items-unsafe.edition2021.stderr b/tests/ui/rust-2024/unsafe-extern-blocks/extern-items-unsafe.edition2021.stderr
index 77554da10e6..50201140cda 100644
--- a/tests/ui/rust-2024/unsafe-extern-blocks/extern-items-unsafe.edition2021.stderr
+++ b/tests/ui/rust-2024/unsafe-extern-blocks/extern-items-unsafe.edition2021.stderr
@@ -1,5 +1,5 @@
 error[E0133]: call to unsafe function `test1` is unsafe and requires unsafe function or block
-  --> $DIR/extern-items-unsafe.rs:12:5
+  --> $DIR/extern-items-unsafe.rs:11:5
    |
 LL |     test1(TEST1);
    |     ^^^^^^^^^^^^ call to unsafe function
@@ -7,7 +7,7 @@ LL |     test1(TEST1);
    = note: consult the function's documentation for information on how to avoid undefined behavior
 
 error[E0133]: use of extern static is unsafe and requires unsafe function or block
-  --> $DIR/extern-items-unsafe.rs:12:11
+  --> $DIR/extern-items-unsafe.rs:11:11
    |
 LL |     test1(TEST1);
    |           ^^^^^ use of extern static
diff --git a/tests/ui/rust-2024/unsafe-extern-blocks/extern-items-unsafe.edition2024.stderr b/tests/ui/rust-2024/unsafe-extern-blocks/extern-items-unsafe.edition2024.stderr
index 33b752782d5..fa79d76546a 100644
--- a/tests/ui/rust-2024/unsafe-extern-blocks/extern-items-unsafe.edition2024.stderr
+++ b/tests/ui/rust-2024/unsafe-extern-blocks/extern-items-unsafe.edition2024.stderr
@@ -1,5 +1,5 @@
 error[E0133]: call to unsafe function `test1` is unsafe and requires unsafe block
-  --> $DIR/extern-items-unsafe.rs:12:5
+  --> $DIR/extern-items-unsafe.rs:11:5
    |
 LL |     test1(TEST1);
    |     ^^^^^^^^^^^^ call to unsafe function
@@ -7,7 +7,7 @@ LL |     test1(TEST1);
    = note: consult the function's documentation for information on how to avoid undefined behavior
 
 error[E0133]: use of extern static is unsafe and requires unsafe block
-  --> $DIR/extern-items-unsafe.rs:12:11
+  --> $DIR/extern-items-unsafe.rs:11:11
    |
 LL |     test1(TEST1);
    |           ^^^^^ use of extern static
diff --git a/tests/ui/rust-2024/unsafe-extern-blocks/extern-items-unsafe.rs b/tests/ui/rust-2024/unsafe-extern-blocks/extern-items-unsafe.rs
index 721e07acca5..7bb4f666924 100644
--- a/tests/ui/rust-2024/unsafe-extern-blocks/extern-items-unsafe.rs
+++ b/tests/ui/rust-2024/unsafe-extern-blocks/extern-items-unsafe.rs
@@ -1,7 +1,6 @@
 //@ revisions: edition2021 edition2024
 //@[edition2021] edition:2021
 //@[edition2024] edition:2024
-//@[edition2024] compile-flags: -Zunstable-options
 
 unsafe extern "C" {
     static TEST1: i32;
diff --git a/tests/ui/rust-2024/unsafe-extern-blocks/extern-items.edition2024.stderr b/tests/ui/rust-2024/unsafe-extern-blocks/extern-items.edition2024.stderr
index 8ef7c2caf21..17b49d8ed5c 100644
--- a/tests/ui/rust-2024/unsafe-extern-blocks/extern-items.edition2024.stderr
+++ b/tests/ui/rust-2024/unsafe-extern-blocks/extern-items.edition2024.stderr
@@ -1,5 +1,5 @@
 error: extern blocks must be unsafe
-  --> $DIR/extern-items.rs:7:1
+  --> $DIR/extern-items.rs:6:1
    |
 LL | / extern "C" {
 LL | |
diff --git a/tests/ui/rust-2024/unsafe-extern-blocks/extern-items.rs b/tests/ui/rust-2024/unsafe-extern-blocks/extern-items.rs
index 08805c36347..8c0b8bc8899 100644
--- a/tests/ui/rust-2024/unsafe-extern-blocks/extern-items.rs
+++ b/tests/ui/rust-2024/unsafe-extern-blocks/extern-items.rs
@@ -2,7 +2,6 @@
 //@[edition2021] edition:2021
 //@[edition2021] check-pass
 //@[edition2024] edition:2024
-//@[edition2024] compile-flags: -Zunstable-options
 
 extern "C" {
     //[edition2024]~^ ERROR extern blocks must be unsafe
diff --git a/tests/ui/rust-2024/unsafe-extern-blocks/safe-items.rs b/tests/ui/rust-2024/unsafe-extern-blocks/safe-items.rs
index b0b8a8b012a..2b2d58c3eb3 100644
--- a/tests/ui/rust-2024/unsafe-extern-blocks/safe-items.rs
+++ b/tests/ui/rust-2024/unsafe-extern-blocks/safe-items.rs
@@ -1,7 +1,6 @@
 //@ revisions: edition2021 edition2024
 //@[edition2021] edition:2021
 //@[edition2024] edition:2024
-//@[edition2024] compile-flags: -Zunstable-options
 //@ check-pass
 
 unsafe extern "C" {
diff --git a/tests/ui/rust-2024/unsafe-extern-blocks/safe-unsafe-on-unadorned-extern-block.edition2021.stderr b/tests/ui/rust-2024/unsafe-extern-blocks/safe-unsafe-on-unadorned-extern-block.edition2021.stderr
index ddc5477116f..07d934da24b 100644
--- a/tests/ui/rust-2024/unsafe-extern-blocks/safe-unsafe-on-unadorned-extern-block.edition2021.stderr
+++ b/tests/ui/rust-2024/unsafe-extern-blocks/safe-unsafe-on-unadorned-extern-block.edition2021.stderr
@@ -1,5 +1,5 @@
 error: items in `extern` blocks without an `unsafe` qualifier cannot have safety qualifiers
-  --> $DIR/safe-unsafe-on-unadorned-extern-block.rs:8:5
+  --> $DIR/safe-unsafe-on-unadorned-extern-block.rs:7:5
    |
 LL |     safe static TEST1: i32;
    |     ^^^^^^^^^^^^^^^^^^^^^^^
@@ -10,7 +10,7 @@ LL | unsafe extern "C" {
    | ++++++
 
 error: items in `extern` blocks without an `unsafe` qualifier cannot have safety qualifiers
-  --> $DIR/safe-unsafe-on-unadorned-extern-block.rs:10:5
+  --> $DIR/safe-unsafe-on-unadorned-extern-block.rs:9:5
    |
 LL |     safe fn test1(i: i32);
    |     ^^^^^^^^^^^^^^^^^^^^^^
diff --git a/tests/ui/rust-2024/unsafe-extern-blocks/safe-unsafe-on-unadorned-extern-block.edition2024.stderr b/tests/ui/rust-2024/unsafe-extern-blocks/safe-unsafe-on-unadorned-extern-block.edition2024.stderr
index ae7b4cd47c0..cceb3bddef4 100644
--- a/tests/ui/rust-2024/unsafe-extern-blocks/safe-unsafe-on-unadorned-extern-block.edition2024.stderr
+++ b/tests/ui/rust-2024/unsafe-extern-blocks/safe-unsafe-on-unadorned-extern-block.edition2024.stderr
@@ -1,5 +1,5 @@
 error: extern blocks must be unsafe
-  --> $DIR/safe-unsafe-on-unadorned-extern-block.rs:6:1
+  --> $DIR/safe-unsafe-on-unadorned-extern-block.rs:5:1
    |
 LL | / extern "C" {
 LL | |
@@ -11,7 +11,7 @@ LL | | }
    | |_^
 
 error: items in `extern` blocks without an `unsafe` qualifier cannot have safety qualifiers
-  --> $DIR/safe-unsafe-on-unadorned-extern-block.rs:8:5
+  --> $DIR/safe-unsafe-on-unadorned-extern-block.rs:7:5
    |
 LL |     safe static TEST1: i32;
    |     ^^^^^^^^^^^^^^^^^^^^^^^
@@ -22,7 +22,7 @@ LL | unsafe extern "C" {
    | ++++++
 
 error: items in `extern` blocks without an `unsafe` qualifier cannot have safety qualifiers
-  --> $DIR/safe-unsafe-on-unadorned-extern-block.rs:10:5
+  --> $DIR/safe-unsafe-on-unadorned-extern-block.rs:9:5
    |
 LL |     safe fn test1(i: i32);
    |     ^^^^^^^^^^^^^^^^^^^^^^
diff --git a/tests/ui/rust-2024/unsafe-extern-blocks/safe-unsafe-on-unadorned-extern-block.rs b/tests/ui/rust-2024/unsafe-extern-blocks/safe-unsafe-on-unadorned-extern-block.rs
index 89415a69f08..a5a6ccdffa0 100644
--- a/tests/ui/rust-2024/unsafe-extern-blocks/safe-unsafe-on-unadorned-extern-block.rs
+++ b/tests/ui/rust-2024/unsafe-extern-blocks/safe-unsafe-on-unadorned-extern-block.rs
@@ -1,7 +1,6 @@
 //@ revisions: edition2021 edition2024
 //@[edition2021] edition:2021
 //@[edition2024] edition:2024
-//@[edition2024] compile-flags: -Zunstable-options
 
 extern "C" {
     //[edition2024]~^ ERROR extern blocks must be unsafe
diff --git a/tests/ui/rust-2024/unsafe-extern-blocks/unsafe-items.edition2021.stderr b/tests/ui/rust-2024/unsafe-extern-blocks/unsafe-items.edition2021.stderr
index e3626bb497e..9433dd1f2e5 100644
--- a/tests/ui/rust-2024/unsafe-extern-blocks/unsafe-items.edition2021.stderr
+++ b/tests/ui/rust-2024/unsafe-extern-blocks/unsafe-items.edition2021.stderr
@@ -1,5 +1,5 @@
 error[E0133]: call to unsafe function `test1` is unsafe and requires unsafe function or block
-  --> $DIR/unsafe-items.rs:18:5
+  --> $DIR/unsafe-items.rs:17:5
    |
 LL |     test1(TEST1);
    |     ^^^^^^^^^^^^ call to unsafe function
@@ -7,7 +7,7 @@ LL |     test1(TEST1);
    = note: consult the function's documentation for information on how to avoid undefined behavior
 
 error[E0133]: use of extern static is unsafe and requires unsafe function or block
-  --> $DIR/unsafe-items.rs:18:11
+  --> $DIR/unsafe-items.rs:17:11
    |
 LL |     test1(TEST1);
    |           ^^^^^ use of extern static
diff --git a/tests/ui/rust-2024/unsafe-extern-blocks/unsafe-items.edition2024.stderr b/tests/ui/rust-2024/unsafe-extern-blocks/unsafe-items.edition2024.stderr
index 89bc501b7b5..af86b4c5805 100644
--- a/tests/ui/rust-2024/unsafe-extern-blocks/unsafe-items.edition2024.stderr
+++ b/tests/ui/rust-2024/unsafe-extern-blocks/unsafe-items.edition2024.stderr
@@ -1,5 +1,5 @@
 error[E0133]: call to unsafe function `test1` is unsafe and requires unsafe block
-  --> $DIR/unsafe-items.rs:18:5
+  --> $DIR/unsafe-items.rs:17:5
    |
 LL |     test1(TEST1);
    |     ^^^^^^^^^^^^ call to unsafe function
@@ -7,7 +7,7 @@ LL |     test1(TEST1);
    = note: consult the function's documentation for information on how to avoid undefined behavior
 
 error[E0133]: use of extern static is unsafe and requires unsafe block
-  --> $DIR/unsafe-items.rs:18:11
+  --> $DIR/unsafe-items.rs:17:11
    |
 LL |     test1(TEST1);
    |           ^^^^^ use of extern static
diff --git a/tests/ui/rust-2024/unsafe-extern-blocks/unsafe-items.rs b/tests/ui/rust-2024/unsafe-extern-blocks/unsafe-items.rs
index dc2bae892a9..50c97b51768 100644
--- a/tests/ui/rust-2024/unsafe-extern-blocks/unsafe-items.rs
+++ b/tests/ui/rust-2024/unsafe-extern-blocks/unsafe-items.rs
@@ -1,7 +1,6 @@
 //@ revisions: edition2021 edition2024
 //@[edition2021] edition:2021
 //@[edition2024] edition:2024
-//@[edition2024] compile-flags: -Zunstable-options
 
 unsafe extern "C" {
     unsafe static TEST1: i32;
diff --git a/tests/ui/traits/solver-cycles/107481-self-referential-struct-cow-as-last-field.rs b/tests/ui/traits/solver-cycles/107481-self-referential-struct-cow-as-last-field.rs
new file mode 100644
index 00000000000..f953eb1c0f7
--- /dev/null
+++ b/tests/ui/traits/solver-cycles/107481-self-referential-struct-cow-as-last-field.rs
@@ -0,0 +1,19 @@
+// Regression test for #107481
+
+//@ check-pass
+
+use std::{borrow::Cow, collections::HashMap};
+
+#[derive(Clone)]
+struct Foo<'a>(Cow<'a, [Self]>);
+
+#[derive(Clone)]
+struct Bar<'a>(Cow<'a, HashMap<String, Self>>);
+
+#[derive(Clone)]
+struct Baz<'a>(Cow<'a, Vec<Self>>);
+
+#[derive(Clone)]
+struct Qux<'a>(Cow<'a, Box<Self>>);
+
+fn main() {}