struct DropPanic;
impl Drop for DropPanic {
fn drop(&mut self) {
panic!("panic in drop");
}
}
fn main() {
let _bomb = DropPanic;
panic!("panic in main");
}
I expected to see this happen: I would see a "panic in a destructor during cleanup" message and the program would abort.
Instead, this happened: The second panic prints a full backtrace and then the program exits with STATUS_STACK_BUFFER_OVERRUN (that's a __fastfail; before, it was STATUS_ILLEGAL_INSTRUCTION: intrinsics::abort instead of process::abort.)
Meta
I didn't bisect to the specific release that changed this, but it's due to the change to allow well-nested unwinds with catch_unwind in destructors during cleanup. I also didn't test whether windows-gnu also behaves like this (if it still uses SEH unwinding, it does).
I tried this code:
I expected to see this happen: I would see a "panic in a destructor during cleanup" message and the program would abort.
Instead, this happened: The second panic prints a full backtrace and then the program exits with
STATUS_STACK_BUFFER_OVERRUN
(that's a__fastfail
; before, it wasSTATUS_ILLEGAL_INSTRUCTION
:intrinsics::abort
instead ofprocess::abort
.)Meta
I didn't bisect to the specific release that changed this, but it's due to the change to allow well-nested unwinds with
catch_unwind
in destructors during cleanup. I also didn't test whether windows-gnu also behaves like this (if it still uses SEH unwinding, it does).rustc 1.56.1 (59eed8a2a 2021-11-01) output (abort message)
```text thread 'main' panicked at 'panic in main', src\main.rs:10:5 stack backtrace: 0: std::panicking::begin_panic_handler at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\/library\std\src\panicking.rs:517 1: core::panicking::panic_fmt at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\/library\core\src\panicking.rs:101 2: cad97_playground::main at .\src\main.rs:10 3: core::ops::function::FnOnce::call_once >
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\library\core\src\ops\function.rs:227
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
thread 'main' panicked at 'panic in drop', src\main.rs:4:9
stack backtrace:
0: 0x7ff60b526cfe - std::backtrace_rs::backtrace::dbghelp::trace
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\/library\std\src\..\..\backtrace\src\backtrace\dbghelp.rs:98
1: 0x7ff60b526cfe - std::backtrace_rs::backtrace::trace_unsynchronized
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\/library\std\src\..\..\backtrace\src\backtrace\mod.rs:66
2: 0x7ff60b526cfe - std::sys_common::backtrace::_print_fmt
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\/library\std\src\sys_common\backtrace.rs:67
3: 0x7ff60b526cfe - std::sys_common::backtrace::_print::impl$0::fmt
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\/library\std\src\sys_common\backtrace.rs:46
4: 0x7ff60b53527a - core::fmt::write
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\/library\core\src\fmt\mod.rs:1150
5: 0x7ff60b524fa8 - std::io::Write::write_fmt
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\/library\std\src\io\mod.rs:1667
6: 0x7ff60b528f16 - std::sys_common::backtrace::_print
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\/library\std\src\sys_common\backtrace.rs:49
7: 0x7ff60b528f16 - std::sys_common::backtrace::print
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\/library\std\src\sys_common\backtrace.rs:36
8: 0x7ff60b528f16 - std::panicking::default_hook::closure$1
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\/library\std\src\panicking.rs:210
9: 0x7ff60b528a04 - std::panicking::default_hook
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\/library\std\src\panicking.rs:227
10: 0x7ff60b529575 - std::panicking::rust_panic_with_hook
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\/library\std\src\panicking.rs:624
11: 0x7ff60b52912f - std::panicking::begin_panic_handler::closure$0
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\/library\std\src\panicking.rs:519
12: 0x7ff60b527647 - std::sys_common::backtrace::__rust_end_short_backtrace
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\/library\std\src\sys_common\backtrace.rs:141
13: 0x7ff60b5290b9 - std::panicking::begin_panic_handler
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\/library\std\src\panicking.rs:517
14: 0x7ff60b539ac0 - core::panicking::panic_fmt
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\/library\core\src\panicking.rs:101
15: 0x7ff60b52139f - cad97_playground::impl$0::drop
at D:\git\cad97\playground\src\main.rs:4
16: 0x7ff60b52132e - core::ptr::drop_in_place
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\library\core\src\ptr\mod.rs:188
17: 0x7ff60b5210c7 - cad97_playground::main
at D:\git\cad97\playground\src\main.rs:11
18: 0x7ffb62171060 -
19: 0x7ffb621753ea - is_exception_typeof
20: 0x7ffb6217fb80 - _C_specific_handler
21: 0x7ffb621745f0 - is_exception_typeof
22: 0x7ffb621804b1 - _CxxFrameHandler3
23: 0x7ffb74ed448f - _chkstk
24: 0x7ffb74e4fd54 - RtlUnwindEx
25: 0x7ffb62180046 - _C_specific_handler
26: 0x7ffb62173245 - is_exception_typeof
27: 0x7ffb62173666 - is_exception_typeof
28: 0x7ffb621746ec - is_exception_typeof
29: 0x7ffb621804b1 - _CxxFrameHandler3
30: 0x7ffb74ed440f - _chkstk
31: 0x7ffb74e4e466 - RtlFindCharInUnicodeString
32: 0x7ffb74e84465 - RtlRaiseException
33: 0x7ffb727053ac - RaiseException
34: 0x7ffb62176ba7 - CxxThrowException
35: 0x7ff60b52c911 - panic_unwind::real_imp::panic
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\/library\panic_unwind\src\seh.rs:313
36: 0x7ff60b52c899 - panic_unwind::__rust_start_panic
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\/library\panic_unwind\src\lib.rs:105
37: 0x7ff60b52982b - std::panicking::rust_panic
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\/library\std\src\panicking.rs:672
38: 0x7ff60b52972b - std::panicking::rust_panic_with_hook
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\/library\std\src\panicking.rs:642
39: 0x7ff60b52912f - std::panicking::begin_panic_handler::closure$0
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\/library\std\src\panicking.rs:519
40: 0x7ff60b527647 - std::sys_common::backtrace::__rust_end_short_backtrace
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\/library\std\src\sys_common\backtrace.rs:141
41: 0x7ff60b5290b9 - std::panicking::begin_panic_handler
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\/library\std\src\panicking.rs:517
42: 0x7ff60b539ac0 - core::panicking::panic_fmt
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\/library\core\src\panicking.rs:101
43: 0x7ff60b5210a0 - cad97_playground::main
at D:\git\cad97\playground\src\main.rs:10
44: 0x7ff60b5212bb - core::ops::function::FnOnce::call_once >
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\library\core\src\ops\function.rs:227
45: 0x7ff60b52101b - std::sys_common::backtrace::__rust_begin_short_backtrace >
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\library\std\src\sys_common\backtrace.rs:125
46: 0x7ff60b521151 - std::rt::lang_start::closure$0 >
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\library\std\src\rt.rs:63
47: 0x7ff60b5299c6 - core::ops::function::impls::impl$2::call_once
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\library\core\src\ops\function.rs:259
48: 0x7ff60b5299c6 - std::panicking::try::do_call
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\/library\std\src\panicking.rs:403
49: 0x7ff60b5299c6 - std::panicking::try
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\/library\std\src\panicking.rs:367
50: 0x7ff60b5299c6 - std::panic::catch_unwind
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\/library\std\src\panic.rs:129
51: 0x7ff60b5299c6 - std::rt::lang_start_internal::closure$2
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\/library\std\src\rt.rs:45
52: 0x7ff60b5299c6 - std::panicking::try::do_call
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\/library\std\src\panicking.rs:403
53: 0x7ff60b5299c6 - std::panicking::try
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\/library\std\src\panicking.rs:367
54: 0x7ff60b5299c6 - std::panic::catch_unwind
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\/library\std\src\panic.rs:129
55: 0x7ff60b5299c6 - std::rt::lang_start_internal
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\/library\std\src\rt.rs:45
56: 0x7ff60b52111f - std::rt::lang_start >
at /rustc/59eed8a2aac0230a8b53e89d4e99d55912ba6b35\library\std\src\rt.rs:62
57: 0x7ff60b5210e6 - main
58: 0x7ff60b538874 - invoke_main
at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78
59: 0x7ff60b538874 - __scrt_common_main_seh
at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
60: 0x7ffb746e257d - BaseThreadInitThunk
61: 0x7ffb74e8aa48 - RtlUserThreadStart
thread panicked while panicking. aborting.
```
rustc 1.79.0-nightly (8df7e723e 2024-03-30) output (no abort message)
```text thread 'main' panicked at src\main.rs:10:5: panic in main stack backtrace: 0: std::panicking::begin_panic_handler at /rustc/8df7e723ea729a7f917501cc2d91d640b7021373/library\std\src\panicking.rs:646 1: core::panicking::panic_fmt at /rustc/8df7e723ea729a7f917501cc2d91d640b7021373/library\core\src\panicking.rs:72 2: cad97_playground::main at .\src\main.rs:10 3: core::ops::function::FnOnce::call_once >
at /rustc/8df7e723ea729a7f917501cc2d91d640b7021373\library\core\src\ops\function.rs:250
4: core::hint::black_box
at /rustc/8df7e723ea729a7f917501cc2d91d640b7021373\library\core\src\hint.rs:338
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
thread 'main' panicked at src\main.rs:4:9:
panic in drop
stack backtrace:
0: 0x7ff79eca63ea - std::backtrace_rs::backtrace::dbghelp64::trace
at /rustc/8df7e723ea729a7f917501cc2d91d640b7021373/library\std\src\..\..\backtrace\src\backtrace\dbghelp64.rs:99
1: 0x7ff79eca63ea - std::backtrace_rs::backtrace::trace_unsynchronized
at /rustc/8df7e723ea729a7f917501cc2d91d640b7021373/library\std\src\..\..\backtrace\src\backtrace\mod.rs:66
2: 0x7ff79eca63ea - std::sys_common::backtrace::_print_fmt
at /rustc/8df7e723ea729a7f917501cc2d91d640b7021373/library\std\src\sys_common\backtrace.rs:68
3: 0x7ff79eca63ea - std::sys_common::backtrace::_print::impl$0::fmt
at /rustc/8df7e723ea729a7f917501cc2d91d640b7021373/library\std\src\sys_common\backtrace.rs:44
4: 0x7ff79ecb36d9 - core::fmt::rt::Argument::fmt
at /rustc/8df7e723ea729a7f917501cc2d91d640b7021373/library\core\src\fmt\rt.rs:142
5: 0x7ff79ecb36d9 - core::fmt::write
at /rustc/8df7e723ea729a7f917501cc2d91d640b7021373/library\core\src\fmt\mod.rs:1153
6: 0x7ff79eca4a01 - std::io::Write::write_fmt
at /rustc/8df7e723ea729a7f917501cc2d91d640b7021373/library\std\src\io\mod.rs:1843
7: 0x7ff79eca61d6 - std::sys_common::backtrace::print
at /rustc/8df7e723ea729a7f917501cc2d91d640b7021373/library\std\src\sys_common\backtrace.rs:34
8: 0x7ff79eca7cb8 - std::panicking::default_hook::closure$1
at /rustc/8df7e723ea729a7f917501cc2d91d640b7021373/library\std\src\panicking.rs:272
9: 0x7ff79eca7957 - std::panicking::default_hook
at /rustc/8df7e723ea729a7f917501cc2d91d640b7021373/library\std\src\panicking.rs:292
10: 0x7ff79eca81fd - std::panicking::rust_panic_with_hook
at /rustc/8df7e723ea729a7f917501cc2d91d640b7021373/library\std\src\panicking.rs:789
11: 0x7ff79eca807b - std::panicking::begin_panic_handler::closure$0
at /rustc/8df7e723ea729a7f917501cc2d91d640b7021373/library\std\src\panicking.rs:650
12: 0x7ff79eca6a7f - std::sys_common::backtrace::__rust_end_short_backtrace
at /rustc/8df7e723ea729a7f917501cc2d91d640b7021373/library\std\src\sys_common\backtrace.rs:171
13: 0x7ff79eca7d68 - std::panicking::begin_panic_handler
at /rustc/8df7e723ea729a7f917501cc2d91d640b7021373/library\std\src\panicking.rs:646
14: 0x7ff79ecb86a7 - core::panicking::panic_fmt
at /rustc/8df7e723ea729a7f917501cc2d91d640b7021373/library\core\src\panicking.rs:72
15: 0x7ff79eca1246 - cad97_playground::impl$0::drop
at D:\git\cad97\playground\src\main.rs:4
16: 0x7ff79eca11ee - core::ptr::drop_in_place
at /rustc/8df7e723ea729a7f917501cc2d91d640b7021373\library\core\src\ptr\mod.rs:514
17: 0x7ff79eca1107 - cad97_playground::main
at D:\git\cad97\playground\src\main.rs:11
18: 0x7ffb62171060 -
19: 0x7ffb621753ea - is_exception_typeof
20: 0x7ffb6217fb80 - _C_specific_handler
21: 0x7ffb621745f0 - is_exception_typeof
22: 0x7ffb621804b1 - _CxxFrameHandler3
23: 0x7ffb74ed448f - _chkstk
24: 0x7ffb74e4fd54 - RtlUnwindEx
25: 0x7ffb62180046 - _C_specific_handler
26: 0x7ffb62173245 - is_exception_typeof
27: 0x7ffb62173666 - is_exception_typeof
28: 0x7ffb621746ec - is_exception_typeof
29: 0x7ffb621804b1 - _CxxFrameHandler3
30: 0x7ffb74ed440f - _chkstk
31: 0x7ffb74e4e466 - RtlFindCharInUnicodeString
32: 0x7ffb74e84465 - RtlRaiseException
33: 0x7ffb727053ac - RaiseException
34: 0x7ffb62176ba7 - CxxThrowException
35: 0x7ff79ecab650 - panic_unwind::real_imp::panic
at /rustc/8df7e723ea729a7f917501cc2d91d640b7021373/library\panic_unwind\src\seh.rs:323
36: 0x7ff79ecab650 - panic_unwind::__rust_start_panic
at /rustc/8df7e723ea729a7f917501cc2d91d640b7021373/library\panic_unwind\src\lib.rs:106
37: 0x7ff79eca8585 - std::panicking::rust_panic
at /rustc/8df7e723ea729a7f917501cc2d91d640b7021373/library\std\src\panicking.rs:841
38: 0x7ff79eca8286 - std::panicking::rust_panic_with_hook
at /rustc/8df7e723ea729a7f917501cc2d91d640b7021373/library\std\src\panicking.rs:811
39: 0x7ff79eca807b - std::panicking::begin_panic_handler::closure$0
at /rustc/8df7e723ea729a7f917501cc2d91d640b7021373/library\std\src\panicking.rs:650
40: 0x7ff79eca6a7f - std::sys_common::backtrace::__rust_end_short_backtrace
at /rustc/8df7e723ea729a7f917501cc2d91d640b7021373/library\std\src\sys_common\backtrace.rs:171
41: 0x7ff79eca7d68 - std::panicking::begin_panic_handler
at /rustc/8df7e723ea729a7f917501cc2d91d640b7021373/library\std\src\panicking.rs:646
42: 0x7ff79ecb86a7 - core::panicking::panic_fmt
at /rustc/8df7e723ea729a7f917501cc2d91d640b7021373/library\core\src\panicking.rs:72
43: 0x7ff79eca10ea - cad97_playground::main
at D:\git\cad97\playground\src\main.rs:10
44: 0x7ff79eca117b - core::ops::function::FnOnce::call_once >
at /rustc/8df7e723ea729a7f917501cc2d91d640b7021373\library\core\src\ops\function.rs:250
45: 0x7ff79eca113e - core::hint::black_box
at /rustc/8df7e723ea729a7f917501cc2d91d640b7021373\library\core\src\hint.rs:338
46: 0x7ff79eca113e - std::sys_common::backtrace::__rust_begin_short_backtrace >
at /rustc/8df7e723ea729a7f917501cc2d91d640b7021373\library\std\src\sys_common\backtrace.rs:155
47: 0x7ff79eca12c1 - std::rt::lang_start::closure$0 >
at /rustc/8df7e723ea729a7f917501cc2d91d640b7021373\library\std\src\rt.rs:166
48: 0x7ff79eca31d2 - std::rt::lang_start_internal
at /rustc/8df7e723ea729a7f917501cc2d91d640b7021373/library\std\src\rt.rs:148
49: 0x7ff79eca129a - std::rt::lang_start >
at /rustc/8df7e723ea729a7f917501cc2d91d640b7021373\library\std\src\rt.rs:165
50: 0x7ff79eca1129 - main
51: 0x7ff79ecb6e10 - invoke_main
at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78
52: 0x7ff79ecb6e10 - __scrt_common_main_seh
at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
53: 0x7ffb746e257d - BaseThreadInitThunk
54: 0x7ffb74e8aa48 - RtlUserThreadStart
```
full call stack when abort is called, as reported by vscode debugger
```text abort (@abort:21) terminate (@terminate:12) __FrameUnwindFilter (@__FrameUnwindFilter:20) memset (@memset:346) __C_specific_handler (@__C_specific_handler:46) __chkstk (@__chkstk:121) RtlFindCharInUnicodeString (@RtlFindCharInUnicodeString:714) KiUserExceptionDispatcher (@KiUserExceptionDispatcher:15) RaiseException (@RaiseException:26) _CxxThrowException (@_CxxThrowException:42) void panic_unwind::__rust_start_panic() (d:\.rust\rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\panic_unwind\src\lib.rs:106) void std::panicking::rust_panic() (d:\.rust\rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panicking.rs:841) void std::panicking::rust_panic_with_hook() (d:\.rust\rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panicking.rs:811) static void std::panicking::begin_panic_handler::closure$0() (d:\.rust\rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panicking.rs:650) static void std::sys_common::backtrace::__rust_end_short_backtrace() (d:\.rust\rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\sys_common\backtrace.rs:171)
void std::panicking::begin_panic_handler() (d:\.rust\rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panicking.rs:646)
void core::panicking::panic_fmt() (d:\.rust\rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\panicking.rs:72)
140001246 (d:\git\cad97\playground\src\main.rs:4)
core::ptr::drop_in_place (d:\.rust\rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:514)
static void cad97_playground::main() (d:\git\cad97\playground\src\main.rs:11)
180001060 (@7ffb62171060..7ffb621710d1:3)
_is_exception_typeof (@_is_exception_typeof:2790)
__C_specific_handler (@__C_specific_handler:377)
_is_exception_typeof (@_is_exception_typeof:1837)
__CxxFrameHandler3 (@__CxxFrameHandler3:33)
__chkstk (@__chkstk:163)
RtlUnwindEx (@RtlUnwindEx:152)
__C_specific_handler (@__C_specific_handler:724)
_is_exception_typeof (@_is_exception_typeof:517)
_is_exception_typeof (@_is_exception_typeof:791)
_is_exception_typeof (@_is_exception_typeof:1899)
__CxxFrameHandler3 (@__CxxFrameHandler3:33)
__chkstk (@__chkstk:121)
RtlFindCharInUnicodeString (@RtlFindCharInUnicodeString:714)
KiUserExceptionDispatcher (@KiUserExceptionDispatcher:15)
RaiseException (@RaiseException:26)
_CxxThrowException (@_CxxThrowException:42)
void panic_unwind::__rust_start_panic() (d:\.rust\rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\panic_unwind\src\lib.rs:106)
void std::panicking::rust_panic() (d:\.rust\rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panicking.rs:841)
void std::panicking::rust_panic_with_hook() (d:\.rust\rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panicking.rs:811)
static void std::panicking::begin_panic_handler::closure$0() (d:\.rust\rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panicking.rs:650)
static void std::sys_common::backtrace::__rust_end_short_backtrace() (d:\.rust\rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\sys_common\backtrace.rs:171)
void std::panicking::begin_panic_handler() (d:\.rust\rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\panicking.rs:646)
void core::panicking::panic_fmt() (d:\.rust\rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\panicking.rs:72)
static void cad97_playground::main() (d:\git\cad97\playground\src\main.rs:10)
void core::ops::function::FnOnce::call_once >( *) (d:\.rust\rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ops\function.rs:250)
void std::sys_common::backtrace::__rust_begin_short_backtrace >( *) (d:\.rust\rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\sys_common\backtrace.rs:155)
int std::rt::lang_start::closure$0 >(struct std::rt::lang_start::closure_env$0 > *) (d:\.rust\rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\rt.rs:166)
void std::rt::lang_start_internal() (d:\.rust\rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\rt.rs:148)
__int64 std::rt::lang_start >( *, __int64, unsigned char * *, unsigned char) (d:\.rust\rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\rt.rs:165)
main (@main:9)
static int __scrt_common_main_seh() (@7ff79ecb6e10..7ff79ecb6e77:3)
BaseThreadInitThunk (@BaseThreadInitThunk:12)
RtlUserThreadStart (@RtlUserThreadStart:12)
```
@rustbot modify labels: +regression-from-stable-to-stable +O-windows