diff --git a/library/core/src/macros/mod.rs b/library/core/src/macros/mod.rs index 932a2fc0bad92..425560a6e777a 100644 --- a/library/core/src/macros/mod.rs +++ b/library/core/src/macros/mod.rs @@ -48,7 +48,7 @@ macro_rules! assert_eq { // The reborrows below are intentional. Without them, the stack slot for the // borrow is initialized even before the values are compared, leading to a // noticeable slow down. - $crate::panicking::assert_failed(kind, &*left_val, &*right_val, $crate::option::Option::None); + $crate::panicking::outline(|| $crate::panicking::assert_failed(kind, &*left_val, &*right_val, $crate::option::Option::None)); } } } @@ -61,7 +61,7 @@ macro_rules! assert_eq { // The reborrows below are intentional. Without them, the stack slot for the // borrow is initialized even before the values are compared, leading to a // noticeable slow down. - $crate::panicking::assert_failed(kind, &*left_val, &*right_val, $crate::option::Option::Some($crate::format_args!($($arg)+))); + $crate::panicking::outline(|| $crate::panicking::assert_failed(kind, &*left_val, &*right_val, $crate::option::Option::Some($crate::format_args!($($arg)+)))); } } } @@ -104,7 +104,7 @@ macro_rules! assert_ne { // The reborrows below are intentional. Without them, the stack slot for the // borrow is initialized even before the values are compared, leading to a // noticeable slow down. - $crate::panicking::assert_failed(kind, &*left_val, &*right_val, $crate::option::Option::None); + $crate::panicking::outline(|| $crate::panicking::assert_failed(kind, &*left_val, &*right_val, $crate::option::Option::None)); } } } @@ -117,7 +117,7 @@ macro_rules! assert_ne { // The reborrows below are intentional. Without them, the stack slot for the // borrow is initialized even before the values are compared, leading to a // noticeable slow down. - $crate::panicking::assert_failed(kind, &*left_val, &*right_val, $crate::option::Option::Some($crate::format_args!($($arg)+))); + $crate::panicking::outline(|| $crate::panicking::assert_failed(kind, &*left_val, &*right_val, $crate::option::Option::Some($crate::format_args!($($arg)+)))); } } } @@ -172,11 +172,11 @@ pub macro assert_matches { match $left { $( $pattern )|+ $( if $guard )? => {} ref left_val => { - $crate::panicking::assert_matches_failed( + $crate::panicking::outline(|| $crate::panicking::assert_matches_failed( left_val, $crate::stringify!($($pattern)|+ $(if $guard)?), $crate::option::Option::None - ); + )); } } }}, @@ -184,11 +184,11 @@ pub macro assert_matches { match $left { $( $pattern )|+ $( if $guard )? => {} ref left_val => { - $crate::panicking::assert_matches_failed( + $crate::panicking::outline(|| $crate::panicking::assert_matches_failed( left_val, $crate::stringify!($($pattern)|+ $(if $guard)?), $crate::option::Option::Some($crate::format_args!($($arg)+)) - ); + )); } } }}, diff --git a/library/core/src/panicking.rs b/library/core/src/panicking.rs index 3609dd1fe2e02..1ec49e9815942 100644 --- a/library/core/src/panicking.rs +++ b/library/core/src/panicking.rs @@ -443,3 +443,11 @@ fn assert_failed_inner( ), } } + +#[track_caller] +#[inline(never)] +#[cold] +#[rustc_const_unstable(feature = "panic_internals", issue = "none")] +pub const fn outline T>(f: F) -> T { + f() +} diff --git a/tests/coverage/assert-ne.cov-map b/tests/coverage/assert-ne.cov-map index fde0d5184d675..8bff04e236c5d 100644 --- a/tests/coverage/assert-ne.cov-map +++ b/tests/coverage/assert-ne.cov-map @@ -1,11 +1,9 @@ Function name: assert_ne::main -Raw bytes (55): 0x[01, 01, 03, 01, 05, 01, 09, 01, 09, 09, 01, 08, 01, 00, 0a, 01, 01, 05, 00, 0f, 01, 01, 09, 00, 12, 01, 00, 13, 00, 19, 01, 01, 0c, 00, 15, 05, 01, 0d, 00, 13, 02, 02, 0d, 00, 13, 0a, 03, 05, 00, 07, 0a, 01, 01, 00, 02] +Raw bytes (51): 0x[01, 02, 01, 01, 05, 09, 01, 08, 01, 00, 0a, 01, 01, 05, 00, 0f, 01, 01, 09, 00, 12, 01, 00, 13, 00, 19, 01, 01, 0c, 00, 15, 05, 01, 0d, 00, 13, 02, 02, 0d, 00, 13, 01, 03, 05, 00, 07, 01, 01, 01, 00, 02] Number of files: 1 - file 0 => $DIR/assert-ne.rs -Number of expressions: 3 +Number of expressions: 1 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) -- expression 1 operands: lhs = Counter(0), rhs = Counter(2) -- expression 2 operands: lhs = Counter(0), rhs = Counter(2) Number of file 0 mappings: 9 - Code(Counter(0)) at (prev + 8, 1) to (start + 0, 10) - Code(Counter(0)) at (prev + 1, 5) to (start + 0, 15) @@ -15,9 +13,20 @@ Number of file 0 mappings: 9 - Code(Counter(1)) at (prev + 1, 13) to (start + 0, 19) - Code(Expression(0, Sub)) at (prev + 2, 13) to (start + 0, 19) = (c0 - c1) -- Code(Expression(2, Sub)) at (prev + 3, 5) to (start + 0, 7) - = (c0 - c2) -- Code(Expression(2, Sub)) at (prev + 1, 1) to (start + 0, 2) - = (c0 - c2) +- Code(Counter(0)) at (prev + 3, 5) to (start + 0, 7) +- Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2) Highest counter ID seen: c1 +Function name: assert_ne::main::{closure#0} +Raw bytes (30): 0x[01, 01, 00, 05, 01, 6b, 33, 00, 53, 01, 00, 54, 00, 58, 01, 00, 5a, 00, 64, 01, 00, 66, 00, 71, 01, 00, 73, 00, 8f, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Counter(0)) at (prev + 107, 51) to (start + 0, 83) +- Code(Counter(0)) at (prev + 0, 84) to (start + 0, 88) +- Code(Counter(0)) at (prev + 0, 90) to (start + 0, 100) +- Code(Counter(0)) at (prev + 0, 102) to (start + 0, 113) +- Code(Counter(0)) at (prev + 0, 115) to (start + 0, 143) +Highest counter ID seen: c0 + diff --git a/tests/coverage/assert.cov-map b/tests/coverage/assert.cov-map index 543ab89628281..693d98655a10c 100644 --- a/tests/coverage/assert.cov-map +++ b/tests/coverage/assert.cov-map @@ -1,5 +1,5 @@ Function name: assert::main -Raw bytes (76): 0x[01, 01, 06, 05, 01, 05, 17, 01, 09, 05, 13, 17, 0d, 01, 09, 0c, 01, 09, 01, 00, 1c, 01, 01, 09, 00, 16, 01, 00, 19, 00, 1b, 05, 01, 0b, 00, 18, 02, 01, 0c, 00, 1a, 09, 00, 1b, 02, 0a, 06, 02, 13, 00, 20, 0d, 00, 21, 02, 0a, 0e, 02, 09, 00, 0a, 02, 01, 09, 00, 17, 01, 02, 05, 00, 0b, 01, 01, 01, 00, 02] +Raw bytes (76): 0x[01, 02, 06, 05, 01, 05, 17, 01, 09, 05, 13, 17, 0d, 01, 09, 0c, 01, 09, 01, 00, 1c, 01, 01, 09, 00, 16, 01, 00, 19, 00, 1b, 05, 01, 0b, 00, 18, 02, 01, 0c, 00, 1a, 09, 00, 1b, 02, 0a, 06, 02, 13, 00, 20, 0d, 00, 21, 02, 0a, 0e, 02, 09, 00, 0a, 02, 01, 09, 00, 17, 01, 02, 05, 00, 0b, 01, 01, 01, 00, 02] Number of files: 1 - file 0 => $DIR/assert.rs Number of expressions: 6 @@ -29,7 +29,7 @@ Number of file 0 mappings: 12 Highest counter ID seen: c3 Function name: assert::might_fail_assert -Raw bytes (24): 0x[01, 01, 00, 04, 01, 04, 01, 00, 28, 01, 01, 05, 00, 0d, 01, 01, 05, 00, 0f, 05, 01, 01, 00, 02] +Raw bytes (24): 0x[01, 02, 00, 04, 01, 04, 01, 00, 28, 01, 01, 05, 00, 0d, 01, 01, 05, 00, 0f, 01, 01, 01, 00, 02] Number of files: 1 - file 0 => $DIR/assert.rs Number of expressions: 0 @@ -37,6 +37,19 @@ Number of file 0 mappings: 4 - Code(Counter(0)) at (prev + 4, 1) to (start + 0, 40) - Code(Counter(0)) at (prev + 1, 5) to (start + 0, 13) - Code(Counter(0)) at (prev + 1, 5) to (start + 0, 15) -- Code(Counter(1)) at (prev + 1, 1) to (start + 0, 2) -Highest counter ID seen: c1 +- Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2) +Highest counter ID seen: c0 + +Function name: assert::might_fail_assert::{closure#0} +Raw bytes (30): 0x[01, 01, 00, 05, 01, 40, 32, 00, 52, 01, 00, 53, 00, 57, 01, 00, 59, 00, 63, 01, 00, 65, 00, 70, 01, 00, 72, 00, ae, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Counter(0)) at (prev + 64, 50) to (start + 0, 82) +- Code(Counter(0)) at (prev + 0, 83) to (start + 0, 87) +- Code(Counter(0)) at (prev + 0, 89) to (start + 0, 99) +- Code(Counter(0)) at (prev + 0, 101) to (start + 0, 112) +- Code(Counter(0)) at (prev + 0, 114) to (start + 0, 174) +Highest counter ID seen: c0 diff --git a/tests/coverage/async_closure2.cov-map b/tests/coverage/async_closure2.cov-map index bd58e4db50841..6821aeaf7970a 100644 --- a/tests/coverage/async_closure2.cov-map +++ b/tests/coverage/async_closure2.cov-map @@ -21,7 +21,7 @@ Number of file 0 mappings: 3 Highest counter ID seen: c0 Function name: async_closure2::main -Raw bytes (54): 0x[01, 01, 00, 0a, 01, 10, 01, 00, 0e, 01, 01, 09, 00, 16, 01, 04, 05, 00, 17, 01, 00, 18, 00, 21, 01, 00, 22, 00, 2f, 01, 01, 05, 00, 0f, 01, 00, 10, 00, 15, 01, 00, 16, 00, 1a, 01, 00, 1b, 00, 2b, 05, 01, 01, 00, 02] +Raw bytes (54): 0x[01, 01, 00, 0a, 01, 10, 01, 00, 0e, 01, 01, 09, 00, 16, 01, 04, 05, 00, 17, 01, 00, 18, 00, 21, 01, 00, 22, 00, 2f, 01, 01, 05, 00, 0f, 01, 00, 10, 00, 15, 01, 00, 16, 00, 1a, 01, 00, 1b, 00, 2b, 01, 01, 01, 00, 02] Number of files: 1 - file 0 => $DIR/async_closure2.rs Number of expressions: 0 @@ -35,8 +35,8 @@ Number of file 0 mappings: 10 - Code(Counter(0)) at (prev + 0, 16) to (start + 0, 21) - Code(Counter(0)) at (prev + 0, 22) to (start + 0, 26) - Code(Counter(0)) at (prev + 0, 27) to (start + 0, 43) -- Code(Counter(1)) at (prev + 1, 1) to (start + 0, 2) -Highest counter ID seen: c1 +- Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2) +Highest counter ID seen: c0 Function name: async_closure2::main::{closure#0} Raw bytes (44): 0x[01, 01, 00, 08, 01, 11, 22, 00, 23, 01, 01, 09, 00, 0e, 01, 00, 0f, 00, 18, 01, 00, 1c, 00, 2c, 01, 01, 09, 00, 0e, 01, 00, 0f, 00, 18, 01, 00, 1c, 00, 2c, 01, 01, 05, 00, 06] @@ -70,3 +70,16 @@ Number of file 0 mappings: 8 - Code(Zero) at (prev + 1, 5) to (start + 0, 6) Highest counter ID seen: (none) +Function name: async_closure2::main::{closure#1} +Raw bytes (30): 0x[01, 02, 00, 05, 01, 33, 33, 00, 53, 01, 00, 54, 00, 58, 01, 00, 5a, 00, 64, 01, 00, 66, 00, 71, 01, 00, 73, 00, 8f, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Counter(0)) at (prev + 51, 51) to (start + 0, 83) +- Code(Counter(0)) at (prev + 0, 84) to (start + 0, 88) +- Code(Counter(0)) at (prev + 0, 90) to (start + 0, 100) +- Code(Counter(0)) at (prev + 0, 102) to (start + 0, 113) +- Code(Counter(0)) at (prev + 0, 115) to (start + 0, 143) +Highest counter ID seen: c0 + diff --git a/tests/coverage/bad_counter_ids.cov-map b/tests/coverage/bad_counter_ids.cov-map index 309b29220144e..d05b9eb75aaba 100644 --- a/tests/coverage/bad_counter_ids.cov-map +++ b/tests/coverage/bad_counter_ids.cov-map @@ -1,5 +1,5 @@ Function name: bad_counter_ids::eq_bad -Raw bytes (24): 0x[01, 01, 00, 04, 01, 24, 01, 00, 0c, 01, 01, 05, 00, 0d, 01, 01, 05, 00, 0f, 00, 01, 01, 00, 02] +Raw bytes (24): 0x[01, 02, 00, 04, 01, 24, 01, 00, 0c, 01, 01, 05, 00, 0d, 01, 01, 05, 00, 0f, 01, 01, 01, 00, 02] Number of files: 1 - file 0 => $DIR/bad_counter_ids.rs Number of expressions: 0 @@ -7,11 +7,24 @@ Number of file 0 mappings: 4 - Code(Counter(0)) at (prev + 36, 1) to (start + 0, 12) - Code(Counter(0)) at (prev + 1, 5) to (start + 0, 13) - Code(Counter(0)) at (prev + 1, 5) to (start + 0, 15) -- Code(Zero) at (prev + 1, 1) to (start + 0, 2) +- Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2) +Highest counter ID seen: c0 + +Function name: bad_counter_ids::eq_bad::{closure#0} +Raw bytes (30): 0x[01, 01, 00, 05, 01, 33, 33, 00, 53, 01, 00, 54, 00, 58, 01, 00, 5a, 00, 64, 01, 00, 66, 00, 71, 01, 00, 73, 00, 8f, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Counter(0)) at (prev + 51, 51) to (start + 0, 83) +- Code(Counter(0)) at (prev + 0, 84) to (start + 0, 88) +- Code(Counter(0)) at (prev + 0, 90) to (start + 0, 100) +- Code(Counter(0)) at (prev + 0, 102) to (start + 0, 113) +- Code(Counter(0)) at (prev + 0, 115) to (start + 0, 143) Highest counter ID seen: c0 Function name: bad_counter_ids::eq_bad_message -Raw bytes (24): 0x[01, 01, 00, 04, 01, 29, 01, 00, 14, 01, 01, 05, 00, 0d, 01, 01, 05, 00, 0f, 00, 01, 01, 00, 02] +Raw bytes (24): 0x[01, 02, 00, 04, 01, 29, 01, 00, 14, 01, 01, 05, 00, 0d, 01, 01, 05, 00, 0f, 01, 01, 01, 00, 02] Number of files: 1 - file 0 => $DIR/bad_counter_ids.rs Number of expressions: 0 @@ -19,11 +32,24 @@ Number of file 0 mappings: 4 - Code(Counter(0)) at (prev + 41, 1) to (start + 0, 20) - Code(Counter(0)) at (prev + 1, 5) to (start + 0, 13) - Code(Counter(0)) at (prev + 1, 5) to (start + 0, 15) -- Code(Zero) at (prev + 1, 1) to (start + 0, 2) +- Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2) +Highest counter ID seen: c0 + +Function name: bad_counter_ids::eq_bad_message::{closure#0} +Raw bytes (30): 0x[01, 01, 00, 05, 01, 40, 32, 00, 52, 01, 00, 53, 00, 57, 01, 00, 59, 00, 63, 01, 00, 65, 00, 70, 01, 00, 72, 00, ae, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Counter(0)) at (prev + 64, 50) to (start + 0, 82) +- Code(Counter(0)) at (prev + 0, 83) to (start + 0, 87) +- Code(Counter(0)) at (prev + 0, 89) to (start + 0, 99) +- Code(Counter(0)) at (prev + 0, 101) to (start + 0, 112) +- Code(Counter(0)) at (prev + 0, 114) to (start + 0, 174) Highest counter ID seen: c0 Function name: bad_counter_ids::eq_good -Raw bytes (24): 0x[01, 01, 00, 04, 01, 10, 01, 00, 0d, 01, 01, 05, 00, 0d, 01, 01, 05, 00, 0f, 01, 01, 01, 00, 02] +Raw bytes (24): 0x[01, 02, 00, 04, 01, 10, 01, 00, 0d, 01, 01, 05, 00, 0d, 01, 01, 05, 00, 0f, 01, 01, 01, 00, 02] Number of files: 1 - file 0 => $DIR/bad_counter_ids.rs Number of expressions: 0 @@ -34,8 +60,21 @@ Number of file 0 mappings: 4 - Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2) Highest counter ID seen: c0 +Function name: bad_counter_ids::eq_good::{closure#0} (unused) +Raw bytes (30): 0x[01, 01, 00, 05, 00, 33, 33, 00, 53, 00, 00, 54, 00, 58, 00, 00, 5a, 00, 64, 00, 00, 66, 00, 71, 00, 00, 73, 00, 8f, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Zero) at (prev + 51, 51) to (start + 0, 83) +- Code(Zero) at (prev + 0, 84) to (start + 0, 88) +- Code(Zero) at (prev + 0, 90) to (start + 0, 100) +- Code(Zero) at (prev + 0, 102) to (start + 0, 113) +- Code(Zero) at (prev + 0, 115) to (start + 0, 143) +Highest counter ID seen: (none) + Function name: bad_counter_ids::eq_good_message -Raw bytes (24): 0x[01, 01, 00, 04, 01, 15, 01, 00, 15, 01, 01, 05, 00, 0d, 01, 01, 05, 00, 0f, 01, 01, 01, 00, 02] +Raw bytes (24): 0x[01, 02, 00, 04, 01, 15, 01, 00, 15, 01, 01, 05, 00, 0d, 01, 01, 05, 00, 0f, 01, 01, 01, 00, 02] Number of files: 1 - file 0 => $DIR/bad_counter_ids.rs Number of expressions: 0 @@ -46,8 +85,21 @@ Number of file 0 mappings: 4 - Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2) Highest counter ID seen: c0 +Function name: bad_counter_ids::eq_good_message::{closure#0} (unused) +Raw bytes (30): 0x[01, 01, 00, 05, 00, 40, 32, 00, 52, 00, 00, 53, 00, 57, 00, 00, 59, 00, 63, 00, 00, 65, 00, 70, 00, 00, 72, 00, ae, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Zero) at (prev + 64, 50) to (start + 0, 82) +- Code(Zero) at (prev + 0, 83) to (start + 0, 87) +- Code(Zero) at (prev + 0, 89) to (start + 0, 99) +- Code(Zero) at (prev + 0, 101) to (start + 0, 112) +- Code(Zero) at (prev + 0, 114) to (start + 0, 174) +Highest counter ID seen: (none) + Function name: bad_counter_ids::ne_bad -Raw bytes (24): 0x[01, 01, 00, 04, 01, 2e, 01, 00, 0c, 01, 01, 05, 00, 0d, 01, 01, 05, 00, 0f, 00, 01, 01, 00, 02] +Raw bytes (24): 0x[01, 02, 00, 04, 01, 2e, 01, 00, 0c, 01, 01, 05, 00, 0d, 01, 01, 05, 00, 0f, 01, 01, 01, 00, 02] Number of files: 1 - file 0 => $DIR/bad_counter_ids.rs Number of expressions: 0 @@ -55,11 +107,24 @@ Number of file 0 mappings: 4 - Code(Counter(0)) at (prev + 46, 1) to (start + 0, 12) - Code(Counter(0)) at (prev + 1, 5) to (start + 0, 13) - Code(Counter(0)) at (prev + 1, 5) to (start + 0, 15) -- Code(Zero) at (prev + 1, 1) to (start + 0, 2) +- Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2) +Highest counter ID seen: c0 + +Function name: bad_counter_ids::ne_bad::{closure#0} +Raw bytes (30): 0x[01, 01, 00, 05, 01, 6b, 33, 00, 53, 01, 00, 54, 00, 58, 01, 00, 5a, 00, 64, 01, 00, 66, 00, 71, 01, 00, 73, 00, 8f, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Counter(0)) at (prev + 107, 51) to (start + 0, 83) +- Code(Counter(0)) at (prev + 0, 84) to (start + 0, 88) +- Code(Counter(0)) at (prev + 0, 90) to (start + 0, 100) +- Code(Counter(0)) at (prev + 0, 102) to (start + 0, 113) +- Code(Counter(0)) at (prev + 0, 115) to (start + 0, 143) Highest counter ID seen: c0 Function name: bad_counter_ids::ne_bad_message -Raw bytes (24): 0x[01, 01, 00, 04, 01, 33, 01, 00, 14, 01, 01, 05, 00, 0d, 01, 01, 05, 00, 0f, 00, 01, 01, 00, 02] +Raw bytes (24): 0x[01, 02, 00, 04, 01, 33, 01, 00, 14, 01, 01, 05, 00, 0d, 01, 01, 05, 00, 0f, 01, 01, 01, 00, 02] Number of files: 1 - file 0 => $DIR/bad_counter_ids.rs Number of expressions: 0 @@ -67,11 +132,24 @@ Number of file 0 mappings: 4 - Code(Counter(0)) at (prev + 51, 1) to (start + 0, 20) - Code(Counter(0)) at (prev + 1, 5) to (start + 0, 13) - Code(Counter(0)) at (prev + 1, 5) to (start + 0, 15) -- Code(Zero) at (prev + 1, 1) to (start + 0, 2) +- Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2) +Highest counter ID seen: c0 + +Function name: bad_counter_ids::ne_bad_message::{closure#0} +Raw bytes (30): 0x[01, 01, 00, 05, 01, 78, 33, 00, 53, 01, 00, 54, 00, 58, 01, 00, 5a, 00, 64, 01, 00, 66, 00, 71, 01, 00, 73, 00, af, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Counter(0)) at (prev + 120, 51) to (start + 0, 83) +- Code(Counter(0)) at (prev + 0, 84) to (start + 0, 88) +- Code(Counter(0)) at (prev + 0, 90) to (start + 0, 100) +- Code(Counter(0)) at (prev + 0, 102) to (start + 0, 113) +- Code(Counter(0)) at (prev + 0, 115) to (start + 0, 175) Highest counter ID seen: c0 Function name: bad_counter_ids::ne_good -Raw bytes (24): 0x[01, 01, 00, 04, 01, 1a, 01, 00, 0d, 01, 01, 05, 00, 0d, 01, 01, 05, 00, 0f, 01, 01, 01, 00, 02] +Raw bytes (24): 0x[01, 02, 00, 04, 01, 1a, 01, 00, 0d, 01, 01, 05, 00, 0d, 01, 01, 05, 00, 0f, 01, 01, 01, 00, 02] Number of files: 1 - file 0 => $DIR/bad_counter_ids.rs Number of expressions: 0 @@ -82,8 +160,21 @@ Number of file 0 mappings: 4 - Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2) Highest counter ID seen: c0 +Function name: bad_counter_ids::ne_good::{closure#0} (unused) +Raw bytes (30): 0x[01, 01, 00, 05, 00, 6b, 33, 00, 53, 00, 00, 54, 00, 58, 00, 00, 5a, 00, 64, 00, 00, 66, 00, 71, 00, 00, 73, 00, 8f, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Zero) at (prev + 107, 51) to (start + 0, 83) +- Code(Zero) at (prev + 0, 84) to (start + 0, 88) +- Code(Zero) at (prev + 0, 90) to (start + 0, 100) +- Code(Zero) at (prev + 0, 102) to (start + 0, 113) +- Code(Zero) at (prev + 0, 115) to (start + 0, 143) +Highest counter ID seen: (none) + Function name: bad_counter_ids::ne_good_message -Raw bytes (24): 0x[01, 01, 00, 04, 01, 1f, 01, 00, 15, 01, 01, 05, 00, 0d, 01, 01, 05, 00, 0f, 01, 01, 01, 00, 02] +Raw bytes (24): 0x[01, 02, 00, 04, 01, 1f, 01, 00, 15, 01, 01, 05, 00, 0d, 01, 01, 05, 00, 0f, 01, 01, 01, 00, 02] Number of files: 1 - file 0 => $DIR/bad_counter_ids.rs Number of expressions: 0 @@ -94,3 +185,16 @@ Number of file 0 mappings: 4 - Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2) Highest counter ID seen: c0 +Function name: bad_counter_ids::ne_good_message::{closure#0} (unused) +Raw bytes (30): 0x[01, 01, 00, 05, 00, 78, 33, 00, 53, 00, 00, 54, 00, 58, 00, 00, 5a, 00, 64, 00, 00, 66, 00, 71, 00, 00, 73, 00, af, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Zero) at (prev + 120, 51) to (start + 0, 83) +- Code(Zero) at (prev + 0, 84) to (start + 0, 88) +- Code(Zero) at (prev + 0, 90) to (start + 0, 100) +- Code(Zero) at (prev + 0, 102) to (start + 0, 113) +- Code(Zero) at (prev + 0, 115) to (start + 0, 175) +Highest counter ID seen: (none) + diff --git a/tests/coverage/issue-83601.cov-map b/tests/coverage/issue-83601.cov-map index 6d89397023c6f..9a7d217582e16 100644 --- a/tests/coverage/issue-83601.cov-map +++ b/tests/coverage/issue-83601.cov-map @@ -17,3 +17,29 @@ Number of file 0 mappings: 11 - Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2) Highest counter ID seen: c0 +Function name: issue_83601::main::{closure#0} (unused) +Raw bytes (30): 0x[01, 02, 00, 05, 00, 33, 33, 00, 53, 00, 00, 54, 00, 58, 00, 00, 5a, 00, 64, 00, 00, 66, 00, 71, 00, 00, 73, 00, 8f, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Zero) at (prev + 51, 51) to (start + 0, 83) +- Code(Zero) at (prev + 0, 84) to (start + 0, 88) +- Code(Zero) at (prev + 0, 90) to (start + 0, 100) +- Code(Zero) at (prev + 0, 102) to (start + 0, 113) +- Code(Zero) at (prev + 0, 115) to (start + 0, 143) +Highest counter ID seen: (none) + +Function name: issue_83601::main::{closure#1} (unused) +Raw bytes (30): 0x[01, 02, 00, 05, 00, 6b, 33, 00, 53, 00, 00, 54, 00, 58, 00, 00, 5a, 00, 64, 00, 00, 66, 00, 71, 00, 00, 73, 00, 8f, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Zero) at (prev + 107, 51) to (start + 0, 83) +- Code(Zero) at (prev + 0, 84) to (start + 0, 88) +- Code(Zero) at (prev + 0, 90) to (start + 0, 100) +- Code(Zero) at (prev + 0, 102) to (start + 0, 113) +- Code(Zero) at (prev + 0, 115) to (start + 0, 143) +Highest counter ID seen: (none) + diff --git a/tests/coverage/issue-84561.cov-map b/tests/coverage/issue-84561.cov-map index ca009260cddc9..3cd80a739a71e 100644 --- a/tests/coverage/issue-84561.cov-map +++ b/tests/coverage/issue-84561.cov-map @@ -1,5 +1,5 @@ Function name: ::fmt -Raw bytes (37): 0x[01, 01, 01, 01, 05, 06, 01, 8a, 01, 05, 00, 43, 01, 01, 09, 00, 0f, 01, 00, 10, 00, 11, 05, 00, 25, 00, 26, 02, 01, 09, 00, 0f, 01, 01, 05, 00, 06] +Raw bytes (37): 0x[01, 02, 01, 01, 05, 06, 01, 8a, 01, 05, 00, 43, 01, 01, 09, 00, 0f, 01, 00, 10, 00, 11, 05, 00, 25, 00, 26, 02, 01, 09, 00, 0f, 01, 01, 05, 00, 06] Number of files: 1 - file 0 => $DIR/issue-84561.rs Number of expressions: 1 @@ -15,7 +15,7 @@ Number of file 0 mappings: 6 Highest counter ID seen: c1 Function name: issue_84561::main -Raw bytes (30): 0x[01, 01, 00, 05, 01, b4, 01, 01, 00, 0a, 01, 01, 05, 00, 0a, 01, 01, 05, 00, 0a, 01, 01, 05, 00, 0a, 01, 01, 01, 00, 02] +Raw bytes (30): 0x[01, 02, 00, 05, 01, b4, 01, 01, 00, 0a, 01, 01, 05, 00, 0a, 01, 01, 05, 00, 0a, 01, 01, 05, 00, 0a, 01, 01, 01, 00, 02] Number of files: 1 - file 0 => $DIR/issue-84561.rs Number of expressions: 0 @@ -28,7 +28,7 @@ Number of file 0 mappings: 5 Highest counter ID seen: c0 Function name: issue_84561::test1 -Raw bytes (45): 0x[01, 01, 00, 08, 01, 9a, 01, 01, 00, 0b, 01, 01, 05, 00, 0b, 01, 01, 05, 00, 0b, 01, 01, 0d, 00, 0e, 01, 01, 05, 00, 0b, 01, 01, 05, 02, 06, 01, 03, 05, 00, 0b, 01, 01, 01, 00, 02] +Raw bytes (45): 0x[01, 02, 00, 08, 01, 9a, 01, 01, 00, 0b, 01, 01, 05, 00, 0b, 01, 01, 05, 00, 0b, 01, 01, 0d, 00, 0e, 01, 01, 05, 00, 0b, 01, 01, 05, 02, 06, 01, 03, 05, 00, 0b, 01, 01, 01, 00, 02] Number of files: 1 - file 0 => $DIR/issue-84561.rs Number of expressions: 0 @@ -44,7 +44,7 @@ Number of file 0 mappings: 8 Highest counter ID seen: c0 Function name: issue_84561::test2 -Raw bytes (20): 0x[01, 01, 00, 03, 01, b0, 01, 01, 00, 0b, 01, 01, 05, 00, 10, 01, 01, 01, 00, 02] +Raw bytes (20): 0x[01, 02, 00, 03, 01, b0, 01, 01, 00, 0b, 01, 01, 05, 00, 10, 01, 01, 01, 00, 02] Number of files: 1 - file 0 => $DIR/issue-84561.rs Number of expressions: 0 @@ -55,7 +55,7 @@ Number of file 0 mappings: 3 Highest counter ID seen: c0 Function name: issue_84561::test2::call_print -Raw bytes (20): 0x[01, 01, 00, 03, 01, a7, 01, 09, 00, 1f, 01, 01, 0d, 00, 13, 01, 01, 09, 00, 0a] +Raw bytes (20): 0x[01, 02, 00, 03, 01, a7, 01, 09, 00, 1f, 01, 01, 0d, 00, 13, 01, 01, 09, 00, 0a] Number of files: 1 - file 0 => $DIR/issue-84561.rs Number of expressions: 0 @@ -66,19 +66,19 @@ Number of file 0 mappings: 3 Highest counter ID seen: c0 Function name: issue_84561::test3 -Raw bytes (340): 0x[01, 01, 08, 01, 05, 01, 09, 01, 0d, 11, 15, 1d, 21, 19, 1d, 19, 1d, 19, 1d, 40, 01, 08, 01, 00, 0b, 01, 01, 09, 00, 10, 01, 00, 13, 00, 2e, 01, 01, 09, 00, 0c, 01, 00, 0f, 00, 15, 01, 01, 05, 00, 0f, 01, 01, 09, 00, 0c, 01, 00, 0f, 00, 15, 01, 01, 05, 00, 0f, 01, 01, 05, 00, 0d, 01, 01, 05, 00, 0d, 01, 01, 05, 00, 0d, 01, 02, 05, 00, 0f, 01, 01, 05, 00, 0f, 01, 01, 05, 00, 0f, 01, 01, 09, 00, 0c, 01, 00, 0f, 00, 15, 01, 01, 05, 00, 0f, 01, 01, 05, 00, 0f, 01, 01, 05, 00, 0f, 01, 01, 05, 00, 0d, 01, 01, 05, 00, 0d, 01, 02, 05, 00, 0f, 00, 00, 29, 00, 30, 00, 00, 33, 00, 41, 00, 00, 4b, 00, 5a, 01, 01, 05, 00, 0f, 00, 08, 09, 00, 10, 00, 02, 0d, 00, 1b, 00, 02, 0d, 00, 1c, 01, 04, 09, 00, 10, 01, 00, 13, 00, 2e, 01, 02, 05, 00, 0f, 01, 04, 05, 00, 0f, 01, 04, 05, 00, 0f, 01, 04, 09, 00, 0c, 01, 00, 0f, 00, 15, 01, 01, 05, 00, 0f, 01, 04, 08, 00, 0f, 05, 01, 09, 00, 13, 02, 05, 09, 00, 13, 01, 05, 08, 00, 0f, 09, 01, 09, 00, 13, 06, 06, 09, 00, 13, 01, 06, 05, 00, 0f, 01, 01, 0c, 00, 13, 0d, 01, 0d, 00, 13, 0a, 02, 0d, 00, 13, 11, 04, 05, 00, 0f, 11, 02, 0c, 00, 13, 15, 01, 0d, 00, 13, 0e, 02, 0d, 00, 13, 13, 03, 05, 00, 0f, 19, 01, 0c, 00, 13, 1d, 01, 0d, 00, 17, 1d, 04, 0d, 00, 13, 1e, 02, 0d, 00, 17, 1e, 01, 14, 00, 1b, 00, 01, 15, 00, 1b, 1e, 02, 15, 00, 1b, 21, 04, 0d, 00, 13, 25, 05, 05, 00, 0f, 00, 05, 05, 00, 0f, 00, 05, 01, 00, 02] +Raw bytes (310): 0x[01, 02, 08, 01, 05, 01, 09, 01, 0d, 01, 11, 01, 15, 01, 15, 01, 15, 01, 15, 3a, 01, 08, 01, 00, 0b, 01, 01, 09, 00, 10, 01, 00, 13, 00, 2e, 01, 01, 09, 00, 0c, 01, 00, 0f, 00, 15, 01, 01, 05, 00, 0f, 01, 01, 09, 00, 0c, 01, 00, 0f, 00, 15, 01, 01, 05, 00, 0f, 01, 01, 05, 00, 0d, 01, 01, 05, 00, 0d, 01, 01, 05, 00, 0d, 01, 02, 05, 00, 0f, 01, 01, 05, 00, 0f, 01, 01, 05, 00, 0f, 01, 01, 09, 00, 0c, 01, 00, 0f, 00, 15, 01, 01, 05, 00, 0f, 01, 01, 05, 00, 0f, 01, 01, 05, 00, 0f, 01, 01, 05, 00, 0d, 01, 01, 05, 00, 0d, 01, 02, 05, 00, 0f, 01, 01, 05, 00, 0f, 01, 10, 09, 00, 10, 01, 00, 13, 00, 2e, 01, 02, 05, 00, 0f, 01, 04, 05, 00, 0f, 01, 04, 05, 00, 0f, 01, 04, 09, 00, 0c, 01, 00, 0f, 00, 15, 01, 01, 05, 00, 0f, 01, 04, 08, 00, 0f, 05, 01, 09, 00, 13, 02, 05, 09, 00, 13, 01, 05, 08, 00, 0f, 09, 01, 09, 00, 13, 06, 06, 09, 00, 13, 01, 06, 05, 00, 0f, 01, 01, 0c, 00, 13, 0d, 01, 0d, 00, 13, 0a, 02, 0d, 00, 13, 01, 04, 05, 00, 0f, 01, 02, 0c, 00, 13, 11, 01, 0d, 00, 13, 0e, 02, 0d, 00, 13, 01, 03, 05, 00, 0f, 01, 01, 0c, 00, 13, 15, 01, 0d, 00, 17, 15, 04, 0d, 00, 13, 1e, 02, 0d, 00, 17, 1e, 01, 14, 00, 1b, 00, 01, 15, 00, 1b, 1e, 02, 15, 00, 1b, 1e, 04, 0d, 00, 13, 01, 05, 05, 00, 0f, 01, 05, 05, 00, 0f, 01, 05, 01, 00, 02] Number of files: 1 - file 0 => $DIR/issue-84561.rs Number of expressions: 8 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) - expression 1 operands: lhs = Counter(0), rhs = Counter(2) - expression 2 operands: lhs = Counter(0), rhs = Counter(3) -- expression 3 operands: lhs = Counter(4), rhs = Counter(5) -- expression 4 operands: lhs = Counter(7), rhs = Counter(8) -- expression 5 operands: lhs = Counter(6), rhs = Counter(7) -- expression 6 operands: lhs = Counter(6), rhs = Counter(7) -- expression 7 operands: lhs = Counter(6), rhs = Counter(7) -Number of file 0 mappings: 64 +- expression 3 operands: lhs = Counter(0), rhs = Counter(4) +- expression 4 operands: lhs = Counter(0), rhs = Counter(5) +- expression 5 operands: lhs = Counter(0), rhs = Counter(5) +- expression 6 operands: lhs = Counter(0), rhs = Counter(5) +- expression 7 operands: lhs = Counter(0), rhs = Counter(5) +Number of file 0 mappings: 58 - Code(Counter(0)) at (prev + 8, 1) to (start + 0, 11) - Code(Counter(0)) at (prev + 1, 9) to (start + 0, 16) - Code(Counter(0)) at (prev + 0, 19) to (start + 0, 46) @@ -102,14 +102,8 @@ Number of file 0 mappings: 64 - Code(Counter(0)) at (prev + 1, 5) to (start + 0, 13) - Code(Counter(0)) at (prev + 1, 5) to (start + 0, 13) - Code(Counter(0)) at (prev + 2, 5) to (start + 0, 15) -- Code(Zero) at (prev + 0, 41) to (start + 0, 48) -- Code(Zero) at (prev + 0, 51) to (start + 0, 65) -- Code(Zero) at (prev + 0, 75) to (start + 0, 90) - Code(Counter(0)) at (prev + 1, 5) to (start + 0, 15) -- Code(Zero) at (prev + 8, 9) to (start + 0, 16) -- Code(Zero) at (prev + 2, 13) to (start + 0, 27) -- Code(Zero) at (prev + 2, 13) to (start + 0, 28) -- Code(Counter(0)) at (prev + 4, 9) to (start + 0, 16) +- Code(Counter(0)) at (prev + 16, 9) to (start + 0, 16) - Code(Counter(0)) at (prev + 0, 19) to (start + 0, 46) - Code(Counter(0)) at (prev + 2, 5) to (start + 0, 15) - Code(Counter(0)) at (prev + 4, 5) to (start + 0, 15) @@ -130,26 +124,349 @@ Number of file 0 mappings: 64 - Code(Counter(3)) at (prev + 1, 13) to (start + 0, 19) - Code(Expression(2, Sub)) at (prev + 2, 13) to (start + 0, 19) = (c0 - c3) -- Code(Counter(4)) at (prev + 4, 5) to (start + 0, 15) -- Code(Counter(4)) at (prev + 2, 12) to (start + 0, 19) -- Code(Counter(5)) at (prev + 1, 13) to (start + 0, 19) +- Code(Counter(0)) at (prev + 4, 5) to (start + 0, 15) +- Code(Counter(0)) at (prev + 2, 12) to (start + 0, 19) +- Code(Counter(4)) at (prev + 1, 13) to (start + 0, 19) - Code(Expression(3, Sub)) at (prev + 2, 13) to (start + 0, 19) - = (c4 - c5) -- Code(Expression(4, Add)) at (prev + 3, 5) to (start + 0, 15) - = (c7 + c8) -- Code(Counter(6)) at (prev + 1, 12) to (start + 0, 19) -- Code(Counter(7)) at (prev + 1, 13) to (start + 0, 23) -- Code(Counter(7)) at (prev + 4, 13) to (start + 0, 19) + = (c0 - c4) +- Code(Counter(0)) at (prev + 3, 5) to (start + 0, 15) +- Code(Counter(0)) at (prev + 1, 12) to (start + 0, 19) +- Code(Counter(5)) at (prev + 1, 13) to (start + 0, 23) +- Code(Counter(5)) at (prev + 4, 13) to (start + 0, 19) - Code(Expression(7, Sub)) at (prev + 2, 13) to (start + 0, 23) - = (c6 - c7) + = (c0 - c5) - Code(Expression(7, Sub)) at (prev + 1, 20) to (start + 0, 27) - = (c6 - c7) + = (c0 - c5) - Code(Zero) at (prev + 1, 21) to (start + 0, 27) - Code(Expression(7, Sub)) at (prev + 2, 21) to (start + 0, 27) - = (c6 - c7) -- Code(Counter(8)) at (prev + 4, 13) to (start + 0, 19) -- Code(Counter(9)) at (prev + 5, 5) to (start + 0, 15) -- Code(Zero) at (prev + 5, 5) to (start + 0, 15) -- Code(Zero) at (prev + 5, 1) to (start + 0, 2) -Highest counter ID seen: c9 + = (c0 - c5) +- Code(Expression(7, Sub)) at (prev + 4, 13) to (start + 0, 19) + = (c0 - c5) +- Code(Counter(0)) at (prev + 5, 5) to (start + 0, 15) +- Code(Counter(0)) at (prev + 5, 5) to (start + 0, 15) +- Code(Counter(0)) at (prev + 5, 1) to (start + 0, 2) +Highest counter ID seen: c5 + +Function name: issue_84561::test3::{closure#0} +Raw bytes (30): 0x[01, 01, 00, 05, 01, 33, 33, 00, 53, 01, 00, 54, 00, 58, 01, 00, 5a, 00, 64, 01, 00, 66, 00, 71, 01, 00, 73, 00, 8f, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Counter(0)) at (prev + 51, 51) to (start + 0, 83) +- Code(Counter(0)) at (prev + 0, 84) to (start + 0, 88) +- Code(Counter(0)) at (prev + 0, 90) to (start + 0, 100) +- Code(Counter(0)) at (prev + 0, 102) to (start + 0, 113) +- Code(Counter(0)) at (prev + 0, 115) to (start + 0, 143) +Highest counter ID seen: c0 + +Function name: issue_84561::test3::{closure#10} +Raw bytes (30): 0x[01, 01, 00, 05, 01, 33, 33, 00, 53, 01, 00, 54, 00, 58, 01, 00, 5a, 00, 64, 01, 00, 66, 00, 71, 01, 00, 73, 00, 8f, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Counter(0)) at (prev + 51, 51) to (start + 0, 83) +- Code(Counter(0)) at (prev + 0, 84) to (start + 0, 88) +- Code(Counter(0)) at (prev + 0, 90) to (start + 0, 100) +- Code(Counter(0)) at (prev + 0, 102) to (start + 0, 113) +- Code(Counter(0)) at (prev + 0, 115) to (start + 0, 143) +Highest counter ID seen: c0 + +Function name: issue_84561::test3::{closure#11} +Raw bytes (30): 0x[01, 01, 00, 05, 01, 6b, 33, 00, 53, 01, 00, 54, 00, 58, 01, 00, 5a, 00, 64, 01, 00, 66, 00, 71, 01, 00, 73, 00, 8f, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Counter(0)) at (prev + 107, 51) to (start + 0, 83) +- Code(Counter(0)) at (prev + 0, 84) to (start + 0, 88) +- Code(Counter(0)) at (prev + 0, 90) to (start + 0, 100) +- Code(Counter(0)) at (prev + 0, 102) to (start + 0, 113) +- Code(Counter(0)) at (prev + 0, 115) to (start + 0, 143) +Highest counter ID seen: c0 + +Function name: issue_84561::test3::{closure#12} +Raw bytes (30): 0x[01, 01, 00, 05, 01, 33, 33, 00, 53, 01, 00, 54, 00, 58, 01, 00, 5a, 00, 64, 01, 00, 66, 00, 71, 01, 00, 73, 00, 8f, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Counter(0)) at (prev + 51, 51) to (start + 0, 83) +- Code(Counter(0)) at (prev + 0, 84) to (start + 0, 88) +- Code(Counter(0)) at (prev + 0, 90) to (start + 0, 100) +- Code(Counter(0)) at (prev + 0, 102) to (start + 0, 113) +- Code(Counter(0)) at (prev + 0, 115) to (start + 0, 143) +Highest counter ID seen: c0 + +Function name: issue_84561::test3::{closure#13} +Raw bytes (30): 0x[01, 01, 00, 05, 01, 6b, 33, 00, 53, 01, 00, 54, 00, 58, 01, 00, 5a, 00, 64, 01, 00, 66, 00, 71, 01, 00, 73, 00, 8f, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Counter(0)) at (prev + 107, 51) to (start + 0, 83) +- Code(Counter(0)) at (prev + 0, 84) to (start + 0, 88) +- Code(Counter(0)) at (prev + 0, 90) to (start + 0, 100) +- Code(Counter(0)) at (prev + 0, 102) to (start + 0, 113) +- Code(Counter(0)) at (prev + 0, 115) to (start + 0, 143) +Highest counter ID seen: c0 + +Function name: issue_84561::test3::{closure#14} +Raw bytes (30): 0x[01, 01, 00, 05, 01, 6b, 33, 00, 53, 01, 00, 54, 00, 58, 01, 00, 5a, 00, 64, 01, 00, 66, 00, 71, 01, 00, 73, 00, 8f, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Counter(0)) at (prev + 107, 51) to (start + 0, 83) +- Code(Counter(0)) at (prev + 0, 84) to (start + 0, 88) +- Code(Counter(0)) at (prev + 0, 90) to (start + 0, 100) +- Code(Counter(0)) at (prev + 0, 102) to (start + 0, 113) +- Code(Counter(0)) at (prev + 0, 115) to (start + 0, 143) +Highest counter ID seen: c0 + +Function name: issue_84561::test3::{closure#15} +Raw bytes (30): 0x[01, 01, 00, 05, 01, 33, 33, 00, 53, 01, 00, 54, 00, 58, 01, 00, 5a, 00, 64, 01, 00, 66, 00, 71, 01, 00, 73, 00, 8f, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Counter(0)) at (prev + 51, 51) to (start + 0, 83) +- Code(Counter(0)) at (prev + 0, 84) to (start + 0, 88) +- Code(Counter(0)) at (prev + 0, 90) to (start + 0, 100) +- Code(Counter(0)) at (prev + 0, 102) to (start + 0, 113) +- Code(Counter(0)) at (prev + 0, 115) to (start + 0, 143) +Highest counter ID seen: c0 + +Function name: issue_84561::test3::{closure#16} +Raw bytes (30): 0x[01, 01, 00, 05, 01, 78, 33, 00, 53, 01, 00, 54, 00, 58, 01, 00, 5a, 00, 64, 01, 00, 66, 00, 71, 01, 00, 73, 00, af, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Counter(0)) at (prev + 120, 51) to (start + 0, 83) +- Code(Counter(0)) at (prev + 0, 84) to (start + 0, 88) +- Code(Counter(0)) at (prev + 0, 90) to (start + 0, 100) +- Code(Counter(0)) at (prev + 0, 102) to (start + 0, 113) +- Code(Counter(0)) at (prev + 0, 115) to (start + 0, 175) +Highest counter ID seen: c0 + +Function name: issue_84561::test3::{closure#17} +Raw bytes (30): 0x[01, 01, 00, 05, 01, 40, 32, 00, 52, 01, 00, 53, 00, 57, 01, 00, 59, 00, 63, 01, 00, 65, 00, 70, 01, 00, 72, 00, ae, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Counter(0)) at (prev + 64, 50) to (start + 0, 82) +- Code(Counter(0)) at (prev + 0, 83) to (start + 0, 87) +- Code(Counter(0)) at (prev + 0, 89) to (start + 0, 99) +- Code(Counter(0)) at (prev + 0, 101) to (start + 0, 112) +- Code(Counter(0)) at (prev + 0, 114) to (start + 0, 174) +Highest counter ID seen: c0 + +Function name: issue_84561::test3::{closure#18} +Raw bytes (30): 0x[01, 01, 00, 05, 01, 6b, 33, 00, 53, 01, 00, 54, 00, 58, 01, 00, 5a, 00, 64, 01, 00, 66, 00, 71, 01, 00, 73, 00, 8f, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Counter(0)) at (prev + 107, 51) to (start + 0, 83) +- Code(Counter(0)) at (prev + 0, 84) to (start + 0, 88) +- Code(Counter(0)) at (prev + 0, 90) to (start + 0, 100) +- Code(Counter(0)) at (prev + 0, 102) to (start + 0, 113) +- Code(Counter(0)) at (prev + 0, 115) to (start + 0, 143) +Highest counter ID seen: c0 + +Function name: issue_84561::test3::{closure#19} +Raw bytes (30): 0x[01, 01, 00, 05, 01, 6b, 33, 00, 53, 01, 00, 54, 00, 58, 01, 00, 5a, 00, 64, 01, 00, 66, 00, 71, 01, 00, 73, 00, 8f, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Counter(0)) at (prev + 107, 51) to (start + 0, 83) +- Code(Counter(0)) at (prev + 0, 84) to (start + 0, 88) +- Code(Counter(0)) at (prev + 0, 90) to (start + 0, 100) +- Code(Counter(0)) at (prev + 0, 102) to (start + 0, 113) +- Code(Counter(0)) at (prev + 0, 115) to (start + 0, 143) +Highest counter ID seen: c0 + +Function name: issue_84561::test3::{closure#1} +Raw bytes (30): 0x[01, 01, 00, 05, 01, 6b, 33, 00, 53, 01, 00, 54, 00, 58, 01, 00, 5a, 00, 64, 01, 00, 66, 00, 71, 01, 00, 73, 00, 8f, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Counter(0)) at (prev + 107, 51) to (start + 0, 83) +- Code(Counter(0)) at (prev + 0, 84) to (start + 0, 88) +- Code(Counter(0)) at (prev + 0, 90) to (start + 0, 100) +- Code(Counter(0)) at (prev + 0, 102) to (start + 0, 113) +- Code(Counter(0)) at (prev + 0, 115) to (start + 0, 143) +Highest counter ID seen: c0 + +Function name: issue_84561::test3::{closure#20} +Raw bytes (30): 0x[01, 01, 00, 05, 01, 78, 33, 00, 53, 01, 00, 54, 00, 58, 01, 00, 5a, 00, 64, 01, 00, 66, 00, 71, 01, 00, 73, 00, af, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Counter(0)) at (prev + 120, 51) to (start + 0, 83) +- Code(Counter(0)) at (prev + 0, 84) to (start + 0, 88) +- Code(Counter(0)) at (prev + 0, 90) to (start + 0, 100) +- Code(Counter(0)) at (prev + 0, 102) to (start + 0, 113) +- Code(Counter(0)) at (prev + 0, 115) to (start + 0, 175) +Highest counter ID seen: c0 + +Function name: issue_84561::test3::{closure#21} +Raw bytes (30): 0x[01, 01, 00, 05, 01, 33, 33, 00, 53, 01, 00, 54, 00, 58, 01, 00, 5a, 00, 64, 01, 00, 66, 00, 71, 01, 00, 73, 00, 8f, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Counter(0)) at (prev + 51, 51) to (start + 0, 83) +- Code(Counter(0)) at (prev + 0, 84) to (start + 0, 88) +- Code(Counter(0)) at (prev + 0, 90) to (start + 0, 100) +- Code(Counter(0)) at (prev + 0, 102) to (start + 0, 113) +- Code(Counter(0)) at (prev + 0, 115) to (start + 0, 143) +Highest counter ID seen: c0 + +Function name: issue_84561::test3::{closure#22} +Raw bytes (30): 0x[01, 01, 00, 05, 01, 6b, 33, 00, 53, 01, 00, 54, 00, 58, 01, 00, 5a, 00, 64, 01, 00, 66, 00, 71, 01, 00, 73, 00, 8f, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Counter(0)) at (prev + 107, 51) to (start + 0, 83) +- Code(Counter(0)) at (prev + 0, 84) to (start + 0, 88) +- Code(Counter(0)) at (prev + 0, 90) to (start + 0, 100) +- Code(Counter(0)) at (prev + 0, 102) to (start + 0, 113) +- Code(Counter(0)) at (prev + 0, 115) to (start + 0, 143) +Highest counter ID seen: c0 + +Function name: issue_84561::test3::{closure#23} +Raw bytes (30): 0x[01, 01, 00, 05, 01, 40, 32, 00, 52, 01, 00, 53, 00, 57, 01, 00, 59, 00, 63, 01, 00, 65, 00, 70, 01, 00, 72, 00, ae, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Counter(0)) at (prev + 64, 50) to (start + 0, 82) +- Code(Counter(0)) at (prev + 0, 83) to (start + 0, 87) +- Code(Counter(0)) at (prev + 0, 89) to (start + 0, 99) +- Code(Counter(0)) at (prev + 0, 101) to (start + 0, 112) +- Code(Counter(0)) at (prev + 0, 114) to (start + 0, 174) +Highest counter ID seen: c0 + +Function name: issue_84561::test3::{closure#24} +Raw bytes (30): 0x[01, 01, 00, 05, 01, 40, 32, 00, 52, 01, 00, 53, 00, 57, 01, 00, 59, 00, 63, 01, 00, 65, 00, 70, 01, 00, 72, 00, ae, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Counter(0)) at (prev + 64, 50) to (start + 0, 82) +- Code(Counter(0)) at (prev + 0, 83) to (start + 0, 87) +- Code(Counter(0)) at (prev + 0, 89) to (start + 0, 99) +- Code(Counter(0)) at (prev + 0, 101) to (start + 0, 112) +- Code(Counter(0)) at (prev + 0, 114) to (start + 0, 174) +Highest counter ID seen: c0 + +Function name: issue_84561::test3::{closure#2} +Raw bytes (30): 0x[01, 01, 00, 05, 01, 33, 33, 00, 53, 01, 00, 54, 00, 58, 01, 00, 5a, 00, 64, 01, 00, 66, 00, 71, 01, 00, 73, 00, 8f, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Counter(0)) at (prev + 51, 51) to (start + 0, 83) +- Code(Counter(0)) at (prev + 0, 84) to (start + 0, 88) +- Code(Counter(0)) at (prev + 0, 90) to (start + 0, 100) +- Code(Counter(0)) at (prev + 0, 102) to (start + 0, 113) +- Code(Counter(0)) at (prev + 0, 115) to (start + 0, 143) +Highest counter ID seen: c0 + +Function name: issue_84561::test3::{closure#3} +Raw bytes (30): 0x[01, 01, 00, 05, 01, 6b, 33, 00, 53, 01, 00, 54, 00, 58, 01, 00, 5a, 00, 64, 01, 00, 66, 00, 71, 01, 00, 73, 00, 8f, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Counter(0)) at (prev + 107, 51) to (start + 0, 83) +- Code(Counter(0)) at (prev + 0, 84) to (start + 0, 88) +- Code(Counter(0)) at (prev + 0, 90) to (start + 0, 100) +- Code(Counter(0)) at (prev + 0, 102) to (start + 0, 113) +- Code(Counter(0)) at (prev + 0, 115) to (start + 0, 143) +Highest counter ID seen: c0 + +Function name: issue_84561::test3::{closure#4} +Raw bytes (30): 0x[01, 01, 00, 05, 01, 33, 33, 00, 53, 01, 00, 54, 00, 58, 01, 00, 5a, 00, 64, 01, 00, 66, 00, 71, 01, 00, 73, 00, 8f, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Counter(0)) at (prev + 51, 51) to (start + 0, 83) +- Code(Counter(0)) at (prev + 0, 84) to (start + 0, 88) +- Code(Counter(0)) at (prev + 0, 90) to (start + 0, 100) +- Code(Counter(0)) at (prev + 0, 102) to (start + 0, 113) +- Code(Counter(0)) at (prev + 0, 115) to (start + 0, 143) +Highest counter ID seen: c0 + +Function name: issue_84561::test3::{closure#5} +Raw bytes (30): 0x[01, 01, 00, 05, 01, 6b, 33, 00, 53, 01, 00, 54, 00, 58, 01, 00, 5a, 00, 64, 01, 00, 66, 00, 71, 01, 00, 73, 00, 8f, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Counter(0)) at (prev + 107, 51) to (start + 0, 83) +- Code(Counter(0)) at (prev + 0, 84) to (start + 0, 88) +- Code(Counter(0)) at (prev + 0, 90) to (start + 0, 100) +- Code(Counter(0)) at (prev + 0, 102) to (start + 0, 113) +- Code(Counter(0)) at (prev + 0, 115) to (start + 0, 143) +Highest counter ID seen: c0 + +Function name: issue_84561::test3::{closure#6} +Raw bytes (30): 0x[01, 01, 00, 05, 01, 6b, 33, 00, 53, 01, 00, 54, 00, 58, 01, 00, 5a, 00, 64, 01, 00, 66, 00, 71, 01, 00, 73, 00, 8f, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Counter(0)) at (prev + 107, 51) to (start + 0, 83) +- Code(Counter(0)) at (prev + 0, 84) to (start + 0, 88) +- Code(Counter(0)) at (prev + 0, 90) to (start + 0, 100) +- Code(Counter(0)) at (prev + 0, 102) to (start + 0, 113) +- Code(Counter(0)) at (prev + 0, 115) to (start + 0, 143) +Highest counter ID seen: c0 + +Function name: issue_84561::test3::{closure#7} +Raw bytes (30): 0x[01, 01, 00, 05, 01, 40, 32, 00, 52, 01, 00, 53, 00, 57, 01, 00, 59, 00, 63, 01, 00, 65, 00, 70, 01, 00, 72, 00, ae, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Counter(0)) at (prev + 64, 50) to (start + 0, 82) +- Code(Counter(0)) at (prev + 0, 83) to (start + 0, 87) +- Code(Counter(0)) at (prev + 0, 89) to (start + 0, 99) +- Code(Counter(0)) at (prev + 0, 101) to (start + 0, 112) +- Code(Counter(0)) at (prev + 0, 114) to (start + 0, 174) +Highest counter ID seen: c0 + +Function name: issue_84561::test3::{closure#8} +Raw bytes (25): 0x[01, 01, 00, 04, 01, 78, 54, 00, 58, 01, 00, 5a, 00, 64, 01, 00, 66, 00, 71, 01, 00, 73, 00, af, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 4 +- Code(Counter(0)) at (prev + 120, 84) to (start + 0, 88) +- Code(Counter(0)) at (prev + 0, 90) to (start + 0, 100) +- Code(Counter(0)) at (prev + 0, 102) to (start + 0, 113) +- Code(Counter(0)) at (prev + 0, 115) to (start + 0, 175) +Highest counter ID seen: c0 + +Function name: issue_84561::test3::{closure#9} +Raw bytes (25): 0x[01, 01, 00, 04, 01, 78, 54, 00, 58, 01, 00, 5a, 00, 64, 01, 00, 66, 00, 71, 01, 00, 73, 00, af, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 4 +- Code(Counter(0)) at (prev + 120, 84) to (start + 0, 88) +- Code(Counter(0)) at (prev + 0, 90) to (start + 0, 100) +- Code(Counter(0)) at (prev + 0, 102) to (start + 0, 113) +- Code(Counter(0)) at (prev + 0, 115) to (start + 0, 175) +Highest counter ID seen: c0 diff --git a/tests/coverage/try_error_result.cov-map b/tests/coverage/try_error_result.cov-map index fa937cfb7755c..050fa77624fe9 100644 --- a/tests/coverage/try_error_result.cov-map +++ b/tests/coverage/try_error_result.cov-map @@ -203,3 +203,68 @@ Number of file 0 mappings: 57 - Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2) Highest counter ID seen: c1 +Function name: try_error_result::test2::{closure#0} (unused) +Raw bytes (30): 0x[01, 02, 00, 05, 00, 33, 33, 00, 53, 00, 00, 54, 00, 58, 00, 00, 5a, 00, 64, 00, 00, 66, 00, 71, 00, 00, 73, 00, 8f, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Zero) at (prev + 51, 51) to (start + 0, 83) +- Code(Zero) at (prev + 0, 84) to (start + 0, 88) +- Code(Zero) at (prev + 0, 90) to (start + 0, 100) +- Code(Zero) at (prev + 0, 102) to (start + 0, 113) +- Code(Zero) at (prev + 0, 115) to (start + 0, 143) +Highest counter ID seen: (none) + +Function name: try_error_result::test2::{closure#1} (unused) +Raw bytes (30): 0x[01, 02, 00, 05, 00, 33, 33, 00, 53, 00, 00, 54, 00, 58, 00, 00, 5a, 00, 64, 00, 00, 66, 00, 71, 00, 00, 73, 00, 8f, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Zero) at (prev + 51, 51) to (start + 0, 83) +- Code(Zero) at (prev + 0, 84) to (start + 0, 88) +- Code(Zero) at (prev + 0, 90) to (start + 0, 100) +- Code(Zero) at (prev + 0, 102) to (start + 0, 113) +- Code(Zero) at (prev + 0, 115) to (start + 0, 143) +Highest counter ID seen: (none) + +Function name: try_error_result::test2::{closure#2} (unused) +Raw bytes (30): 0x[01, 02, 00, 05, 00, 33, 33, 00, 53, 00, 00, 54, 00, 58, 00, 00, 5a, 00, 64, 00, 00, 66, 00, 71, 00, 00, 73, 00, 8f, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Zero) at (prev + 51, 51) to (start + 0, 83) +- Code(Zero) at (prev + 0, 84) to (start + 0, 88) +- Code(Zero) at (prev + 0, 90) to (start + 0, 100) +- Code(Zero) at (prev + 0, 102) to (start + 0, 113) +- Code(Zero) at (prev + 0, 115) to (start + 0, 143) +Highest counter ID seen: (none) + +Function name: try_error_result::test2::{closure#3} (unused) +Raw bytes (30): 0x[01, 02, 00, 05, 00, 33, 33, 00, 53, 00, 00, 54, 00, 58, 00, 00, 5a, 00, 64, 00, 00, 66, 00, 71, 00, 00, 73, 00, 8f, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Zero) at (prev + 51, 51) to (start + 0, 83) +- Code(Zero) at (prev + 0, 84) to (start + 0, 88) +- Code(Zero) at (prev + 0, 90) to (start + 0, 100) +- Code(Zero) at (prev + 0, 102) to (start + 0, 113) +- Code(Zero) at (prev + 0, 115) to (start + 0, 143) +Highest counter ID seen: (none) + +Function name: try_error_result::test2::{closure#4} (unused) +Raw bytes (30): 0x[01, 02, 00, 05, 00, 33, 33, 00, 53, 00, 00, 54, 00, 58, 00, 00, 5a, 00, 64, 00, 00, 66, 00, 71, 00, 00, 73, 00, 8f, 01] +Number of files: 1 +- file 0 => $SRC_DIR/core/src/macros/mod.rs +Number of expressions: 0 +Number of file 0 mappings: 5 +- Code(Zero) at (prev + 51, 51) to (start + 0, 83) +- Code(Zero) at (prev + 0, 84) to (start + 0, 88) +- Code(Zero) at (prev + 0, 90) to (start + 0, 100) +- Code(Zero) at (prev + 0, 102) to (start + 0, 113) +- Code(Zero) at (prev + 0, 115) to (start + 0, 143) +Highest counter ID seen: (none) + diff --git a/tests/mir-opt/gvn.slices.GVN.panic-abort.diff b/tests/mir-opt/gvn.slices.GVN.panic-abort.diff index 69c74d11d17e3..6f2240afe9d8c 100644 --- a/tests/mir-opt/gvn.slices.GVN.panic-abort.diff +++ b/tests/mir-opt/gvn.slices.GVN.panic-abort.diff @@ -19,36 +19,28 @@ let mut _17: bool; let mut _18: *const u8; let mut _19: *const u8; - let mut _20: !; - let _22: !; - let mut _23: core::panicking::AssertKind; + let _21: (); + let mut _22: {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL}; + let mut _23: &*const u8; let mut _24: &*const u8; - let _25: &*const u8; - let mut _26: &*const u8; - let _27: &*const u8; - let mut _28: std::option::Option>; - let mut _30: &str; - let _31: (); - let mut _32: &[u8]; - let _33: (); - let mut _34: (&*const u8, &*const u8); - let mut _35: &*const u8; - let _36: *const u8; - let mut _37: &str; - let mut _38: &*const u8; - let _39: *const u8; - let mut _40: &[u8]; - let mut _43: bool; - let mut _44: *const u8; - let mut _45: *const u8; - let mut _46: !; - let _48: !; - let mut _49: core::panicking::AssertKind; - let mut _50: &*const u8; - let _51: &*const u8; - let mut _52: &*const u8; - let _53: &*const u8; - let mut _54: std::option::Option>; + let mut _26: &str; + let _27: (); + let mut _28: &[u8]; + let _29: (); + let mut _30: (&*const u8, &*const u8); + let mut _31: &*const u8; + let _32: *const u8; + let mut _33: &str; + let mut _34: &*const u8; + let _35: *const u8; + let mut _36: &[u8]; + let mut _39: bool; + let mut _40: *const u8; + let mut _41: *const u8; + let _43: (); + let mut _44: {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL}; + let mut _45: &*const u8; + let mut _46: &*const u8; scope 1 { debug s => _1; let _4: &str; @@ -56,25 +48,25 @@ debug t => _4; let _15: &*const u8; let _16: &*const u8; - let _29: &[u8]; + let _25: &[u8]; scope 3 { debug left_val => _15; debug right_val => _16; - let _21: core::panicking::AssertKind; + let _20: core::panicking::AssertKind; scope 4 { - debug kind => _21; + debug kind => _20; } } scope 5 { - debug u => _29; - let _41: &*const u8; - let _42: &*const u8; + debug u => _25; + let _37: &*const u8; + let _38: &*const u8; scope 6 { - debug left_val => _41; - debug right_val => _42; - let _47: core::panicking::AssertKind; + debug left_val => _37; + debug right_val => _38; + let _42: core::panicking::AssertKind; scope 7 { - debug kind => _47; + debug kind => _42; } } } @@ -162,151 +154,160 @@ StorageDead(_19); StorageDead(_18); _7 = const (); - StorageDead(_17); - StorageDead(_16); - StorageDead(_15); - StorageDead(_13); - StorageDead(_10); - StorageDead(_8); - StorageDead(_7); - StorageLive(_29); - StorageLive(_30); - _30 = &(*_1); - _29 = move _30 as &[u8] (Transmute); - StorageDead(_30); - StorageLive(_31); - StorageLive(_32); - _32 = copy _29; -- _31 = opaque::<&[u8]>(move _32) -> [return: bb7, unwind unreachable]; -+ _31 = opaque::<&[u8]>(copy _29) -> [return: bb7, unwind unreachable]; + goto -> bb8; } bb6: { StorageDead(_19); StorageDead(_18); + StorageLive(_20); +- _20 = core::panicking::AssertKind::Eq; ++ _20 = const core::panicking::AssertKind::Eq; StorageLive(_21); -- _21 = core::panicking::AssertKind::Eq; -+ _21 = const core::panicking::AssertKind::Eq; StorageLive(_22); StorageLive(_23); -- _23 = move _21; -+ _23 = const core::panicking::AssertKind::Eq; +- _23 = &(*_15); ++ _23 = &(*_9); StorageLive(_24); +- _24 = &(*_16); +- _22 = {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL} { kind: move _20, left_val: move _23, right_val: move _24 }; ++ _24 = &(*_12); ++ _22 = {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL} { kind: const core::panicking::AssertKind::Eq, left_val: move _23, right_val: move _24 }; + StorageDead(_24); + StorageDead(_23); + _21 = outline::<(), {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL}>(move _22) -> [return: bb7, unwind unreachable]; + } + + bb7: { + StorageDead(_22); + StorageDead(_21); + _7 = const (); + StorageDead(_20); + goto -> bb8; + } + + bb8: { + StorageDead(_17); + StorageDead(_16); + StorageDead(_15); + StorageDead(_13); + StorageDead(_10); + StorageDead(_8); + StorageDead(_7); StorageLive(_25); -- _25 = &(*_15); -+ _25 = &(*_9); - _24 = &(*_25); StorageLive(_26); + _26 = &(*_1); + _25 = move _26 as &[u8] (Transmute); + StorageDead(_26); StorageLive(_27); -- _27 = &(*_16); -+ _27 = &(*_12); - _26 = &(*_27); StorageLive(_28); -- _28 = Option::>::None; -- _22 = core::panicking::assert_failed::<*const u8, *const u8>(move _23, move _24, move _26, move _28) -> unwind unreachable; -+ _28 = const Option::>::None; -+ _22 = core::panicking::assert_failed::<*const u8, *const u8>(const core::panicking::AssertKind::Eq, move _24, move _26, const Option::>::None) -> unwind unreachable; + _28 = copy _25; +- _27 = opaque::<&[u8]>(move _28) -> [return: bb9, unwind unreachable]; ++ _27 = opaque::<&[u8]>(copy _25) -> [return: bb9, unwind unreachable]; } - bb7: { - StorageDead(_32); - StorageDead(_31); + bb9: { + StorageDead(_28); + StorageDead(_27); + StorageLive(_29); + StorageLive(_30); +- StorageLive(_31); ++ nop; + StorageLive(_32); StorageLive(_33); - StorageLive(_34); -- StorageLive(_35); + _33 = &(*_1); + _32 = core::str::::as_ptr(move _33) -> [return: bb10, unwind unreachable]; + } + + bb10: { + StorageDead(_33); + _31 = &_32; +- StorageLive(_34); + nop; + StorageLive(_35); StorageLive(_36); - StorageLive(_37); - _37 = &(*_1); - _36 = core::str::::as_ptr(move _37) -> [return: bb8, unwind unreachable]; + _36 = &(*_25); + _35 = core::slice::::as_ptr(move _36) -> [return: bb11, unwind unreachable]; } - bb8: { - StorageDead(_37); - _35 = &_36; -- StorageLive(_38); + bb11: { + StorageDead(_36); + _34 = &_35; +- _30 = (move _31, move _34); +- StorageDead(_34); +- StorageDead(_31); ++ _30 = (copy _31, copy _34); ++ nop; + nop; + StorageLive(_37); +- _37 = copy (_30.0: &*const u8); ++ _37 = copy _31; + StorageLive(_38); +- _38 = copy (_30.1: &*const u8); ++ _38 = copy _34; StorageLive(_39); StorageLive(_40); - _40 = &(*_29); - _39 = core::slice::::as_ptr(move _40) -> [return: bb9, unwind unreachable]; +- _40 = copy (*_37); ++ _40 = copy _32; + StorageLive(_41); +- _41 = copy (*_38); +- _39 = Eq(move _40, move _41); ++ _41 = copy _35; ++ _39 = Eq(copy _32, copy _35); + switchInt(move _39) -> [0: bb13, otherwise: bb12]; } - bb9: { + bb12: { + StorageDead(_41); + StorageDead(_40); + _29 = const (); + goto -> bb15; + } + + bb13: { + StorageDead(_41); StorageDead(_40); - _38 = &_39; -- _34 = (move _35, move _38); -- StorageDead(_38); -- StorageDead(_35); -+ _34 = (copy _35, copy _38); -+ nop; -+ nop; - StorageLive(_41); -- _41 = copy (_34.0: &*const u8); -+ _41 = copy _35; StorageLive(_42); -- _42 = copy (_34.1: &*const u8); -+ _42 = copy _38; +- _42 = core::panicking::AssertKind::Eq; ++ _42 = const core::panicking::AssertKind::Eq; StorageLive(_43); StorageLive(_44); -- _44 = copy (*_41); -+ _44 = copy _36; StorageLive(_45); -- _45 = copy (*_42); -- _43 = Eq(move _44, move _45); -+ _45 = copy _39; -+ _43 = Eq(copy _36, copy _39); - switchInt(move _43) -> [0: bb11, otherwise: bb10]; +- _45 = &(*_37); ++ _45 = &(*_31); + StorageLive(_46); +- _46 = &(*_38); +- _44 = {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL} { kind: move _42, left_val: move _45, right_val: move _46 }; ++ _46 = &(*_34); ++ _44 = {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL} { kind: const core::panicking::AssertKind::Eq, left_val: move _45, right_val: move _46 }; + StorageDead(_46); + StorageDead(_45); + _43 = outline::<(), {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL}>(move _44) -> [return: bb14, unwind unreachable]; } - bb10: { - StorageDead(_45); + bb14: { StorageDead(_44); - _33 = const (); StorageDead(_43); + _29 = const (); StorageDead(_42); - StorageDead(_41); + goto -> bb15; + } + + bb15: { StorageDead(_39); - StorageDead(_36); - StorageDead(_34); - StorageDead(_33); - _0 = const (); + StorageDead(_38); + StorageDead(_37); + StorageDead(_35); + StorageDead(_32); + StorageDead(_30); StorageDead(_29); + _0 = const (); + StorageDead(_25); StorageDead(_4); StorageDead(_1); return; } - - bb11: { - StorageDead(_45); - StorageDead(_44); - StorageLive(_47); -- _47 = core::panicking::AssertKind::Eq; -+ _47 = const core::panicking::AssertKind::Eq; - StorageLive(_48); - StorageLive(_49); -- _49 = move _47; -+ _49 = const core::panicking::AssertKind::Eq; - StorageLive(_50); - StorageLive(_51); -- _51 = &(*_41); -+ _51 = &(*_35); - _50 = &(*_51); - StorageLive(_52); - StorageLive(_53); -- _53 = &(*_42); -+ _53 = &(*_38); - _52 = &(*_53); - StorageLive(_54); -- _54 = Option::>::None; -- _48 = core::panicking::assert_failed::<*const u8, *const u8>(move _49, move _50, move _52, move _54) -> unwind unreachable; -+ _54 = const Option::>::None; -+ _48 = core::panicking::assert_failed::<*const u8, *const u8>(const core::panicking::AssertKind::Eq, move _50, move _52, const Option::>::None) -> unwind unreachable; - } } -- ALLOC0 (size: 18, align: 1) { .. } -+ ALLOC0 (size: 16, align: 8) { .. } -+ -+ ALLOC1 (size: 18, align: 1) { .. } + ALLOC0 (size: 18, align: 1) { .. } diff --git a/tests/mir-opt/gvn.slices.GVN.panic-unwind.diff b/tests/mir-opt/gvn.slices.GVN.panic-unwind.diff index 4a27c577303d7..38a255b9f6c93 100644 --- a/tests/mir-opt/gvn.slices.GVN.panic-unwind.diff +++ b/tests/mir-opt/gvn.slices.GVN.panic-unwind.diff @@ -19,36 +19,28 @@ let mut _17: bool; let mut _18: *const u8; let mut _19: *const u8; - let mut _20: !; - let _22: !; - let mut _23: core::panicking::AssertKind; + let _21: (); + let mut _22: {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL}; + let mut _23: &*const u8; let mut _24: &*const u8; - let _25: &*const u8; - let mut _26: &*const u8; - let _27: &*const u8; - let mut _28: std::option::Option>; - let mut _30: &str; - let _31: (); - let mut _32: &[u8]; - let _33: (); - let mut _34: (&*const u8, &*const u8); - let mut _35: &*const u8; - let _36: *const u8; - let mut _37: &str; - let mut _38: &*const u8; - let _39: *const u8; - let mut _40: &[u8]; - let mut _43: bool; - let mut _44: *const u8; - let mut _45: *const u8; - let mut _46: !; - let _48: !; - let mut _49: core::panicking::AssertKind; - let mut _50: &*const u8; - let _51: &*const u8; - let mut _52: &*const u8; - let _53: &*const u8; - let mut _54: std::option::Option>; + let mut _26: &str; + let _27: (); + let mut _28: &[u8]; + let _29: (); + let mut _30: (&*const u8, &*const u8); + let mut _31: &*const u8; + let _32: *const u8; + let mut _33: &str; + let mut _34: &*const u8; + let _35: *const u8; + let mut _36: &[u8]; + let mut _39: bool; + let mut _40: *const u8; + let mut _41: *const u8; + let _43: (); + let mut _44: {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL}; + let mut _45: &*const u8; + let mut _46: &*const u8; scope 1 { debug s => _1; let _4: &str; @@ -56,25 +48,25 @@ debug t => _4; let _15: &*const u8; let _16: &*const u8; - let _29: &[u8]; + let _25: &[u8]; scope 3 { debug left_val => _15; debug right_val => _16; - let _21: core::panicking::AssertKind; + let _20: core::panicking::AssertKind; scope 4 { - debug kind => _21; + debug kind => _20; } } scope 5 { - debug u => _29; - let _41: &*const u8; - let _42: &*const u8; + debug u => _25; + let _37: &*const u8; + let _38: &*const u8; scope 6 { - debug left_val => _41; - debug right_val => _42; - let _47: core::panicking::AssertKind; + debug left_val => _37; + debug right_val => _38; + let _42: core::panicking::AssertKind; scope 7 { - debug kind => _47; + debug kind => _42; } } } @@ -162,151 +154,160 @@ StorageDead(_19); StorageDead(_18); _7 = const (); - StorageDead(_17); - StorageDead(_16); - StorageDead(_15); - StorageDead(_13); - StorageDead(_10); - StorageDead(_8); - StorageDead(_7); - StorageLive(_29); - StorageLive(_30); - _30 = &(*_1); - _29 = move _30 as &[u8] (Transmute); - StorageDead(_30); - StorageLive(_31); - StorageLive(_32); - _32 = copy _29; -- _31 = opaque::<&[u8]>(move _32) -> [return: bb7, unwind continue]; -+ _31 = opaque::<&[u8]>(copy _29) -> [return: bb7, unwind continue]; + goto -> bb8; } bb6: { StorageDead(_19); StorageDead(_18); + StorageLive(_20); +- _20 = core::panicking::AssertKind::Eq; ++ _20 = const core::panicking::AssertKind::Eq; StorageLive(_21); -- _21 = core::panicking::AssertKind::Eq; -+ _21 = const core::panicking::AssertKind::Eq; StorageLive(_22); StorageLive(_23); -- _23 = move _21; -+ _23 = const core::panicking::AssertKind::Eq; +- _23 = &(*_15); ++ _23 = &(*_9); StorageLive(_24); +- _24 = &(*_16); +- _22 = {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL} { kind: move _20, left_val: move _23, right_val: move _24 }; ++ _24 = &(*_12); ++ _22 = {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL} { kind: const core::panicking::AssertKind::Eq, left_val: move _23, right_val: move _24 }; + StorageDead(_24); + StorageDead(_23); + _21 = outline::<(), {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL}>(move _22) -> [return: bb7, unwind continue]; + } + + bb7: { + StorageDead(_22); + StorageDead(_21); + _7 = const (); + StorageDead(_20); + goto -> bb8; + } + + bb8: { + StorageDead(_17); + StorageDead(_16); + StorageDead(_15); + StorageDead(_13); + StorageDead(_10); + StorageDead(_8); + StorageDead(_7); StorageLive(_25); -- _25 = &(*_15); -+ _25 = &(*_9); - _24 = &(*_25); StorageLive(_26); + _26 = &(*_1); + _25 = move _26 as &[u8] (Transmute); + StorageDead(_26); StorageLive(_27); -- _27 = &(*_16); -+ _27 = &(*_12); - _26 = &(*_27); StorageLive(_28); -- _28 = Option::>::None; -- _22 = core::panicking::assert_failed::<*const u8, *const u8>(move _23, move _24, move _26, move _28) -> unwind continue; -+ _28 = const Option::>::None; -+ _22 = core::panicking::assert_failed::<*const u8, *const u8>(const core::panicking::AssertKind::Eq, move _24, move _26, const Option::>::None) -> unwind continue; + _28 = copy _25; +- _27 = opaque::<&[u8]>(move _28) -> [return: bb9, unwind continue]; ++ _27 = opaque::<&[u8]>(copy _25) -> [return: bb9, unwind continue]; } - bb7: { - StorageDead(_32); - StorageDead(_31); + bb9: { + StorageDead(_28); + StorageDead(_27); + StorageLive(_29); + StorageLive(_30); +- StorageLive(_31); ++ nop; + StorageLive(_32); StorageLive(_33); - StorageLive(_34); -- StorageLive(_35); + _33 = &(*_1); + _32 = core::str::::as_ptr(move _33) -> [return: bb10, unwind continue]; + } + + bb10: { + StorageDead(_33); + _31 = &_32; +- StorageLive(_34); + nop; + StorageLive(_35); StorageLive(_36); - StorageLive(_37); - _37 = &(*_1); - _36 = core::str::::as_ptr(move _37) -> [return: bb8, unwind continue]; + _36 = &(*_25); + _35 = core::slice::::as_ptr(move _36) -> [return: bb11, unwind continue]; } - bb8: { - StorageDead(_37); - _35 = &_36; -- StorageLive(_38); + bb11: { + StorageDead(_36); + _34 = &_35; +- _30 = (move _31, move _34); +- StorageDead(_34); +- StorageDead(_31); ++ _30 = (copy _31, copy _34); ++ nop; + nop; + StorageLive(_37); +- _37 = copy (_30.0: &*const u8); ++ _37 = copy _31; + StorageLive(_38); +- _38 = copy (_30.1: &*const u8); ++ _38 = copy _34; StorageLive(_39); StorageLive(_40); - _40 = &(*_29); - _39 = core::slice::::as_ptr(move _40) -> [return: bb9, unwind continue]; +- _40 = copy (*_37); ++ _40 = copy _32; + StorageLive(_41); +- _41 = copy (*_38); +- _39 = Eq(move _40, move _41); ++ _41 = copy _35; ++ _39 = Eq(copy _32, copy _35); + switchInt(move _39) -> [0: bb13, otherwise: bb12]; } - bb9: { + bb12: { + StorageDead(_41); + StorageDead(_40); + _29 = const (); + goto -> bb15; + } + + bb13: { + StorageDead(_41); StorageDead(_40); - _38 = &_39; -- _34 = (move _35, move _38); -- StorageDead(_38); -- StorageDead(_35); -+ _34 = (copy _35, copy _38); -+ nop; -+ nop; - StorageLive(_41); -- _41 = copy (_34.0: &*const u8); -+ _41 = copy _35; StorageLive(_42); -- _42 = copy (_34.1: &*const u8); -+ _42 = copy _38; +- _42 = core::panicking::AssertKind::Eq; ++ _42 = const core::panicking::AssertKind::Eq; StorageLive(_43); StorageLive(_44); -- _44 = copy (*_41); -+ _44 = copy _36; StorageLive(_45); -- _45 = copy (*_42); -- _43 = Eq(move _44, move _45); -+ _45 = copy _39; -+ _43 = Eq(copy _36, copy _39); - switchInt(move _43) -> [0: bb11, otherwise: bb10]; +- _45 = &(*_37); ++ _45 = &(*_31); + StorageLive(_46); +- _46 = &(*_38); +- _44 = {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL} { kind: move _42, left_val: move _45, right_val: move _46 }; ++ _46 = &(*_34); ++ _44 = {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL} { kind: const core::panicking::AssertKind::Eq, left_val: move _45, right_val: move _46 }; + StorageDead(_46); + StorageDead(_45); + _43 = outline::<(), {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL}>(move _44) -> [return: bb14, unwind continue]; } - bb10: { - StorageDead(_45); + bb14: { StorageDead(_44); - _33 = const (); StorageDead(_43); + _29 = const (); StorageDead(_42); - StorageDead(_41); + goto -> bb15; + } + + bb15: { StorageDead(_39); - StorageDead(_36); - StorageDead(_34); - StorageDead(_33); - _0 = const (); + StorageDead(_38); + StorageDead(_37); + StorageDead(_35); + StorageDead(_32); + StorageDead(_30); StorageDead(_29); + _0 = const (); + StorageDead(_25); StorageDead(_4); StorageDead(_1); return; } - - bb11: { - StorageDead(_45); - StorageDead(_44); - StorageLive(_47); -- _47 = core::panicking::AssertKind::Eq; -+ _47 = const core::panicking::AssertKind::Eq; - StorageLive(_48); - StorageLive(_49); -- _49 = move _47; -+ _49 = const core::panicking::AssertKind::Eq; - StorageLive(_50); - StorageLive(_51); -- _51 = &(*_41); -+ _51 = &(*_35); - _50 = &(*_51); - StorageLive(_52); - StorageLive(_53); -- _53 = &(*_42); -+ _53 = &(*_38); - _52 = &(*_53); - StorageLive(_54); -- _54 = Option::>::None; -- _48 = core::panicking::assert_failed::<*const u8, *const u8>(move _49, move _50, move _52, move _54) -> unwind continue; -+ _54 = const Option::>::None; -+ _48 = core::panicking::assert_failed::<*const u8, *const u8>(const core::panicking::AssertKind::Eq, move _50, move _52, const Option::>::None) -> unwind continue; - } } -- ALLOC0 (size: 18, align: 1) { .. } -+ ALLOC0 (size: 16, align: 8) { .. } -+ -+ ALLOC1 (size: 18, align: 1) { .. } + ALLOC0 (size: 18, align: 1) { .. } diff --git a/tests/mir-opt/issue_99325.main.built.after.32bit.mir b/tests/mir-opt/issue_99325.main.built.after.32bit.mir index 4a028248d6633..a11dec392d895 100644 --- a/tests/mir-opt/issue_99325.main.built.after.32bit.mir +++ b/tests/mir-opt/issue_99325.main.built.after.32bit.mir @@ -2,7 +2,7 @@ | User Type Annotations | 0: user_ty: Canonical { value: TypeOf(DefId(0:3 ~ issue_99325[d56d]::function_with_bytes), UserArgs { args: [&*b"AAAA"], user_self_ty: None }), max_universe: U0, var_kinds: [] }, span: $DIR/issue_99325.rs:13:16: 13:46, inferred_ty: fn() -> &'static [u8] {function_with_bytes::<&*b"AAAA">} -| 1: user_ty: Canonical { value: TypeOf(DefId(0:3 ~ issue_99325[d56d]::function_with_bytes), UserArgs { args: [AliasConst(No, Alias { kind: Anon { def_id: DefId(0:8 ~ issue_99325[d56d]::main::{constant#1}) }, args: [], .. })], user_self_ty: None }), max_universe: U0, var_kinds: [] }, span: $DIR/issue_99325.rs:14:16: 14:68, inferred_ty: fn() -> &'static [u8] {function_with_bytes::<&*b"AAAA">} +| 1: user_ty: Canonical { value: TypeOf(DefId(0:3 ~ issue_99325[d56d]::function_with_bytes), UserArgs { args: [AliasConst(No, Alias { kind: Anon { def_id: DefId(0:9 ~ issue_99325[d56d]::main::{constant#1}) }, args: [], .. })], user_self_ty: None }), max_universe: U0, var_kinds: [] }, span: $DIR/issue_99325.rs:14:16: 14:68, inferred_ty: fn() -> &'static [u8] {function_with_bytes::<&*b"AAAA">} | fn main() -> () { let mut _0: (); @@ -18,47 +18,39 @@ fn main() -> () { let mut _10: bool; let mut _11: &&[u8]; let mut _12: &&[u8; 4]; - let mut _13: !; - let _15: !; - let mut _16: core::panicking::AssertKind; - let mut _17: &&[u8]; - let _18: &&[u8]; - let mut _19: &&[u8; 4]; - let _20: &&[u8; 4]; - let mut _21: std::option::Option>; - let _22: (); - let mut _23: (&&[u8], &&[u8; 4]); - let mut _24: &&[u8]; - let _25: &[u8]; - let mut _26: &&[u8; 4]; - let _27: &[u8; 4]; - let _28: &&[u8]; - let _29: &&[u8; 4]; - let mut _30: bool; - let mut _31: &&[u8]; - let mut _32: &&[u8; 4]; - let mut _33: !; - let _35: !; - let mut _36: core::panicking::AssertKind; - let mut _37: &&[u8]; - let _38: &&[u8]; - let mut _39: &&[u8; 4]; - let _40: &&[u8; 4]; - let mut _41: std::option::Option>; + let _14: (); + let mut _15: {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL}; + let mut _16: &&[u8]; + let mut _17: &&[u8; 4]; + let _18: (); + let mut _19: (&&[u8], &&[u8; 4]); + let mut _20: &&[u8]; + let _21: &[u8]; + let mut _22: &&[u8; 4]; + let _23: &[u8; 4]; + let _24: &&[u8]; + let _25: &&[u8; 4]; + let mut _26: bool; + let mut _27: &&[u8]; + let mut _28: &&[u8; 4]; + let _30: (); + let mut _31: {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL}; + let mut _32: &&[u8]; + let mut _33: &&[u8; 4]; scope 1 { debug left_val => _8; debug right_val => _9; - let _14: core::panicking::AssertKind; + let _13: core::panicking::AssertKind; scope 2 { - debug kind => _14; + debug kind => _13; } } scope 3 { - debug left_val => _28; - debug right_val => _29; - let _34: core::panicking::AssertKind; + debug left_val => _24; + debug right_val => _25; + let _29: core::panicking::AssertKind; scope 4 { - debug kind => _34; + debug kind => _29; } } @@ -67,7 +59,7 @@ fn main() -> () { StorageLive(_2); StorageLive(_3); StorageLive(_4); - _4 = function_with_bytes::<&*b"AAAA">() -> [return: bb1, unwind: bb23]; + _4 = function_with_bytes::<&*b"AAAA">() -> [return: bb1, unwind: bb21]; } bb1: { @@ -91,7 +83,7 @@ fn main() -> () { _11 = &(*_8); StorageLive(_12); _12 = &(*_9); - _10 = <&[u8] as PartialEq<&[u8; 4]>>::eq(move _11, move _12) -> [return: bb3, unwind: bb23]; + _10 = <&[u8] as PartialEq<&[u8; 4]>>::eq(move _11, move _12) -> [return: bb3, unwind: bb21]; } bb2: { @@ -106,7 +98,7 @@ fn main() -> () { bb4: { StorageDead(_12); StorageDead(_11); - goto -> bb9; + goto -> bb8; } bb5: { @@ -116,167 +108,143 @@ fn main() -> () { bb6: { StorageDead(_12); StorageDead(_11); + StorageLive(_13); + _13 = core::panicking::AssertKind::Eq; + FakeRead(ForLet(None), _13); StorageLive(_14); - _14 = core::panicking::AssertKind::Eq; - FakeRead(ForLet(None), _14); StorageLive(_15); StorageLive(_16); - _16 = move _14; + _16 = &(*_8); StorageLive(_17); - StorageLive(_18); - _18 = &(*_8); - _17 = &(*_18); - StorageLive(_19); - StorageLive(_20); - _20 = &(*_9); - _19 = &(*_20); - StorageLive(_21); - _21 = Option::>::None; - _15 = core::panicking::assert_failed::<&[u8], &[u8; 4]>(move _16, move _17, move _19, move _21) -> [return: bb7, unwind: bb23]; + _17 = &(*_9); + _15 = {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL} { kind: move _13, left_val: move _16, right_val: move _17 }; + StorageDead(_17); + StorageDead(_16); + _14 = core::panicking::outline::<(), {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL}>(move _15) -> [return: bb7, unwind: bb21]; } bb7: { - StorageDead(_21); - StorageDead(_19); - StorageDead(_17); - StorageDead(_16); - StorageDead(_20); - StorageDead(_18); StorageDead(_15); StorageDead(_14); - unreachable; + _1 = const (); + StorageDead(_13); + goto -> bb9; } bb8: { - goto -> bb10; - } - - bb9: { _1 = const (); - goto -> bb10; + goto -> bb9; } - bb10: { + bb9: { StorageDead(_10); StorageDead(_9); StorageDead(_8); - goto -> bb11; + goto -> bb10; } - bb11: { + bb10: { StorageDead(_7); StorageDead(_6); StorageDead(_4); StorageDead(_2); StorageDead(_1); + StorageLive(_18); + StorageLive(_19); + StorageLive(_20); + StorageLive(_21); + _21 = function_with_bytes::<&*b"AAAA">() -> [return: bb11, unwind: bb21]; + } + + bb11: { + _20 = &_21; StorageLive(_22); StorageLive(_23); + _23 = const b"AAAA"; + _22 = &_23; + _19 = (move _20, move _22); + StorageDead(_22); + StorageDead(_20); + PlaceMention(_19); StorageLive(_24); + _24 = copy (_19.0: &&[u8]); StorageLive(_25); - _25 = function_with_bytes::<&*b"AAAA">() -> [return: bb12, unwind: bb23]; - } - - bb12: { - _24 = &_25; + _25 = copy (_19.1: &&[u8; 4]); StorageLive(_26); StorageLive(_27); - _27 = const b"AAAA"; - _26 = &_27; - _23 = (move _24, move _26); - StorageDead(_26); - StorageDead(_24); - PlaceMention(_23); + _27 = &(*_24); StorageLive(_28); - _28 = copy (_23.0: &&[u8]); - StorageLive(_29); - _29 = copy (_23.1: &&[u8; 4]); - StorageLive(_30); - StorageLive(_31); - _31 = &(*_28); - StorageLive(_32); - _32 = &(*_29); - _30 = <&[u8] as PartialEq<&[u8; 4]>>::eq(move _31, move _32) -> [return: bb14, unwind: bb23]; + _28 = &(*_25); + _26 = <&[u8] as PartialEq<&[u8; 4]>>::eq(move _27, move _28) -> [return: bb13, unwind: bb21]; } - bb13: { - FakeRead(ForMatchedPlace(None), _23); + bb12: { + FakeRead(ForMatchedPlace(None), _19); unreachable; } + bb13: { + switchInt(move _26) -> [0: bb15, otherwise: bb14]; + } + bb14: { - switchInt(move _30) -> [0: bb16, otherwise: bb15]; + StorageDead(_28); + StorageDead(_27); + goto -> bb18; } bb15: { - StorageDead(_32); - StorageDead(_31); - goto -> bb20; + goto -> bb16; } bb16: { - goto -> bb17; + StorageDead(_28); + StorageDead(_27); + StorageLive(_29); + _29 = core::panicking::AssertKind::Eq; + FakeRead(ForLet(None), _29); + StorageLive(_30); + StorageLive(_31); + StorageLive(_32); + _32 = &(*_24); + StorageLive(_33); + _33 = &(*_25); + _31 = {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL} { kind: move _29, left_val: move _32, right_val: move _33 }; + StorageDead(_33); + StorageDead(_32); + _30 = core::panicking::outline::<(), {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL}>(move _31) -> [return: bb17, unwind: bb21]; } bb17: { - StorageDead(_32); StorageDead(_31); - StorageLive(_34); - _34 = core::panicking::AssertKind::Eq; - FakeRead(ForLet(None), _34); - StorageLive(_35); - StorageLive(_36); - _36 = move _34; - StorageLive(_37); - StorageLive(_38); - _38 = &(*_28); - _37 = &(*_38); - StorageLive(_39); - StorageLive(_40); - _40 = &(*_29); - _39 = &(*_40); - StorageLive(_41); - _41 = Option::>::None; - _35 = core::panicking::assert_failed::<&[u8], &[u8; 4]>(move _36, move _37, move _39, move _41) -> [return: bb18, unwind: bb23]; + StorageDead(_30); + _18 = const (); + StorageDead(_29); + goto -> bb19; } bb18: { - StorageDead(_41); - StorageDead(_39); - StorageDead(_37); - StorageDead(_36); - StorageDead(_40); - StorageDead(_38); - StorageDead(_35); - StorageDead(_34); - unreachable; + _18 = const (); + goto -> bb19; } bb19: { - goto -> bb21; + StorageDead(_26); + StorageDead(_25); + StorageDead(_24); + goto -> bb20; } bb20: { - _22 = const (); - goto -> bb21; - } - - bb21: { - StorageDead(_30); - StorageDead(_29); - StorageDead(_28); - goto -> bb22; - } - - bb22: { - StorageDead(_27); - StorageDead(_25); StorageDead(_23); - StorageDead(_22); + StorageDead(_21); + StorageDead(_19); + StorageDead(_18); _0 = const (); return; } - bb23 (cleanup): { + bb21 (cleanup): { resume; } } diff --git a/tests/mir-opt/issue_99325.main.built.after.64bit.mir b/tests/mir-opt/issue_99325.main.built.after.64bit.mir index 4a028248d6633..a11dec392d895 100644 --- a/tests/mir-opt/issue_99325.main.built.after.64bit.mir +++ b/tests/mir-opt/issue_99325.main.built.after.64bit.mir @@ -2,7 +2,7 @@ | User Type Annotations | 0: user_ty: Canonical { value: TypeOf(DefId(0:3 ~ issue_99325[d56d]::function_with_bytes), UserArgs { args: [&*b"AAAA"], user_self_ty: None }), max_universe: U0, var_kinds: [] }, span: $DIR/issue_99325.rs:13:16: 13:46, inferred_ty: fn() -> &'static [u8] {function_with_bytes::<&*b"AAAA">} -| 1: user_ty: Canonical { value: TypeOf(DefId(0:3 ~ issue_99325[d56d]::function_with_bytes), UserArgs { args: [AliasConst(No, Alias { kind: Anon { def_id: DefId(0:8 ~ issue_99325[d56d]::main::{constant#1}) }, args: [], .. })], user_self_ty: None }), max_universe: U0, var_kinds: [] }, span: $DIR/issue_99325.rs:14:16: 14:68, inferred_ty: fn() -> &'static [u8] {function_with_bytes::<&*b"AAAA">} +| 1: user_ty: Canonical { value: TypeOf(DefId(0:3 ~ issue_99325[d56d]::function_with_bytes), UserArgs { args: [AliasConst(No, Alias { kind: Anon { def_id: DefId(0:9 ~ issue_99325[d56d]::main::{constant#1}) }, args: [], .. })], user_self_ty: None }), max_universe: U0, var_kinds: [] }, span: $DIR/issue_99325.rs:14:16: 14:68, inferred_ty: fn() -> &'static [u8] {function_with_bytes::<&*b"AAAA">} | fn main() -> () { let mut _0: (); @@ -18,47 +18,39 @@ fn main() -> () { let mut _10: bool; let mut _11: &&[u8]; let mut _12: &&[u8; 4]; - let mut _13: !; - let _15: !; - let mut _16: core::panicking::AssertKind; - let mut _17: &&[u8]; - let _18: &&[u8]; - let mut _19: &&[u8; 4]; - let _20: &&[u8; 4]; - let mut _21: std::option::Option>; - let _22: (); - let mut _23: (&&[u8], &&[u8; 4]); - let mut _24: &&[u8]; - let _25: &[u8]; - let mut _26: &&[u8; 4]; - let _27: &[u8; 4]; - let _28: &&[u8]; - let _29: &&[u8; 4]; - let mut _30: bool; - let mut _31: &&[u8]; - let mut _32: &&[u8; 4]; - let mut _33: !; - let _35: !; - let mut _36: core::panicking::AssertKind; - let mut _37: &&[u8]; - let _38: &&[u8]; - let mut _39: &&[u8; 4]; - let _40: &&[u8; 4]; - let mut _41: std::option::Option>; + let _14: (); + let mut _15: {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL}; + let mut _16: &&[u8]; + let mut _17: &&[u8; 4]; + let _18: (); + let mut _19: (&&[u8], &&[u8; 4]); + let mut _20: &&[u8]; + let _21: &[u8]; + let mut _22: &&[u8; 4]; + let _23: &[u8; 4]; + let _24: &&[u8]; + let _25: &&[u8; 4]; + let mut _26: bool; + let mut _27: &&[u8]; + let mut _28: &&[u8; 4]; + let _30: (); + let mut _31: {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL}; + let mut _32: &&[u8]; + let mut _33: &&[u8; 4]; scope 1 { debug left_val => _8; debug right_val => _9; - let _14: core::panicking::AssertKind; + let _13: core::panicking::AssertKind; scope 2 { - debug kind => _14; + debug kind => _13; } } scope 3 { - debug left_val => _28; - debug right_val => _29; - let _34: core::panicking::AssertKind; + debug left_val => _24; + debug right_val => _25; + let _29: core::panicking::AssertKind; scope 4 { - debug kind => _34; + debug kind => _29; } } @@ -67,7 +59,7 @@ fn main() -> () { StorageLive(_2); StorageLive(_3); StorageLive(_4); - _4 = function_with_bytes::<&*b"AAAA">() -> [return: bb1, unwind: bb23]; + _4 = function_with_bytes::<&*b"AAAA">() -> [return: bb1, unwind: bb21]; } bb1: { @@ -91,7 +83,7 @@ fn main() -> () { _11 = &(*_8); StorageLive(_12); _12 = &(*_9); - _10 = <&[u8] as PartialEq<&[u8; 4]>>::eq(move _11, move _12) -> [return: bb3, unwind: bb23]; + _10 = <&[u8] as PartialEq<&[u8; 4]>>::eq(move _11, move _12) -> [return: bb3, unwind: bb21]; } bb2: { @@ -106,7 +98,7 @@ fn main() -> () { bb4: { StorageDead(_12); StorageDead(_11); - goto -> bb9; + goto -> bb8; } bb5: { @@ -116,167 +108,143 @@ fn main() -> () { bb6: { StorageDead(_12); StorageDead(_11); + StorageLive(_13); + _13 = core::panicking::AssertKind::Eq; + FakeRead(ForLet(None), _13); StorageLive(_14); - _14 = core::panicking::AssertKind::Eq; - FakeRead(ForLet(None), _14); StorageLive(_15); StorageLive(_16); - _16 = move _14; + _16 = &(*_8); StorageLive(_17); - StorageLive(_18); - _18 = &(*_8); - _17 = &(*_18); - StorageLive(_19); - StorageLive(_20); - _20 = &(*_9); - _19 = &(*_20); - StorageLive(_21); - _21 = Option::>::None; - _15 = core::panicking::assert_failed::<&[u8], &[u8; 4]>(move _16, move _17, move _19, move _21) -> [return: bb7, unwind: bb23]; + _17 = &(*_9); + _15 = {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL} { kind: move _13, left_val: move _16, right_val: move _17 }; + StorageDead(_17); + StorageDead(_16); + _14 = core::panicking::outline::<(), {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL}>(move _15) -> [return: bb7, unwind: bb21]; } bb7: { - StorageDead(_21); - StorageDead(_19); - StorageDead(_17); - StorageDead(_16); - StorageDead(_20); - StorageDead(_18); StorageDead(_15); StorageDead(_14); - unreachable; + _1 = const (); + StorageDead(_13); + goto -> bb9; } bb8: { - goto -> bb10; - } - - bb9: { _1 = const (); - goto -> bb10; + goto -> bb9; } - bb10: { + bb9: { StorageDead(_10); StorageDead(_9); StorageDead(_8); - goto -> bb11; + goto -> bb10; } - bb11: { + bb10: { StorageDead(_7); StorageDead(_6); StorageDead(_4); StorageDead(_2); StorageDead(_1); + StorageLive(_18); + StorageLive(_19); + StorageLive(_20); + StorageLive(_21); + _21 = function_with_bytes::<&*b"AAAA">() -> [return: bb11, unwind: bb21]; + } + + bb11: { + _20 = &_21; StorageLive(_22); StorageLive(_23); + _23 = const b"AAAA"; + _22 = &_23; + _19 = (move _20, move _22); + StorageDead(_22); + StorageDead(_20); + PlaceMention(_19); StorageLive(_24); + _24 = copy (_19.0: &&[u8]); StorageLive(_25); - _25 = function_with_bytes::<&*b"AAAA">() -> [return: bb12, unwind: bb23]; - } - - bb12: { - _24 = &_25; + _25 = copy (_19.1: &&[u8; 4]); StorageLive(_26); StorageLive(_27); - _27 = const b"AAAA"; - _26 = &_27; - _23 = (move _24, move _26); - StorageDead(_26); - StorageDead(_24); - PlaceMention(_23); + _27 = &(*_24); StorageLive(_28); - _28 = copy (_23.0: &&[u8]); - StorageLive(_29); - _29 = copy (_23.1: &&[u8; 4]); - StorageLive(_30); - StorageLive(_31); - _31 = &(*_28); - StorageLive(_32); - _32 = &(*_29); - _30 = <&[u8] as PartialEq<&[u8; 4]>>::eq(move _31, move _32) -> [return: bb14, unwind: bb23]; + _28 = &(*_25); + _26 = <&[u8] as PartialEq<&[u8; 4]>>::eq(move _27, move _28) -> [return: bb13, unwind: bb21]; } - bb13: { - FakeRead(ForMatchedPlace(None), _23); + bb12: { + FakeRead(ForMatchedPlace(None), _19); unreachable; } + bb13: { + switchInt(move _26) -> [0: bb15, otherwise: bb14]; + } + bb14: { - switchInt(move _30) -> [0: bb16, otherwise: bb15]; + StorageDead(_28); + StorageDead(_27); + goto -> bb18; } bb15: { - StorageDead(_32); - StorageDead(_31); - goto -> bb20; + goto -> bb16; } bb16: { - goto -> bb17; + StorageDead(_28); + StorageDead(_27); + StorageLive(_29); + _29 = core::panicking::AssertKind::Eq; + FakeRead(ForLet(None), _29); + StorageLive(_30); + StorageLive(_31); + StorageLive(_32); + _32 = &(*_24); + StorageLive(_33); + _33 = &(*_25); + _31 = {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL} { kind: move _29, left_val: move _32, right_val: move _33 }; + StorageDead(_33); + StorageDead(_32); + _30 = core::panicking::outline::<(), {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL}>(move _31) -> [return: bb17, unwind: bb21]; } bb17: { - StorageDead(_32); StorageDead(_31); - StorageLive(_34); - _34 = core::panicking::AssertKind::Eq; - FakeRead(ForLet(None), _34); - StorageLive(_35); - StorageLive(_36); - _36 = move _34; - StorageLive(_37); - StorageLive(_38); - _38 = &(*_28); - _37 = &(*_38); - StorageLive(_39); - StorageLive(_40); - _40 = &(*_29); - _39 = &(*_40); - StorageLive(_41); - _41 = Option::>::None; - _35 = core::panicking::assert_failed::<&[u8], &[u8; 4]>(move _36, move _37, move _39, move _41) -> [return: bb18, unwind: bb23]; + StorageDead(_30); + _18 = const (); + StorageDead(_29); + goto -> bb19; } bb18: { - StorageDead(_41); - StorageDead(_39); - StorageDead(_37); - StorageDead(_36); - StorageDead(_40); - StorageDead(_38); - StorageDead(_35); - StorageDead(_34); - unreachable; + _18 = const (); + goto -> bb19; } bb19: { - goto -> bb21; + StorageDead(_26); + StorageDead(_25); + StorageDead(_24); + goto -> bb20; } bb20: { - _22 = const (); - goto -> bb21; - } - - bb21: { - StorageDead(_30); - StorageDead(_29); - StorageDead(_28); - goto -> bb22; - } - - bb22: { - StorageDead(_27); - StorageDead(_25); StorageDead(_23); - StorageDead(_22); + StorageDead(_21); + StorageDead(_19); + StorageDead(_18); _0 = const (); return; } - bb23 (cleanup): { + bb21 (cleanup): { resume; } } diff --git a/tests/ui-fulldeps/obtain-borrowck.run.stdout b/tests/ui-fulldeps/obtain-borrowck.run.stdout index 09d3e50f42dc3..2acb65ca1e47b 100644 --- a/tests/ui-fulldeps/obtain-borrowck.run.stdout +++ b/tests/ui-fulldeps/obtain-borrowck.run.stdout @@ -2,6 +2,7 @@ Bodies retrieved for: ::X::provided ::foo ::main +::main::{closure#0} ::main::{constant#0} ::with_nested_body ::with_nested_body::{closure#0} diff --git a/tests/ui-fulldeps/rustc_public/check_instance.rs b/tests/ui-fulldeps/rustc_public/check_instance.rs index defea9d2f54bb..eb43a7f2f7777 100644 --- a/tests/ui-fulldeps/rustc_public/check_instance.rs +++ b/tests/ui-fulldeps/rustc_public/check_instance.rs @@ -31,8 +31,8 @@ fn test_stable_mir() -> ControlFlow<()> { // Get all items and split generic vs monomorphic items. let (generic, mono): (Vec<_>, Vec<_>) = items.into_iter().partition(|item| item.requires_monomorphization()); - assert_eq!(mono.len(), 3, "Expected 3 mono functions"); - assert_eq!(generic.len(), 2, "Expected 2 generic functions"); + assert_eq!(mono.len(), 3, "Expected 3 mono functions, but got {mono:?}"); + assert_eq!(generic.len(), 3, "Expected 3 generic functions, but got {generic:?}"); // For all monomorphic items, get the correspondent instances. let instances = mono diff --git a/tests/ui/rustc_public-ir-print/operands.stdout b/tests/ui/rustc_public-ir-print/operands.stdout index c8d31c6339cf2..6eea285400fc1 100644 --- a/tests/ui/rustc_public-ir-print/operands.stdout +++ b/tests/ui/rustc_public-ir-print/operands.stdout @@ -20,105 +20,89 @@ fn operands(_1: u8) -> () { let mut _17: bool; let mut _18: u8; let mut _19: u8; - let mut _20: !; - let _21: core::panicking::AssertKind; - let _22: !; - let mut _23: core::panicking::AssertKind; + let _20: core::panicking::AssertKind; + let _21: (); + let mut _22: {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL}; + let mut _23: &u8; let mut _24: &u8; let _25: &u8; - let mut _26: &u8; - let _27: &u8; - let mut _28: Option>; - let _29: &u8; - let _30: u8; - let _31: (); - let mut _32: (&u8, &u8); - let mut _33: &u8; - let mut _34: &u8; - let _35: &u8; - let _36: &u8; - let mut _37: bool; - let mut _38: u8; - let mut _39: u8; - let mut _40: !; - let _41: core::panicking::AssertKind; - let _42: !; - let mut _43: core::panicking::AssertKind; - let mut _44: &u8; - let _45: &u8; - let mut _46: &u8; - let _47: &u8; - let mut _48: Option>; - let _49: (u8, u8); - let mut _50: u8; - let mut _51: u8; - let _52: u8; - let _53: u8; - let _54: (); - let mut _55: (&u8, &u8); - let mut _56: &u8; - let mut _57: &u8; - let _58: &u8; - let _59: &u8; - let mut _60: bool; - let mut _61: u8; - let mut _62: u8; - let mut _63: !; - let _64: core::panicking::AssertKind; - let _65: !; - let mut _66: core::panicking::AssertKind; - let mut _67: &u8; - let _68: &u8; - let mut _69: &u8; - let _70: &u8; - let mut _71: Option>; - let _72: usize; - let mut _73: &[u8]; - let mut _74: &[u8; 10]; - let _75: usize; - let mut _76: &usize; - let _77: &usize; - let _78: (); - let mut _79: (&usize, &usize); - let mut _80: &usize; - let mut _81: &usize; - let _82: &usize; - let _83: &usize; - let mut _84: bool; - let mut _85: usize; - let mut _86: usize; - let mut _87: !; - let _88: core::panicking::AssertKind; - let _89: !; - let mut _90: core::panicking::AssertKind; - let mut _91: &usize; - let _92: &usize; - let mut _93: &usize; - let _94: &usize; - let mut _95: Option>; + let _26: u8; + let _27: (); + let mut _28: (&u8, &u8); + let mut _29: &u8; + let mut _30: &u8; + let _31: &u8; + let _32: &u8; + let mut _33: bool; + let mut _34: u8; + let mut _35: u8; + let _36: core::panicking::AssertKind; + let _37: (); + let mut _38: {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL}; + let mut _39: &u8; + let mut _40: &u8; + let _41: (u8, u8); + let mut _42: u8; + let mut _43: u8; + let _44: u8; + let _45: u8; + let _46: (); + let mut _47: (&u8, &u8); + let mut _48: &u8; + let mut _49: &u8; + let _50: &u8; + let _51: &u8; + let mut _52: bool; + let mut _53: u8; + let mut _54: u8; + let _55: core::panicking::AssertKind; + let _56: (); + let mut _57: {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL}; + let mut _58: &u8; + let mut _59: &u8; + let _60: usize; + let mut _61: &[u8]; + let mut _62: &[u8; 10]; + let _63: usize; + let mut _64: &usize; + let _65: &usize; + let _66: (); + let mut _67: (&usize, &usize); + let mut _68: &usize; + let mut _69: &usize; + let _70: &usize; + let _71: &usize; + let mut _72: bool; + let mut _73: usize; + let mut _74: usize; + let _75: core::panicking::AssertKind; + let _76: (); + let mut _77: {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL}; + let mut _78: &usize; + let mut _79: &usize; debug val => _1; debug array => _2; debug first => _4; debug last => _7; debug left_val => _15; debug right_val => _16; - debug kind => _21; - debug reference => _29; - debug dereferenced => _30; - debug left_val => _35; - debug right_val => _36; - debug kind => _41; - debug tuple => _49; - debug first_again => _52; - debug first_again_again => _53; - debug left_val => _58; - debug right_val => _59; - debug kind => _64; - debug length => _72; - debug size_of => _75; - debug left_val => _82; - debug right_val => _83; - debug kind => _88; + debug kind => _20; + debug reference => _25; + debug dereferenced => _26; + debug left_val => _31; + debug right_val => _32; + debug kind => _36; + debug tuple => _41; + debug first_again => _44; + debug first_again_again => _45; + debug left_val => _50; + debug right_val => _51; + debug kind => _55; + debug length => _60; + debug size_of => _63; + debug left_val => _70; + debug right_val => _71; + debug kind => _75; bb0: { StorageLive(_2); StorageLive(_3); @@ -172,229 +156,385 @@ fn operands(_1: u8) -> () { StorageDead(_19); StorageDead(_18); _11 = (); + goto -> bb7; + } + bb5: { + StorageDead(_19); + StorageDead(_18); + StorageLive(_20); + _20 = AssertKind::Eq; + StorageLive(_21); + StorageLive(_22); + StorageLive(_23); + _23 = &(*_15); + StorageLive(_24); + _24 = &(*_16); + _22 = {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL}(move _20, move _23, move _24); + StorageDead(_24); + StorageDead(_23); + _21 = core::panicking::outline::<(), {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL}>(move _22) -> [return: bb6, unwind unreachable]; + } + bb6: { + StorageDead(_22); + StorageDead(_21); + _11 = (); + StorageDead(_20); + goto -> bb7; + } + bb7: { StorageDead(_17); StorageDead(_16); StorageDead(_15); StorageDead(_12); StorageDead(_11); + StorageLive(_25); + _25 = &_4; + StorageLive(_26); + _26 = (*_25); + StorageLive(_27); + StorageLive(_28); StorageLive(_29); - _29 = &_4; + _29 = &_26; StorageLive(_30); - _30 = (*_29); + _30 = &_4; + _28 = (move _29, move _30); + StorageDead(_30); + StorageDead(_29); StorageLive(_31); + _31 = (_28.0: &u8); StorageLive(_32); + _32 = (_28.1: &u8); StorageLive(_33); - _33 = &_30; StorageLive(_34); - _34 = &_4; - _32 = (move _33, move _34); - StorageDead(_34); - StorageDead(_33); + _34 = (*_31); StorageLive(_35); - _35 = (_32.0: &u8); + _35 = (*_32); + _33 = Eq(move _34, move _35); + switchInt(move _33) -> [0: bb9, otherwise: bb8]; + } + bb8: { + StorageDead(_35); + StorageDead(_34); + _27 = (); + goto -> bb11; + } + bb9: { + StorageDead(_35); + StorageDead(_34); StorageLive(_36); - _36 = (_32.1: &u8); + _36 = AssertKind::Eq; StorageLive(_37); StorageLive(_38); - _38 = (*_35); StorageLive(_39); - _39 = (*_36); - _37 = Eq(move _38, move _39); - switchInt(move _37) -> [0: bb7, otherwise: bb6]; - } - bb5: { - StorageDead(_19); - StorageDead(_18); - StorageLive(_21); - _21 = AssertKind::Eq; - StorageLive(_22); - StorageLive(_23); - _23 = move _21; - StorageLive(_24); - StorageLive(_25); - _25 = &(*_15); - _24 = &(*_25); - StorageLive(_26); - StorageLive(_27); - _27 = &(*_16); - _26 = &(*_27); - StorageLive(_28); - _28 = Option::None; - _22 = core::panicking::assert_failed::(move _23, move _24, move _26, move _28) -> unwind unreachable; - } - bb6: { + _39 = &(*_31); + StorageLive(_40); + _40 = &(*_32); + _38 = {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL}(move _36, move _39, move _40); + StorageDead(_40); StorageDead(_39); + _37 = core::panicking::outline::<(), {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL}>(move _38) -> [return: bb10, unwind unreachable]; + } + bb10: { StorageDead(_38); - _31 = (); StorageDead(_37); + _27 = (); StorageDead(_36); - StorageDead(_35); + goto -> bb11; + } + bb11: { + StorageDead(_33); StorageDead(_32); StorageDead(_31); + StorageDead(_28); + StorageDead(_27); + StorageLive(_41); + StorageLive(_42); + _42 = _4; + StorageLive(_43); + _43 = _7; + _41 = (move _42, move _43); + StorageDead(_43); + StorageDead(_42); + StorageLive(_44); + _44 = (_41.0: u8); + StorageLive(_45); + _45 = (_41.0: u8); + StorageLive(_46); + StorageLive(_47); + StorageLive(_48); + _48 = &_44; StorageLive(_49); + _49 = &_45; + _47 = (move _48, move _49); + StorageDead(_49); + StorageDead(_48); StorageLive(_50); - _50 = _4; + _50 = (_47.0: &u8); StorageLive(_51); - _51 = _7; - _49 = (move _50, move _51); - StorageDead(_51); - StorageDead(_50); + _51 = (_47.1: &u8); StorageLive(_52); - _52 = (_49.0: u8); StorageLive(_53); - _53 = (_49.0: u8); + _53 = (*_50); StorageLive(_54); + _54 = (*_51); + _52 = Eq(move _53, move _54); + switchInt(move _52) -> [0: bb13, otherwise: bb12]; + } + bb12: { + StorageDead(_54); + StorageDead(_53); + _46 = (); + goto -> bb15; + } + bb13: { + StorageDead(_54); + StorageDead(_53); StorageLive(_55); + _55 = AssertKind::Eq; StorageLive(_56); - _56 = &_52; StorageLive(_57); - _57 = &_53; - _55 = (move _56, move _57); - StorageDead(_57); - StorageDead(_56); StorageLive(_58); - _58 = (_55.0: &u8); + _58 = &(*_50); StorageLive(_59); - _59 = (_55.1: &u8); - StorageLive(_60); - StorageLive(_61); - _61 = (*_58); - StorageLive(_62); - _62 = (*_59); - _60 = Eq(move _61, move _62); - switchInt(move _60) -> [0: bb9, otherwise: bb8]; - } - bb7: { - StorageDead(_39); - StorageDead(_38); - StorageLive(_41); - _41 = AssertKind::Eq; - StorageLive(_42); - StorageLive(_43); - _43 = move _41; - StorageLive(_44); - StorageLive(_45); - _45 = &(*_35); - _44 = &(*_45); - StorageLive(_46); - StorageLive(_47); - _47 = &(*_36); - _46 = &(*_47); - StorageLive(_48); - _48 = Option::None; - _42 = core::panicking::assert_failed::(move _43, move _44, move _46, move _48) -> unwind unreachable; - } - bb8: { - StorageDead(_62); - StorageDead(_61); - _54 = (); - StorageDead(_60); + _59 = &(*_51); + _57 = {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL}(move _55, move _58, move _59); StorageDead(_59); StorageDead(_58); + _56 = core::panicking::outline::<(), {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL}>(move _57) -> [return: bb14, unwind unreachable]; + } + bb14: { + StorageDead(_57); + StorageDead(_56); + _46 = (); StorageDead(_55); - StorageDead(_54); - StorageLive(_72); - StorageLive(_73); - StorageLive(_74); - _74 = &_2; - _73 = move _74 as &[u8]; - StorageDead(_74); - _72 = core::slice::::len(move _73) -> [return: bb10, unwind unreachable]; + goto -> bb15; } - bb9: { + bb15: { + StorageDead(_52); + StorageDead(_51); + StorageDead(_50); + StorageDead(_47); + StorageDead(_46); + StorageLive(_60); + StorageLive(_61); + StorageLive(_62); + _62 = &_2; + _61 = move _62 as &[u8]; StorageDead(_62); + _60 = core::slice::::len(move _61) -> [return: bb16, unwind unreachable]; + } + bb16: { StorageDead(_61); + StorageLive(_63); StorageLive(_64); - _64 = AssertKind::Eq; StorageLive(_65); + _65 = &_60; + _64 = &(*_65); + _63 = std::mem::size_of_val::(move _64) -> [return: bb17, unwind unreachable]; + } + bb17: { + StorageDead(_64); + StorageDead(_65); StorageLive(_66); - _66 = move _64; StorageLive(_67); StorageLive(_68); - _68 = &(*_58); - _67 = &(*_68); + _68 = &_60; StorageLive(_69); + _69 = &_63; + _67 = (move _68, move _69); + StorageDead(_69); + StorageDead(_68); StorageLive(_70); - _70 = &(*_59); - _69 = &(*_70); + _70 = (_67.0: &usize); StorageLive(_71); - _71 = Option::None; - _65 = core::panicking::assert_failed::(move _66, move _67, move _69, move _71) -> unwind unreachable; + _71 = (_67.1: &usize); + StorageLive(_72); + StorageLive(_73); + _73 = (*_70); + StorageLive(_74); + _74 = (*_71); + _72 = Eq(move _73, move _74); + switchInt(move _72) -> [0: bb19, otherwise: bb18]; } - bb10: { + bb18: { + StorageDead(_74); + StorageDead(_73); + _66 = (); + goto -> bb21; + } + bb19: { + StorageDead(_74); StorageDead(_73); StorageLive(_75); + _75 = AssertKind::Eq; StorageLive(_76); StorageLive(_77); - _77 = &_72; - _76 = &(*_77); - _75 = std::mem::size_of_val::(move _76) -> [return: bb11, unwind unreachable]; - } - bb11: { - StorageDead(_76); - StorageDead(_77); StorageLive(_78); + _78 = &(*_70); StorageLive(_79); - StorageLive(_80); - _80 = &_72; - StorageLive(_81); - _81 = &_75; - _79 = (move _80, move _81); - StorageDead(_81); - StorageDead(_80); - StorageLive(_82); - _82 = (_79.0: &usize); - StorageLive(_83); - _83 = (_79.1: &usize); - StorageLive(_84); - StorageLive(_85); - _85 = (*_82); - StorageLive(_86); - _86 = (*_83); - _84 = Eq(move _85, move _86); - switchInt(move _84) -> [0: bb13, otherwise: bb12]; - } - bb12: { - StorageDead(_86); - StorageDead(_85); - _78 = (); - StorageDead(_84); - StorageDead(_83); - StorageDead(_82); + _79 = &(*_71); + _77 = {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL}(move _75, move _78, move _79); StorageDead(_79); StorageDead(_78); - _0 = (); + _76 = core::panicking::outline::<(), {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL}>(move _77) -> [return: bb20, unwind unreachable]; + } + bb20: { + StorageDead(_77); + StorageDead(_76); + _66 = (); StorageDead(_75); + goto -> bb21; + } + bb21: { StorageDead(_72); - StorageDead(_53); - StorageDead(_52); - StorageDead(_49); - StorageDead(_30); - StorageDead(_29); + StorageDead(_71); + StorageDead(_70); + StorageDead(_67); + StorageDead(_66); + _0 = (); + StorageDead(_63); + StorageDead(_60); + StorageDead(_45); + StorageDead(_44); + StorageDead(_41); + StorageDead(_26); + StorageDead(_25); StorageDead(_7); StorageDead(_4); StorageDead(_2); return; } - bb13: { - StorageDead(_86); - StorageDead(_85); - StorageLive(_88); - _88 = AssertKind::Eq; - StorageLive(_89); - StorageLive(_90); - _90 = move _88; - StorageLive(_91); - StorageLive(_92); - _92 = &(*_82); - _91 = &(*_92); - StorageLive(_93); - StorageLive(_94); - _94 = &(*_83); - _93 = &(*_94); - StorageLive(_95); - _95 = Option::None; - _89 = core::panicking::assert_failed::(move _90, move _91, move _93, move _95) -> unwind unreachable; +} +fn operands::{closure#0}(_1: {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL}) -> () { + let mut _0: (); + let mut _2: !; + let mut _3: core::panicking::AssertKind; + let mut _4: &u8; + let _5: &u8; + let mut _6: &u8; + let _7: &u8; + let mut _8: Option>; + let mut _9: &u8; + let mut _10: &u8; + debug kind => (_1.0: core::panicking::AssertKind); + debug left_val => (*(_1.1: &u8)); + debug right_val => (*(_1.2: &u8)); + bb0: { + StorageLive(_2); + StorageLive(_3); + _3 = move (_1.0: core::panicking::AssertKind); + StorageLive(_4); + StorageLive(_5); + _9 = no_retag (_1.1: &u8); + _5 = &(*_9); + _4 = &(*_5); + StorageLive(_6); + StorageLive(_7); + _10 = no_retag (_1.2: &u8); + _7 = &(*_10); + _6 = &(*_7); + StorageLive(_8); + _8 = Option::None; + _2 = core::panicking::assert_failed::(move _3, move _4, move _6, move _8) -> unwind unreachable; + } +} +fn operands::{closure#1}(_1: {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL}) -> () { + let mut _0: (); + let mut _2: !; + let mut _3: core::panicking::AssertKind; + let mut _4: &u8; + let _5: &u8; + let mut _6: &u8; + let _7: &u8; + let mut _8: Option>; + let mut _9: &u8; + let mut _10: &u8; + debug kind => (_1.0: core::panicking::AssertKind); + debug left_val => (*(_1.1: &u8)); + debug right_val => (*(_1.2: &u8)); + bb0: { + StorageLive(_2); + StorageLive(_3); + _3 = move (_1.0: core::panicking::AssertKind); + StorageLive(_4); + StorageLive(_5); + _9 = no_retag (_1.1: &u8); + _5 = &(*_9); + _4 = &(*_5); + StorageLive(_6); + StorageLive(_7); + _10 = no_retag (_1.2: &u8); + _7 = &(*_10); + _6 = &(*_7); + StorageLive(_8); + _8 = Option::None; + _2 = core::panicking::assert_failed::(move _3, move _4, move _6, move _8) -> unwind unreachable; + } +} +fn operands::{closure#2}(_1: {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL}) -> () { + let mut _0: (); + let mut _2: !; + let mut _3: core::panicking::AssertKind; + let mut _4: &u8; + let _5: &u8; + let mut _6: &u8; + let _7: &u8; + let mut _8: Option>; + let mut _9: &u8; + let mut _10: &u8; + debug kind => (_1.0: core::panicking::AssertKind); + debug left_val => (*(_1.1: &u8)); + debug right_val => (*(_1.2: &u8)); + bb0: { + StorageLive(_2); + StorageLive(_3); + _3 = move (_1.0: core::panicking::AssertKind); + StorageLive(_4); + StorageLive(_5); + _9 = no_retag (_1.1: &u8); + _5 = &(*_9); + _4 = &(*_5); + StorageLive(_6); + StorageLive(_7); + _10 = no_retag (_1.2: &u8); + _7 = &(*_10); + _6 = &(*_7); + StorageLive(_8); + _8 = Option::None; + _2 = core::panicking::assert_failed::(move _3, move _4, move _6, move _8) -> unwind unreachable; + } +} +fn operands::{closure#3}(_1: {closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL}) -> () { + let mut _0: (); + let mut _2: !; + let mut _3: core::panicking::AssertKind; + let mut _4: &usize; + let _5: &usize; + let mut _6: &usize; + let _7: &usize; + let mut _8: Option>; + let mut _9: &usize; + let mut _10: &usize; + debug kind => (_1.0: core::panicking::AssertKind); + debug left_val => (*(_1.1: &usize)); + debug right_val => (*(_1.2: &usize)); + bb0: { + StorageLive(_2); + StorageLive(_3); + _3 = move (_1.0: core::panicking::AssertKind); + StorageLive(_4); + StorageLive(_5); + _9 = no_retag (_1.1: &usize); + _5 = &(*_9); + _4 = &(*_5); + StorageLive(_6); + StorageLive(_7); + _10 = no_retag (_1.2: &usize); + _7 = &(*_10); + _6 = &(*_7); + StorageLive(_8); + _8 = Option::None; + _2 = core::panicking::assert_failed::(move _3, move _4, move _6, move _8) -> unwind unreachable; } } fn more_operands() -> [Ctors; 3] { diff --git a/tests/ui/traits/const-traits/ice-112822-expected-type-for-param.rs b/tests/ui/traits/const-traits/ice-112822-expected-type-for-param.rs index 1f35abbb9d6af..414b78c040f42 100644 --- a/tests/ui/traits/const-traits/ice-112822-expected-type-for-param.rs +++ b/tests/ui/traits/const-traits/ice-112822-expected-type-for-param.rs @@ -7,7 +7,7 @@ const fn test() -> impl [const] Fn() { match sl { [first, remainder @ ..] => { assert_eq!(first, &b'f'); - //~^ ERROR cannot call non-const function + //~^ ERROR is not satisfied } [] => panic!(), } diff --git a/tests/ui/traits/const-traits/ice-112822-expected-type-for-param.stderr b/tests/ui/traits/const-traits/ice-112822-expected-type-for-param.stderr index 73340f15cbb8a..6c959ee485575 100644 --- a/tests/ui/traits/const-traits/ice-112822-expected-type-for-param.stderr +++ b/tests/ui/traits/const-traits/ice-112822-expected-type-for-param.stderr @@ -1,13 +1,12 @@ -error[E0015]: cannot call non-const function `core::panicking::assert_failed::<&u8, &u8>` in constant functions +error[E0277]: the trait bound `{closure@$SRC_DIR/core/src/macros/mod.rs:LL:COL}: [const] FnOnce()` is not satisfied --> $DIR/ice-112822-expected-type-for-param.rs:9:17 | LL | assert_eq!(first, &b'f'); - | ^^^^^^^^^^^^^^^^^^^^^^^^ + | ^^^^^^^^^^^^^^^^^^^^^^^^ required by a bound introduced by this call | -note: function `assert_failed` is not const +note: required by a bound in `core::panicking::outline` --> $SRC_DIR/core/src/panicking.rs:LL:COL - = note: calls in constant functions are limited to constant functions, tuple structs and tuple variants error: aborting due to 1 previous error -For more information about this error, try `rustc --explain E0015`. +For more information about this error, try `rustc --explain E0277`.