apply #[optimize(size)] to #[cold] ones and part of the panick machinery · patricklam/verify-rust-std@d7b85f2 (original) (raw)
`@@ -264,7 +264,7 @@ pub const fn panic_display<T: fmt::Display>(x: &T) -> ! {
`
264
264
`panic_fmt(format_args!("{}", *x));
`
265
265
`}
`
266
266
``
267
``
`-
#[cfg_attr(not(feature = "panic_immediate_abort"), inline(never), cold)]
`
``
267
`+
#[cfg_attr(not(feature = "panic_immediate_abort"), inline(never), cold, optimize(size))]
`
268
268
`#[cfg_attr(feature = "panic_immediate_abort", inline)]
`
269
269
`#[track_caller]
`
270
270
`#[lang = "panic_bounds_check"] // needed by codegen for panic on OOB array/slice access
`
`@@ -276,7 +276,7 @@ fn panic_bounds_check(index: usize, len: usize) -> ! {
`
276
276
`panic!("index out of bounds: the len is {len} but the index is {index}")
`
277
277
`}
`
278
278
``
279
``
`-
#[cfg_attr(not(feature = "panic_immediate_abort"), inline(never), cold)]
`
``
279
`+
#[cfg_attr(not(feature = "panic_immediate_abort"), inline(never), cold, optimize(size))]
`
280
280
`#[cfg_attr(feature = "panic_immediate_abort", inline)]
`
281
281
`#[track_caller]
`
282
282
`#[lang = "panic_misaligned_pointer_dereference"] // needed by codegen for panic on misaligned pointer deref
`
`@@ -301,7 +301,7 @@ fn panic_misaligned_pointer_dereference(required: usize, found: usize) -> ! {
`
301
301
`///
`
302
302
`/// This function is called directly by the codegen backend, and must not have
`
303
303
`/// any extra arguments (including those synthesized by track_caller).
`
304
``
`-
#[cfg_attr(not(feature = "panic_immediate_abort"), inline(never), cold)]
`
``
304
`+
#[cfg_attr(not(feature = "panic_immediate_abort"), inline(never), cold, optimize(size))]
`
305
305
`#[cfg_attr(feature = "panic_immediate_abort", inline)]
`
306
306
`#[lang = "panic_cannot_unwind"] // needed by codegen for panic in nounwind function
`
307
307
`#[rustc_nounwind]
`
`@@ -317,7 +317,7 @@ fn panic_cannot_unwind() -> ! {
`
317
317
`///
`
318
318
`/// This function is called directly by the codegen backend, and must not have
`
319
319
`/// any extra arguments (including those synthesized by track_caller).
`
320
``
`-
#[cfg_attr(not(feature = "panic_immediate_abort"), inline(never), cold)]
`
``
320
`+
#[cfg_attr(not(feature = "panic_immediate_abort"), inline(never), cold, optimize(size))]
`
321
321
`#[cfg_attr(feature = "panic_immediate_abort", inline)]
`
322
322
`#[lang = "panic_in_cleanup"] // needed by codegen for panic in nounwind function
`
323
323
`#[rustc_nounwind]
`
`@@ -350,7 +350,7 @@ pub enum AssertKind {
`
350
350
`}
`
351
351
``
352
352
`` /// Internal function for assert_eq!
and assert_ne!
macros
``
353
``
`-
#[cfg_attr(not(feature = "panic_immediate_abort"), inline(never), cold)]
`
``
353
`+
#[cfg_attr(not(feature = "panic_immediate_abort"), inline(never), cold, optimize(size))]
`
354
354
`#[cfg_attr(feature = "panic_immediate_abort", inline)]
`
355
355
`#[track_caller]
`
356
356
`#[doc(hidden)]
`
`@@ -368,7 +368,7 @@ where
`
368
368
`}
`
369
369
``
370
370
`` /// Internal function for assert_match!
``
371
``
`-
#[cfg_attr(not(feature = "panic_immediate_abort"), inline(never), cold)]
`
``
371
`+
#[cfg_attr(not(feature = "panic_immediate_abort"), inline(never), cold, optimize(size))]
`
372
372
`#[cfg_attr(feature = "panic_immediate_abort", inline)]
`
373
373
`#[track_caller]
`
374
374
`#[doc(hidden)]
`
`@@ -388,7 +388,7 @@ pub fn assert_matches_failed<T: fmt::Debug + ?Sized>(
`
388
388
`}
`
389
389
``
390
390
`/// Non-generic version of the above functions, to avoid code bloat.
`
391
``
`-
#[cfg_attr(not(feature = "panic_immediate_abort"), inline(never), cold)]
`
``
391
`+
#[cfg_attr(not(feature = "panic_immediate_abort"), inline(never), cold, optimize(size))]
`
392
392
`#[cfg_attr(feature = "panic_immediate_abort", inline)]
`
393
393
`#[track_caller]
`
394
394
`fn assert_failed_inner(
`