; ModuleID = 'probe4.57d1ae84-cgu.0' source_filename = "probe4.57d1ae84-cgu.0" target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" %"core::panic::location::Location" = type { { [0 x i8]*, i64 }, i32, i32 } @alloc2 = private unnamed_addr constant <{ [4 x i8] }> <{ [4 x i8] c"\02\00\00\00" }>, align 4 @alloc3 = private unnamed_addr constant <{ [77 x i8] }> <{ [77 x i8] c"/rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/core/src/ops/arith.rs" }>, align 1 @alloc4 = private unnamed_addr constant <{ i8*, [16 x i8] }> <{ i8* getelementptr inbounds (<{ [77 x i8] }>, <{ [77 x i8] }>* @alloc3, i32 0, i32 0, i32 0), [16 x i8] c"M\00\00\00\00\00\00\00\12\03\00\00\01\00\00\00" }>, align 8 @str.0 = internal constant [28 x i8] c"attempt to add with overflow" ; probe4::probe ; Function Attrs: nonlazybind uwtable define void @_ZN6probe45probe17h59d61b1463a3543cE() unnamed_addr #0 { start: %x = alloca i32, align 4 store i32 1, i32* %x, align 4 ; call >::add_assign call void @"_ZN66_$LT$i32$u20$as$u20$core..ops..arith..AddAssign$LT$$RF$i32$GT$$GT$10add_assign17hdddf1ff101fa1d44E"(i32* noundef align 4 dereferenceable(4) %x, i32* noundef align 4 dereferenceable(4) bitcast (<{ [4 x i8] }>* @alloc2 to i32*)) br label %bb1 bb1: ; preds = %start ret void } ; ::add_assign ; Function Attrs: inlinehint nonlazybind uwtable define internal void @"_ZN51_$LT$i32$u20$as$u20$core..ops..arith..AddAssign$GT$10add_assign17hdd174b650fec48a0E"(i32* noundef align 4 dereferenceable(4) %self, i32 %other) unnamed_addr #1 { start: %0 = load i32, i32* %self, align 4 %1 = call { i32, i1 } @llvm.sadd.with.overflow.i32(i32 %0, i32 %other) %_4.0 = extractvalue { i32, i1 } %1, 0 %_4.1 = extractvalue { i32, i1 } %1, 1 %2 = call i1 @llvm.expect.i1(i1 %_4.1, i1 false) br i1 %2, label %panic, label %bb1 bb1: ; preds = %start store i32 %_4.0, i32* %self, align 4 ret void panic: ; preds = %start ; call core::panicking::panic call void @_ZN4core9panicking5panic17h4241c5ccea17facaE([0 x i8]* noundef nonnull align 1 bitcast ([28 x i8]* @str.0 to [0 x i8]*), i64 28, %"core::panic::location::Location"* noundef align 8 dereferenceable(24) bitcast (<{ i8*, [16 x i8] }>* @alloc4 to %"core::panic::location::Location"*)) #5 unreachable } ; >::add_assign ; Function Attrs: inlinehint nonlazybind uwtable define internal void @"_ZN66_$LT$i32$u20$as$u20$core..ops..arith..AddAssign$LT$$RF$i32$GT$$GT$10add_assign17hdddf1ff101fa1d44E"(i32* noundef align 4 dereferenceable(4) %self, i32* noundef align 4 dereferenceable(4) %other) unnamed_addr #1 { start: %_5 = load i32, i32* %other, align 4 ; call ::add_assign call void @"_ZN51_$LT$i32$u20$as$u20$core..ops..arith..AddAssign$GT$10add_assign17hdd174b650fec48a0E"(i32* noundef align 4 dereferenceable(4) %self, i32 %_5) br label %bb1 bb1: ; preds = %start ret void } ; Function Attrs: nofree nosync nounwind readnone speculatable willreturn declare { i32, i1 } @llvm.sadd.with.overflow.i32(i32, i32) #2 ; Function Attrs: nofree nosync nounwind readnone willreturn declare i1 @llvm.expect.i1(i1, i1) #3 ; core::panicking::panic ; Function Attrs: cold noinline noreturn nonlazybind uwtable declare void @_ZN4core9panicking5panic17h4241c5ccea17facaE([0 x i8]* noundef nonnull align 1, i64, %"core::panic::location::Location"* noundef align 8 dereferenceable(24)) unnamed_addr #4 attributes #0 = { nonlazybind uwtable "probe-stack"="__rust_probestack" "target-cpu"="x86-64" } attributes #1 = { inlinehint nonlazybind uwtable "probe-stack"="__rust_probestack" "target-cpu"="x86-64" } attributes #2 = { nofree nosync nounwind readnone speculatable willreturn } attributes #3 = { nofree nosync nounwind readnone willreturn } attributes #4 = { cold noinline noreturn nonlazybind uwtable "probe-stack"="__rust_probestack" "target-cpu"="x86-64" } attributes #5 = { noreturn } !llvm.module.flags = !{!0, !1} !0 = !{i32 7, !"PIC Level", i32 2} !1 = !{i32 2, !"RtLibUseGOT", i32 1}