define i32 @_ZN7example6fails217h203cd5a0beec258bE(i32* noalias nocapture dereferenceable(4) %a, i32* noalias nocapture dereferenceable(4) %b) unnamed_addr #0 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality !dbg !4 {
start:
%tmp.0.copyload.i.i.i = load i32, i32* %a, align 4, !dbg !7, !alias.scope !21, !noalias !24
%0 = load i32, i32* %b, align 4, !dbg !26, !alias.scope !24, !noalias !21
store i32 %0, i32* %a, align 4, !dbg !26, !alias.scope !21, !noalias !24
store i32 %tmp.0.copyload.i.i.i, i32* %b, align 4, !dbg !28, !alias.scope !24, !noalias !21
ret i32 4, !dbg !31
}
Compiling with
-Cpanic=abortor-Zno-landing-padsshould make associated personality functions entirely unnecessary, yet they still somehow end up getting attached to functions generated with the "current" CG.Consider for example this function:
which when compiled (with or without optimisations) with
-Cpanic=abort, will contain no personality functions in1.27.1but will contain them starting with1.28.1.27.1
1.28
This is technically a codegen regression, albeit very innocuous one.