Skip to content

Instantly share code, notes, and snippets.

@alexcrichton
Created February 14, 2018 19:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alexcrichton/c39d44ea1df7293b5a522293340be6ee to your computer and use it in GitHub Desktop.
Save alexcrichton/c39d44ea1df7293b5a522293340be6ee to your computer and use it in GitHub Desktop.
; ModuleID = 'bad-position-simple.bad_position_simple0-317d481089b8c8fe83113de504472633.rs.rcgu.thin-lto-after-patch.bc'
source_filename = "bad_position_simple0-317d481089b8c8fe83113de504472633.rs"
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
%"core::result::Result<usize, usize>" = type { [0 x i64], i64, [1 x i64] }
%"unwind::libunwind::_Unwind_Exception" = type { [0 x i64], i64, [0 x i64], void (i32, %"unwind::libunwind::_Unwind_Exception"*)*, [0 x i64], [6 x i64], [0 x i64] }
%"unwind::libunwind::_Unwind_Context" = type { [0 x i8] }
@str.7 = internal constant [22 x i8] c"bad-position-simple.rs"
@panic_bounds_check_loc.8 = private unnamed_addr constant { { [0 x i8]*, i64 }, i32, i32 } { { [0 x i8]*, i64 } { [0 x i8]* bitcast ([22 x i8]* @str.7 to [0 x i8]*), i64 22 }, i32 9, i32 43 }, align 8
; Function Attrs: uwtable
define hidden void @_ZN19bad_position_simple4test21import_path_to_string17h099030e197a06397E([0 x i32]* noalias nonnull readonly, i64) unnamed_addr #0 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality {
%3 = alloca %"core::result::Result<usize, usize>", align 8
%4 = alloca %"core::result::Result<usize, usize>", align 8
%5 = alloca %"core::result::Result<usize, usize>", align 8
%6 = alloca %"core::result::Result<usize, usize>", align 8
%7 = alloca %"core::result::Result<usize, usize>", align 8
%8 = alloca %"core::result::Result<usize, usize>", align 8
%9 = alloca %"core::result::Result<usize, usize>", align 8
%10 = alloca %"core::result::Result<usize, usize>", align 8
%11 = alloca %"core::result::Result<usize, usize>", align 8
%12 = alloca %"core::result::Result<usize, usize>", align 8
%13 = alloca %"core::result::Result<usize, usize>", align 8
%14 = getelementptr inbounds [0 x i32], [0 x i32]* %0, i64 0, i64 0
%15 = getelementptr inbounds [0 x i32], [0 x i32]* %0, i64 0, i64 %1
%16 = ptrtoint i32* %15 to i64
%17 = bitcast %"core::result::Result<usize, usize>"* %13 to i8*
%18 = bitcast %"core::result::Result<usize, usize>"* %3 to i8*
%19 = bitcast %"core::result::Result<usize, usize>"* %4 to i8*
%20 = bitcast %"core::result::Result<usize, usize>"* %5 to i8*
%21 = bitcast %"core::result::Result<usize, usize>"* %6 to i8*
%22 = bitcast %"core::result::Result<usize, usize>"* %7 to i8*
%23 = bitcast %"core::result::Result<usize, usize>"* %8 to i8*
%24 = bitcast %"core::result::Result<usize, usize>"* %9 to i8*
%25 = bitcast %"core::result::Result<usize, usize>"* %10 to i8*
%26 = bitcast %"core::result::Result<usize, usize>"* %11 to i8*
%27 = bitcast %"core::result::Result<usize, usize>"* %12 to i8*
%28 = getelementptr inbounds %"core::result::Result<usize, usize>", %"core::result::Result<usize, usize>"* %11, i64 0, i32 2, i64 0
%29 = getelementptr inbounds %"core::result::Result<usize, usize>", %"core::result::Result<usize, usize>"* %11, i64 0, i32 0, i64 0
%30 = getelementptr inbounds %"core::result::Result<usize, usize>", %"core::result::Result<usize, usize>"* %12, i64 0, i32 0, i64 0
%31 = getelementptr inbounds %"core::result::Result<usize, usize>", %"core::result::Result<usize, usize>"* %12, i64 0, i32 2, i64 0
%32 = getelementptr inbounds %"core::result::Result<usize, usize>", %"core::result::Result<usize, usize>"* %9, i64 0, i32 2, i64 0
%33 = getelementptr inbounds %"core::result::Result<usize, usize>", %"core::result::Result<usize, usize>"* %9, i64 0, i32 0, i64 0
%34 = getelementptr inbounds %"core::result::Result<usize, usize>", %"core::result::Result<usize, usize>"* %10, i64 0, i32 0, i64 0
%35 = getelementptr inbounds %"core::result::Result<usize, usize>", %"core::result::Result<usize, usize>"* %10, i64 0, i32 2, i64 0
%36 = getelementptr inbounds %"core::result::Result<usize, usize>", %"core::result::Result<usize, usize>"* %7, i64 0, i32 2, i64 0
%37 = getelementptr inbounds %"core::result::Result<usize, usize>", %"core::result::Result<usize, usize>"* %7, i64 0, i32 0, i64 0
%38 = getelementptr inbounds %"core::result::Result<usize, usize>", %"core::result::Result<usize, usize>"* %8, i64 0, i32 0, i64 0
%39 = getelementptr inbounds %"core::result::Result<usize, usize>", %"core::result::Result<usize, usize>"* %8, i64 0, i32 2, i64 0
%40 = getelementptr inbounds %"core::result::Result<usize, usize>", %"core::result::Result<usize, usize>"* %5, i64 0, i32 2, i64 0
%41 = getelementptr inbounds %"core::result::Result<usize, usize>", %"core::result::Result<usize, usize>"* %5, i64 0, i32 0, i64 0
%42 = getelementptr inbounds %"core::result::Result<usize, usize>", %"core::result::Result<usize, usize>"* %6, i64 0, i32 0, i64 0
%43 = getelementptr inbounds %"core::result::Result<usize, usize>", %"core::result::Result<usize, usize>"* %6, i64 0, i32 2, i64 0
%44 = shl nuw i64 %1, 2
%45 = sdiv i64 %44, 4
%46 = icmp ugt i64 %45, 3
br i1 %46, label %47, label %53
; <label>:47: ; preds = %2
br label %62
; <label>:48: ; preds = %103
%49 = ptrtoint i32* %110 to i64
%50 = sub i64 %16, %49
%51 = sdiv i64 %50, 4
%52 = icmp ugt i64 %51, 3
br i1 %52, label %62, label %53
; <label>:53: ; preds = %48, %2
%54 = phi i32* [ %14, %2 ], [ %110, %48 ]
%55 = phi i64 [ 0, %2 ], [ %112, %48 ]
%56 = getelementptr inbounds %"core::result::Result<usize, usize>", %"core::result::Result<usize, usize>"* %3, i64 0, i32 2, i64 0
%57 = getelementptr inbounds %"core::result::Result<usize, usize>", %"core::result::Result<usize, usize>"* %3, i64 0, i32 0, i64 0
%58 = getelementptr inbounds %"core::result::Result<usize, usize>", %"core::result::Result<usize, usize>"* %4, i64 0, i32 0, i64 0
%59 = getelementptr inbounds %"core::result::Result<usize, usize>", %"core::result::Result<usize, usize>"* %4, i64 0, i32 2, i64 0
%60 = icmp eq i32* %54, %15
br i1 %60, label %116, label %61
; <label>:61: ; preds = %53
br label %118
; <label>:62: ; preds = %48, %47
%63 = phi i64 [ %112, %48 ], [ 0, %47 ]
%64 = phi i32* [ %110, %48 ], [ %14, %47 ]
%65 = getelementptr inbounds i32, i32* %64, i64 1
%66 = load i32, i32* %64, align 4, !alias.scope !4, !noalias !9
%67 = icmp eq i32 %66, 1
%68 = zext i1 %67 to i64
%69 = add i64 %63, %68
%70 = xor i1 %67, true
%71 = zext i1 %70 to i64
store i64 %69, i64* %28, align 8, !alias.scope !13, !noalias !14
store i64 %71, i64* %29, align 8, !alias.scope !13, !noalias !14
call void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$11into_result17h20c389a4d040cb5eE"(%"core::result::Result<usize, usize>"* noalias nocapture nonnull sret dereferenceable(16) %12, %"core::result::Result<usize, usize>"* noalias nocapture nonnull dereferenceable(16) %11)
%72 = load i64, i64* %30, align 8, !range !15, !noalias !16
%73 = icmp eq i64 %72, 1
%74 = load i64, i64* %31, align 8, !noalias !16
br i1 %73, label %75, label %77
; <label>:75: ; preds = %62
%76 = call i64 @"_ZN50_$LT$T$u20$as$u20$core..convert..From$LT$T$GT$$GT$4from17h514ffbaf3bb75a3eE"(i64 %74)
call void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$10from_error17h222e7515b9cde0afE"(%"core::result::Result<usize, usize>"* noalias nocapture nonnull sret dereferenceable(16) %13, i64 %76)
br label %135
; <label>:77: ; preds = %62
%78 = getelementptr inbounds i32, i32* %64, i64 2
%79 = load i32, i32* %65, align 4, !alias.scope !17, !noalias !22
%80 = icmp eq i32 %79, 1
%81 = zext i1 %80 to i64
%82 = add i64 %74, %81
%83 = xor i1 %80, true
%84 = zext i1 %83 to i64
store i64 %82, i64* %32, align 8, !alias.scope !24, !noalias !25
store i64 %84, i64* %33, align 8, !alias.scope !24, !noalias !25
call void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$11into_result17h20c389a4d040cb5eE"(%"core::result::Result<usize, usize>"* noalias nocapture nonnull sret dereferenceable(16) %10, %"core::result::Result<usize, usize>"* noalias nocapture nonnull dereferenceable(16) %9)
%85 = load i64, i64* %34, align 8, !range !15, !noalias !16
%86 = icmp eq i64 %85, 1
%87 = load i64, i64* %35, align 8, !noalias !16
br i1 %86, label %88, label %90
; <label>:88: ; preds = %77
%89 = call i64 @"_ZN50_$LT$T$u20$as$u20$core..convert..From$LT$T$GT$$GT$4from17h514ffbaf3bb75a3eE"(i64 %87)
call void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$10from_error17h222e7515b9cde0afE"(%"core::result::Result<usize, usize>"* noalias nocapture nonnull sret dereferenceable(16) %13, i64 %89)
br label %135
; <label>:90: ; preds = %77
%91 = getelementptr inbounds i32, i32* %64, i64 3
%92 = load i32, i32* %78, align 4, !alias.scope !26, !noalias !31
%93 = icmp eq i32 %92, 1
%94 = zext i1 %93 to i64
%95 = add i64 %87, %94
%96 = xor i1 %93, true
%97 = zext i1 %96 to i64
store i64 %95, i64* %36, align 8, !alias.scope !33, !noalias !34
store i64 %97, i64* %37, align 8, !alias.scope !33, !noalias !34
call void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$11into_result17h20c389a4d040cb5eE"(%"core::result::Result<usize, usize>"* noalias nocapture nonnull sret dereferenceable(16) %8, %"core::result::Result<usize, usize>"* noalias nocapture nonnull dereferenceable(16) %7)
%98 = load i64, i64* %38, align 8, !range !15, !noalias !16
%99 = icmp eq i64 %98, 1
%100 = load i64, i64* %39, align 8, !noalias !16
br i1 %99, label %101, label %103
; <label>:101: ; preds = %90
%102 = call i64 @"_ZN50_$LT$T$u20$as$u20$core..convert..From$LT$T$GT$$GT$4from17h514ffbaf3bb75a3eE"(i64 %100)
call void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$10from_error17h222e7515b9cde0afE"(%"core::result::Result<usize, usize>"* noalias nocapture nonnull sret dereferenceable(16) %13, i64 %102)
br label %135
; <label>:103: ; preds = %90
%104 = load i32, i32* %91, align 4, !alias.scope !35, !noalias !40
%105 = icmp eq i32 %104, 1
%106 = zext i1 %105 to i64
%107 = add i64 %100, %106
%108 = xor i1 %105, true
%109 = zext i1 %108 to i64
store i64 %107, i64* %40, align 8, !alias.scope !42, !noalias !43
store i64 %109, i64* %41, align 8, !alias.scope !42, !noalias !43
call void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$11into_result17h20c389a4d040cb5eE"(%"core::result::Result<usize, usize>"* noalias nocapture nonnull sret dereferenceable(16) %6, %"core::result::Result<usize, usize>"* noalias nocapture nonnull dereferenceable(16) %5)
%110 = getelementptr inbounds i32, i32* %64, i64 4
%111 = load i64, i64* %42, align 8, !range !15, !noalias !16
%112 = load i64, i64* %43, align 8, !noalias !16
%113 = icmp eq i64 %111, 1
br i1 %113, label %114, label %48
; <label>:114: ; preds = %103
%115 = call i64 @"_ZN50_$LT$T$u20$as$u20$core..convert..From$LT$T$GT$$GT$4from17h514ffbaf3bb75a3eE"(i64 %112)
call void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$10from_error17h222e7515b9cde0afE"(%"core::result::Result<usize, usize>"* noalias nocapture nonnull sret dereferenceable(16) %13, i64 %115)
br label %135
; <label>:116: ; preds = %131, %53
%117 = phi i64 [ %55, %53 ], [ %129, %131 ]
call void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$7from_ok17hed12cd599a454669E"(%"core::result::Result<usize, usize>"* noalias nocapture nonnull sret dereferenceable(16) %13, i64 %117)
br label %135
; <label>:118: ; preds = %131, %61
%119 = phi i64 [ %129, %131 ], [ %55, %61 ]
%120 = phi i32* [ %121, %131 ], [ %54, %61 ]
%121 = getelementptr inbounds i32, i32* %120, i64 1
%122 = load i32, i32* %120, align 4, !alias.scope !44, !noalias !49
%123 = icmp eq i32 %122, 1
%124 = zext i1 %123 to i64
%125 = add i64 %119, %124
%126 = xor i1 %123, true
%127 = zext i1 %126 to i64
store i64 %125, i64* %56, align 8, !alias.scope !51, !noalias !52
store i64 %127, i64* %57, align 8, !alias.scope !51, !noalias !52
call void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$11into_result17h20c389a4d040cb5eE"(%"core::result::Result<usize, usize>"* noalias nocapture nonnull sret dereferenceable(16) %4, %"core::result::Result<usize, usize>"* noalias nocapture nonnull dereferenceable(16) %3)
%128 = load i64, i64* %58, align 8, !range !15, !noalias !16
%129 = load i64, i64* %59, align 8, !noalias !16
%130 = icmp eq i64 %128, 1
br i1 %130, label %133, label %131
; <label>:131: ; preds = %118
%132 = icmp eq i32* %121, %15
br i1 %132, label %116, label %118
; <label>:133: ; preds = %118
%134 = call i64 @"_ZN50_$LT$T$u20$as$u20$core..convert..From$LT$T$GT$$GT$4from17h514ffbaf3bb75a3eE"(i64 %129)
call void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$10from_error17h222e7515b9cde0afE"(%"core::result::Result<usize, usize>"* noalias nocapture nonnull sret dereferenceable(16) %13, i64 %134)
br label %135
; <label>:135: ; preds = %133, %116, %114, %101, %88, %75
%136 = getelementptr inbounds %"core::result::Result<usize, usize>", %"core::result::Result<usize, usize>"* %13, i64 0, i32 0, i64 0
%137 = load i64, i64* %136, align 8, !range !15, !alias.scope !53, !noalias !56
%138 = icmp eq i64 %137, 1
br i1 %138, label %139, label %144
; <label>:139: ; preds = %135
%140 = getelementptr inbounds %"core::result::Result<usize, usize>", %"core::result::Result<usize, usize>"* %13, i64 0, i32 2, i64 0
%141 = load i64, i64* %140, align 8, !alias.scope !53, !noalias !56
%142 = icmp ult i64 %141, %1
tail call void @llvm.assume(i1 %142) #2, !noalias !58
%143 = add i64 %141, 1
br label %144
; <label>:144: ; preds = %139, %135
%145 = phi i64 [ %143, %139 ], [ undef, %135 ]
%146 = phi i64 [ 1, %139 ], [ 0, %135 ]
%147 = tail call zeroext i1 @_ZN4core5slice8SliceExt8is_empty17h5df57ca3a59651deE([0 x i32]* noalias nonnull readonly %0, i64 %1)
br i1 %147, label %148, label %149
; <label>:148: ; preds = %154, %144
br label %151
; <label>:149: ; preds = %144
%150 = icmp eq i64 %1, 0
br i1 %150, label %177, label %154, !prof !65
; <label>:151: ; preds = %154, %148
%152 = phi i1 [ false, %148 ], [ true, %154 ]
%153 = icmp eq i64 %146, 1
br i1 %153, label %158, label %157
; <label>:154: ; preds = %149
%155 = load i32, i32* %14, align 4
%156 = icmp eq i32 %155, 1
br i1 %156, label %151, label %148
; <label>:157: ; preds = %151
br i1 %152, label %165, label %172
; <label>:158: ; preds = %151
%159 = icmp ugt i64 %145, %1
br i1 %152, label %161, label %163
; <label>:160: ; preds = %176, %172, %163, %161
ret void
; <label>:161: ; preds = %158
br i1 %159, label %162, label %160
; <label>:162: ; preds = %161
tail call void @_ZN4core5slice20slice_index_len_fail17h41ae248f36c196f1E(i64 %145, i64 %1)
unreachable
; <label>:163: ; preds = %158
br i1 %159, label %164, label %160
; <label>:164: ; preds = %163
tail call void @_ZN4core5slice20slice_index_len_fail17h41ae248f36c196f1E(i64 %145, i64 %1)
unreachable
; <label>:165: ; preds = %157
%166 = icmp eq i64 %1, 0
br i1 %166, label %167, label %168
; <label>:167: ; preds = %165
tail call void @_ZN4core5slice22slice_index_order_fail17hd0a9eb5d87471258E(i64 1, i64 0)
unreachable
; <label>:168: ; preds = %165
%169 = getelementptr inbounds [0 x i32], [0 x i32]* %0, i64 0, i64 1
%170 = add i64 %1, -1
%171 = bitcast i32* %169 to [0 x i32]*
br label %172
; <label>:172: ; preds = %168, %157
%173 = phi [0 x i32]* [ %171, %168 ], [ %0, %157 ]
%174 = phi i64 [ %170, %168 ], [ %1, %157 ]
%175 = tail call zeroext i1 @_ZN4core5slice8SliceExt8is_empty17h5df57ca3a59651deE([0 x i32]* noalias nonnull readonly %173, i64 %174)
br i1 %175, label %160, label %176
; <label>:176: ; preds = %172
tail call void @_ZN19bad_position_simple3foo3foo17h0d3289c3fdce124fE(i64 %174)
br label %160
; <label>:177: ; preds = %149
tail call void @_ZN4core9panicking18panic_bounds_check17hb9ff1ec5af7b2839E({ [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly dereferenceable(24) bitcast ({ { [0 x i8]*, i64 }, i32, i32 }* @panic_bounds_check_loc.8 to { [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }*), i64 0, i64 0)
unreachable
}
declare i32 @rust_eh_personality(i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*) unnamed_addr #1
; Function Attrs: nounwind
declare void @llvm.assume(i1) #2
; Function Attrs: cold noinline noreturn
declare void @_ZN4core5slice22slice_index_order_fail17hd0a9eb5d87471258E(i64, i64) unnamed_addr #3
; Function Attrs: cold noinline noreturn
declare void @_ZN4core5slice20slice_index_len_fail17h41ae248f36c196f1E(i64, i64) unnamed_addr #3
; Function Attrs: cold noinline noreturn
declare void @_ZN4core9panicking18panic_bounds_check17hb9ff1ec5af7b2839E({ [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly dereferenceable(24), i64, i64) unnamed_addr #3
; Function Attrs: cold noinline
declare hidden void @_ZN19bad_position_simple3foo3foo17h0d3289c3fdce124fE(i64) unnamed_addr #4
; Function Attrs: argmemonly nounwind
; Function Attrs: argmemonly nounwind
; Function Attrs: norecurse nounwind readnone uwtable
define available_externally hidden zeroext i1 @_ZN4core5slice8SliceExt8is_empty17h5df57ca3a59651deE([0 x i32]* noalias nocapture nonnull readonly, i64) unnamed_addr #6 !thinlto_src_module !66 {
%3 = icmp eq i64 %1, 0
ret i1 %3
}
; Function Attrs: norecurse nounwind readnone uwtable
define available_externally hidden i64 @"_ZN50_$LT$T$u20$as$u20$core..convert..From$LT$T$GT$$GT$4from17h514ffbaf3bb75a3eE"(i64 returned) unnamed_addr #6 !thinlto_src_module !67 {
ret i64 %0
}
; Function Attrs: norecurse nounwind uwtable
define available_externally hidden void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$10from_error17h222e7515b9cde0afE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16), i64) unnamed_addr #7 !thinlto_src_module !68 {
%3 = getelementptr inbounds %"core::result::Result<usize, usize>", %"core::result::Result<usize, usize>"* %0, i64 0, i32 2, i64 0
store i64 %1, i64* %3, align 8
%4 = getelementptr inbounds %"core::result::Result<usize, usize>", %"core::result::Result<usize, usize>"* %0, i64 0, i32 0, i64 0
store i64 1, i64* %4, align 8
ret void
}
; Function Attrs: nounwind uwtable
define available_externally hidden void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$11into_result17h20c389a4d040cb5eE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16), %"core::result::Result<usize, usize>"* noalias nocapture readonly dereferenceable(16)) unnamed_addr #8 !thinlto_src_module !68 {
%3 = bitcast %"core::result::Result<usize, usize>"* %1 to i8*
%4 = bitcast %"core::result::Result<usize, usize>"* %0 to i8*
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull %4, i8* nonnull %3, i64 16, i32 8, i1 false)
ret void
}
; Function Attrs: argmemonly nounwind
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture writeonly, i8* nocapture readonly, i64, i32, i1) #5
; Function Attrs: norecurse nounwind uwtable
define available_externally hidden void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$7from_ok17hed12cd599a454669E"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16), i64) unnamed_addr #7 !thinlto_src_module !68 {
%3 = getelementptr inbounds %"core::result::Result<usize, usize>", %"core::result::Result<usize, usize>"* %0, i64 0, i32 2, i64 0
store i64 %1, i64* %3, align 8
%4 = getelementptr inbounds %"core::result::Result<usize, usize>", %"core::result::Result<usize, usize>"* %0, i64 0, i32 0, i64 0
store i64 0, i64* %4, align 8
ret void
}
attributes #0 = { uwtable "probe-stack"="__rust_probestack" }
attributes #1 = { "probe-stack"="__rust_probestack" }
attributes #2 = { nounwind }
attributes #3 = { cold noinline noreturn "probe-stack"="__rust_probestack" }
attributes #4 = { cold noinline "probe-stack"="__rust_probestack" }
attributes #5 = { argmemonly nounwind }
attributes #6 = { norecurse nounwind readnone uwtable "probe-stack"="__rust_probestack" }
attributes #7 = { norecurse nounwind uwtable "probe-stack"="__rust_probestack" }
attributes #8 = { nounwind uwtable "probe-stack"="__rust_probestack" }
!1 = !{!2}
!2 = distinct !{!2, !3, !"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position17h8b58346f55ecd752E: argument 0"}
!3 = distinct !{!3, !"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position17h8b58346f55ecd752E"}
!4 = !{!5, !7}
!5 = distinct !{!5, !6, !"_ZN19bad_position_simple4test21import_path_to_string28_$u7b$$u7b$closure$u7d$$u7d$17hfb8fd737bf1a9981E: argument 0"}
!6 = distinct !{!6, !"_ZN19bad_position_simple4test21import_path_to_string28_$u7b$$u7b$closure$u7d$$u7d$17hfb8fd737bf1a9981E"}
!7 = distinct !{!7, !8, !"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position28_$u7b$$u7b$closure$u7d$$u7d$17ha78aa30fa5aeecc6E: argument 1"}
!8 = distinct !{!8, !"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position28_$u7b$$u7b$closure$u7d$$u7d$17ha78aa30fa5aeecc6E"}
!9 = !{!10, !11, !2}
!10 = distinct !{!10, !8, !"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position28_$u7b$$u7b$closure$u7d$$u7d$17ha78aa30fa5aeecc6E: argument 0"}
!11 = distinct !{!11, !12, !"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8try_fold17he6b3066925144076E: argument 0"}
!12 = distinct !{!12, !"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8try_fold17he6b3066925144076E"}
!13 = !{!10}
!14 = !{!7, !11, !2}
!15 = !{i64 0, i64 2}
!16 = !{!11, !2}
!17 = !{!18, !20}
!18 = distinct !{!18, !19, !"_ZN19bad_position_simple4test21import_path_to_string28_$u7b$$u7b$closure$u7d$$u7d$17hfb8fd737bf1a9981E: argument 0"}
!19 = distinct !{!19, !"_ZN19bad_position_simple4test21import_path_to_string28_$u7b$$u7b$closure$u7d$$u7d$17hfb8fd737bf1a9981E"}
!20 = distinct !{!20, !21, !"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position28_$u7b$$u7b$closure$u7d$$u7d$17ha78aa30fa5aeecc6E: argument 1"}
!21 = distinct !{!21, !"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position28_$u7b$$u7b$closure$u7d$$u7d$17ha78aa30fa5aeecc6E"}
!22 = !{!23, !11, !2}
!23 = distinct !{!23, !21, !"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position28_$u7b$$u7b$closure$u7d$$u7d$17ha78aa30fa5aeecc6E: argument 0"}
!24 = !{!23}
!25 = !{!20, !11, !2}
!26 = !{!27, !29}
!27 = distinct !{!27, !28, !"_ZN19bad_position_simple4test21import_path_to_string28_$u7b$$u7b$closure$u7d$$u7d$17hfb8fd737bf1a9981E: argument 0"}
!28 = distinct !{!28, !"_ZN19bad_position_simple4test21import_path_to_string28_$u7b$$u7b$closure$u7d$$u7d$17hfb8fd737bf1a9981E"}
!29 = distinct !{!29, !30, !"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position28_$u7b$$u7b$closure$u7d$$u7d$17ha78aa30fa5aeecc6E: argument 1"}
!30 = distinct !{!30, !"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position28_$u7b$$u7b$closure$u7d$$u7d$17ha78aa30fa5aeecc6E"}
!31 = !{!32, !11, !2}
!32 = distinct !{!32, !30, !"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position28_$u7b$$u7b$closure$u7d$$u7d$17ha78aa30fa5aeecc6E: argument 0"}
!33 = !{!32}
!34 = !{!29, !11, !2}
!35 = !{!36, !38}
!36 = distinct !{!36, !37, !"_ZN19bad_position_simple4test21import_path_to_string28_$u7b$$u7b$closure$u7d$$u7d$17hfb8fd737bf1a9981E: argument 0"}
!37 = distinct !{!37, !"_ZN19bad_position_simple4test21import_path_to_string28_$u7b$$u7b$closure$u7d$$u7d$17hfb8fd737bf1a9981E"}
!38 = distinct !{!38, !39, !"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position28_$u7b$$u7b$closure$u7d$$u7d$17ha78aa30fa5aeecc6E: argument 1"}
!39 = distinct !{!39, !"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position28_$u7b$$u7b$closure$u7d$$u7d$17ha78aa30fa5aeecc6E"}
!40 = !{!41, !11, !2}
!41 = distinct !{!41, !39, !"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position28_$u7b$$u7b$closure$u7d$$u7d$17ha78aa30fa5aeecc6E: argument 0"}
!42 = !{!41}
!43 = !{!38, !11, !2}
!44 = !{!45, !47}
!45 = distinct !{!45, !46, !"_ZN19bad_position_simple4test21import_path_to_string28_$u7b$$u7b$closure$u7d$$u7d$17hfb8fd737bf1a9981E: argument 0"}
!46 = distinct !{!46, !"_ZN19bad_position_simple4test21import_path_to_string28_$u7b$$u7b$closure$u7d$$u7d$17hfb8fd737bf1a9981E"}
!47 = distinct !{!47, !48, !"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position28_$u7b$$u7b$closure$u7d$$u7d$17ha78aa30fa5aeecc6E: argument 1"}
!48 = distinct !{!48, !"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position28_$u7b$$u7b$closure$u7d$$u7d$17ha78aa30fa5aeecc6E"}
!49 = !{!50, !11, !2}
!50 = distinct !{!50, !48, !"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position28_$u7b$$u7b$closure$u7d$$u7d$17ha78aa30fa5aeecc6E: argument 0"}
!51 = !{!50}
!52 = !{!47, !11, !2}
!53 = !{!54}
!54 = distinct !{!54, !55, !"_ZN47_$LT$core..result..Result$LT$T$C$$u20$E$GT$$GT$3err17h7575ad3e8a4fc754E: argument 1"}
!55 = distinct !{!55, !"_ZN47_$LT$core..result..Result$LT$T$C$$u20$E$GT$$GT$3err17h7575ad3e8a4fc754E"}
!56 = !{!57, !2}
!57 = distinct !{!57, !55, !"_ZN47_$LT$core..result..Result$LT$T$C$$u20$E$GT$$GT$3err17h7575ad3e8a4fc754E: argument 0"}
!58 = !{!59, !61, !63, !64, !2}
!59 = distinct !{!59, !60, !"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position28_$u7b$$u7b$closure$u7d$$u7d$17hf597cb41b063d103E: argument 0"}
!60 = distinct !{!60, !"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position28_$u7b$$u7b$closure$u7d$$u7d$17hf597cb41b063d103E"}
!61 = distinct !{!61, !62, !"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$3map17ha98ac76136c43306E: argument 0"}
!62 = distinct !{!62, !"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$3map17ha98ac76136c43306E"}
!63 = distinct !{!63, !62, !"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$3map17ha98ac76136c43306E: argument 1"}
!64 = distinct !{!64, !62, !"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$3map17ha98ac76136c43306E: argument 2"}
!65 = !{!"branch_weights", i32 1, i32 2000}
!66 = !{!"bad_position_simple1-317d481089b8c8fe83113de504472633.rs"}
!67 = !{!"bad_position_simple3-317d481089b8c8fe83113de504472633.rs"}
!68 = !{!"bad_position_simple5-317d481089b8c8fe83113de504472633.rs"}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment