diff --git a/library/core/src/str/count.rs b/library/core/src/str/count.rs
index 28567a7..d866786 100644
--- a/library/core/src/str/count.rs
+++ b/library/core/src/str/count.rs
@@ -24,7 +24,7 @@
 
 #[inline]
 pub(super) fn count_chars(s: &str) -> usize {
-    if s.len() < USIZE_SIZE * UNROLL_INNER {
+    if cfg!(feature = "optimize_for_size") || s.len() < USIZE_SIZE * UNROLL_INNER {
         // Avoid entering the optimized implementation for strings where the
         // difference is not likely to matter, or where it might even be slower.
         // That said, a ton of thought was not spent on the particular threshold
diff --git a/tests/crashes/123255.rs b/tests/crashes/123255.rs
new file mode 100644
index 0000000..a94a2a0
--- /dev/null
+++ b/tests/crashes/123255.rs
@@ -0,0 +1,13 @@
+//@ known-bug: rust-lang/rust#123255
+//@ edition:2021
+#![crate_type = "lib"]
+
+pub fn a() {}
+
+mod handlers {
+    pub struct C(&());
+    pub fn c() -> impl Fn() -> C {
+        let a1 = ();
+        || C((crate::a(), a1).into())
+    }
+}
diff --git a/tests/crashes/123276.rs b/tests/crashes/123276.rs
new file mode 100644
index 0000000..d2246f5
--- /dev/null
+++ b/tests/crashes/123276.rs
@@ -0,0 +1,25 @@
+//@ known-bug: rust-lang/rust#123276
+//@ edition:2021
+
+async fn create_task() {
+    _ = Some(async { bind(documentation_filter()) });
+}
+
+async fn bind<Fut, F: Filter<Future = Fut>>(_: F) {}
+
+fn documentation_filter() -> impl Filter {
+    AndThen
+}
+
+trait Filter {
+    type Future;
+}
+
+struct AndThen;
+
+impl Filter for AndThen
+where
+    Foo: Filter,
+{
+    type Future = ();
+}
diff --git a/tests/crashes/123887.rs b/tests/crashes/123887.rs
new file mode 100644
index 0000000..68e2fb0
--- /dev/null
+++ b/tests/crashes/123887.rs
@@ -0,0 +1,15 @@
+//@ known-bug: rust-lang/rust#123887
+//@ compile-flags: -Clink-dead-code
+
+#![feature(extern_types)]
+#![feature(unsized_fn_params)]
+
+extern "C" {
+    pub type ExternType;
+}
+
+impl ExternType {
+    pub fn f(self) {}
+}
+
+pub fn main() {}
diff --git a/tests/crashes/125013-1.rs b/tests/crashes/125013-1.rs
new file mode 100644
index 0000000..ae66d7a
--- /dev/null
+++ b/tests/crashes/125013-1.rs
@@ -0,0 +1,5 @@
+//@ known-bug: rust-lang/rust#125013
+//@ edition:2021
+use io::{self as std};
+use std::ops::Deref::{self as io};
+pub fn main() {}
diff --git a/tests/crashes/125013-2.rs b/tests/crashes/125013-2.rs
new file mode 100644
index 0000000..a14c8a7
--- /dev/null
+++ b/tests/crashes/125013-2.rs
@@ -0,0 +1,16 @@
+//@ known-bug: rust-lang/rust#125013
+//@ edition:2021
+mod a {
+  pub mod b {
+    pub mod c {
+      pub trait D {}
+    }
+  }
+}
+
+use a::*;
+
+use e as b;
+use b::c::D as e;
+
+fn main() { }
diff --git a/tests/crashes/125014.rs b/tests/crashes/125014.rs
new file mode 100644
index 0000000..b29042e
--- /dev/null
+++ b/tests/crashes/125014.rs
@@ -0,0 +1,17 @@
+//@ known-bug: rust-lang/rust#125014
+//@ compile-flags: -Znext-solver=coherence
+#![feature(specialization)]
+
+trait Foo {}
+
+impl Foo for <u16 as Assoc>::Output {}
+
+impl Foo for u32 {}
+
+trait Assoc {
+    type Output;
+}
+impl Output for u32 {}
+impl Assoc for <u16 as Assoc>::Output {
+    default type Output = bool;
+}
diff --git a/tests/crashes/125059.rs b/tests/crashes/125059.rs
new file mode 100644
index 0000000..7e9f741
--- /dev/null
+++ b/tests/crashes/125059.rs
@@ -0,0 +1,12 @@
+//@ known-bug: rust-lang/rust#125059
+#![feature(deref_patterns)]
+#![allow(incomplete_features)]
+
+fn simple_vec(vec: Vec<u32>) -> u32 {
+   (|| match Vec::<u32>::new() {
+        deref!([]) => 100,
+        _ => 2000,
+    })()
+}
+
+fn main() {}
diff --git a/tests/crashes/125323.rs b/tests/crashes/125323.rs
new file mode 100644
index 0000000..180b7bb
--- /dev/null
+++ b/tests/crashes/125323.rs
@@ -0,0 +1,6 @@
+//@ known-bug: rust-lang/rust#125323
+fn main() {
+    for _ in 0..0 {
+        [(); loop {}];
+    }
+}
diff --git a/tests/crashes/125476.rs b/tests/crashes/125476.rs
new file mode 100644
index 0000000..aa9a081
--- /dev/null
+++ b/tests/crashes/125476.rs
@@ -0,0 +1,4 @@
+//@ known-bug: rust-lang/rust#125476
+//@ only-x86_64
+pub struct Data([u8; usize::MAX >> 16]);
+const _: &'static [Data] = &[];
diff --git a/tests/crashes/125512.rs b/tests/crashes/125512.rs
new file mode 100644
index 0000000..1672b24
--- /dev/null
+++ b/tests/crashes/125512.rs
@@ -0,0 +1,10 @@
+//@ known-bug: rust-lang/rust#125512
+//@ edition:2021
+#![feature(object_safe_for_dispatch)]
+trait B {
+    fn f(a: A) -> A;
+}
+trait A {
+    fn concrete(b: B) -> B;
+}
+fn main() {}
diff --git a/tests/crashes/125553.rs b/tests/crashes/125553.rs
new file mode 100644
index 0000000..142c067
--- /dev/null
+++ b/tests/crashes/125553.rs
@@ -0,0 +1,15 @@
+//@ known-bug: rust-lang/rust#125553
+//@ edition:2021
+
+#[derive(Copy, Clone)]
+struct Foo((u32, u32));
+
+fn main() {
+    type T = impl Copy(Copy, Clone)
+    let foo: T = Foo((1u32, 1u32));
+    let x = move || {
+        let derive = move || {
+        let Foo((a, b)) = foo;
+    };
+    };
+}
diff --git a/tests/crashes/125556.rs b/tests/crashes/125556.rs
new file mode 100644
index 0000000..f2e2a99
--- /dev/null
+++ b/tests/crashes/125556.rs
@@ -0,0 +1,14 @@
+//@ known-bug: rust-lang/rust#125556
+//@ compile-flags: -Znext-solver=coherence
+
+#![feature(generic_const_exprs)]
+
+pub struct A<const z: [usize; x]> {}
+
+impl A<2> {
+    pub const fn B() {}
+}
+
+impl A<2> {
+    pub const fn B() {}
+}
diff --git a/tests/ui/const-generics/generic_const_exprs/ice-125520-layout-mismatch-mulwithoverflow.rs b/tests/ui/const-generics/generic_const_exprs/ice-125520-layout-mismatch-mulwithoverflow.rs
new file mode 100644
index 0000000..cd2dc3f
--- /dev/null
+++ b/tests/ui/const-generics/generic_const_exprs/ice-125520-layout-mismatch-mulwithoverflow.rs
@@ -0,0 +1,27 @@
+// issue: rust-lang/rust#125520
+#![feature(generic_const_exprs)]
+//~^ WARN the feature `generic_const_exprs` is incomplete and may not be safe to use and/or cause compiler crashes
+
+struct Outer<const A: i64, const B: i64>();
+impl<const A: usize, const B: usize> Outer<A, B>
+//~^ ERROR the constant `A` is not of type `i64`
+//~| ERROR the constant `B` is not of type `i64`
+//~| ERROR mismatched types
+//~| ERROR mismatched types
+where
+    [(); A + (B * 2)]:,
+{
+    fn i() -> Self {
+    //~^ ERROR the constant `A` is not of type `i64`
+    //~| ERROR the constant `B` is not of type `i64`
+        Self
+        //~^ ERROR mismatched types
+        //~| ERROR the constant `A` is not of type `i64`
+        //~| ERROR the constant `B` is not of type `i64`
+    }
+}
+
+fn main() {
+    Outer::<1, 1>::o();
+    //~^ ERROR no function or associated item named `o` found for struct `Outer` in the current scope
+}
diff --git a/tests/ui/const-generics/generic_const_exprs/ice-125520-layout-mismatch-mulwithoverflow.stderr b/tests/ui/const-generics/generic_const_exprs/ice-125520-layout-mismatch-mulwithoverflow.stderr
new file mode 100644
index 0000000..2dbd69f
--- /dev/null
+++ b/tests/ui/const-generics/generic_const_exprs/ice-125520-layout-mismatch-mulwithoverflow.stderr
@@ -0,0 +1,125 @@
+warning: the feature `generic_const_exprs` is incomplete and may not be safe to use and/or cause compiler crashes
+  --> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:2:12
+   |
+LL | #![feature(generic_const_exprs)]
+   |            ^^^^^^^^^^^^^^^^^^^
+   |
+   = note: see issue #76560 <https://github.com/rust-lang/rust/issues/76560> for more information
+   = note: `#[warn(incomplete_features)]` on by default
+
+error: the constant `A` is not of type `i64`
+  --> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:6:38
+   |
+LL | impl<const A: usize, const B: usize> Outer<A, B>
+   |                                      ^^^^^^^^^^^ expected `i64`, found `usize`
+   |
+note: required by a bound in `Outer`
+  --> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:5:14
+   |
+LL | struct Outer<const A: i64, const B: i64>();
+   |              ^^^^^^^^^^^^ required by this bound in `Outer`
+
+error: the constant `B` is not of type `i64`
+  --> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:6:38
+   |
+LL | impl<const A: usize, const B: usize> Outer<A, B>
+   |                                      ^^^^^^^^^^^ expected `i64`, found `usize`
+   |
+note: required by a bound in `Outer`
+  --> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:5:28
+   |
+LL | struct Outer<const A: i64, const B: i64>();
+   |                            ^^^^^^^^^^^^ required by this bound in `Outer`
+
+error: the constant `A` is not of type `i64`
+  --> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:14:15
+   |
+LL |     fn i() -> Self {
+   |               ^^^^ expected `i64`, found `usize`
+   |
+note: required by a bound in `Outer`
+  --> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:5:14
+   |
+LL | struct Outer<const A: i64, const B: i64>();
+   |              ^^^^^^^^^^^^ required by this bound in `Outer`
+
+error: the constant `B` is not of type `i64`
+  --> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:14:15
+   |
+LL |     fn i() -> Self {
+   |               ^^^^ expected `i64`, found `usize`
+   |
+note: required by a bound in `Outer`
+  --> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:5:28
+   |
+LL | struct Outer<const A: i64, const B: i64>();
+   |                            ^^^^^^^^^^^^ required by this bound in `Outer`
+
+error[E0308]: mismatched types
+  --> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:17:9
+   |
+LL | struct Outer<const A: i64, const B: i64>();
+   | ---------------------------------------- `Outer` defines a struct constructor here, which should be called
+...
+LL |     fn i() -> Self {
+   |               ---- expected `Outer<A, B>` because of return type
+...
+LL |         Self
+   |         ^^^^ expected `Outer<A, B>`, found struct constructor
+   |
+   = note:          expected struct `Outer<A, B>`
+           found struct constructor `fn() -> Outer<A, B> {Outer::<A, B>}`
+help: use parentheses to construct this tuple struct
+   |
+LL |         Self()
+   |             ++
+
+error: the constant `A` is not of type `i64`
+  --> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:17:9
+   |
+LL |         Self
+   |         ^^^^ expected `i64`, found `usize`
+   |
+note: required by a bound in `Outer`
+  --> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:5:14
+   |
+LL | struct Outer<const A: i64, const B: i64>();
+   |              ^^^^^^^^^^^^ required by this bound in `Outer`
+
+error: the constant `B` is not of type `i64`
+  --> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:17:9
+   |
+LL |         Self
+   |         ^^^^ expected `i64`, found `usize`
+   |
+note: required by a bound in `Outer`
+  --> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:5:28
+   |
+LL | struct Outer<const A: i64, const B: i64>();
+   |                            ^^^^^^^^^^^^ required by this bound in `Outer`
+
+error[E0599]: no function or associated item named `o` found for struct `Outer` in the current scope
+  --> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:25:20
+   |
+LL | struct Outer<const A: i64, const B: i64>();
+   | ---------------------------------------- function or associated item `o` not found for this struct
+...
+LL |     Outer::<1, 1>::o();
+   |                    ^ function or associated item not found in `Outer<1, 1>`
+
+error[E0308]: mismatched types
+  --> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:6:44
+   |
+LL | impl<const A: usize, const B: usize> Outer<A, B>
+   |                                            ^ expected `i64`, found `usize`
+
+error[E0308]: mismatched types
+  --> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:6:47
+   |
+LL | impl<const A: usize, const B: usize> Outer<A, B>
+   |                                               ^ expected `i64`, found `usize`
+
+error: aborting due to 10 previous errors; 1 warning emitted
+
+Some errors have detailed explanations: E0308, E0599.
+For more information about an error, try `rustc --explain E0308`.
diff --git a/tests/ui/const-generics/issues/issue-105821.rs b/tests/ui/const-generics/issues/issue-105821.rs
index 282cbe9..e55da46 100644
--- a/tests/ui/const-generics/issues/issue-105821.rs
+++ b/tests/ui/const-generics/issues/issue-105821.rs
@@ -1,5 +1,5 @@
 //@ failure-status: 101
-//@ known-bug: unknown
+//@ known-bug: rust-lang/rust#125451
 //@ normalize-stderr-test "note: .*\n\n" -> ""
 //@ normalize-stderr-test "thread 'rustc' panicked.*\n.*\n" -> ""
 //@ normalize-stderr-test "(error: internal compiler error: [^:]+):\d+:\d+: " -> "$1:LL:CC: "
