bjorn3 opened Issue #1752:
test compile set is_pic target x86_64-pc-windows-gnu function u0:43(i64, i64, i64) windows_fastcall { ; symbol _ZN61_$LT$core..num..NonZeroU128$u20$as$u20$core..str..FromStr$GT$8from_str17hc6d5a93f1d348c98E ; instance Instance { def: Item(DefId(0:11611 ~ core[5f76]::num[0]::{{impl}}[292]::from_str[0])), substs: [] } ; sig ([&str]; c_variadic: false)->result::Result<num::NonZeroU128, num::ParseIntError> ; kind loc.idx param pass mode ty ; ret _0 = v0 ByRef { sized: true } result::Result<num::NonZeroU128, num::ParseIntError> ; arg _1 = v1, v2 ByValPair(types::I64, types::I64) &str ; kind local ty size align (abi,pref) ; stack _1 &str 16b 8, 8 storage=ss0 ; stack _2 option::Option<num::NonZeroU128> 16b 8, 8 storage=ss1 ; ssa _3 u128 16b 8, 8 ; stack _4 result::Result<u128, num::ParseIntError> 24b 8, 8 storage=ss2 ; stack _5 result::Result<u128, num::ParseIntError> 24b 8, 8 storage=ss3 ; stack _6 &str 16b 8, 8 storage=ss4 ; ssa _7 isize 8b 8, 8 ; stack _8 num::ParseIntError 1b 1, 8 storage=ss5 ; stack _9 num::ParseIntError 1b 1, 8 storage=ss6 ; stack _10 num::ParseIntError 1b 1, 8 storage=ss7 ; ssa _11 u128 16b 8, 8 ; stack _12 num::ParseIntError 1b 1, 8 storage=ss8 ss0 = explicit_slot 16 ss1 = explicit_slot 16 ss2 = explicit_slot 24 ss3 = explicit_slot 24 ss4 = explicit_slot 16 ss5 = explicit_slot 1 ss6 = explicit_slot 1 ss7 = explicit_slot 1 ss8 = explicit_slot 1 gv0 = symbol colocated u1:22 ; trap at Instance { def: Item(DefId(0:11611 ~ core[5f76]::num[0]::{{impl}}[292]::from_str[0])), substs: [] } (_ZN61_$LT$core..num..NonZeroU128$u20$as$u20$core..str..FromStr$GT$8from_str17hc6d5a93f1d348c98E): [corruption] Hit unreachable code. gv1 = symbol colocated u1:23 ; alloc32624 sig0 = (i64, i64, i64, i32) windows_fastcall sig1 = (i64, i64) windows_fastcall sig2 = (i128) -> i128 windows_fastcall sig3 = (i64) -> i32 windows_fastcall sig4 = (i8) -> i8 windows_fastcall sig5 = (i64, i8) windows_fastcall sig6 = (i64, i128, i8) windows_fastcall fn0 = u0:283 sig0 ; Instance { def: Item(DefId(0:677 ~ core[5f76]::num[0]::from_str_radix[0])), substs: [u128] } fn1 = u0:284 sig1 ; Instance { def: Item(DefId(0:5800 ~ core[5f76]::result[0]::{{impl}}[36]::into_result[0])), substs: [u128, num::ParseIntError] } fn2 = colocated u0:17 sig2 ; Instance { def: Item(DefId(0:11011 ~ core[5f76]::num[0]::{{impl}}[52]::new[0])), substs: [] } fn3 = u0:263 sig3 ; puts fn4 = u0:268 sig4 ; Instance { def: Item(DefId(0:1846 ~ core[5f76]::convert[0]::{{impl}}[4]::from[0])), substs: [num::ParseIntError] } fn5 = u0:285 sig5 ; Instance { def: Item(DefId(0:5802 ~ core[5f76]::result[0]::{{impl}}[36]::from_error[0])), substs: [num::NonZeroU128, num::ParseIntError] } fn6 = u0:286 sig6 ; Instance { def: Item(DefId(0:5279 ~ core[5f76]::option[0]::{{impl}}[0]::ok_or[0])), substs: [num::NonZeroU128, num::ParseIntError] } jt0 = jump_table [block4, block6] block0(v0: i64, v1: i64, v2: i64): nop ; write_cvalue: Addr(Pointer { base: Stack(ss0), offset: Offset32(0) }, None): &str <- ByValPair(v1, v2): &str stack_store v1, ss0 stack_store v2, ss0+8 jump block1 block1: nop ; write_cvalue: Addr(Pointer { base: Stack(ss4), offset: Offset32(0) }, None): &str <- ByRef(Pointer { base: Stack(ss0), offset: Offset32(0) }, None): &str @0004 v3 = stack_load.i64 ss0 @0004 v4 = stack_load.i64 ss0+8 @0004 stack_store v3, ss4 @0004 stack_store v4, ss4+8 ; ; _5 = const num::from_str_radix::<u128>(move _6, const 10u32) @0003 v5 = iconst.i32 10 @0003 v6 = stack_load.i64 ss4 @0003 v7 = stack_load.i64 ss4+8 @0003 v8 = stack_addr.i64 ss3 @0003 call fn0(v8, v6, v7, v5) @0003 jump block2 block2: @0003 nop ; ; _4 = const <result::Result<u128, num::ParseIntError> as ops::r#try::Try>::into_result(move _5) @0002 v9 = stack_addr.i64 ss3 @0002 v10 = stack_addr.i64 ss2 @0002 call fn1(v10, v9) @0002 jump block3 block3: @0002 nop @0007 v11 = stack_load.i8 ss2 @0007 v12 = uextend.i64 v11 ; write_cvalue: Var(_7): isize <- ByVal(v12): isize ; ; switchInt(move _7) @0007 jump block12 block12: @0007 br_table.i64 v12, block5, jt0 block4: @0007 nop ; write_cvalue: Var(_11): u128 <- ByRef(Pointer { base: Stack(ss2), offset: Offset32(8) }, None): u128 @0001 v13 = stack_addr.i64 ss2 @0001 v14 = load.i128 v13+8 ; write_cvalue: Var(_3): u128 <- ByVal(v14): u128 ; ; _2 = const num::NonZeroU128::new(move _3) @0000 v15 = call fn2(v14) ; write_cvalue: Addr(Pointer { base: Stack(ss1), offset: Offset32(0) }, None): option::Option<num::NonZeroU128> <- ByVal(v15): option::Option<num::NonZeroU128> @0000 v16 = stack_addr.i64 ss1 @0000 store v15, v16 @0000 jump block9 block5: @0000 nop ; ; unreachable @0002 v17 = global_value.i64 gv0 @0002 v18 = call fn3(v17) @0002 trap unreachable block6: @0002 nop ; write_cvalue: Addr(Pointer { base: Stack(ss5), offset: Offset32(0) }, None): num::ParseIntError <- ByRef(Pointer { base: Stack(ss2), offset: Offset32(1) }, None): num::ParseIntError @0007 v19 = stack_load.i8 ss2+1 @0007 stack_store v19, ss5 ; write_cvalue: Addr(Pointer { base: Stack(ss7), offset: Offset32(0) }, None): num::ParseIntError <- ByRef(Pointer { base: Stack(ss5), offset: Offset32(0) }, None): num::ParseIntError @000a v20 = stack_load.i8 ss5 @000a stack_store v20, ss7 ; ; _9 = const <num::ParseIntError as convert::From<num::ParseIntError>>::from(move _10) @000a v21 = stack_load.i8 ss7 @000a v22 = call fn4(v21) ; write_cvalue: Addr(Pointer { base: Stack(ss6), offset: Offset32(0) }, None): num::ParseIntError <- ByVal(v22): num::ParseIntError @000a stack_store v22, ss6 @000a jump block7 block7: @000a nop ; ; _0 = const <result::Result<num::NonZeroU128, num::ParseIntError> as ops::r#try::Try>::from_error(move _9) @000a v23 = stack_load.i8 ss6 @000a call fn5(v0, v23) @000a jump block8 block8: @000a nop ; ; goto @000e return block9: @000e nop @000f v24 = global_value.i64 gv1 ; write_cvalue: Addr(Pointer { base: Stack(ss8), offset: Offset32(0) }, None): num::ParseIntError <- ByRef(Pointer { base: Addr(v24), offset: Offset32(0) }, None): num::ParseIntError @000f v25 = load.i8 v24 @000f stack_store v25, ss8 ; ; _0 = const option::Option::<num::NonZeroU128>::ok_or::<num::ParseIntError>(move _2, move _12) @0010 v26 = stack_addr.i64 ss1 @0010 v27 = load.i128 v26 @0010 v28 = stack_load.i8 ss8 @0010 call fn6(v0, v27, v28) @0010 jump block10 block10: @0010 nop ; ; goto @000e return block11: @000e nop ; ; return @000e return }
Backtrace (for release build)
#0 0x00005555557f5efb in cranelift_codegen::ir::layout::Layout::renumber_insts () #1 0x00005555557f5719 in cranelift_codegen::ir::layout::Layout::assign_inst_seq () #2 0x000055555578eb39 in <&mut cranelift_codegen::cursor::FuncCursor as cranelift_codegen::ir::builder::InstInserterBase>::insert_built_inst () #3 0x000055555579b468 in cranelift_codege [message truncated]
bjorn3 labeled Issue #1752:
test compile set is_pic target x86_64-pc-windows-gnu function u0:43(i64, i64, i64) windows_fastcall { ; symbol _ZN61_$LT$core..num..NonZeroU128$u20$as$u20$core..str..FromStr$GT$8from_str17hc6d5a93f1d348c98E ; instance Instance { def: Item(DefId(0:11611 ~ core[5f76]::num[0]::{{impl}}[292]::from_str[0])), substs: [] } ; sig ([&str]; c_variadic: false)->result::Result<num::NonZeroU128, num::ParseIntError> ; kind loc.idx param pass mode ty ; ret _0 = v0 ByRef { sized: true } result::Result<num::NonZeroU128, num::ParseIntError> ; arg _1 = v1, v2 ByValPair(types::I64, types::I64) &str ; kind local ty size align (abi,pref) ; stack _1 &str 16b 8, 8 storage=ss0 ; stack _2 option::Option<num::NonZeroU128> 16b 8, 8 storage=ss1 ; ssa _3 u128 16b 8, 8 ; stack _4 result::Result<u128, num::ParseIntError> 24b 8, 8 storage=ss2 ; stack _5 result::Result<u128, num::ParseIntError> 24b 8, 8 storage=ss3 ; stack _6 &str 16b 8, 8 storage=ss4 ; ssa _7 isize 8b 8, 8 ; stack _8 num::ParseIntError 1b 1, 8 storage=ss5 ; stack _9 num::ParseIntError 1b 1, 8 storage=ss6 ; stack _10 num::ParseIntError 1b 1, 8 storage=ss7 ; ssa _11 u128 16b 8, 8 ; stack _12 num::ParseIntError 1b 1, 8 storage=ss8 ss0 = explicit_slot 16 ss1 = explicit_slot 16 ss2 = explicit_slot 24 ss3 = explicit_slot 24 ss4 = explicit_slot 16 ss5 = explicit_slot 1 ss6 = explicit_slot 1 ss7 = explicit_slot 1 ss8 = explicit_slot 1 gv0 = symbol colocated u1:22 ; trap at Instance { def: Item(DefId(0:11611 ~ core[5f76]::num[0]::{{impl}}[292]::from_str[0])), substs: [] } (_ZN61_$LT$core..num..NonZeroU128$u20$as$u20$core..str..FromStr$GT$8from_str17hc6d5a93f1d348c98E): [corruption] Hit unreachable code. gv1 = symbol colocated u1:23 ; alloc32624 sig0 = (i64, i64, i64, i32) windows_fastcall sig1 = (i64, i64) windows_fastcall sig2 = (i128) -> i128 windows_fastcall sig3 = (i64) -> i32 windows_fastcall sig4 = (i8) -> i8 windows_fastcall sig5 = (i64, i8) windows_fastcall sig6 = (i64, i128, i8) windows_fastcall fn0 = u0:283 sig0 ; Instance { def: Item(DefId(0:677 ~ core[5f76]::num[0]::from_str_radix[0])), substs: [u128] } fn1 = u0:284 sig1 ; Instance { def: Item(DefId(0:5800 ~ core[5f76]::result[0]::{{impl}}[36]::into_result[0])), substs: [u128, num::ParseIntError] } fn2 = colocated u0:17 sig2 ; Instance { def: Item(DefId(0:11011 ~ core[5f76]::num[0]::{{impl}}[52]::new[0])), substs: [] } fn3 = u0:263 sig3 ; puts fn4 = u0:268 sig4 ; Instance { def: Item(DefId(0:1846 ~ core[5f76]::convert[0]::{{impl}}[4]::from[0])), substs: [num::ParseIntError] } fn5 = u0:285 sig5 ; Instance { def: Item(DefId(0:5802 ~ core[5f76]::result[0]::{{impl}}[36]::from_error[0])), substs: [num::NonZeroU128, num::ParseIntError] } fn6 = u0:286 sig6 ; Instance { def: Item(DefId(0:5279 ~ core[5f76]::option[0]::{{impl}}[0]::ok_or[0])), substs: [num::NonZeroU128, num::ParseIntError] } jt0 = jump_table [block4, block6] block0(v0: i64, v1: i64, v2: i64): nop ; write_cvalue: Addr(Pointer { base: Stack(ss0), offset: Offset32(0) }, None): &str <- ByValPair(v1, v2): &str stack_store v1, ss0 stack_store v2, ss0+8 jump block1 block1: nop ; write_cvalue: Addr(Pointer { base: Stack(ss4), offset: Offset32(0) }, None): &str <- ByRef(Pointer { base: Stack(ss0), offset: Offset32(0) }, None): &str @0004 v3 = stack_load.i64 ss0 @0004 v4 = stack_load.i64 ss0+8 @0004 stack_store v3, ss4 @0004 stack_store v4, ss4+8 ; ; _5 = const num::from_str_radix::<u128>(move _6, const 10u32) @0003 v5 = iconst.i32 10 @0003 v6 = stack_load.i64 ss4 @0003 v7 = stack_load.i64 ss4+8 @0003 v8 = stack_addr.i64 ss3 @0003 call fn0(v8, v6, v7, v5) @0003 jump block2 block2: @0003 nop ; ; _4 = const <result::Result<u128, num::ParseIntError> as ops::r#try::Try>::into_result(move _5) @0002 v9 = stack_addr.i64 ss3 @0002 v10 = stack_addr.i64 ss2 @0002 call fn1(v10, v9) @0002 jump block3 block3: @0002 nop @0007 v11 = stack_load.i8 ss2 @0007 v12 = uextend.i64 v11 ; write_cvalue: Var(_7): isize <- ByVal(v12): isize ; ; switchInt(move _7) @0007 jump block12 block12: @0007 br_table.i64 v12, block5, jt0 block4: @0007 nop ; write_cvalue: Var(_11): u128 <- ByRef(Pointer { base: Stack(ss2), offset: Offset32(8) }, None): u128 @0001 v13 = stack_addr.i64 ss2 @0001 v14 = load.i128 v13+8 ; write_cvalue: Var(_3): u128 <- ByVal(v14): u128 ; ; _2 = const num::NonZeroU128::new(move _3) @0000 v15 = call fn2(v14) ; write_cvalue: Addr(Pointer { base: Stack(ss1), offset: Offset32(0) }, None): option::Option<num::NonZeroU128> <- ByVal(v15): option::Option<num::NonZeroU128> @0000 v16 = stack_addr.i64 ss1 @0000 store v15, v16 @0000 jump block9 block5: @0000 nop ; ; unreachable @0002 v17 = global_value.i64 gv0 @0002 v18 = call fn3(v17) @0002 trap unreachable block6: @0002 nop ; write_cvalue: Addr(Pointer { base: Stack(ss5), offset: Offset32(0) }, None): num::ParseIntError <- ByRef(Pointer { base: Stack(ss2), offset: Offset32(1) }, None): num::ParseIntError @0007 v19 = stack_load.i8 ss2+1 @0007 stack_store v19, ss5 ; write_cvalue: Addr(Pointer { base: Stack(ss7), offset: Offset32(0) }, None): num::ParseIntError <- ByRef(Pointer { base: Stack(ss5), offset: Offset32(0) }, None): num::ParseIntError @000a v20 = stack_load.i8 ss5 @000a stack_store v20, ss7 ; ; _9 = const <num::ParseIntError as convert::From<num::ParseIntError>>::from(move _10) @000a v21 = stack_load.i8 ss7 @000a v22 = call fn4(v21) ; write_cvalue: Addr(Pointer { base: Stack(ss6), offset: Offset32(0) }, None): num::ParseIntError <- ByVal(v22): num::ParseIntError @000a stack_store v22, ss6 @000a jump block7 block7: @000a nop ; ; _0 = const <result::Result<num::NonZeroU128, num::ParseIntError> as ops::r#try::Try>::from_error(move _9) @000a v23 = stack_load.i8 ss6 @000a call fn5(v0, v23) @000a jump block8 block8: @000a nop ; ; goto @000e return block9: @000e nop @000f v24 = global_value.i64 gv1 ; write_cvalue: Addr(Pointer { base: Stack(ss8), offset: Offset32(0) }, None): num::ParseIntError <- ByRef(Pointer { base: Addr(v24), offset: Offset32(0) }, None): num::ParseIntError @000f v25 = load.i8 v24 @000f stack_store v25, ss8 ; ; _0 = const option::Option::<num::NonZeroU128>::ok_or::<num::ParseIntError>(move _2, move _12) @0010 v26 = stack_addr.i64 ss1 @0010 v27 = load.i128 v26 @0010 v28 = stack_load.i8 ss8 @0010 call fn6(v0, v27, v28) @0010 jump block10 block10: @0010 nop ; ; goto @000e return block11: @000e nop ; ; return @000e return }
Backtrace (for release build)
#0 0x00005555557f5efb in cranelift_codegen::ir::layout::Layout::renumber_insts () #1 0x00005555557f5719 in cranelift_codegen::ir::layout::Layout::assign_inst_seq () #2 0x000055555578eb39 in <&mut cranelift_codegen::cursor::FuncCursor as cranelift_codegen::ir::builder::InstInserterBase>::insert_built_inst () #3 0x000055555579b468 in cranelift_codeg [message truncated]
bjorn3 labeled Issue #1752:
test compile set is_pic target x86_64-pc-windows-gnu function u0:43(i64, i64, i64) windows_fastcall { ; symbol _ZN61_$LT$core..num..NonZeroU128$u20$as$u20$core..str..FromStr$GT$8from_str17hc6d5a93f1d348c98E ; instance Instance { def: Item(DefId(0:11611 ~ core[5f76]::num[0]::{{impl}}[292]::from_str[0])), substs: [] } ; sig ([&str]; c_variadic: false)->result::Result<num::NonZeroU128, num::ParseIntError> ; kind loc.idx param pass mode ty ; ret _0 = v0 ByRef { sized: true } result::Result<num::NonZeroU128, num::ParseIntError> ; arg _1 = v1, v2 ByValPair(types::I64, types::I64) &str ; kind local ty size align (abi,pref) ; stack _1 &str 16b 8, 8 storage=ss0 ; stack _2 option::Option<num::NonZeroU128> 16b 8, 8 storage=ss1 ; ssa _3 u128 16b 8, 8 ; stack _4 result::Result<u128, num::ParseIntError> 24b 8, 8 storage=ss2 ; stack _5 result::Result<u128, num::ParseIntError> 24b 8, 8 storage=ss3 ; stack _6 &str 16b 8, 8 storage=ss4 ; ssa _7 isize 8b 8, 8 ; stack _8 num::ParseIntError 1b 1, 8 storage=ss5 ; stack _9 num::ParseIntError 1b 1, 8 storage=ss6 ; stack _10 num::ParseIntError 1b 1, 8 storage=ss7 ; ssa _11 u128 16b 8, 8 ; stack _12 num::ParseIntError 1b 1, 8 storage=ss8 ss0 = explicit_slot 16 ss1 = explicit_slot 16 ss2 = explicit_slot 24 ss3 = explicit_slot 24 ss4 = explicit_slot 16 ss5 = explicit_slot 1 ss6 = explicit_slot 1 ss7 = explicit_slot 1 ss8 = explicit_slot 1 gv0 = symbol colocated u1:22 ; trap at Instance { def: Item(DefId(0:11611 ~ core[5f76]::num[0]::{{impl}}[292]::from_str[0])), substs: [] } (_ZN61_$LT$core..num..NonZeroU128$u20$as$u20$core..str..FromStr$GT$8from_str17hc6d5a93f1d348c98E): [corruption] Hit unreachable code. gv1 = symbol colocated u1:23 ; alloc32624 sig0 = (i64, i64, i64, i32) windows_fastcall sig1 = (i64, i64) windows_fastcall sig2 = (i128) -> i128 windows_fastcall sig3 = (i64) -> i32 windows_fastcall sig4 = (i8) -> i8 windows_fastcall sig5 = (i64, i8) windows_fastcall sig6 = (i64, i128, i8) windows_fastcall fn0 = u0:283 sig0 ; Instance { def: Item(DefId(0:677 ~ core[5f76]::num[0]::from_str_radix[0])), substs: [u128] } fn1 = u0:284 sig1 ; Instance { def: Item(DefId(0:5800 ~ core[5f76]::result[0]::{{impl}}[36]::into_result[0])), substs: [u128, num::ParseIntError] } fn2 = colocated u0:17 sig2 ; Instance { def: Item(DefId(0:11011 ~ core[5f76]::num[0]::{{impl}}[52]::new[0])), substs: [] } fn3 = u0:263 sig3 ; puts fn4 = u0:268 sig4 ; Instance { def: Item(DefId(0:1846 ~ core[5f76]::convert[0]::{{impl}}[4]::from[0])), substs: [num::ParseIntError] } fn5 = u0:285 sig5 ; Instance { def: Item(DefId(0:5802 ~ core[5f76]::result[0]::{{impl}}[36]::from_error[0])), substs: [num::NonZeroU128, num::ParseIntError] } fn6 = u0:286 sig6 ; Instance { def: Item(DefId(0:5279 ~ core[5f76]::option[0]::{{impl}}[0]::ok_or[0])), substs: [num::NonZeroU128, num::ParseIntError] } jt0 = jump_table [block4, block6] block0(v0: i64, v1: i64, v2: i64): nop ; write_cvalue: Addr(Pointer { base: Stack(ss0), offset: Offset32(0) }, None): &str <- ByValPair(v1, v2): &str stack_store v1, ss0 stack_store v2, ss0+8 jump block1 block1: nop ; write_cvalue: Addr(Pointer { base: Stack(ss4), offset: Offset32(0) }, None): &str <- ByRef(Pointer { base: Stack(ss0), offset: Offset32(0) }, None): &str @0004 v3 = stack_load.i64 ss0 @0004 v4 = stack_load.i64 ss0+8 @0004 stack_store v3, ss4 @0004 stack_store v4, ss4+8 ; ; _5 = const num::from_str_radix::<u128>(move _6, const 10u32) @0003 v5 = iconst.i32 10 @0003 v6 = stack_load.i64 ss4 @0003 v7 = stack_load.i64 ss4+8 @0003 v8 = stack_addr.i64 ss3 @0003 call fn0(v8, v6, v7, v5) @0003 jump block2 block2: @0003 nop ; ; _4 = const <result::Result<u128, num::ParseIntError> as ops::r#try::Try>::into_result(move _5) @0002 v9 = stack_addr.i64 ss3 @0002 v10 = stack_addr.i64 ss2 @0002 call fn1(v10, v9) @0002 jump block3 block3: @0002 nop @0007 v11 = stack_load.i8 ss2 @0007 v12 = uextend.i64 v11 ; write_cvalue: Var(_7): isize <- ByVal(v12): isize ; ; switchInt(move _7) @0007 jump block12 block12: @0007 br_table.i64 v12, block5, jt0 block4: @0007 nop ; write_cvalue: Var(_11): u128 <- ByRef(Pointer { base: Stack(ss2), offset: Offset32(8) }, None): u128 @0001 v13 = stack_addr.i64 ss2 @0001 v14 = load.i128 v13+8 ; write_cvalue: Var(_3): u128 <- ByVal(v14): u128 ; ; _2 = const num::NonZeroU128::new(move _3) @0000 v15 = call fn2(v14) ; write_cvalue: Addr(Pointer { base: Stack(ss1), offset: Offset32(0) }, None): option::Option<num::NonZeroU128> <- ByVal(v15): option::Option<num::NonZeroU128> @0000 v16 = stack_addr.i64 ss1 @0000 store v15, v16 @0000 jump block9 block5: @0000 nop ; ; unreachable @0002 v17 = global_value.i64 gv0 @0002 v18 = call fn3(v17) @0002 trap unreachable block6: @0002 nop ; write_cvalue: Addr(Pointer { base: Stack(ss5), offset: Offset32(0) }, None): num::ParseIntError <- ByRef(Pointer { base: Stack(ss2), offset: Offset32(1) }, None): num::ParseIntError @0007 v19 = stack_load.i8 ss2+1 @0007 stack_store v19, ss5 ; write_cvalue: Addr(Pointer { base: Stack(ss7), offset: Offset32(0) }, None): num::ParseIntError <- ByRef(Pointer { base: Stack(ss5), offset: Offset32(0) }, None): num::ParseIntError @000a v20 = stack_load.i8 ss5 @000a stack_store v20, ss7 ; ; _9 = const <num::ParseIntError as convert::From<num::ParseIntError>>::from(move _10) @000a v21 = stack_load.i8 ss7 @000a v22 = call fn4(v21) ; write_cvalue: Addr(Pointer { base: Stack(ss6), offset: Offset32(0) }, None): num::ParseIntError <- ByVal(v22): num::ParseIntError @000a stack_store v22, ss6 @000a jump block7 block7: @000a nop ; ; _0 = const <result::Result<num::NonZeroU128, num::ParseIntError> as ops::r#try::Try>::from_error(move _9) @000a v23 = stack_load.i8 ss6 @000a call fn5(v0, v23) @000a jump block8 block8: @000a nop ; ; goto @000e return block9: @000e nop @000f v24 = global_value.i64 gv1 ; write_cvalue: Addr(Pointer { base: Stack(ss8), offset: Offset32(0) }, None): num::ParseIntError <- ByRef(Pointer { base: Addr(v24), offset: Offset32(0) }, None): num::ParseIntError @000f v25 = load.i8 v24 @000f stack_store v25, ss8 ; ; _0 = const option::Option::<num::NonZeroU128>::ok_or::<num::ParseIntError>(move _2, move _12) @0010 v26 = stack_addr.i64 ss1 @0010 v27 = load.i128 v26 @0010 v28 = stack_load.i8 ss8 @0010 call fn6(v0, v27, v28) @0010 jump block10 block10: @0010 nop ; ; goto @000e return block11: @000e nop ; ; return @000e return }
Backtrace (for release build)
#0 0x00005555557f5efb in cranelift_codegen::ir::layout::Layout::renumber_insts () #1 0x00005555557f5719 in cranelift_codegen::ir::layout::Layout::assign_inst_seq () #2 0x000055555578eb39 in <&mut cranelift_codegen::cursor::FuncCursor as cranelift_codegen::ir::builder::InstInserterBase>::insert_built_inst () #3 0x000055555579b468 in cranelift_codeg [message truncated]
github-actions[bot] commented on Issue #1752:
Subscribe to Label Action
cc @bnjbvr
<details>
This issue or pull request has been labeled: "cranelift"Thus the following users have been cc'd because of the following labels:
- bnjbvr: cranelift
To subscribe or unsubscribe from this label, edit the <code>.github/subscribe-to-label.json</code> configuration file.
Learn more.
</details>
bjorn3 commented on Issue #1752:
Found while trying to compile libcore for Windows using cg_clif.
bjorn3 commented on Issue #1752:
This seems to have been caused by a problem in #1510 that is now fixed.
bjorn3 closed Issue #1752:
test compile set is_pic target x86_64-pc-windows-gnu function u0:43(i64, i64, i64) windows_fastcall { ; symbol _ZN61_$LT$core..num..NonZeroU128$u20$as$u20$core..str..FromStr$GT$8from_str17hc6d5a93f1d348c98E ; instance Instance { def: Item(DefId(0:11611 ~ core[5f76]::num[0]::{{impl}}[292]::from_str[0])), substs: [] } ; sig ([&str]; c_variadic: false)->result::Result<num::NonZeroU128, num::ParseIntError> ; kind loc.idx param pass mode ty ; ret _0 = v0 ByRef { sized: true } result::Result<num::NonZeroU128, num::ParseIntError> ; arg _1 = v1, v2 ByValPair(types::I64, types::I64) &str ; kind local ty size align (abi,pref) ; stack _1 &str 16b 8, 8 storage=ss0 ; stack _2 option::Option<num::NonZeroU128> 16b 8, 8 storage=ss1 ; ssa _3 u128 16b 8, 8 ; stack _4 result::Result<u128, num::ParseIntError> 24b 8, 8 storage=ss2 ; stack _5 result::Result<u128, num::ParseIntError> 24b 8, 8 storage=ss3 ; stack _6 &str 16b 8, 8 storage=ss4 ; ssa _7 isize 8b 8, 8 ; stack _8 num::ParseIntError 1b 1, 8 storage=ss5 ; stack _9 num::ParseIntError 1b 1, 8 storage=ss6 ; stack _10 num::ParseIntError 1b 1, 8 storage=ss7 ; ssa _11 u128 16b 8, 8 ; stack _12 num::ParseIntError 1b 1, 8 storage=ss8 ss0 = explicit_slot 16 ss1 = explicit_slot 16 ss2 = explicit_slot 24 ss3 = explicit_slot 24 ss4 = explicit_slot 16 ss5 = explicit_slot 1 ss6 = explicit_slot 1 ss7 = explicit_slot 1 ss8 = explicit_slot 1 gv0 = symbol colocated u1:22 ; trap at Instance { def: Item(DefId(0:11611 ~ core[5f76]::num[0]::{{impl}}[292]::from_str[0])), substs: [] } (_ZN61_$LT$core..num..NonZeroU128$u20$as$u20$core..str..FromStr$GT$8from_str17hc6d5a93f1d348c98E): [corruption] Hit unreachable code. gv1 = symbol colocated u1:23 ; alloc32624 sig0 = (i64, i64, i64, i32) windows_fastcall sig1 = (i64, i64) windows_fastcall sig2 = (i128) -> i128 windows_fastcall sig3 = (i64) -> i32 windows_fastcall sig4 = (i8) -> i8 windows_fastcall sig5 = (i64, i8) windows_fastcall sig6 = (i64, i128, i8) windows_fastcall fn0 = u0:283 sig0 ; Instance { def: Item(DefId(0:677 ~ core[5f76]::num[0]::from_str_radix[0])), substs: [u128] } fn1 = u0:284 sig1 ; Instance { def: Item(DefId(0:5800 ~ core[5f76]::result[0]::{{impl}}[36]::into_result[0])), substs: [u128, num::ParseIntError] } fn2 = colocated u0:17 sig2 ; Instance { def: Item(DefId(0:11011 ~ core[5f76]::num[0]::{{impl}}[52]::new[0])), substs: [] } fn3 = u0:263 sig3 ; puts fn4 = u0:268 sig4 ; Instance { def: Item(DefId(0:1846 ~ core[5f76]::convert[0]::{{impl}}[4]::from[0])), substs: [num::ParseIntError] } fn5 = u0:285 sig5 ; Instance { def: Item(DefId(0:5802 ~ core[5f76]::result[0]::{{impl}}[36]::from_error[0])), substs: [num::NonZeroU128, num::ParseIntError] } fn6 = u0:286 sig6 ; Instance { def: Item(DefId(0:5279 ~ core[5f76]::option[0]::{{impl}}[0]::ok_or[0])), substs: [num::NonZeroU128, num::ParseIntError] } jt0 = jump_table [block4, block6] block0(v0: i64, v1: i64, v2: i64): nop ; write_cvalue: Addr(Pointer { base: Stack(ss0), offset: Offset32(0) }, None): &str <- ByValPair(v1, v2): &str stack_store v1, ss0 stack_store v2, ss0+8 jump block1 block1: nop ; write_cvalue: Addr(Pointer { base: Stack(ss4), offset: Offset32(0) }, None): &str <- ByRef(Pointer { base: Stack(ss0), offset: Offset32(0) }, None): &str @0004 v3 = stack_load.i64 ss0 @0004 v4 = stack_load.i64 ss0+8 @0004 stack_store v3, ss4 @0004 stack_store v4, ss4+8 ; ; _5 = const num::from_str_radix::<u128>(move _6, const 10u32) @0003 v5 = iconst.i32 10 @0003 v6 = stack_load.i64 ss4 @0003 v7 = stack_load.i64 ss4+8 @0003 v8 = stack_addr.i64 ss3 @0003 call fn0(v8, v6, v7, v5) @0003 jump block2 block2: @0003 nop ; ; _4 = const <result::Result<u128, num::ParseIntError> as ops::r#try::Try>::into_result(move _5) @0002 v9 = stack_addr.i64 ss3 @0002 v10 = stack_addr.i64 ss2 @0002 call fn1(v10, v9) @0002 jump block3 block3: @0002 nop @0007 v11 = stack_load.i8 ss2 @0007 v12 = uextend.i64 v11 ; write_cvalue: Var(_7): isize <- ByVal(v12): isize ; ; switchInt(move _7) @0007 jump block12 block12: @0007 br_table.i64 v12, block5, jt0 block4: @0007 nop ; write_cvalue: Var(_11): u128 <- ByRef(Pointer { base: Stack(ss2), offset: Offset32(8) }, None): u128 @0001 v13 = stack_addr.i64 ss2 @0001 v14 = load.i128 v13+8 ; write_cvalue: Var(_3): u128 <- ByVal(v14): u128 ; ; _2 = const num::NonZeroU128::new(move _3) @0000 v15 = call fn2(v14) ; write_cvalue: Addr(Pointer { base: Stack(ss1), offset: Offset32(0) }, None): option::Option<num::NonZeroU128> <- ByVal(v15): option::Option<num::NonZeroU128> @0000 v16 = stack_addr.i64 ss1 @0000 store v15, v16 @0000 jump block9 block5: @0000 nop ; ; unreachable @0002 v17 = global_value.i64 gv0 @0002 v18 = call fn3(v17) @0002 trap unreachable block6: @0002 nop ; write_cvalue: Addr(Pointer { base: Stack(ss5), offset: Offset32(0) }, None): num::ParseIntError <- ByRef(Pointer { base: Stack(ss2), offset: Offset32(1) }, None): num::ParseIntError @0007 v19 = stack_load.i8 ss2+1 @0007 stack_store v19, ss5 ; write_cvalue: Addr(Pointer { base: Stack(ss7), offset: Offset32(0) }, None): num::ParseIntError <- ByRef(Pointer { base: Stack(ss5), offset: Offset32(0) }, None): num::ParseIntError @000a v20 = stack_load.i8 ss5 @000a stack_store v20, ss7 ; ; _9 = const <num::ParseIntError as convert::From<num::ParseIntError>>::from(move _10) @000a v21 = stack_load.i8 ss7 @000a v22 = call fn4(v21) ; write_cvalue: Addr(Pointer { base: Stack(ss6), offset: Offset32(0) }, None): num::ParseIntError <- ByVal(v22): num::ParseIntError @000a stack_store v22, ss6 @000a jump block7 block7: @000a nop ; ; _0 = const <result::Result<num::NonZeroU128, num::ParseIntError> as ops::r#try::Try>::from_error(move _9) @000a v23 = stack_load.i8 ss6 @000a call fn5(v0, v23) @000a jump block8 block8: @000a nop ; ; goto @000e return block9: @000e nop @000f v24 = global_value.i64 gv1 ; write_cvalue: Addr(Pointer { base: Stack(ss8), offset: Offset32(0) }, None): num::ParseIntError <- ByRef(Pointer { base: Addr(v24), offset: Offset32(0) }, None): num::ParseIntError @000f v25 = load.i8 v24 @000f stack_store v25, ss8 ; ; _0 = const option::Option::<num::NonZeroU128>::ok_or::<num::ParseIntError>(move _2, move _12) @0010 v26 = stack_addr.i64 ss1 @0010 v27 = load.i128 v26 @0010 v28 = stack_load.i8 ss8 @0010 call fn6(v0, v27, v28) @0010 jump block10 block10: @0010 nop ; ; goto @000e return block11: @000e nop ; ; return @000e return }
Backtrace (for release build)
#0 0x00005555557f5efb in cranelift_codegen::ir::layout::Layout::renumber_insts () #1 0x00005555557f5719 in cranelift_codegen::ir::layout::Layout::assign_inst_seq () #2 0x000055555578eb39 in <&mut cranelift_codegen::cursor::FuncCursor as cranelift_codegen::ir::builder::InstInserterBase>::insert_built_inst () #3 0x000055555579b468 in cranelift_codege [message truncated]
Last updated: Nov 22 2024 at 16:03 UTC