fn main() {
for i in 1..=10 {
println!("{}", i);
}
}
#[prelude_import]
use std::prelude::rust_2021::*;
#[macro_use]
extern crate std;
fn main() {
{
let _t = match #[lang = "into_iter"](#[lang = "range_inclusive_new"] (1, 10)) {
mut iter => loop {
let mut __next;
match #[lang = "next"](&mut iter) {
#[lang = "Some"] { 0: val } => __next = val,
#[lang = "None"] { } => break ,
}
let i = __next;
{
{
::std::io::_print(
::core::fmt::Arguments::new_v1(
&["", "\n"],
&match (&i,) {
(arg0,) => [
::core::fmt::ArgumentV1::new(arg0, ::core::fmt::Display::fmt)
],
}
)
);
};
}
},
};
_t
}
}
// WARNING: This output format is intended for human consumers only
// and is subject to change without notice. Knock yourself out.
fn main() -> () {
let mut _0: (); // return place in scope 0 at src/main.rs:1:11: 1:11
let mut _1: std::ops::RangeInclusive<i32>; // in scope 0 at src/main.rs:2:14: 2:20
let mut _2: std::ops::RangeInclusive<i32>; // in scope 0 at src/main.rs:2:14: 2:20
let mut _3: std::ops::RangeInclusive<i32>; // in scope 0 at src/main.rs:2:14: 2:20
let mut _5: std::option::Option<i32>; // in scope 0 at src/main.rs:2:14: 2:20
let mut _6: &mut std::ops::RangeInclusive<i32>; // in scope 0 at src/main.rs:2:14: 2:20
let mut _7: &mut std::ops::RangeInclusive<i32>; // in scope 0 at src/main.rs:2:14: 2:20
let mut _8: isize; // in scope 0 at src/main.rs:2:9: 2:10
let mut _10: i32; // in scope 0 at src/main.rs:2:9: 2:10
let _12: (); // in scope 0 at /rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/std/src/macros.rs:97:9: 97:62
let mut _13: std::fmt::Arguments; // in scope 0 at /rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/std/src/macros.rs:97:28: 97:61
let mut _14: &[&str]; // in scope 0 at src/main.rs:3:18: 3:22
let mut _15: &[&str; 2]; // in scope 0 at src/main.rs:3:18: 3:22
let _16: &[&str; 2]; // in scope 0 at src/main.rs:3:18: 3:22
let mut _17: &[std::fmt::ArgumentV1]; // in scope 0 at /rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/std/src/macros.rs:97:28: 97:61
let mut _18: &[std::fmt::ArgumentV1; 1]; // in scope 0 at /rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/std/src/macros.rs:97:28: 97:61
let _19: &[std::fmt::ArgumentV1; 1]; // in scope 0 at /rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/std/src/macros.rs:97:28: 97:61
let _20: [std::fmt::ArgumentV1; 1]; // in scope 0 at /rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/std/src/macros.rs:97:28: 97:61
let mut _21: (&i32,); // in scope 0 at /rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/std/src/macros.rs:97:28: 97:61
let mut _22: &i32; // in scope 0 at src/main.rs:3:24: 3:25
let mut _24: std::fmt::ArgumentV1; // in scope 0 at /rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/std/src/macros.rs:97:28: 97:61
let mut _25: &i32; // in scope 0 at src/main.rs:3:24: 3:25
let mut _26: for<'r, 's, 't0> fn(&'r i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>; // in scope 0 at src/main.rs:3:24: 3:25
scope 1 {
debug iter => _3; // in scope 1 at src/main.rs:2:14: 2:20
let mut _4: i32; // in scope 1 at src/main.rs:2:14: 2:20
scope 2 {
debug __next => _4; // in scope 2 at src/main.rs:2:14: 2:20
let _9: i32; // in scope 2 at src/main.rs:2:9: 2:10
let _11: i32; // in scope 2 at src/main.rs:2:9: 2:10
scope 3 {
debug val => _9; // in scope 3 at src/main.rs:2:9: 2:10
}
scope 4 {
debug i => _11; // in scope 4 at src/main.rs:2:9: 2:10
let _23: &i32; // in scope 4 at src/main.rs:3:24: 3:25
let mut _27: &[&str; 2]; // in scope 4 at src/main.rs:3:18: 3:22
scope 5 {
debug arg0 => _23; // in scope 5 at src/main.rs:3:24: 3:25
}
}
}
}
bb0: {
_2 = RangeInclusive::<i32>::new(const 1_i32, const 10_i32) -> bb1; // scope 0 at src/main.rs:2:14: 2:20
// mir::Constant
// + span: src/main.rs:2:14: 2:20
// + literal: Const { ty: fn(i32, i32) -> std::ops::RangeInclusive<i32> {std::ops::RangeInclusive::<i32>::new}, val: Value(Scalar(<ZST>)) }
}
bb1: {
_1 = <RangeInclusive<i32> as IntoIterator>::into_iter(move _2) -> bb2; // scope 0 at src/main.rs:2:14: 2:20
// mir::Constant
// + span: src/main.rs:2:14: 2:20
// + literal: Const { ty: fn(std::ops::RangeInclusive<i32>) -> <std::ops::RangeInclusive<i32> as std::iter::IntoIterator>::IntoIter {<std::ops::RangeInclusive<i32> as std::iter::IntoIterator>::into_iter}, val: Value(Scalar(<ZST>)) }
}
bb2: {
_3 = move _1; // scope 0 at src/main.rs:2:14: 2:20
goto -> bb3; // scope 1 at src/main.rs:2:5: 4:6
}
bb3: {
_7 = &mut _3; // scope 2 at src/main.rs:2:14: 2:20
_6 = &mut (*_7); // scope 2 at src/main.rs:2:14: 2:20
_5 = <RangeInclusive<i32> as Iterator>::next(move _6) -> bb4; // scope 2 at src/main.rs:2:14: 2:20
// mir::Constant
// + span: src/main.rs:2:14: 2:20
// + literal: Const { ty: for<'r> fn(&'r mut std::ops::RangeInclusive<i32>) -> std::option::Option<<std::ops::RangeInclusive<i32> as std::iter::Iterator>::Item> {<std::ops::RangeInclusive<i32> as std::iter::Iterator>::next}, val: Value(Scalar(<ZST>)) }
}
bb4: {
_8 = discriminant(_5); // scope 2 at src/main.rs:2:14: 2:20
switchInt(move _8) -> [0_isize: bb5, 1_isize: bb7, otherwise: bb6]; // scope 2 at src/main.rs:2:14: 2:20
}
bb5: {
return; // scope 0 at src/main.rs:5:2: 5:2
}
bb6: {
unreachable; // scope 2 at src/main.rs:2:14: 2:20
}
bb7: {
_9 = ((_5 as Some).0: i32); // scope 2 at src/main.rs:2:9: 2:10
_10 = _9; // scope 3 at src/main.rs:2:9: 2:10
_4 = move _10; // scope 3 at src/main.rs:2:9: 2:10
_11 = _4; // scope 2 at src/main.rs:2:14: 2:20
_27 = const main::promoted[0]; // scope 4 at src/main.rs:3:18: 3:22
// ty::Const
// + ty: &[&str; 2]
// + val: Unevaluated(main, [], Some(promoted[0]))
// mir::Constant
// + span: src/main.rs:3:18: 3:22
// + literal: Const { ty: &[&str; 2], val: Unevaluated(Unevaluated { def: WithOptConstParam { did: DefId(0:3 ~ playground[6f7e]::main), const_param_did: None }, substs_: Some([]), promoted: Some(promoted[0]) }) }
_16 = _27; // scope 4 at src/main.rs:3:18: 3:22
_15 = _16; // scope 4 at src/main.rs:3:18: 3:22
_14 = move _15 as &[&str] (Pointer(Unsize)); // scope 4 at src/main.rs:3:18: 3:22
_22 = &_11; // scope 4 at src/main.rs:3:24: 3:25
(_21.0: &i32) = move _22; // scope 4 at /rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/std/src/macros.rs:97:28: 97:61
_23 = (_21.0: &i32); // scope 4 at src/main.rs:3:24: 3:25
_25 = _23; // scope 5 at src/main.rs:3:24: 3:25
_26 = <i32 as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)); // scope 5 at src/main.rs:3:24: 3:25
// mir::Constant
// + span: src/main.rs:3:24: 3:25
// + literal: Const { ty: for<'r, 's, 't0> fn(&'r i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> {<i32 as std::fmt::Display>::fmt}, val: Value(Scalar(<ZST>)) }
_24 = ArgumentV1::new::<i32>(move _25, move _26) -> bb8; // scope 5 at /rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/std/src/macros.rs:97:28: 97:61
// mir::Constant
// + span: /rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/std/src/macros.rs:97:28: 97:61
// + user_ty: UserType(1)
// + literal: Const { ty: for<'b> fn(&'b i32, for<'r, 's, 't0> fn(&'r i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>) -> std::fmt::ArgumentV1<'b> {std::fmt::ArgumentV1::new::<i32>}, val: Value(Scalar(<ZST>)) }
}
bb8: {
_20 = [move _24]; // scope 5 at /rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/std/src/macros.rs:97:28: 97:61
_19 = &_20; // scope 4 at /rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/std/src/macros.rs:97:28: 97:61
_18 = _19; // scope 4 at /rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/std/src/macros.rs:97:28: 97:61
_17 = move _18 as &[std::fmt::ArgumentV1] (Pointer(Unsize)); // scope 4 at /rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/std/src/macros.rs:97:28: 97:61
_13 = Arguments::new_v1(move _14, move _17) -> bb9; // scope 4 at /rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/std/src/macros.rs:97:28: 97:61
// mir::Constant
// + span: /rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/std/src/macros.rs:97:28: 97:61
// + user_ty: UserType(0)
// + literal: Const { ty: fn(&[&'static str], &[std::fmt::ArgumentV1]) -> std::fmt::Arguments {std::fmt::Arguments::new_v1}, val: Value(Scalar(<ZST>)) }
}
bb9: {
_12 = _print(move _13) -> bb3; // scope 4 at /rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/std/src/macros.rs:97:9: 97:62
// mir::Constant
// + span: /rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/std/src/macros.rs:97:9: 97:27
// + literal: Const { ty: for<'r> fn(std::fmt::Arguments<'r>) {std::io::_print}, val: Value(Scalar(<ZST>)) }
}
}
promoted[0] in main: &[&str; 2] = {
let mut _0: &[&str; 2]; // return place in scope 0 at src/main.rs:3:18: 3:22
let mut _1: [&str; 2]; // in scope 0 at src/main.rs:3:18: 3:22
bb0: {
_1 = [const "", const "\n"]; // scope 0 at src/main.rs:3:18: 3:22
// ty::Const
// + ty: &str
// + val: Value(Slice { data: Allocation { bytes: [], relocations: Relocations(SortedMap { data: [] }), init_mask: InitMask { blocks: [], len: Size { raw: 0 } }, align: Align { pow2: 0 }, mutability: Not, extra: () }, start: 0, end: 0 })
// mir::Constant
// + span: src/main.rs:3:18: 3:22
// + literal: Const { ty: &str, val: Value(Slice { data: Allocation { bytes: [], relocations: Relocations(SortedMap { data: [] }), init_mask: InitMask { blocks: [], len: Size { raw: 0 } }, align: Align { pow2: 0 }, mutability: Not, extra: () }, start: 0, end: 0 }) }
// ty::Const
// + ty: &str
// + val: Value(Slice { data: Allocation { bytes: [10], relocations: Relocations(SortedMap { data: [] }), init_mask: InitMask { blocks: [1], len: Size { raw: 1 } }, align: Align { pow2: 0 }, mutability: Not, extra: () }, start: 0, end: 1 })
// mir::Constant
// + span: src/main.rs:3:18: 3:22
// + literal: Const { ty: &str, val: Value(Slice { data: Allocation { bytes: [10], relocations: Relocations(SortedMap { data: [] }), init_mask: InitMask { blocks: [1], len: Size { raw: 1 } }, align: Align { pow2: 0 }, mutability: Not, extra: () }, start: 0, end: 1 }) }
_0 = &_1; // scope 0 at src/main.rs:3:18: 3:22
return; // scope 0 at src/main.rs:3:18: 3:22
}
}
; ModuleID = 'playground.e15dcff8-cgu.0'
source_filename = "playground.e15dcff8-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::ops::range::RangeInclusive<i32>" = type { i32, i32, i8, [3 x i8] }
%"core::option::Option<i32>::Some" = type { [1 x i32], i32 }
%"core::fmt::Formatter" = type { { i64, i64 }, { i64, i64 }, { {}*, [3 x i64]* }, i32, i32, i8, [7 x i8] }
%"core::fmt::Opaque" = type {}
%"core::fmt::Arguments" = type { { [0 x { [0 x i8]*, i64 }]*, i64 }, { i64*, i64 }, { [0 x { i8*, i64* }]*, i64 } }
%"core::panic::location::Location" = type { { [0 x i8]*, i64 }, i32, i32 }
%"unwind::libunwind::_Unwind_Exception" = type { i64, void (i32, %"unwind::libunwind::_Unwind_Exception"*)*, [6 x i64] }
%"unwind::libunwind::_Unwind_Context" = type { [0 x i8] }
@vtable.0 = private unnamed_addr constant <{ i8*, [16 x i8], i8*, i8*, i8*, [0 x i8] }> <{ i8* bitcast (void (i64**)* @"_ZN4core3ptr85drop_in_place$LT$std..rt..lang_start$LT$$LP$$RP$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$17h3915719e248dede1E" to i8*), [16 x i8] c"\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00", i8* bitcast (i32 (i64**)* @"_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h6c2c84984480ea31E" to i8*), i8* bitcast (i32 (i64**)* @"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h911bc1c217c1290cE" to i8*), i8* bitcast (i32 (i64**)* @"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h911bc1c217c1290cE" to i8*), [0 x i8] zeroinitializer }>, align 8, !dbg !0
@alloc34 = private unnamed_addr constant <{ [12 x i8] }> <{ [12 x i8] c"invalid args" }>, align 1
@alloc35 = private unnamed_addr constant <{ [75 x i8] }> <{ [75 x i8] c"/rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/core/src/fmt/mod.rs" }>, align 1
@alloc36 = private unnamed_addr constant <{ i8*, [16 x i8] }> <{ i8* getelementptr inbounds (<{ [75 x i8] }>, <{ [75 x i8] }>* @alloc35, i32 0, i32 0, i32 0), [16 x i8] c"K\00\00\00\00\00\00\00k\01\00\00\0D\00\00\00" }>, align 8
@alloc37 = private unnamed_addr constant <{ [75 x i8] }> <{ [75 x i8] c"/rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/core/src/ptr/mod.rs" }>, align 1
@alloc38 = private unnamed_addr constant <{ i8*, [16 x i8] }> <{ i8* getelementptr inbounds (<{ [75 x i8] }>, <{ [75 x i8] }>* @alloc37, i32 0, i32 0, i32 0), [16 x i8] c"K\00\00\00\00\00\00\00\BC\02\00\00\0D\00\00\00" }>, align 8
@alloc2 = private unnamed_addr constant <{ [0 x i8] }> zeroinitializer, align 1
@alloc4 = private unnamed_addr constant <{ [1 x i8] }> <{ [1 x i8] c"\0A" }>, align 1
@alloc3 = private unnamed_addr constant <{ i8*, [8 x i8], i8*, [8 x i8] }> <{ i8* getelementptr inbounds (<{ [0 x i8] }>, <{ [0 x i8] }>* @alloc2, i32 0, i32 0, i32 0), [8 x i8] zeroinitializer, i8* getelementptr inbounds (<{ [1 x i8] }>, <{ [1 x i8] }>* @alloc4, i32 0, i32 0, i32 0), [8 x i8] c"\01\00\00\00\00\00\00\00" }>, align 8
@__rustc_debug_gdb_scripts_section__ = linkonce_odr unnamed_addr constant [34 x i8] c"\01gdb_load_rust_pretty_printers.py\00", section ".debug_gdb_scripts", align 1
; <core::ops::range::RangeInclusive<T> as core::iter::range::RangeInclusiveIteratorImpl>::spec_next
; Function Attrs: inlinehint nonlazybind uwtable
define internal { i32, i32 } @"_ZN107_$LT$core..ops..range..RangeInclusive$LT$T$GT$$u20$as$u20$core..iter..range..RangeInclusiveIteratorImpl$GT$9spec_next17h8e3e7ff7ce9769faE"(%"core::ops::range::RangeInclusive<i32>"* align 4 dereferenceable(12) %self) unnamed_addr #0 !dbg !32 {
start:
%n.dbg.spill = alloca i32, align 4
%is_iterating.dbg.spill = alloca i8, align 1
%self.dbg.spill = alloca %"core::ops::range::RangeInclusive<i32>"*, align 8
%_7 = alloca i32, align 4
%0 = alloca { i32, i32 }, align 4
store %"core::ops::range::RangeInclusive<i32>"* %self, %"core::ops::range::RangeInclusive<i32>"** %self.dbg.spill, align 8
call void @llvm.dbg.declare(metadata %"core::ops::range::RangeInclusive<i32>"** %self.dbg.spill, metadata !68, metadata !DIExpression()), !dbg !73
; call core::ops::range::RangeInclusive<Idx>::is_empty
%_2 = call zeroext i1 @"_ZN4core3ops5range25RangeInclusive$LT$Idx$GT$8is_empty17ha9ee05d41a3bd578E"(%"core::ops::range::RangeInclusive<i32>"* align 4 dereferenceable(12) %self), !dbg !74
br label %bb1, !dbg !74
bb1: ; preds = %start
br i1 %_2, label %bb2, label %bb3, !dbg !74
bb3: ; preds = %bb1
%_5 = bitcast %"core::ops::range::RangeInclusive<i32>"* %self to i32*, !dbg !75
%_6 = getelementptr inbounds %"core::ops::range::RangeInclusive<i32>", %"core::ops::range::RangeInclusive<i32>"* %self, i32 0, i32 1, !dbg !76
; call core::cmp::impls::<impl core::cmp::PartialOrd for i32>::lt
%is_iterating = call zeroext i1 @"_ZN4core3cmp5impls55_$LT$impl$u20$core..cmp..PartialOrd$u20$for$u20$i32$GT$2lt17h3b55dba9ab46e68cE"(i32* align 4 dereferenceable(4) %_5, i32* align 4 dereferenceable(4) %_6), !dbg !75
%1 = zext i1 %is_iterating to i8, !dbg !75
store i8 %1, i8* %is_iterating.dbg.spill, align 1, !dbg !75
call void @llvm.dbg.declare(metadata i8* %is_iterating.dbg.spill, metadata !69, metadata !DIExpression()), !dbg !77
br label %bb4, !dbg !75
bb2: ; preds = %bb1
%2 = bitcast { i32, i32 }* %0 to i32*, !dbg !78
store i32 0, i32* %2, align 4, !dbg !78
br label %bb12, !dbg !79
bb12: ; preds = %bb11, %bb2
%3 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %0, i32 0, i32 0, !dbg !79
%4 = load i32, i32* %3, align 4, !dbg !79, !range !80
%5 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %0, i32 0, i32 1, !dbg !79
%6 = load i32, i32* %5, align 4, !dbg !79
%7 = insertvalue { i32, i32 } undef, i32 %4, 0, !dbg !79
%8 = insertvalue { i32, i32 } %7, i32 %6, 1, !dbg !79
ret { i32, i32 } %8, !dbg !79
bb4: ; preds = %bb3
br i1 %is_iterating, label %bb5, label %bb9, !dbg !81
bb9: ; preds = %bb4
%9 = getelementptr inbounds %"core::ops::range::RangeInclusive<i32>", %"core::ops::range::RangeInclusive<i32>"* %self, i32 0, i32 2, !dbg !82
store i8 1, i8* %9, align 4, !dbg !82
%_15 = bitcast %"core::ops::range::RangeInclusive<i32>"* %self to i32*, !dbg !83
; call core::clone::impls::<impl core::clone::Clone for i32>::clone
%10 = call i32 @"_ZN4core5clone5impls52_$LT$impl$u20$core..clone..Clone$u20$for$u20$i32$GT$5clone17h85acc95589e22befE"(i32* align 4 dereferenceable(4) %_15), !dbg !83
store i32 %10, i32* %_7, align 4, !dbg !83
br label %bb10, !dbg !83
bb5: ; preds = %bb4
%_11 = bitcast %"core::ops::range::RangeInclusive<i32>"* %self to i32*, !dbg !84
; call core::clone::impls::<impl core::clone::Clone for i32>::clone
%_10 = call i32 @"_ZN4core5clone5impls52_$LT$impl$u20$core..clone..Clone$u20$for$u20$i32$GT$5clone17h85acc95589e22befE"(i32* align 4 dereferenceable(4) %_11), !dbg !84
br label %bb6, !dbg !84
bb6: ; preds = %bb5
; call <i32 as core::iter::range::Step>::forward_unchecked
%n = call i32 @"_ZN47_$LT$i32$u20$as$u20$core..iter..range..Step$GT$17forward_unchecked17hb65db05a78cf033fE"(i32 %_10, i64 1), !dbg !85
store i32 %n, i32* %n.dbg.spill, align 4, !dbg !85
call void @llvm.dbg.declare(metadata i32* %n.dbg.spill, metadata !71, metadata !DIExpression()), !dbg !86
br label %bb7, !dbg !85
bb7: ; preds = %bb6
%_13 = bitcast %"core::ops::range::RangeInclusive<i32>"* %self to i32*, !dbg !87
; call core::mem::replace
%11 = call i32 @_ZN4core3mem7replace17he9d4dcb34a4ae394E(i32* align 4 dereferenceable(4) %_13, i32 %n), !dbg !88
store i32 %11, i32* %_7, align 4, !dbg !88
br label %bb8, !dbg !88
bb8: ; preds = %bb7
br label %bb11, !dbg !89
bb11: ; preds = %bb10, %bb8
%12 = bitcast { i32, i32 }* %0 to %"core::option::Option<i32>::Some"*, !dbg !90
%13 = getelementptr inbounds %"core::option::Option<i32>::Some", %"core::option::Option<i32>::Some"* %12, i32 0, i32 1, !dbg !90
%14 = load i32, i32* %_7, align 4, !dbg !90
store i32 %14, i32* %13, align 4, !dbg !90
%15 = bitcast { i32, i32 }* %0 to i32*, !dbg !90
store i32 1, i32* %15, align 4, !dbg !90
br label %bb12, !dbg !79
bb10: ; preds = %bb9
br label %bb11, !dbg !89
}
; std::sys_common::backtrace::__rust_begin_short_backtrace
; Function Attrs: noinline nonlazybind uwtable
define internal void @_ZN3std10sys_common9backtrace28__rust_begin_short_backtrace17h4e9f6f38fdde0982E(void ()* nonnull %f) unnamed_addr #1 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality !dbg !91 {
start:
%0 = alloca { i8*, i32 }, align 8
%f.dbg.spill = alloca void ()*, align 8
%result.dbg.spill = alloca {}, align 1
call void @llvm.dbg.declare(metadata {}* %result.dbg.spill, metadata !103, metadata !DIExpression()), !dbg !108
store void ()* %f, void ()** %f.dbg.spill, align 8
call void @llvm.dbg.declare(metadata void ()** %f.dbg.spill, metadata !102, metadata !DIExpression()), !dbg !109
; call core::ops::function::FnOnce::call_once
call void @_ZN4core3ops8function6FnOnce9call_once17h18c2ac22b80f40d9E(void ()* nonnull %f), !dbg !110
br label %bb1, !dbg !110
bb1: ; preds = %start
; invoke core::hint::black_box
invoke void @_ZN4core4hint9black_box17h7b40df1726849b56E()
to label %bb2 unwind label %cleanup, !dbg !111
bb2: ; preds = %bb1
ret void, !dbg !112
bb3: ; preds = %cleanup
br label %bb4, !dbg !113
cleanup: ; preds = %bb1
%1 = landingpad { i8*, i32 }
cleanup
%2 = extractvalue { i8*, i32 } %1, 0
%3 = extractvalue { i8*, i32 } %1, 1
%4 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %0, i32 0, i32 0
store i8* %2, i8** %4, align 8
%5 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %0, i32 0, i32 1
store i32 %3, i32* %5, align 8
br label %bb3
bb4: ; preds = %bb3
%6 = bitcast { i8*, i32 }* %0 to i8**, !dbg !114
%7 = load i8*, i8** %6, align 8, !dbg !114
%8 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %0, i32 0, i32 1, !dbg !114
%9 = load i32, i32* %8, align 8, !dbg !114
%10 = insertvalue { i8*, i32 } undef, i8* %7, 0, !dbg !114
%11 = insertvalue { i8*, i32 } %10, i32 %9, 1, !dbg !114
resume { i8*, i32 } %11, !dbg !114
}
; std::rt::lang_start
; Function Attrs: nonlazybind uwtable
define hidden i64 @_ZN3std2rt10lang_start17hb11772460dd040a5E(void ()* nonnull %main, i64 %argc, i8** %argv) unnamed_addr #2 !dbg !115 {
start:
%v.dbg.spill = alloca i64, align 8
%argv.dbg.spill = alloca i8**, align 8
%argc.dbg.spill = alloca i64, align 8
%main.dbg.spill = alloca void ()*, align 8
%_8 = alloca i64*, align 8
%_4 = alloca i64, align 8
store void ()* %main, void ()** %main.dbg.spill, align 8
call void @llvm.dbg.declare(metadata void ()** %main.dbg.spill, metadata !124, metadata !DIExpression()), !dbg !130
store i64 %argc, i64* %argc.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i64* %argc.dbg.spill, metadata !125, metadata !DIExpression()), !dbg !131
store i8** %argv, i8*** %argv.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i8*** %argv.dbg.spill, metadata !126, metadata !DIExpression()), !dbg !132
%0 = bitcast i64** %_8 to void ()**, !dbg !133
store void ()* %main, void ()** %0, align 8, !dbg !133
%_5.0 = bitcast i64** %_8 to {}*, !dbg !134
; call std::rt::lang_start_internal
%1 = call i64 @_ZN3std2rt19lang_start_internal17h699f3530566c1833E({}* nonnull align 1 %_5.0, [3 x i64]* align 8 dereferenceable(24) bitcast (<{ i8*, [16 x i8], i8*, i8*, i8*, [0 x i8] }>* @vtable.0 to [3 x i64]*), i64 %argc, i8** %argv), !dbg !135
store i64 %1, i64* %_4, align 8, !dbg !135
br label %bb1, !dbg !135
bb1: ; preds = %start
%v = load i64, i64* %_4, align 8, !dbg !136
store i64 %v, i64* %v.dbg.spill, align 8, !dbg !136
call void @llvm.dbg.declare(metadata i64* %v.dbg.spill, metadata !127, metadata !DIExpression()), !dbg !137
ret i64 %v, !dbg !138
}
; std::rt::lang_start::{{closure}}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i32 @"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h911bc1c217c1290cE"(i64** align 8 dereferenceable(8) %_1) unnamed_addr #0 !dbg !139 {
start:
%_1.dbg.spill = alloca i64**, align 8
store i64** %_1, i64*** %_1.dbg.spill, align 8
%0 = load i64**, i64*** %_1.dbg.spill, align 8, !nonnull !46
%1 = bitcast i64** %0 to void ()**
call void @llvm.dbg.declare(metadata i64*** %_1.dbg.spill, metadata !148, metadata !DIExpression(DW_OP_deref)), !dbg !149
%2 = bitcast i64** %_1 to void ()**, !dbg !150
%_3 = load void ()*, void ()** %2, align 8, !dbg !150, !nonnull !46
; call std::sys_common::backtrace::__rust_begin_short_backtrace
call void @_ZN3std10sys_common9backtrace28__rust_begin_short_backtrace17h4e9f6f38fdde0982E(void ()* nonnull %_3), !dbg !151
br label %bb1, !dbg !151
bb1: ; preds = %start
; call <() as std::process::Termination>::report
%3 = call i32 @"_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h2a77a2c7dc791a56E"(), !dbg !151
br label %bb2, !dbg !151
bb2: ; preds = %bb1
ret i32 %3, !dbg !152
}
; std::sys::unix::process::process_common::ExitCode::as_i32
; Function Attrs: inlinehint nonlazybind uwtable
define internal i32 @_ZN3std3sys4unix7process14process_common8ExitCode6as_i3217hd13b8893498ff873E(i8* align 1 dereferenceable(1) %self) unnamed_addr #0 !dbg !153 {
start:
%self.dbg.spill = alloca i8*, align 8
store i8* %self, i8** %self.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i8** %self.dbg.spill, metadata !166, metadata !DIExpression()), !dbg !167
%_2 = load i8, i8* %self, align 1, !dbg !168
%0 = zext i8 %_2 to i32, !dbg !168
ret i32 %0, !dbg !169
}
; <i32 as core::iter::range::Step>::forward_unchecked
; Function Attrs: inlinehint nonlazybind uwtable
define internal i32 @"_ZN47_$LT$i32$u20$as$u20$core..iter..range..Step$GT$17forward_unchecked17hb65db05a78cf033fE"(i32 %start1, i64 %n) unnamed_addr #0 !dbg !170 {
start:
%0 = alloca i32, align 4
%rhs.dbg.spill.i = alloca i32, align 4
%self.dbg.spill.i = alloca i32, align 4
%n.dbg.spill = alloca i64, align 8
%start.dbg.spill = alloca i32, align 4
store i32 %start1, i32* %start.dbg.spill, align 4
call void @llvm.dbg.declare(metadata i32* %start.dbg.spill, metadata !176, metadata !DIExpression()), !dbg !178
store i64 %n, i64* %n.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i64* %n.dbg.spill, metadata !177, metadata !DIExpression()), !dbg !179
%_4 = trunc i64 %n to i32, !dbg !180
store i32 %start1, i32* %self.dbg.spill.i, align 4
call void @llvm.dbg.declare(metadata i32* %self.dbg.spill.i, metadata !181, metadata !DIExpression()), !dbg !190
store i32 %_4, i32* %rhs.dbg.spill.i, align 4
call void @llvm.dbg.declare(metadata i32* %rhs.dbg.spill.i, metadata !189, metadata !DIExpression()), !dbg !192
%1 = add nsw i32 %start1, %_4, !dbg !193
store i32 %1, i32* %0, align 4, !dbg !193
%2 = load i32, i32* %0, align 4, !dbg !193
br label %bb1, !dbg !194
bb1: ; preds = %start
ret i32 %2, !dbg !195
}
; core::cmp::impls::<impl core::cmp::PartialOrd for i32>::le
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @"_ZN4core3cmp5impls55_$LT$impl$u20$core..cmp..PartialOrd$u20$for$u20$i32$GT$2le17h28177f5bc7fa17dfE"(i32* align 4 dereferenceable(4) %self, i32* align 4 dereferenceable(4) %other) unnamed_addr #0 !dbg !196 {
start:
%other.dbg.spill = alloca i32*, align 8
%self.dbg.spill = alloca i32*, align 8
store i32* %self, i32** %self.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i32** %self.dbg.spill, metadata !205, metadata !DIExpression()), !dbg !207
store i32* %other, i32** %other.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i32** %other.dbg.spill, metadata !206, metadata !DIExpression()), !dbg !208
%_3 = load i32, i32* %self, align 4, !dbg !209
%_4 = load i32, i32* %other, align 4, !dbg !210
%0 = icmp sle i32 %_3, %_4, !dbg !209
ret i1 %0, !dbg !211
}
; core::cmp::impls::<impl core::cmp::PartialOrd for i32>::lt
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @"_ZN4core3cmp5impls55_$LT$impl$u20$core..cmp..PartialOrd$u20$for$u20$i32$GT$2lt17h3b55dba9ab46e68cE"(i32* align 4 dereferenceable(4) %self, i32* align 4 dereferenceable(4) %other) unnamed_addr #0 !dbg !212 {
start:
%other.dbg.spill = alloca i32*, align 8
%self.dbg.spill = alloca i32*, align 8
store i32* %self, i32** %self.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i32** %self.dbg.spill, metadata !214, metadata !DIExpression()), !dbg !216
store i32* %other, i32** %other.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i32** %other.dbg.spill, metadata !215, metadata !DIExpression()), !dbg !217
%_3 = load i32, i32* %self, align 4, !dbg !218
%_4 = load i32, i32* %other, align 4, !dbg !219
%0 = icmp slt i32 %_3, %_4, !dbg !218
ret i1 %0, !dbg !220
}
; core::fmt::ArgumentV1::new
; Function Attrs: nonlazybind uwtable
define internal { i8*, i64* } @_ZN4core3fmt10ArgumentV13new17h37be4d5dded1d744E(i32* align 4 dereferenceable(4) %x, i1 (i32*, %"core::fmt::Formatter"*)* nonnull %f) unnamed_addr #2 !dbg !221 {
start:
%0 = alloca %"core::fmt::Opaque"*, align 8
%1 = alloca i1 (%"core::fmt::Opaque"*, %"core::fmt::Formatter"*)*, align 8
%f.dbg.spill = alloca i1 (i32*, %"core::fmt::Formatter"*)*, align 8
%x.dbg.spill = alloca i32*, align 8
%2 = alloca { i8*, i64* }, align 8
store i32* %x, i32** %x.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i32** %x.dbg.spill, metadata !271, metadata !DIExpression()), !dbg !273
store i1 (i32*, %"core::fmt::Formatter"*)* %f, i1 (i32*, %"core::fmt::Formatter"*)** %f.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i1 (i32*, %"core::fmt::Formatter"*)** %f.dbg.spill, metadata !272, metadata !DIExpression()), !dbg !274
%3 = bitcast i1 (i32*, %"core::fmt::Formatter"*)* %f to i1 (%"core::fmt::Opaque"*, %"core::fmt::Formatter"*)*, !dbg !275
store i1 (%"core::fmt::Opaque"*, %"core::fmt::Formatter"*)* %3, i1 (%"core::fmt::Opaque"*, %"core::fmt::Formatter"*)** %1, align 8, !dbg !275
%_3 = load i1 (%"core::fmt::Opaque"*, %"core::fmt::Formatter"*)*, i1 (%"core::fmt::Opaque"*, %"core::fmt::Formatter"*)** %1, align 8, !dbg !275, !nonnull !46
br label %bb1, !dbg !275
bb1: ; preds = %start
%4 = bitcast i32* %x to %"core::fmt::Opaque"*, !dbg !276
store %"core::fmt::Opaque"* %4, %"core::fmt::Opaque"** %0, align 8, !dbg !276
%_5 = load %"core::fmt::Opaque"*, %"core::fmt::Opaque"** %0, align 8, !dbg !276, !nonnull !46
br label %bb2, !dbg !276
bb2: ; preds = %bb1
%5 = bitcast { i8*, i64* }* %2 to %"core::fmt::Opaque"**, !dbg !277
store %"core::fmt::Opaque"* %_5, %"core::fmt::Opaque"** %5, align 8, !dbg !277
%6 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %2, i32 0, i32 1, !dbg !277
%7 = bitcast i64** %6 to i1 (%"core::fmt::Opaque"*, %"core::fmt::Formatter"*)**, !dbg !277
store i1 (%"core::fmt::Opaque"*, %"core::fmt::Formatter"*)* %_3, i1 (%"core::fmt::Opaque"*, %"core::fmt::Formatter"*)** %7, align 8, !dbg !277
%8 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %2, i32 0, i32 0, !dbg !278
%9 = load i8*, i8** %8, align 8, !dbg !278, !nonnull !46
%10 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %2, i32 0, i32 1, !dbg !278
%11 = load i64*, i64** %10, align 8, !dbg !278, !nonnull !46
%12 = insertvalue { i8*, i64* } undef, i8* %9, 0, !dbg !278
%13 = insertvalue { i8*, i64* } %12, i64* %11, 1, !dbg !278
ret { i8*, i64* } %13, !dbg !278
}
; core::fmt::Arguments::new_v1
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @_ZN4core3fmt9Arguments6new_v117h4acf08bc939b8403E(%"core::fmt::Arguments"* noalias nocapture sret(%"core::fmt::Arguments") dereferenceable(48) %0, [0 x { [0 x i8]*, i64 }]* nonnull align 8 %pieces.0, i64 %pieces.1, [0 x { i8*, i64* }]* nonnull align 8 %args.0, i64 %args.1) unnamed_addr #0 !dbg !279 {
start:
%args.dbg.spill = alloca { [0 x { i8*, i64* }]*, i64 }, align 8
%pieces.dbg.spill = alloca { [0 x { [0 x i8]*, i64 }]*, i64 }, align 8
%_16 = alloca { i64*, i64 }, align 8
%_3 = alloca i8, align 1
%1 = getelementptr inbounds { [0 x { [0 x i8]*, i64 }]*, i64 }, { [0 x { [0 x i8]*, i64 }]*, i64 }* %pieces.dbg.spill, i32 0, i32 0
store [0 x { [0 x i8]*, i64 }]* %pieces.0, [0 x { [0 x i8]*, i64 }]** %1, align 8
%2 = getelementptr inbounds { [0 x { [0 x i8]*, i64 }]*, i64 }, { [0 x { [0 x i8]*, i64 }]*, i64 }* %pieces.dbg.spill, i32 0, i32 1
store i64 %pieces.1, i64* %2, align 8
call void @llvm.dbg.declare(metadata { [0 x { [0 x i8]*, i64 }]*, i64 }* %pieces.dbg.spill, metadata !345, metadata !DIExpression()), !dbg !347
%3 = getelementptr inbounds { [0 x { i8*, i64* }]*, i64 }, { [0 x { i8*, i64* }]*, i64 }* %args.dbg.spill, i32 0, i32 0
store [0 x { i8*, i64* }]* %args.0, [0 x { i8*, i64* }]** %3, align 8
%4 = getelementptr inbounds { [0 x { i8*, i64* }]*, i64 }, { [0 x { i8*, i64* }]*, i64 }* %args.dbg.spill, i32 0, i32 1
store i64 %args.1, i64* %4, align 8
call void @llvm.dbg.declare(metadata { [0 x { i8*, i64* }]*, i64 }* %args.dbg.spill, metadata !346, metadata !DIExpression()), !dbg !348
%_4 = icmp ult i64 %pieces.1, %args.1, !dbg !349
br i1 %_4, label %bb1, label %bb2, !dbg !349
bb2: ; preds = %start
%_12 = add i64 %args.1, 1, !dbg !350
%_9 = icmp ugt i64 %pieces.1, %_12, !dbg !351
%5 = zext i1 %_9 to i8, !dbg !349
store i8 %5, i8* %_3, align 1, !dbg !349
br label %bb3, !dbg !349
bb1: ; preds = %start
store i8 1, i8* %_3, align 1, !dbg !349
br label %bb3, !dbg !349
bb3: ; preds = %bb2, %bb1
%6 = load i8, i8* %_3, align 1, !dbg !349, !range !352
%7 = trunc i8 %6 to i1, !dbg !349
br i1 %7, label %bb4, label %bb5, !dbg !349
bb5: ; preds = %bb3
%8 = bitcast { i64*, i64 }* %_16 to {}**, !dbg !353
store {}* null, {}** %8, align 8, !dbg !353
%9 = bitcast %"core::fmt::Arguments"* %0 to { [0 x { [0 x i8]*, i64 }]*, i64 }*, !dbg !354
%10 = getelementptr inbounds { [0 x { [0 x i8]*, i64 }]*, i64 }, { [0 x { [0 x i8]*, i64 }]*, i64 }* %9, i32 0, i32 0, !dbg !354
store [0 x { [0 x i8]*, i64 }]* %pieces.0, [0 x { [0 x i8]*, i64 }]** %10, align 8, !dbg !354
%11 = getelementptr inbounds { [0 x { [0 x i8]*, i64 }]*, i64 }, { [0 x { [0 x i8]*, i64 }]*, i64 }* %9, i32 0, i32 1, !dbg !354
store i64 %pieces.1, i64* %11, align 8, !dbg !354
%12 = getelementptr inbounds %"core::fmt::Arguments", %"core::fmt::Arguments"* %0, i32 0, i32 1, !dbg !354
%13 = getelementptr inbounds { i64*, i64 }, { i64*, i64 }* %_16, i32 0, i32 0, !dbg !354
%14 = load i64*, i64** %13, align 8, !dbg !354
%15 = getelementptr inbounds { i64*, i64 }, { i64*, i64 }* %_16, i32 0, i32 1, !dbg !354
%16 = load i64, i64* %15, align 8, !dbg !354
%17 = getelementptr inbounds { i64*, i64 }, { i64*, i64 }* %12, i32 0, i32 0, !dbg !354
store i64* %14, i64** %17, align 8, !dbg !354
%18 = getelementptr inbounds { i64*, i64 }, { i64*, i64 }* %12, i32 0, i32 1, !dbg !354
store i64 %16, i64* %18, align 8, !dbg !354
%19 = getelementptr inbounds %"core::fmt::Arguments", %"core::fmt::Arguments"* %0, i32 0, i32 2, !dbg !354
%20 = getelementptr inbounds { [0 x { i8*, i64* }]*, i64 }, { [0 x { i8*, i64* }]*, i64 }* %19, i32 0, i32 0, !dbg !354
store [0 x { i8*, i64* }]* %args.0, [0 x { i8*, i64* }]** %20, align 8, !dbg !354
%21 = getelementptr inbounds { [0 x { i8*, i64* }]*, i64 }, { [0 x { i8*, i64* }]*, i64 }* %19, i32 0, i32 1, !dbg !354
store i64 %args.1, i64* %21, align 8, !dbg !354
ret void, !dbg !355
bb4: ; preds = %bb3
; call core::panicking::panic
call void @_ZN4core9panicking5panic17h50b51d19800453c0E([0 x i8]* nonnull align 1 bitcast (<{ [12 x i8] }>* @alloc34 to [0 x i8]*), i64 12, %"core::panic::location::Location"* align 8 dereferenceable(24) bitcast (<{ i8*, [16 x i8] }>* @alloc36 to %"core::panic::location::Location"*)) #7, !dbg !356
unreachable, !dbg !356
}
; core::mem::replace
; Function Attrs: inlinehint nonlazybind uwtable
define internal i32 @_ZN4core3mem7replace17he9d4dcb34a4ae394E(i32* align 4 dereferenceable(4) %dest, i32 %src) unnamed_addr #0 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality !dbg !357 {
start:
%result.dbg.spill = alloca i32, align 4
%0 = alloca { i8*, i32 }, align 8
%src.dbg.spill = alloca i32, align 4
%dest.dbg.spill = alloca i32*, align 8
%_7 = alloca i8, align 1
store i32* %dest, i32** %dest.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i32** %dest.dbg.spill, metadata !364, metadata !DIExpression()), !dbg !368
store i32 %src, i32* %src.dbg.spill, align 4
call void @llvm.dbg.declare(metadata i32* %src.dbg.spill, metadata !365, metadata !DIExpression()), !dbg !369
store i8 0, i8* %_7, align 1, !dbg !370
store i8 1, i8* %_7, align 1, !dbg !370
; invoke core::ptr::read
%result = invoke i32 @_ZN4core3ptr4read17hc3739d5fa6d04dd3E(i32* %dest)
to label %bb1 unwind label %cleanup, !dbg !371
bb1: ; preds = %start
store i32 %result, i32* %result.dbg.spill, align 4, !dbg !371
call void @llvm.dbg.declare(metadata i32* %result.dbg.spill, metadata !366, metadata !DIExpression()), !dbg !372
store i8 0, i8* %_7, align 1, !dbg !373
; invoke core::ptr::write
invoke void @_ZN4core3ptr5write17h7770e0bcdd7264bbE(i32* %dest, i32 %src)
to label %bb2 unwind label %cleanup1, !dbg !374
bb6: ; preds = %bb3, %cleanup
%1 = load i8, i8* %_7, align 1, !dbg !375, !range !352
%2 = trunc i8 %1 to i1, !dbg !375
br i1 %2, label %bb5, label %bb4, !dbg !375
cleanup: ; preds = %start
%3 = landingpad { i8*, i32 }
cleanup
%4 = extractvalue { i8*, i32 } %3, 0
%5 = extractvalue { i8*, i32 } %3, 1
%6 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %0, i32 0, i32 0
store i8* %4, i8** %6, align 8
%7 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %0, i32 0, i32 1
store i32 %5, i32* %7, align 8
br label %bb6
bb2: ; preds = %bb1
ret i32 %result, !dbg !376
bb3: ; preds = %cleanup1
br label %bb6, !dbg !377
cleanup1: ; preds = %bb1
%8 = landingpad { i8*, i32 }
cleanup
%9 = extractvalue { i8*, i32 } %8, 0
%10 = extractvalue { i8*, i32 } %8, 1
%11 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %0, i32 0, i32 0
store i8* %9, i8** %11, align 8
%12 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %0, i32 0, i32 1
store i32 %10, i32* %12, align 8
br label %bb3
bb4: ; preds = %bb5, %bb6
%13 = bitcast { i8*, i32 }* %0 to i8**, !dbg !378
%14 = load i8*, i8** %13, align 8, !dbg !378
%15 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %0, i32 0, i32 1, !dbg !378
%16 = load i32, i32* %15, align 8, !dbg !378
%17 = insertvalue { i8*, i32 } undef, i8* %14, 0, !dbg !378
%18 = insertvalue { i8*, i32 } %17, i32 %16, 1, !dbg !378
resume { i8*, i32 } %18, !dbg !378
bb5: ; preds = %bb6
br label %bb4, !dbg !375
}
; core::ops::range::RangeInclusive<Idx>::new
; Function Attrs: inlinehint nonlazybind uwtable
define internal i96 @"_ZN4core3ops5range25RangeInclusive$LT$Idx$GT$3new17h2849cd64748fe5c1E"(i32 %start1, i32 %end) unnamed_addr #0 !dbg !379 {
start:
%end.dbg.spill = alloca i32, align 4
%start.dbg.spill = alloca i32, align 4
%0 = alloca %"core::ops::range::RangeInclusive<i32>", align 4
store i32 %start1, i32* %start.dbg.spill, align 4
call void @llvm.dbg.declare(metadata i32* %start.dbg.spill, metadata !384, metadata !DIExpression()), !dbg !386
store i32 %end, i32* %end.dbg.spill, align 4
call void @llvm.dbg.declare(metadata i32* %end.dbg.spill, metadata !385, metadata !DIExpression()), !dbg !387
%1 = bitcast %"core::ops::range::RangeInclusive<i32>"* %0 to i32*, !dbg !388
store i32 %start1, i32* %1, align 4, !dbg !388
%2 = getelementptr inbounds %"core::ops::range::RangeInclusive<i32>", %"core::ops::range::RangeInclusive<i32>"* %0, i32 0, i32 1, !dbg !388
store i32 %end, i32* %2, align 4, !dbg !388
%3 = getelementptr inbounds %"core::ops::range::RangeInclusive<i32>", %"core::ops::range::RangeInclusive<i32>"* %0, i32 0, i32 2, !dbg !388
store i8 0, i8* %3, align 4, !dbg !388
%4 = bitcast %"core::ops::range::RangeInclusive<i32>"* %0 to i96*, !dbg !389
%5 = load i96, i96* %4, align 4, !dbg !389
ret i96 %5, !dbg !389
}
; core::ops::range::RangeInclusive<Idx>::is_empty
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @"_ZN4core3ops5range25RangeInclusive$LT$Idx$GT$8is_empty17ha9ee05d41a3bd578E"(%"core::ops::range::RangeInclusive<i32>"* align 4 dereferenceable(12) %self) unnamed_addr #0 !dbg !390 {
start:
%self.dbg.spill = alloca %"core::ops::range::RangeInclusive<i32>"*, align 8
%0 = alloca i8, align 1
store %"core::ops::range::RangeInclusive<i32>"* %self, %"core::ops::range::RangeInclusive<i32>"** %self.dbg.spill, align 8
call void @llvm.dbg.declare(metadata %"core::ops::range::RangeInclusive<i32>"** %self.dbg.spill, metadata !395, metadata !DIExpression()), !dbg !396
%1 = getelementptr inbounds %"core::ops::range::RangeInclusive<i32>", %"core::ops::range::RangeInclusive<i32>"* %self, i32 0, i32 2, !dbg !397
%2 = load i8, i8* %1, align 4, !dbg !397, !range !352
%_2 = trunc i8 %2 to i1, !dbg !397
br i1 %_2, label %bb1, label %bb2, !dbg !397
bb2: ; preds = %start
%_5 = bitcast %"core::ops::range::RangeInclusive<i32>"* %self to i32*, !dbg !398
%_6 = getelementptr inbounds %"core::ops::range::RangeInclusive<i32>", %"core::ops::range::RangeInclusive<i32>"* %self, i32 0, i32 1, !dbg !399
; call core::cmp::impls::<impl core::cmp::PartialOrd for i32>::le
%_4 = call zeroext i1 @"_ZN4core3cmp5impls55_$LT$impl$u20$core..cmp..PartialOrd$u20$for$u20$i32$GT$2le17h28177f5bc7fa17dfE"(i32* align 4 dereferenceable(4) %_5, i32* align 4 dereferenceable(4) %_6), !dbg !400
br label %bb4, !dbg !400
bb1: ; preds = %start
store i8 1, i8* %0, align 1, !dbg !397
br label %bb3, !dbg !397
bb3: ; preds = %bb4, %bb1
%3 = load i8, i8* %0, align 1, !dbg !401, !range !352
%4 = trunc i8 %3 to i1, !dbg !401
ret i1 %4, !dbg !401
bb4: ; preds = %bb2
%_3 = xor i1 %_4, true, !dbg !402
%5 = zext i1 %_3 to i8, !dbg !397
store i8 %5, i8* %0, align 1, !dbg !397
br label %bb3, !dbg !397
}
; core::ops::function::FnOnce::call_once{{vtable.shim}}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i32 @"_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h6c2c84984480ea31E"(i64** %_1) unnamed_addr #0 !dbg !403 {
start:
%_1.dbg.spill = alloca i64**, align 8
%_2 = alloca {}, align 1
store i64** %_1, i64*** %_1.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i64*** %_1.dbg.spill, metadata !411, metadata !DIExpression()), !dbg !416
call void @llvm.dbg.declare(metadata {}* %_2, metadata !412, metadata !DIExpression()), !dbg !416
%0 = load i64*, i64** %_1, align 8, !dbg !416, !nonnull !46
; call core::ops::function::FnOnce::call_once
%1 = call i32 @_ZN4core3ops8function6FnOnce9call_once17hbd05cccd3153e2b1E(i64* nonnull %0), !dbg !416
br label %bb1, !dbg !416
bb1: ; preds = %start
ret i32 %1, !dbg !416
}
; core::ops::function::FnOnce::call_once
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @_ZN4core3ops8function6FnOnce9call_once17h18c2ac22b80f40d9E(void ()* nonnull %_1) unnamed_addr #0 !dbg !417 {
start:
%_1.dbg.spill = alloca void ()*, align 8
%_2 = alloca {}, align 1
store void ()* %_1, void ()** %_1.dbg.spill, align 8
call void @llvm.dbg.declare(metadata void ()** %_1.dbg.spill, metadata !419, metadata !DIExpression()), !dbg !423
call void @llvm.dbg.declare(metadata {}* %_2, metadata !420, metadata !DIExpression()), !dbg !423
call void %_1(), !dbg !423
br label %bb1, !dbg !423
bb1: ; preds = %start
ret void, !dbg !423
}
; core::ops::function::FnOnce::call_once
; Function Attrs: inlinehint nonlazybind uwtable
define internal i32 @_ZN4core3ops8function6FnOnce9call_once17hbd05cccd3153e2b1E(i64* nonnull %0) unnamed_addr #0 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality !dbg !424 {
start:
%1 = alloca { i8*, i32 }, align 8
%_2 = alloca {}, align 1
%_1 = alloca i64*, align 8
store i64* %0, i64** %_1, align 8
call void @llvm.dbg.declare(metadata i64** %_1, metadata !428, metadata !DIExpression()), !dbg !430
call void @llvm.dbg.declare(metadata {}* %_2, metadata !429, metadata !DIExpression()), !dbg !430
; invoke std::rt::lang_start::{{closure}}
%2 = invoke i32 @"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h911bc1c217c1290cE"(i64** align 8 dereferenceable(8) %_1)
to label %bb1 unwind label %cleanup, !dbg !430
bb1: ; preds = %start
br label %bb2, !dbg !430
bb3: ; preds = %cleanup
br label %bb4, !dbg !430
cleanup: ; preds = %start
%3 = landingpad { i8*, i32 }
cleanup
%4 = extractvalue { i8*, i32 } %3, 0
%5 = extractvalue { i8*, i32 } %3, 1
%6 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %1, i32 0, i32 0
store i8* %4, i8** %6, align 8
%7 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %1, i32 0, i32 1
store i32 %5, i32* %7, align 8
br label %bb3
bb4: ; preds = %bb3
%8 = bitcast { i8*, i32 }* %1 to i8**, !dbg !430
%9 = load i8*, i8** %8, align 8, !dbg !430
%10 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %1, i32 0, i32 1, !dbg !430
%11 = load i32, i32* %10, align 8, !dbg !430
%12 = insertvalue { i8*, i32 } undef, i8* %9, 0, !dbg !430
%13 = insertvalue { i8*, i32 } %12, i32 %11, 1, !dbg !430
resume { i8*, i32 } %13, !dbg !430
bb2: ; preds = %bb1
ret i32 %2, !dbg !430
}
; core::ptr::read
; Function Attrs: inlinehint nonlazybind uwtable
define internal i32 @_ZN4core3ptr4read17hc3739d5fa6d04dd3E(i32* %src) unnamed_addr #0 !dbg !431 {
start:
%slot.dbg.spill.i = alloca i32, align 4
%0 = alloca i32, align 4
%self.dbg.spill.i1 = alloca i32, align 4
%self.dbg.spill.i = alloca i32*, align 8
%src.dbg.spill = alloca i32*, align 8
%tmp = alloca i32, align 4
store i32* %src, i32** %src.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i32** %src.dbg.spill, metadata !438, metadata !DIExpression()), !dbg !450
call void @llvm.dbg.declare(metadata i32* %tmp, metadata !439, metadata !DIExpression()), !dbg !451
%1 = bitcast i32* %0 to {}*, !dbg !452
%2 = load i32, i32* %0, align 4, !dbg !458
store i32 %2, i32* %tmp, align 4, !dbg !459
br label %bb1, !dbg !459
bb1: ; preds = %start
store i32* %tmp, i32** %self.dbg.spill.i, align 8
call void @llvm.dbg.declare(metadata i32** %self.dbg.spill.i, metadata !460, metadata !DIExpression()), !dbg !467
br label %bb2, !dbg !469
bb2: ; preds = %bb1
%3 = bitcast i32* %tmp to i8*, !dbg !470
%4 = bitcast i32* %src to i8*, !dbg !470
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 4, i1 false), !dbg !470
%_6 = load i32, i32* %tmp, align 4, !dbg !471
store i32 %_6, i32* %self.dbg.spill.i1, align 4
call void @llvm.dbg.declare(metadata i32* %self.dbg.spill.i1, metadata !472, metadata !DIExpression()), !dbg !485
store i32 %_6, i32* %slot.dbg.spill.i, align 4
call void @llvm.dbg.declare(metadata i32* %slot.dbg.spill.i, metadata !487, metadata !DIExpression()), !dbg !493
br label %bb3, !dbg !471
bb3: ; preds = %bb2
ret i32 %_6, !dbg !495
}
; core::ptr::write
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @_ZN4core3ptr5write17h7770e0bcdd7264bbE(i32* %dst, i32 %0) unnamed_addr #0 !dbg !496 {
start:
%dst.dbg.spill = alloca i32*, align 8
%src = alloca i32, align 4
store i32 %0, i32* %src, align 4
store i32* %dst, i32** %dst.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i32** %dst.dbg.spill, metadata !500, metadata !DIExpression()), !dbg !502
call void @llvm.dbg.declare(metadata i32* %src, metadata !501, metadata !DIExpression()), !dbg !503
%1 = bitcast i32* %dst to i8*, !dbg !504
%2 = bitcast i32* %src to i8*, !dbg !504
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %1, i8* align 4 %2, i64 4, i1 false), !dbg !504
ret void, !dbg !505
}
; core::ptr::drop_in_place<std::rt::lang_start<()>::{{closure}}>
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @"_ZN4core3ptr85drop_in_place$LT$std..rt..lang_start$LT$$LP$$RP$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$17h3915719e248dede1E"(i64** %_1) unnamed_addr #0 !dbg !506 {
start:
%_1.dbg.spill = alloca i64**, align 8
store i64** %_1, i64*** %_1.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i64*** %_1.dbg.spill, metadata !510, metadata !DIExpression()), !dbg !513
ret void, !dbg !513
}
; core::hint::black_box
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @_ZN4core4hint9black_box17h7b40df1726849b56E() unnamed_addr #0 !dbg !514 {
start:
%dummy.dbg.spill = alloca {}, align 1
call void @llvm.dbg.declare(metadata {}* %dummy.dbg.spill, metadata !520, metadata !DIExpression()), !dbg !521
call void asm sideeffect "", "r,~{memory}"({}* undef), !dbg !522, !srcloc !523
br label %bb1, !dbg !522
bb1: ; preds = %start
ret void, !dbg !524
}
; core::iter::range::<impl core::iter::traits::iterator::Iterator for core::ops::range::RangeInclusive<A>>::next
; Function Attrs: inlinehint nonlazybind uwtable
define internal { i32, i32 } @"_ZN4core4iter5range110_$LT$impl$u20$core..iter..traits..iterator..Iterator$u20$for$u20$core..ops..range..RangeInclusive$LT$A$GT$$GT$4next17h3cc42889a4f33368E"(%"core::ops::range::RangeInclusive<i32>"* align 4 dereferenceable(12) %self) unnamed_addr #0 !dbg !525 {
start:
%self.dbg.spill = alloca %"core::ops::range::RangeInclusive<i32>"*, align 8
store %"core::ops::range::RangeInclusive<i32>"* %self, %"core::ops::range::RangeInclusive<i32>"** %self.dbg.spill, align 8
call void @llvm.dbg.declare(metadata %"core::ops::range::RangeInclusive<i32>"** %self.dbg.spill, metadata !528, metadata !DIExpression()), !dbg !531
; call <core::ops::range::RangeInclusive<T> as core::iter::range::RangeInclusiveIteratorImpl>::spec_next
%0 = call { i32, i32 } @"_ZN107_$LT$core..ops..range..RangeInclusive$LT$T$GT$$u20$as$u20$core..iter..range..RangeInclusiveIteratorImpl$GT$9spec_next17h8e3e7ff7ce9769faE"(%"core::ops::range::RangeInclusive<i32>"* align 4 dereferenceable(12) %self), !dbg !532
%1 = extractvalue { i32, i32 } %0, 0, !dbg !532
%2 = extractvalue { i32, i32 } %0, 1, !dbg !532
br label %bb1, !dbg !532
bb1: ; preds = %start
%3 = insertvalue { i32, i32 } undef, i32 %1, 0, !dbg !533
%4 = insertvalue { i32, i32 } %3, i32 %2, 1, !dbg !533
ret { i32, i32 } %4, !dbg !533
}
; core::clone::impls::<impl core::clone::Clone for i32>::clone
; Function Attrs: inlinehint nonlazybind uwtable
define internal i32 @"_ZN4core5clone5impls52_$LT$impl$u20$core..clone..Clone$u20$for$u20$i32$GT$5clone17h85acc95589e22befE"(i32* align 4 dereferenceable(4) %self) unnamed_addr #0 !dbg !534 {
start:
%self.dbg.spill = alloca i32*, align 8
store i32* %self, i32** %self.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i32** %self.dbg.spill, metadata !542, metadata !DIExpression()), !dbg !543
%0 = load i32, i32* %self, align 4, !dbg !544
ret i32 %0, !dbg !545
}
; <() as std::process::Termination>::report
; Function Attrs: inlinehint nonlazybind uwtable
define internal i32 @"_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h2a77a2c7dc791a56E"() unnamed_addr #0 !dbg !546 {
start:
%self.dbg.spill = alloca {}, align 1
call void @llvm.dbg.declare(metadata {}* %self.dbg.spill, metadata !553, metadata !DIExpression()), !dbg !554
; call <std::process::ExitCode as std::process::Termination>::report
%0 = call i32 @"_ZN68_$LT$std..process..ExitCode$u20$as$u20$std..process..Termination$GT$6report17h30388115231fc605E"(i8 0), !dbg !555
br label %bb1, !dbg !555
bb1: ; preds = %start
ret i32 %0, !dbg !556
}
; <I as core::iter::traits::collect::IntoIterator>::into_iter
; Function Attrs: inlinehint nonlazybind uwtable
define internal i96 @"_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h1577d21432db53acE"(i96 %0) unnamed_addr #0 !dbg !557 {
start:
%1 = alloca %"core::ops::range::RangeInclusive<i32>", align 4
%2 = alloca i96, align 8
%self = alloca %"core::ops::range::RangeInclusive<i32>", align 4
store i96 %0, i96* %2, align 8
%3 = bitcast %"core::ops::range::RangeInclusive<i32>"* %self to i8*
%4 = bitcast i96* %2 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 12, i1 false)
call void @llvm.dbg.declare(metadata %"core::ops::range::RangeInclusive<i32>"* %self, metadata !565, metadata !DIExpression()), !dbg !568
%5 = bitcast %"core::ops::range::RangeInclusive<i32>"* %1 to i8*, !dbg !569
%6 = bitcast %"core::ops::range::RangeInclusive<i32>"* %self to i8*, !dbg !569
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 12, i1 false), !dbg !569
%7 = bitcast %"core::ops::range::RangeInclusive<i32>"* %1 to i96*, !dbg !570
%8 = load i96, i96* %7, align 4, !dbg !570
ret i96 %8, !dbg !570
}
; <std::process::ExitCode as std::process::Termination>::report
; Function Attrs: inlinehint nonlazybind uwtable
define internal i32 @"_ZN68_$LT$std..process..ExitCode$u20$as$u20$std..process..Termination$GT$6report17h30388115231fc605E"(i8 %0) unnamed_addr #0 !dbg !571 {
start:
%self = alloca i8, align 1
store i8 %0, i8* %self, align 1
call void @llvm.dbg.declare(metadata i8* %self, metadata !579, metadata !DIExpression()), !dbg !580
; call std::sys::unix::process::process_common::ExitCode::as_i32
%1 = call i32 @_ZN3std3sys4unix7process14process_common8ExitCode6as_i3217hd13b8893498ff873E(i8* align 1 dereferenceable(1) %self), !dbg !581
br label %bb1, !dbg !581
bb1: ; preds = %start
ret i32 %1, !dbg !582
}
; playground::main
; Function Attrs: nonlazybind uwtable
define internal void @_ZN10playground4main17hbf379cdc43ed47d6E() unnamed_addr #2 !dbg !583 {
start:
%arg0.dbg.spill = alloca i32*, align 8
%__next.dbg.spill = alloca i32, align 4
%val.dbg.spill = alloca i32, align 4
%0 = alloca i96, align 8
%1 = alloca i96, align 8
%_21 = alloca i32*, align 8
%_20 = alloca [1 x { i8*, i64* }], align 8
%_13 = alloca %"core::fmt::Arguments", align 8
%i = alloca i32, align 4
%_5 = alloca { i32, i32 }, align 4
%iter = alloca %"core::ops::range::RangeInclusive<i32>", align 4
%_2 = alloca %"core::ops::range::RangeInclusive<i32>", align 4
%_1 = alloca %"core::ops::range::RangeInclusive<i32>", align 4
call void @llvm.dbg.declare(metadata %"core::ops::range::RangeInclusive<i32>"* %iter, metadata !587, metadata !DIExpression()), !dbg !599
call void @llvm.dbg.declare(metadata i32* %i, metadata !593, metadata !DIExpression()), !dbg !600
; call core::ops::range::RangeInclusive<Idx>::new
%2 = call i96 @"_ZN4core3ops5range25RangeInclusive$LT$Idx$GT$3new17h2849cd64748fe5c1E"(i32 1, i32 10), !dbg !601
store i96 %2, i96* %1, align 8, !dbg !601
%3 = bitcast %"core::ops::range::RangeInclusive<i32>"* %_2 to i8*, !dbg !601
%4 = bitcast i96* %1 to i8*, !dbg !601
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 12, i1 false), !dbg !601
br label %bb1, !dbg !601
bb1: ; preds = %start
%5 = bitcast %"core::ops::range::RangeInclusive<i32>"* %_2 to i96*, !dbg !601
%6 = load i96, i96* %5, align 4, !dbg !601
; call <I as core::iter::traits::collect::IntoIterator>::into_iter
%7 = call i96 @"_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h1577d21432db53acE"(i96 %6), !dbg !601
store i96 %7, i96* %0, align 8, !dbg !601
%8 = bitcast %"core::ops::range::RangeInclusive<i32>"* %_1 to i8*, !dbg !601
%9 = bitcast i96* %0 to i8*, !dbg !601
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 8 %9, i64 12, i1 false), !dbg !601
br label %bb2, !dbg !601
bb2: ; preds = %bb1
%10 = bitcast %"core::ops::range::RangeInclusive<i32>"* %iter to i8*, !dbg !601
%11 = bitcast %"core::ops::range::RangeInclusive<i32>"* %_1 to i8*, !dbg !601
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %10, i8* align 4 %11, i64 12, i1 false), !dbg !601
br label %bb3, !dbg !602
bb3: ; preds = %bb9, %bb2
; call core::iter::range::<impl core::iter::traits::iterator::Iterator for core::ops::range::RangeInclusive<A>>::next
%12 = call { i32, i32 } @"_ZN4core4iter5range110_$LT$impl$u20$core..iter..traits..iterator..Iterator$u20$for$u20$core..ops..range..RangeInclusive$LT$A$GT$$GT$4next17h3cc42889a4f33368E"(%"core::ops::range::RangeInclusive<i32>"* align 4 dereferenceable(12) %iter), !dbg !603
store { i32, i32 } %12, { i32, i32 }* %_5, align 4, !dbg !603
br label %bb4, !dbg !603
bb4: ; preds = %bb3
%13 = bitcast { i32, i32 }* %_5 to i32*, !dbg !603
%14 = load i32, i32* %13, align 4, !dbg !603, !range !80
%_8 = zext i32 %14 to i64, !dbg !603
switch i64 %_8, label %bb6 [
i64 0, label %bb5
i64 1, label %bb7
], !dbg !603
bb6: ; preds = %bb4
unreachable, !dbg !603
bb5: ; preds = %bb4
ret void, !dbg !604
bb7: ; preds = %bb4
%15 = bitcast { i32, i32 }* %_5 to %"core::option::Option<i32>::Some"*, !dbg !605
%16 = getelementptr inbounds %"core::option::Option<i32>::Some", %"core::option::Option<i32>::Some"* %15, i32 0, i32 1, !dbg !605
%val = load i32, i32* %16, align 4, !dbg !605
store i32 %val, i32* %val.dbg.spill, align 4, !dbg !605
call void @llvm.dbg.declare(metadata i32* %val.dbg.spill, metadata !591, metadata !DIExpression()), !dbg !606
store i32 %val, i32* %__next.dbg.spill, align 4, !dbg !606
call void @llvm.dbg.declare(metadata i32* %__next.dbg.spill, metadata !589, metadata !DIExpression()), !dbg !603
store i32 %val, i32* %i, align 4, !dbg !603
store i32* %i, i32** %_21, align 8, !dbg !607
%arg0 = load i32*, i32** %_21, align 8, !dbg !607, !nonnull !46
store i32* %arg0, i32** %arg0.dbg.spill, align 8, !dbg !607
call void @llvm.dbg.declare(metadata i32** %arg0.dbg.spill, metadata !595, metadata !DIExpression()), !dbg !608
; call core::fmt::ArgumentV1::new
%17 = call { i8*, i64* } @_ZN4core3fmt10ArgumentV13new17h37be4d5dded1d744E(i32* align 4 dereferenceable(4) %arg0, i1 (i32*, %"core::fmt::Formatter"*)* nonnull @"_ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$i32$GT$3fmt17h41290ab1b0057a2bE"), !dbg !608
%_24.0 = extractvalue { i8*, i64* } %17, 0, !dbg !608
%_24.1 = extractvalue { i8*, i64* } %17, 1, !dbg !608
br label %bb8, !dbg !608
bb8: ; preds = %bb7
%18 = bitcast [1 x { i8*, i64* }]* %_20 to { i8*, i64* }*, !dbg !608
%19 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %18, i32 0, i32 0, !dbg !608
store i8* %_24.0, i8** %19, align 8, !dbg !608
%20 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %18, i32 0, i32 1, !dbg !608
store i64* %_24.1, i64** %20, align 8, !dbg !608
%_17.0 = bitcast [1 x { i8*, i64* }]* %_20 to [0 x { i8*, i64* }]*, !dbg !607
; call core::fmt::Arguments::new_v1
call void @_ZN4core3fmt9Arguments6new_v117h4acf08bc939b8403E(%"core::fmt::Arguments"* noalias nocapture sret(%"core::fmt::Arguments") dereferenceable(48) %_13, [0 x { [0 x i8]*, i64 }]* nonnull align 8 bitcast (<{ i8*, [8 x i8], i8*, [8 x i8] }>* @alloc3 to [0 x { [0 x i8]*, i64 }]*), i64 2, [0 x { i8*, i64* }]* nonnull align 8 %_17.0, i64 1), !dbg !607
br label %bb9, !dbg !607
bb9: ; preds = %bb8
; call std::io::stdio::_print
call void @_ZN3std2io5stdio6_print17h3d88b3fb4ed618baE(%"core::fmt::Arguments"* noalias nocapture dereferenceable(48) %_13), !dbg !607
br label %bb3, !dbg !607
}
; Function Attrs: nofree nosync nounwind readnone speculatable willreturn
declare void @llvm.dbg.declare(metadata, metadata, metadata) #3
; Function Attrs: nonlazybind uwtable
declare i32 @rust_eh_personality(i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*) unnamed_addr #2
; std::rt::lang_start_internal
; Function Attrs: nonlazybind uwtable
declare i64 @_ZN3std2rt19lang_start_internal17h699f3530566c1833E({}* nonnull align 1, [3 x i64]* align 8 dereferenceable(24), i64, i8**) unnamed_addr #2
; core::panicking::panic
; Function Attrs: cold noinline noreturn nonlazybind uwtable
declare void @_ZN4core9panicking5panic17h50b51d19800453c0E([0 x i8]* nonnull align 1, i64, %"core::panic::location::Location"* align 8 dereferenceable(24)) unnamed_addr #4
; Function Attrs: argmemonly nofree nounwind willreturn
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #5
; core::fmt::num::imp::<impl core::fmt::Display for i32>::fmt
; Function Attrs: nonlazybind uwtable
declare zeroext i1 @"_ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$i32$GT$3fmt17h41290ab1b0057a2bE"(i32* align 4 dereferenceable(4), %"core::fmt::Formatter"* align 8 dereferenceable(64)) unnamed_addr #2
; std::io::stdio::_print
; Function Attrs: nonlazybind uwtable
declare void @_ZN3std2io5stdio6_print17h3d88b3fb4ed618baE(%"core::fmt::Arguments"* noalias nocapture dereferenceable(48)) unnamed_addr #2
; Function Attrs: nonlazybind
define i32 @main(i32 %0, i8** %1) unnamed_addr #6 {
top:
%2 = load volatile i8, i8* getelementptr inbounds ([34 x i8], [34 x i8]* @__rustc_debug_gdb_scripts_section__, i32 0, i32 0), align 1
%3 = sext i32 %0 to i64
; call std::rt::lang_start
%4 = call i64 @_ZN3std2rt10lang_start17hb11772460dd040a5E(void ()* @_ZN10playground4main17hbf379cdc43ed47d6E, i64 %3, i8** %1)
%5 = trunc i64 %4 to i32
ret i32 %5
}
attributes #0 = { inlinehint nonlazybind uwtable "probe-stack"="__rust_probestack" "target-cpu"="x86-64" }
attributes #1 = { noinline nonlazybind uwtable "probe-stack"="__rust_probestack" "target-cpu"="x86-64" }
attributes #2 = { nonlazybind uwtable "probe-stack"="__rust_probestack" "target-cpu"="x86-64" }
attributes #3 = { nofree nosync nounwind readnone speculatable willreturn }
attributes #4 = { cold noinline noreturn nonlazybind uwtable "probe-stack"="__rust_probestack" "target-cpu"="x86-64" }
attributes #5 = { argmemonly nofree nounwind willreturn }
attributes #6 = { nonlazybind "target-cpu"="x86-64" }
attributes #7 = { noreturn }
!llvm.module.flags = !{!8, !9, !10, !11}
!llvm.dbg.cu = !{!12}
!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
!1 = distinct !DIGlobalVariable(name: "<std::rt::lang_start::{closure#0} as core::ops::function::Fn<()>>::{vtable}", scope: null, file: !2, type: !3, isLocal: true, isDefinition: true)
!2 = !DIFile(filename: "<unknown>", directory: "")
!3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 384, align: 64, elements: !6)
!4 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*const ()", baseType: !5, size: 64, align: 64, dwarfAddressSpace: 0)
!5 = !DIBasicType(name: "()", encoding: DW_ATE_unsigned)
!6 = !{!7}
!7 = !DISubrange(count: 6, lowerBound: 0)
!8 = !{i32 7, !"PIC Level", i32 2}
!9 = !{i32 7, !"PIE Level", i32 2}
!10 = !{i32 2, !"RtLibUseGOT", i32 1}
!11 = !{i32 2, !"Debug Info Version", i32 3}
!12 = distinct !DICompileUnit(language: DW_LANG_Rust, file: !13, producer: "clang LLVM (rustc version 1.58.0-nightly (514b38779 2021-10-22))", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !14, globals: !31)
!13 = !DIFile(filename: "src/main.rs", directory: "/playground")
!14 = !{!15, !22}
!15 = !DICompositeType(tag: DW_TAG_enumeration_type, name: "Result", scope: !16, file: !2, baseType: !18, size: 8, align: 8, flags: DIFlagEnumClass, elements: !19)
!16 = !DINamespace(name: "result", scope: !17)
!17 = !DINamespace(name: "core", scope: null)
!18 = !DIBasicType(name: "u8", size: 8, encoding: DW_ATE_unsigned)
!19 = !{!20, !21}
!20 = !DIEnumerator(name: "Ok", value: 0)
!21 = !DIEnumerator(name: "Err", value: 1)
!22 = !DICompositeType(tag: DW_TAG_enumeration_type, name: "Alignment", scope: !23, file: !2, baseType: !18, size: 8, align: 8, flags: DIFlagEnumClass, elements: !26)
!23 = !DINamespace(name: "v1", scope: !24)
!24 = !DINamespace(name: "rt", scope: !25)
!25 = !DINamespace(name: "fmt", scope: !17)
!26 = !{!27, !28, !29, !30}
!27 = !DIEnumerator(name: "Left", value: 0)
!28 = !DIEnumerator(name: "Right", value: 1)
!29 = !DIEnumerator(name: "Center", value: 2)
!30 = !DIEnumerator(name: "Unknown", value: 3)
!31 = !{!0}
!32 = distinct !DISubprogram(name: "spec_next<i32>", linkageName: "_ZN107_$LT$core..ops..range..RangeInclusive$LT$T$GT$$u20$as$u20$core..iter..range..RangeInclusiveIteratorImpl$GT$9spec_next17h8e3e7ff7ce9769faE", scope: !34, file: !33, line: 1005, type: !37, scopeLine: 1005, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !12, templateParams: !47, retainedNodes: !67)
!33 = !DIFile(filename: "/rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/core/src/iter/range.rs", directory: "", checksumkind: CSK_MD5, checksum: "45fcb37f1eabc668842daa3fc437ff9a")
!34 = !DINamespace(name: "{impl#11}", scope: !35)
!35 = !DINamespace(name: "range", scope: !36)
!36 = !DINamespace(name: "iter", scope: !17)
!37 = !DISubroutineType(types: !38)
!38 = !{!39, !56}
!39 = !DICompositeType(tag: DW_TAG_structure_type, name: "Option<i32>", scope: !40, file: !2, size: 64, align: 32, elements: !41, identifier: "520e2877000f087132f8c57f5456517e")
!40 = !DINamespace(name: "option", scope: !17)
!41 = !{!42}
!42 = !DICompositeType(tag: DW_TAG_variant_part, scope: !40, file: !2, size: 64, align: 32, elements: !43, templateParams: !47, identifier: "520e2877000f087132f8c57f5456517e_variant_part", discriminator: !54)
!43 = !{!44, !50}
!44 = !DIDerivedType(tag: DW_TAG_member, name: "None", scope: !42, file: !2, baseType: !45, size: 64, align: 32, extraData: i64 0)
!45 = !DICompositeType(tag: DW_TAG_structure_type, name: "None", scope: !39, file: !2, size: 64, align: 32, elements: !46, templateParams: !47, identifier: "520e2877000f087132f8c57f5456517e::None")
!46 = !{}
!47 = !{!48}
!48 = !DITemplateTypeParameter(name: "T", type: !49)
!49 = !DIBasicType(name: "i32", size: 32, encoding: DW_ATE_signed)
!50 = !DIDerivedType(tag: DW_TAG_member, name: "Some", scope: !42, file: !2, baseType: !51, size: 64, align: 32, extraData: i64 1)
!51 = !DICompositeType(tag: DW_TAG_structure_type, name: "Some", scope: !39, file: !2, size: 64, align: 32, elements: !52, templateParams: !47, identifier: "520e2877000f087132f8c57f5456517e::Some")
!52 = !{!53}
!53 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !51, file: !2, baseType: !49, size: 32, align: 32, offset: 32)
!54 = !DIDerivedType(tag: DW_TAG_member, scope: !40, file: !2, baseType: !55, size: 32, align: 32, flags: DIFlagArtificial)
!55 = !DIBasicType(name: "u32", size: 32, encoding: DW_ATE_unsigned)
!56 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&mut RangeInclusive<i32>", baseType: !57, size: 64, align: 64, dwarfAddressSpace: 0)
!57 = !DICompositeType(tag: DW_TAG_structure_type, name: "RangeInclusive<i32>", scope: !58, file: !2, size: 96, align: 32, elements: !60, templateParams: !65, identifier: "90b9de7dfa46524ba1a7fa25ada17edd")
!58 = !DINamespace(name: "range", scope: !59)
!59 = !DINamespace(name: "ops", scope: !17)
!60 = !{!61, !62, !63}
!61 = !DIDerivedType(tag: DW_TAG_member, name: "start", scope: !57, file: !2, baseType: !49, size: 32, align: 32)
!62 = !DIDerivedType(tag: DW_TAG_member, name: "end", scope: !57, file: !2, baseType: !49, size: 32, align: 32, offset: 32)
!63 = !DIDerivedType(tag: DW_TAG_member, name: "exhausted", scope: !57, file: !2, baseType: !64, size: 8, align: 8, offset: 64)
!64 = !DIBasicType(name: "bool", size: 8, encoding: DW_ATE_boolean)
!65 = !{!66}
!66 = !DITemplateTypeParameter(name: "Idx", type: !49)
!67 = !{!68, !69, !71}
!68 = !DILocalVariable(name: "self", arg: 1, scope: !32, file: !33, line: 1005, type: !56)
!69 = !DILocalVariable(name: "is_iterating", scope: !70, file: !33, line: 1009, type: !64, align: 1)
!70 = distinct !DILexicalBlock(scope: !32, file: !33, line: 1009, column: 9)
!71 = !DILocalVariable(name: "n", scope: !72, file: !33, line: 1012, type: !49, align: 4)
!72 = distinct !DILexicalBlock(scope: !70, file: !33, line: 1012, column: 13)
!73 = !DILocation(line: 1005, column: 18, scope: !32)
!74 = !DILocation(line: 1006, column: 12, scope: !32)
!75 = !DILocation(line: 1009, column: 28, scope: !32)
!76 = !DILocation(line: 1009, column: 41, scope: !32)
!77 = !DILocation(line: 1009, column: 13, scope: !70)
!78 = !DILocation(line: 1007, column: 20, scope: !32)
!79 = !DILocation(line: 1018, column: 6, scope: !32)
!80 = !{i32 0, i32 2}
!81 = !DILocation(line: 1010, column: 17, scope: !70)
!82 = !DILocation(line: 1015, column: 13, scope: !70)
!83 = !DILocation(line: 1016, column: 13, scope: !70)
!84 = !DILocation(line: 1012, column: 54, scope: !70)
!85 = !DILocation(line: 1012, column: 30, scope: !70)
!86 = !DILocation(line: 1012, column: 17, scope: !72)
!87 = !DILocation(line: 1013, column: 26, scope: !72)
!88 = !DILocation(line: 1013, column: 13, scope: !72)
!89 = !DILocation(line: 1010, column: 14, scope: !70)
!90 = !DILocation(line: 1010, column: 9, scope: !70)
!91 = distinct !DISubprogram(name: "__rust_begin_short_backtrace<fn(), ()>", linkageName: "_ZN3std10sys_common9backtrace28__rust_begin_short_backtrace17h4e9f6f38fdde0982E", scope: !93, file: !92, line: 119, type: !96, scopeLine: 119, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !12, templateParams: !105, retainedNodes: !101)
!92 = !DIFile(filename: "/rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/std/src/sys_common/backtrace.rs", directory: "", checksumkind: CSK_MD5, checksum: "6a433c65ecb3674065f414f3ec71fc02")
!93 = !DINamespace(name: "backtrace", scope: !94)
!94 = !DINamespace(name: "sys_common", scope: !95)
!95 = !DINamespace(name: "std", scope: null)
!96 = !DISubroutineType(types: !97)
!97 = !{null, !98}
!98 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "fn()", baseType: !99, size: 64, align: 64, dwarfAddressSpace: 0)
!99 = !DISubroutineType(types: !100)
!100 = !{null}
!101 = !{!102, !103}
!102 = !DILocalVariable(name: "f", arg: 1, scope: !91, file: !92, line: 119, type: !98)
!103 = !DILocalVariable(name: "result", scope: !104, file: !92, line: 123, type: !5, align: 1)
!104 = distinct !DILexicalBlock(scope: !91, file: !92, line: 123, column: 5)
!105 = !{!106, !107}
!106 = !DITemplateTypeParameter(name: "F", type: !98)
!107 = !DITemplateTypeParameter(name: "T", type: !5)
!108 = !DILocation(line: 123, column: 9, scope: !104)
!109 = !DILocation(line: 119, column: 43, scope: !91)
!110 = !DILocation(line: 123, column: 18, scope: !91)
!111 = !DILocation(line: 126, column: 5, scope: !104)
!112 = !DILocation(line: 129, column: 2, scope: !91)
!113 = !DILocation(line: 129, column: 1, scope: !91)
!114 = !DILocation(line: 119, column: 1, scope: !91)
!115 = distinct !DISubprogram(name: "lang_start<()>", linkageName: "_ZN3std2rt10lang_start17hb11772460dd040a5E", scope: !117, file: !116, line: 140, type: !118, scopeLine: 140, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !12, templateParams: !129, retainedNodes: !123)
!116 = !DIFile(filename: "/rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/std/src/rt.rs", directory: "", checksumkind: CSK_MD5, checksum: "9c219f2a7a078f72d46cde0ab6c1673d")
!117 = !DINamespace(name: "rt", scope: !95)
!118 = !DISubroutineType(types: !119)
!119 = !{!120, !98, !120, !121}
!120 = !DIBasicType(name: "isize", size: 64, encoding: DW_ATE_signed)
!121 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*const *const u8", baseType: !122, size: 64, align: 64, dwarfAddressSpace: 0)
!122 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*const u8", baseType: !18, size: 64, align: 64, dwarfAddressSpace: 0)
!123 = !{!124, !125, !126, !127}
!124 = !DILocalVariable(name: "main", arg: 1, scope: !115, file: !116, line: 141, type: !98)
!125 = !DILocalVariable(name: "argc", arg: 2, scope: !115, file: !116, line: 142, type: !120)
!126 = !DILocalVariable(name: "argv", arg: 3, scope: !115, file: !116, line: 143, type: !121)
!127 = !DILocalVariable(name: "v", scope: !128, file: !116, line: 145, type: !120, align: 8)
!128 = distinct !DILexicalBlock(scope: !115, file: !116, line: 145, column: 5)
!129 = !{!107}
!130 = !DILocation(line: 141, column: 5, scope: !115)
!131 = !DILocation(line: 142, column: 5, scope: !115)
!132 = !DILocation(line: 143, column: 5, scope: !115)
!133 = !DILocation(line: 146, column: 10, scope: !115)
!134 = !DILocation(line: 146, column: 9, scope: !115)
!135 = !DILocation(line: 145, column: 17, scope: !115)
!136 = !DILocation(line: 145, column: 12, scope: !115)
!137 = !DILocation(line: 145, column: 12, scope: !128)
!138 = !DILocation(line: 151, column: 2, scope: !115)
!139 = distinct !DISubprogram(name: "{closure#0}<()>", linkageName: "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h911bc1c217c1290cE", scope: !140, file: !116, line: 146, type: !141, scopeLine: 146, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !12, templateParams: !129, retainedNodes: !147)
!140 = !DINamespace(name: "lang_start", scope: !117)
!141 = !DISubroutineType(types: !142)
!142 = !{!49, !143}
!143 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&{closure#0}", baseType: !144, size: 64, align: 64, dwarfAddressSpace: 0)
!144 = !DICompositeType(tag: DW_TAG_structure_type, name: "{closure#0}", scope: !140, file: !2, size: 64, align: 64, elements: !145, templateParams: !46, identifier: "e4bf03276215ab50a77042643bc6c774")
!145 = !{!146}
!146 = !DIDerivedType(tag: DW_TAG_member, name: "main", scope: !144, file: !2, baseType: !98, size: 64, align: 64)
!147 = !{!148}
!148 = !DILocalVariable(name: "main", scope: !139, file: !116, line: 141, type: !98, align: 8)
!149 = !DILocation(line: 141, column: 5, scope: !139)
!150 = !DILocation(line: 146, column: 77, scope: !139)
!151 = !DILocation(line: 146, column: 18, scope: !139)
!152 = !DILocation(line: 146, column: 91, scope: !139)
!153 = distinct !DISubprogram(name: "as_i32", linkageName: "_ZN3std3sys4unix7process14process_common8ExitCode6as_i3217hd13b8893498ff873E", scope: !155, file: !154, line: 474, type: !162, scopeLine: 474, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !12, templateParams: !46, retainedNodes: !165)
!154 = !DIFile(filename: "/rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/std/src/sys/unix/process/process_common.rs", directory: "", checksumkind: CSK_MD5, checksum: "cfab9a537a845e5d2a97a9ac6ebb2d63")
!155 = !DICompositeType(tag: DW_TAG_structure_type, name: "ExitCode", scope: !156, file: !2, size: 8, align: 8, elements: !160, templateParams: !46, identifier: "ca1e859fa2776d27d52773dbcbe2ccd6")
!156 = !DINamespace(name: "process_common", scope: !157)
!157 = !DINamespace(name: "process", scope: !158)
!158 = !DINamespace(name: "unix", scope: !159)
!159 = !DINamespace(name: "sys", scope: !95)
!160 = !{!161}
!161 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !155, file: !2, baseType: !18, size: 8, align: 8)
!162 = !DISubroutineType(types: !163)
!163 = !{!49, !164}
!164 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&ExitCode", baseType: !155, size: 64, align: 64, dwarfAddressSpace: 0)
!165 = !{!166}
!166 = !DILocalVariable(name: "self", arg: 1, scope: !153, file: !154, line: 474, type: !164)
!167 = !DILocation(line: 474, column: 19, scope: !153)
!168 = !DILocation(line: 475, column: 9, scope: !153)
!169 = !DILocation(line: 476, column: 6, scope: !153)
!170 = distinct !DISubprogram(name: "forward_unchecked", linkageName: "_ZN47_$LT$i32$u20$as$u20$core..iter..range..Step$GT$17forward_unchecked17hb65db05a78cf033fE", scope: !171, file: !33, line: 189, type: !172, scopeLine: 189, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !12, templateParams: !46, retainedNodes: !175)
!171 = !DINamespace(name: "{impl#34}", scope: !35)
!172 = !DISubroutineType(types: !173)
!173 = !{!49, !49, !174}
!174 = !DIBasicType(name: "usize", size: 64, encoding: DW_ATE_unsigned)
!175 = !{!176, !177}
!176 = !DILocalVariable(name: "start", arg: 1, scope: !170, file: !33, line: 189, type: !49)
!177 = !DILocalVariable(name: "n", arg: 2, scope: !170, file: !33, line: 189, type: !174)
!178 = !DILocation(line: 189, column: 37, scope: !170)
!179 = !DILocation(line: 189, column: 50, scope: !170)
!180 = !DILocation(line: 191, column: 42, scope: !170)
!181 = !DILocalVariable(name: "self", arg: 1, scope: !182, file: !183, line: 451, type: !49)
!182 = distinct !DISubprogram(name: "unchecked_add", linkageName: "_ZN4core3num21_$LT$impl$u20$i32$GT$13unchecked_add17hd599cda7ea5a4a57E", scope: !184, file: !183, line: 451, type: !186, scopeLine: 451, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !12, templateParams: !46, retainedNodes: !188)
!183 = !DIFile(filename: "/rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/core/src/num/int_macros.rs", directory: "", checksumkind: CSK_MD5, checksum: "97efe768035c6cdeeb8134901fc16322")
!184 = !DINamespace(name: "{impl#2}", scope: !185)
!185 = !DINamespace(name: "num", scope: !17)
!186 = !DISubroutineType(types: !187)
!187 = !{!49, !49, !49}
!188 = !{!181, !189}
!189 = !DILocalVariable(name: "rhs", arg: 2, scope: !182, file: !183, line: 451, type: !49)
!190 = !DILocation(line: 451, column: 43, scope: !182, inlinedAt: !191)
!191 = distinct !DILocation(line: 191, column: 22, scope: !170)
!192 = !DILocation(line: 451, column: 49, scope: !182, inlinedAt: !191)
!193 = !DILocation(line: 454, column: 22, scope: !182, inlinedAt: !191)
!194 = !DILocation(line: 191, column: 22, scope: !170)
!195 = !DILocation(line: 192, column: 10, scope: !170)
!196 = distinct !DISubprogram(name: "le", linkageName: "_ZN4core3cmp5impls55_$LT$impl$u20$core..cmp..PartialOrd$u20$for$u20$i32$GT$2le17h28177f5bc7fa17dfE", scope: !198, file: !197, line: 1329, type: !201, scopeLine: 1329, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !12, templateParams: !46, retainedNodes: !204)
!197 = !DIFile(filename: "/rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/core/src/cmp.rs", directory: "", checksumkind: CSK_MD5, checksum: "e2c34f30182490ef541be96b28e616cf")
!198 = !DINamespace(name: "{impl#72}", scope: !199)
!199 = !DINamespace(name: "impls", scope: !200)
!200 = !DINamespace(name: "cmp", scope: !17)
!201 = !DISubroutineType(types: !202)
!202 = !{!64, !203, !203}
!203 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&i32", baseType: !49, size: 64, align: 64, dwarfAddressSpace: 0)
!204 = !{!205, !206}
!205 = !DILocalVariable(name: "self", arg: 1, scope: !196, file: !197, line: 1329, type: !203)
!206 = !DILocalVariable(name: "other", arg: 2, scope: !196, file: !197, line: 1329, type: !203)
!207 = !DILocation(line: 1329, column: 23, scope: !196)
!208 = !DILocation(line: 1329, column: 30, scope: !196)
!209 = !DILocation(line: 1329, column: 52, scope: !196)
!210 = !DILocation(line: 1329, column: 63, scope: !196)
!211 = !DILocation(line: 1329, column: 73, scope: !196)
!212 = distinct !DISubprogram(name: "lt", linkageName: "_ZN4core3cmp5impls55_$LT$impl$u20$core..cmp..PartialOrd$u20$for$u20$i32$GT$2lt17h3b55dba9ab46e68cE", scope: !198, file: !197, line: 1327, type: !201, scopeLine: 1327, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !12, templateParams: !46, retainedNodes: !213)
!213 = !{!214, !215}
!214 = !DILocalVariable(name: "self", arg: 1, scope: !212, file: !197, line: 1327, type: !203)
!215 = !DILocalVariable(name: "other", arg: 2, scope: !212, file: !197, line: 1327, type: !203)
!216 = !DILocation(line: 1327, column: 23, scope: !212)
!217 = !DILocation(line: 1327, column: 30, scope: !212)
!218 = !DILocation(line: 1327, column: 52, scope: !212)
!219 = !DILocation(line: 1327, column: 62, scope: !212)
!220 = !DILocation(line: 1327, column: 72, scope: !212)
!221 = distinct !DISubprogram(name: "new<i32>", linkageName: "_ZN4core3fmt10ArgumentV13new17h37be4d5dded1d744E", scope: !223, file: !222, line: 314, type: !265, scopeLine: 314, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !12, templateParams: !47, retainedNodes: !270)
!222 = !DIFile(filename: "/rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/core/src/fmt/mod.rs", directory: "", checksumkind: CSK_MD5, checksum: "8e7ebdafdaa535d03fe8490be5d0b5ea")
!223 = !DICompositeType(tag: DW_TAG_structure_type, name: "ArgumentV1", scope: !25, file: !2, size: 128, align: 64, elements: !224, templateParams: !46, identifier: "ac010a02bd9b96aa19aa232e12654739")
!224 = !{!225, !228}
!225 = !DIDerivedType(tag: DW_TAG_member, name: "value", scope: !223, file: !2, baseType: !226, size: 64, align: 64)
!226 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&Opaque", baseType: !227, size: 64, align: 64, dwarfAddressSpace: 0)
!227 = !DICompositeType(tag: DW_TAG_structure_type, name: "Opaque", file: !2, align: 8, elements: !46, identifier: "d46c5fede2d672f276c459bb9be69e5b")
!228 = !DIDerivedType(tag: DW_TAG_member, name: "formatter", scope: !223, file: !2, baseType: !229, size: 64, align: 64, offset: 64)
!229 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "fn(&core::fmt::::Opaque, &mut core::fmt::Formatter) -> core::result::Result<(), core::fmt::Error>", baseType: !230, size: 64, align: 64, dwarfAddressSpace: 0)
!230 = !DISubroutineType(types: !231)
!231 = !{!15, !226, !232}
!232 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&mut Formatter", baseType: !233, size: 64, align: 64, dwarfAddressSpace: 0)
!233 = !DICompositeType(tag: DW_TAG_structure_type, name: "Formatter", scope: !25, file: !2, size: 512, align: 64, elements: !234, templateParams: !46, identifier: "eeb2c223a1c55549d9d68e916bdb5863")
!234 = !{!235, !236, !238, !239, !254, !255}
!235 = !DIDerivedType(tag: DW_TAG_member, name: "flags", scope: !233, file: !2, baseType: !55, size: 32, align: 32, offset: 384)
!236 = !DIDerivedType(tag: DW_TAG_member, name: "fill", scope: !233, file: !2, baseType: !237, size: 32, align: 32, offset: 416)
!237 = !DIBasicType(name: "char", size: 32, encoding: DW_ATE_unsigned_char)
!238 = !DIDerivedType(tag: DW_TAG_member, name: "align", scope: !233, file: !2, baseType: !22, size: 8, align: 8, offset: 448)
!239 = !DIDerivedType(tag: DW_TAG_member, name: "width", scope: !233, file: !2, baseType: !240, size: 128, align: 64)
!240 = !DICompositeType(tag: DW_TAG_structure_type, name: "Option<usize>", scope: !40, file: !2, size: 128, align: 64, elements: !241, identifier: "11257ec9ef907446ca7fd243dc2b39f3")
!241 = !{!242}
!242 = !DICompositeType(tag: DW_TAG_variant_part, scope: !40, file: !2, size: 128, align: 64, elements: !243, templateParams: !246, identifier: "11257ec9ef907446ca7fd243dc2b39f3_variant_part", discriminator: !252)
!243 = !{!244, !248}
!244 = !DIDerivedType(tag: DW_TAG_member, name: "None", scope: !242, file: !2, baseType: !245, size: 128, align: 64, extraData: i64 0)
!245 = !DICompositeType(tag: DW_TAG_structure_type, name: "None", scope: !240, file: !2, size: 128, align: 64, elements: !46, templateParams: !246, identifier: "11257ec9ef907446ca7fd243dc2b39f3::None")
!246 = !{!247}
!247 = !DITemplateTypeParameter(name: "T", type: !174)
!248 = !DIDerivedType(tag: DW_TAG_member, name: "Some", scope: !242, file: !2, baseType: !249, size: 128, align: 64, extraData: i64 1)
!249 = !DICompositeType(tag: DW_TAG_structure_type, name: "Some", scope: !240, file: !2, size: 128, align: 64, elements: !250, templateParams: !246, identifier: "11257ec9ef907446ca7fd243dc2b39f3::Some")
!250 = !{!251}
!251 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !249, file: !2, baseType: !174, size: 64, align: 64, offset: 64)
!252 = !DIDerivedType(tag: DW_TAG_member, scope: !40, file: !2, baseType: !253, size: 64, align: 64, flags: DIFlagArtificial)
!253 = !DIBasicType(name: "u64", size: 64, encoding: DW_ATE_unsigned)
!254 = !DIDerivedType(tag: DW_TAG_member, name: "precision", scope: !233, file: !2, baseType: !240, size: 128, align: 64, offset: 128)
!255 = !DIDerivedType(tag: DW_TAG_member, name: "buf", scope: !233, file: !2, baseType: !256, size: 128, align: 64, offset: 256)
!256 = !DICompositeType(tag: DW_TAG_structure_type, name: "&mut dyn core::fmt::Write", file: !2, size: 128, align: 64, elements: !257, templateParams: !46, identifier: "487e8b1fb6484ac9c147b9169fe7341")
!257 = !{!258, !260}
!258 = !DIDerivedType(tag: DW_TAG_member, name: "pointer", scope: !256, file: !2, baseType: !259, size: 64, align: 64, flags: DIFlagArtificial)
!259 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*mut u8", baseType: !18, size: 64, align: 64, dwarfAddressSpace: 0)
!260 = !DIDerivedType(tag: DW_TAG_member, name: "vtable", scope: !256, file: !2, baseType: !261, size: 64, align: 64, offset: 64, flags: DIFlagArtificial)
!261 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&[usize; 3]", baseType: !262, size: 64, align: 64, dwarfAddressSpace: 0)
!262 = !DICompositeType(tag: DW_TAG_array_type, baseType: !174, size: 192, align: 64, elements: !263)
!263 = !{!264}
!264 = !DISubrange(count: 3, lowerBound: 0)
!265 = !DISubroutineType(types: !266)
!266 = !{!223, !203, !267}
!267 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "fn(&i32, &mut core::fmt::Formatter) -> core::result::Result<(), core::fmt::Error>", baseType: !268, size: 64, align: 64, dwarfAddressSpace: 0)
!268 = !DISubroutineType(types: !269)
!269 = !{!15, !203, !232}
!270 = !{!271, !272}
!271 = !DILocalVariable(name: "x", arg: 1, scope: !221, file: !222, line: 314, type: !203)
!272 = !DILocalVariable(name: "f", arg: 2, scope: !221, file: !222, line: 314, type: !267)
!273 = !DILocation(line: 314, column: 23, scope: !221)
!274 = !DILocation(line: 314, column: 33, scope: !221)
!275 = !DILocation(line: 323, column: 42, scope: !221)
!276 = !DILocation(line: 323, column: 68, scope: !221)
!277 = !DILocation(line: 323, column: 18, scope: !221)
!278 = !DILocation(line: 324, column: 6, scope: !221)
!279 = distinct !DISubprogram(name: "new_v1", linkageName: "_ZN4core3fmt9Arguments6new_v117h4acf08bc939b8403E", scope: !280, file: !222, line: 361, type: !342, scopeLine: 361, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !12, templateParams: !46, retainedNodes: !344)
!280 = !DICompositeType(tag: DW_TAG_structure_type, name: "Arguments", scope: !25, file: !2, size: 384, align: 64, elements: !281, templateParams: !46, identifier: "e6d3679adb93c37775e378ef88403188")
!281 = !{!282, !292, !336}
!282 = !DIDerivedType(tag: DW_TAG_member, name: "pieces", scope: !280, file: !2, baseType: !283, size: 128, align: 64)
!283 = !DICompositeType(tag: DW_TAG_structure_type, name: "&[&str]", file: !2, size: 128, align: 64, elements: !284, templateParams: !46, identifier: "e5181a2ba73cefd2b9372dc5646453a9")
!284 = !{!285, !291}
!285 = !DIDerivedType(tag: DW_TAG_member, name: "data_ptr", scope: !283, file: !2, baseType: !286, size: 64, align: 64)
!286 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*const &str", baseType: !287, size: 64, align: 64, dwarfAddressSpace: 0)
!287 = !DICompositeType(tag: DW_TAG_structure_type, name: "&str", file: !2, size: 128, align: 64, elements: !288, templateParams: !46, identifier: "7ef2a91eecc7bcf4b4aaea2dbce79437")
!288 = !{!289, !290}
!289 = !DIDerivedType(tag: DW_TAG_member, name: "data_ptr", scope: !287, file: !2, baseType: !122, size: 64, align: 64)
!290 = !DIDerivedType(tag: DW_TAG_member, name: "length", scope: !287, file: !2, baseType: !174, size: 64, align: 64, offset: 64)
!291 = !DIDerivedType(tag: DW_TAG_member, name: "length", scope: !283, file: !2, baseType: !174, size: 64, align: 64, offset: 64)
!292 = !DIDerivedType(tag: DW_TAG_member, name: "fmt", scope: !280, file: !2, baseType: !293, size: 128, align: 64, offset: 128)
!293 = !DICompositeType(tag: DW_TAG_structure_type, name: "Option<&[core::fmt::rt::v1::Argument]>", scope: !40, file: !2, size: 128, align: 64, elements: !294, identifier: "31a009a38fcfa5d258e21ede6787dd5")
!294 = !{!295}
!295 = !DICompositeType(tag: DW_TAG_variant_part, scope: !40, file: !2, size: 128, align: 64, elements: !296, templateParams: !299, identifier: "31a009a38fcfa5d258e21ede6787dd5_variant_part", discriminator: !252)
!296 = !{!297, !332}
!297 = !DIDerivedType(tag: DW_TAG_member, name: "None", scope: !295, file: !2, baseType: !298, size: 128, align: 64, extraData: i64 0)
!298 = !DICompositeType(tag: DW_TAG_structure_type, name: "None", scope: !293, file: !2, size: 128, align: 64, elements: !46, templateParams: !299, identifier: "31a009a38fcfa5d258e21ede6787dd5::None")
!299 = !{!300}
!300 = !DITemplateTypeParameter(name: "T", type: !301)
!301 = !DICompositeType(tag: DW_TAG_structure_type, name: "&[core::fmt::rt::v1::Argument]", file: !2, size: 128, align: 64, elements: !302, templateParams: !46, identifier: "4c36353985b6a8c2673f57552eba944f")
!302 = !{!303, !331}
!303 = !DIDerivedType(tag: DW_TAG_member, name: "data_ptr", scope: !301, file: !2, baseType: !304, size: 64, align: 64)
!304 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*const Argument", baseType: !305, size: 64, align: 64, dwarfAddressSpace: 0)
!305 = !DICompositeType(tag: DW_TAG_structure_type, name: "Argument", scope: !23, file: !2, size: 448, align: 64, elements: !306, templateParams: !46, identifier: "65f314ae43c98b4dc1fc5bba5faf3d14")
!306 = !{!307, !308}
!307 = !DIDerivedType(tag: DW_TAG_member, name: "position", scope: !305, file: !2, baseType: !174, size: 64, align: 64)
!308 = !DIDerivedType(tag: DW_TAG_member, name: "format", scope: !305, file: !2, baseType: !309, size: 384, align: 64, offset: 64)
!309 = !DICompositeType(tag: DW_TAG_structure_type, name: "FormatSpec", scope: !23, file: !2, size: 384, align: 64, elements: !310, templateParams: !46, identifier: "58e8b708e3b9d3b396f7b9f69c273605")
!310 = !{!311, !312, !313, !314, !330}
!311 = !DIDerivedType(tag: DW_TAG_member, name: "fill", scope: !309, file: !2, baseType: !237, size: 32, align: 32, offset: 256)
!312 = !DIDerivedType(tag: DW_TAG_member, name: "align", scope: !309, file: !2, baseType: !22, size: 8, align: 8, offset: 320)
!313 = !DIDerivedType(tag: DW_TAG_member, name: "flags", scope: !309, file: !2, baseType: !55, size: 32, align: 32, offset: 288)
!314 = !DIDerivedType(tag: DW_TAG_member, name: "precision", scope: !309, file: !2, baseType: !315, size: 128, align: 64)
!315 = !DICompositeType(tag: DW_TAG_structure_type, name: "Count", scope: !23, file: !2, size: 128, align: 64, elements: !316, identifier: "be69290f282e8ede7492423d8ac36353")
!316 = !{!317}
!317 = !DICompositeType(tag: DW_TAG_variant_part, scope: !23, file: !2, size: 128, align: 64, elements: !318, templateParams: !46, identifier: "be69290f282e8ede7492423d8ac36353_variant_part", discriminator: !329)
!318 = !{!319, !323, !327}
!319 = !DIDerivedType(tag: DW_TAG_member, name: "Is", scope: !317, file: !2, baseType: !320, size: 128, align: 64, extraData: i64 0)
!320 = !DICompositeType(tag: DW_TAG_structure_type, name: "Is", scope: !315, file: !2, size: 128, align: 64, elements: !321, templateParams: !46, identifier: "be69290f282e8ede7492423d8ac36353::Is")
!321 = !{!322}
!322 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !320, file: !2, baseType: !174, size: 64, align: 64, offset: 64)
!323 = !DIDerivedType(tag: DW_TAG_member, name: "Param", scope: !317, file: !2, baseType: !324, size: 128, align: 64, extraData: i64 1)
!324 = !DICompositeType(tag: DW_TAG_structure_type, name: "Param", scope: !315, file: !2, size: 128, align: 64, elements: !325, templateParams: !46, identifier: "be69290f282e8ede7492423d8ac36353::Param")
!325 = !{!326}
!326 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !324, file: !2, baseType: !174, size: 64, align: 64, offset: 64)
!327 = !DIDerivedType(tag: DW_TAG_member, name: "Implied", scope: !317, file: !2, baseType: !328, size: 128, align: 64, extraData: i64 2)
!328 = !DICompositeType(tag: DW_TAG_structure_type, name: "Implied", scope: !315, file: !2, size: 128, align: 64, elements: !46, templateParams: !46, identifier: "be69290f282e8ede7492423d8ac36353::Implied")
!329 = !DIDerivedType(tag: DW_TAG_member, scope: !23, file: !2, baseType: !253, size: 64, align: 64, flags: DIFlagArtificial)
!330 = !DIDerivedType(tag: DW_TAG_member, name: "width", scope: !309, file: !2, baseType: !315, size: 128, align: 64, offset: 128)
!331 = !DIDerivedType(tag: DW_TAG_member, name: "length", scope: !301, file: !2, baseType: !174, size: 64, align: 64, offset: 64)
!332 = !DIDerivedType(tag: DW_TAG_member, name: "Some", scope: !295, file: !2, baseType: !333, size: 128, align: 64)
!333 = !DICompositeType(tag: DW_TAG_structure_type, name: "Some", scope: !293, file: !2, size: 128, align: 64, elements: !334, templateParams: !299, identifier: "31a009a38fcfa5d258e21ede6787dd5::Some")
!334 = !{!335}
!335 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !333, file: !2, baseType: !301, size: 128, align: 64)
!336 = !DIDerivedType(tag: DW_TAG_member, name: "args", scope: !280, file: !2, baseType: !337, size: 128, align: 64, offset: 256)
!337 = !DICompositeType(tag: DW_TAG_structure_type, name: "&[core::fmt::ArgumentV1]", file: !2, size: 128, align: 64, elements: !338, templateParams: !46, identifier: "9dc5fb40bee74a1aa75875a4d6f45f73")
!338 = !{!339, !341}
!339 = !DIDerivedType(tag: DW_TAG_member, name: "data_ptr", scope: !337, file: !2, baseType: !340, size: 64, align: 64)
!340 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*const ArgumentV1", baseType: !223, size: 64, align: 64, dwarfAddressSpace: 0)
!341 = !DIDerivedType(tag: DW_TAG_member, name: "length", scope: !337, file: !2, baseType: !174, size: 64, align: 64, offset: 64)
!342 = !DISubroutineType(types: !343)
!343 = !{!280, !283, !337}
!344 = !{!345, !346}
!345 = !DILocalVariable(name: "pieces", arg: 1, scope: !279, file: !222, line: 361, type: !283)
!346 = !DILocalVariable(name: "args", arg: 2, scope: !279, file: !222, line: 361, type: !337)
!347 = !DILocation(line: 361, column: 25, scope: !279)
!348 = !DILocation(line: 361, column: 53, scope: !279)
!349 = !DILocation(line: 362, column: 12, scope: !279)
!350 = !DILocation(line: 362, column: 56, scope: !279)
!351 = !DILocation(line: 362, column: 41, scope: !279)
!352 = !{i8 0, i8 2}
!353 = !DILocation(line: 365, column: 34, scope: !279)
!354 = !DILocation(line: 365, column: 9, scope: !279)
!355 = !DILocation(line: 366, column: 6, scope: !279)
!356 = !DILocation(line: 363, column: 13, scope: !279)
!357 = distinct !DISubprogram(name: "replace<i32>", linkageName: "_ZN4core3mem7replace17he9d4dcb34a4ae394E", scope: !359, file: !358, line: 823, type: !360, scopeLine: 823, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !12, templateParams: !47, retainedNodes: !363)
!358 = !DIFile(filename: "/rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/core/src/mem/mod.rs", directory: "", checksumkind: CSK_MD5, checksum: "883d51e5f943e6c9bb03927c5ddb0f4d")
!359 = !DINamespace(name: "mem", scope: !17)
!360 = !DISubroutineType(types: !361)
!361 = !{!49, !362, !49}
!362 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&mut i32", baseType: !49, size: 64, align: 64, dwarfAddressSpace: 0)
!363 = !{!364, !365, !366}
!364 = !DILocalVariable(name: "dest", arg: 1, scope: !357, file: !358, line: 823, type: !362)
!365 = !DILocalVariable(name: "src", arg: 2, scope: !357, file: !358, line: 823, type: !49)
!366 = !DILocalVariable(name: "result", scope: !367, file: !358, line: 828, type: !49, align: 4)
!367 = distinct !DILexicalBlock(scope: !357, file: !358, line: 828, column: 9)
!368 = !DILocation(line: 823, column: 25, scope: !357)
!369 = !DILocation(line: 823, column: 39, scope: !357)
!370 = !DILocation(line: 828, column: 13, scope: !357)
!371 = !DILocation(line: 828, column: 22, scope: !357)
!372 = !DILocation(line: 828, column: 13, scope: !367)
!373 = !DILocation(line: 829, column: 26, scope: !367)
!374 = !DILocation(line: 829, column: 9, scope: !367)
!375 = !DILocation(line: 832, column: 1, scope: !357)
!376 = !DILocation(line: 832, column: 2, scope: !357)
!377 = !DILocation(line: 831, column: 5, scope: !357)
!378 = !DILocation(line: 823, column: 1, scope: !357)
!379 = distinct !DISubprogram(name: "new<i32>", linkageName: "_ZN4core3ops5range25RangeInclusive$LT$Idx$GT$3new17h2849cd64748fe5c1E", scope: !57, file: !380, line: 374, type: !381, scopeLine: 374, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !12, templateParams: !65, retainedNodes: !383)
!380 = !DIFile(filename: "/rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/core/src/ops/range.rs", directory: "", checksumkind: CSK_MD5, checksum: "8be113bc81207e75a8f9e27eced95822")
!381 = !DISubroutineType(types: !382)
!382 = !{!57, !49, !49}
!383 = !{!384, !385}
!384 = !DILocalVariable(name: "start", arg: 1, scope: !379, file: !380, line: 374, type: !49)
!385 = !DILocalVariable(name: "end", arg: 2, scope: !379, file: !380, line: 374, type: !49)
!386 = !DILocation(line: 374, column: 22, scope: !379)
!387 = !DILocation(line: 374, column: 34, scope: !379)
!388 = !DILocation(line: 375, column: 9, scope: !379)
!389 = !DILocation(line: 376, column: 6, scope: !379)
!390 = distinct !DISubprogram(name: "is_empty<i32>", linkageName: "_ZN4core3ops5range25RangeInclusive$LT$Idx$GT$8is_empty17ha9ee05d41a3bd578E", scope: !57, file: !380, line: 539, type: !391, scopeLine: 539, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !12, templateParams: !65, retainedNodes: !394)
!391 = !DISubroutineType(types: !392)
!392 = !{!64, !393}
!393 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&RangeInclusive<i32>", baseType: !57, size: 64, align: 64, dwarfAddressSpace: 0)
!394 = !{!395}
!395 = !DILocalVariable(name: "self", arg: 1, scope: !390, file: !380, line: 539, type: !393)
!396 = !DILocation(line: 539, column: 21, scope: !390)
!397 = !DILocation(line: 540, column: 9, scope: !390)
!398 = !DILocation(line: 540, column: 29, scope: !390)
!399 = !DILocation(line: 540, column: 43, scope: !390)
!400 = !DILocation(line: 540, column: 28, scope: !390)
!401 = !DILocation(line: 541, column: 6, scope: !390)
!402 = !DILocation(line: 540, column: 27, scope: !390)
!403 = distinct !DISubprogram(name: "call_once<std::rt::lang_start::{closure#0}, ()>", linkageName: "_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h6c2c84984480ea31E", scope: !405, file: !404, line: 227, type: !407, scopeLine: 227, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !12, templateParams: !413, retainedNodes: !410)
!404 = !DIFile(filename: "/rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/core/src/ops/function.rs", directory: "", checksumkind: CSK_MD5, checksum: "1a40c014f8a7b8b7cd612b461a47e902")
!405 = !DINamespace(name: "FnOnce", scope: !406)
!406 = !DINamespace(name: "function", scope: !59)
!407 = !DISubroutineType(types: !408)
!408 = !{!49, !409}
!409 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*mut {closure#0}", baseType: !144, size: 64, align: 64, dwarfAddressSpace: 0)
!410 = !{!411, !412}
!411 = !DILocalVariable(arg: 1, scope: !403, file: !404, line: 227, type: !409)
!412 = !DILocalVariable(arg: 2, scope: !403, file: !404, line: 227, type: !5)
!413 = !{!414, !415}
!414 = !DITemplateTypeParameter(name: "Self", type: !144)
!415 = !DITemplateTypeParameter(name: "Args", type: !5)
!416 = !DILocation(line: 227, column: 5, scope: !403)
!417 = distinct !DISubprogram(name: "call_once<fn(), ()>", linkageName: "_ZN4core3ops8function6FnOnce9call_once17h18c2ac22b80f40d9E", scope: !405, file: !404, line: 227, type: !96, scopeLine: 227, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !12, templateParams: !421, retainedNodes: !418)
!418 = !{!419, !420}
!419 = !DILocalVariable(arg: 1, scope: !417, file: !404, line: 227, type: !98)
!420 = !DILocalVariable(arg: 2, scope: !417, file: !404, line: 227, type: !5)
!421 = !{!422, !415}
!422 = !DITemplateTypeParameter(name: "Self", type: !98)
!423 = !DILocation(line: 227, column: 5, scope: !417)
!424 = distinct !DISubprogram(name: "call_once<std::rt::lang_start::{closure#0}, ()>", linkageName: "_ZN4core3ops8function6FnOnce9call_once17hbd05cccd3153e2b1E", scope: !405, file: !404, line: 227, type: !425, scopeLine: 227, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !12, templateParams: !413, retainedNodes: !427)
!425 = !DISubroutineType(types: !426)
!426 = !{!49, !144}
!427 = !{!428, !429}
!428 = !DILocalVariable(arg: 1, scope: !424, file: !404, line: 227, type: !144)
!429 = !DILocalVariable(arg: 2, scope: !424, file: !404, line: 227, type: !5)
!430 = !DILocation(line: 227, column: 5, scope: !424)
!431 = distinct !DISubprogram(name: "read<i32>", linkageName: "_ZN4core3ptr4read17hc3739d5fa6d04dd3E", scope: !433, file: !432, line: 683, type: !434, scopeLine: 683, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !12, templateParams: !47, retainedNodes: !437)
!432 = !DIFile(filename: "/rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/core/src/ptr/mod.rs", directory: "", checksumkind: CSK_MD5, checksum: "207736266ff0d04d675044b37a0a2de6")
!433 = !DINamespace(name: "ptr", scope: !17)
!434 = !DISubroutineType(types: !435)
!435 = !{!49, !436}
!436 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*const i32", baseType: !49, size: 64, align: 64, dwarfAddressSpace: 0)
!437 = !{!438, !439}
!438 = !DILocalVariable(name: "src", arg: 1, scope: !431, file: !432, line: 683, type: !436)
!439 = !DILocalVariable(name: "tmp", scope: !440, file: !432, line: 691, type: !441, align: 4)
!440 = distinct !DILexicalBlock(scope: !431, file: !432, line: 691, column: 5)
!441 = !DICompositeType(tag: DW_TAG_union_type, name: "MaybeUninit<i32>", scope: !442, file: !2, size: 32, align: 32, elements: !443, templateParams: !47, identifier: "66e75c82d90d226e8e77c522990a166a")
!442 = !DINamespace(name: "maybe_uninit", scope: !359)
!443 = !{!444, !445}
!444 = !DIDerivedType(tag: DW_TAG_member, name: "uninit", scope: !441, file: !2, baseType: !5, align: 8)
!445 = !DIDerivedType(tag: DW_TAG_member, name: "value", scope: !441, file: !2, baseType: !446, size: 32, align: 32)
!446 = !DICompositeType(tag: DW_TAG_structure_type, name: "ManuallyDrop<i32>", scope: !447, file: !2, size: 32, align: 32, elements: !448, templateParams: !47, identifier: "a4316a105d289e2ec476219e899a3171")
!447 = !DINamespace(name: "manually_drop", scope: !359)
!448 = !{!449}
!449 = !DIDerivedType(tag: DW_TAG_member, name: "value", scope: !446, file: !2, baseType: !49, size: 32, align: 32)
!450 = !DILocation(line: 683, column: 29, scope: !431)
!451 = !DILocation(line: 691, column: 9, scope: !440)
!452 = !DILocation(line: 320, column: 9, scope: !453, inlinedAt: !457)
!453 = distinct !DISubprogram(name: "uninit<i32>", linkageName: "_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$6uninit17h8ebaab96a4cb3e59E", scope: !441, file: !454, line: 319, type: !455, scopeLine: 319, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !12, templateParams: !47, retainedNodes: !46)
!454 = !DIFile(filename: "/rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/core/src/mem/maybe_uninit.rs", directory: "", checksumkind: CSK_MD5, checksum: "d44050704bbee448fe46fd3678200ab5")
!455 = !DISubroutineType(types: !456)
!456 = !{!441}
!457 = distinct !DILocation(line: 691, column: 19, scope: !431)
!458 = !DILocation(line: 321, column: 6, scope: !453, inlinedAt: !457)
!459 = !DILocation(line: 691, column: 19, scope: !431)
!460 = !DILocalVariable(name: "self", arg: 1, scope: !461, file: !454, line: 572, type: !465)
!461 = distinct !DISubprogram(name: "as_mut_ptr<i32>", linkageName: "_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$10as_mut_ptr17h76fcf45bfc4328a4E", scope: !441, file: !454, line: 572, type: !462, scopeLine: 572, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !12, templateParams: !47, retainedNodes: !466)
!462 = !DISubroutineType(types: !463)
!463 = !{!464, !465}
!464 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*mut i32", baseType: !49, size: 64, align: 64, dwarfAddressSpace: 0)
!465 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&mut MaybeUninit<i32>", baseType: !441, size: 64, align: 64, dwarfAddressSpace: 0)
!466 = !{!460}
!467 = !DILocation(line: 572, column: 29, scope: !461, inlinedAt: !468)
!468 = distinct !DILocation(line: 699, column: 34, scope: !440)
!469 = !DILocation(line: 699, column: 34, scope: !440)
!470 = !DILocation(line: 699, column: 9, scope: !440)
!471 = !DILocation(line: 700, column: 9, scope: !440)
!472 = !DILocalVariable(name: "self", arg: 1, scope: !473, file: !454, line: 627, type: !441)
!473 = distinct !DISubprogram(name: "assume_init<i32>", linkageName: "_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$11assume_init17h8895432f87aef6bbE", scope: !441, file: !454, line: 627, type: !474, scopeLine: 627, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !12, templateParams: !47, retainedNodes: !484)
!474 = !DISubroutineType(types: !475)
!475 = !{!49, !441, !476}
!476 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&Location", baseType: !477, size: 64, align: 64, dwarfAddressSpace: 0)
!477 = !DICompositeType(tag: DW_TAG_structure_type, name: "Location", scope: !478, file: !2, size: 192, align: 64, elements: !480, templateParams: !46, identifier: "4a07edf916eb65d5eaff3de67e773412")
!478 = !DINamespace(name: "location", scope: !479)
!479 = !DINamespace(name: "panic", scope: !17)
!480 = !{!481, !482, !483}
!481 = !DIDerivedType(tag: DW_TAG_member, name: "file", scope: !477, file: !2, baseType: !287, size: 128, align: 64)
!482 = !DIDerivedType(tag: DW_TAG_member, name: "line", scope: !477, file: !2, baseType: !55, size: 32, align: 32, offset: 128)
!483 = !DIDerivedType(tag: DW_TAG_member, name: "col", scope: !477, file: !2, baseType: !55, size: 32, align: 32, offset: 160)
!484 = !{!472}
!485 = !DILocation(line: 627, column: 37, scope: !473, inlinedAt: !486)
!486 = distinct !DILocation(line: 700, column: 9, scope: !440)
!487 = !DILocalVariable(name: "slot", arg: 1, scope: !488, file: !489, line: 87, type: !446)
!488 = distinct !DISubprogram(name: "into_inner<i32>", linkageName: "_ZN4core3mem13manually_drop21ManuallyDrop$LT$T$GT$10into_inner17h40bbb50fef1b9779E", scope: !446, file: !489, line: 87, type: !490, scopeLine: 87, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !12, templateParams: !47, retainedNodes: !492)
!489 = !DIFile(filename: "/rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/core/src/mem/manually_drop.rs", directory: "", checksumkind: CSK_MD5, checksum: "3ee3636c2454161473c2353da5f45532")
!490 = !DISubroutineType(types: !491)
!491 = !{!49, !446}
!492 = !{!487}
!493 = !DILocation(line: 87, column: 29, scope: !488, inlinedAt: !494)
!494 = distinct !DILocation(line: 632, column: 13, scope: !473, inlinedAt: !486)
!495 = !DILocation(line: 702, column: 2, scope: !431)
!496 = distinct !DISubprogram(name: "write<i32>", linkageName: "_ZN4core3ptr5write17h7770e0bcdd7264bbE", scope: !433, file: !432, line: 878, type: !497, scopeLine: 878, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !12, templateParams: !47, retainedNodes: !499)
!497 = !DISubroutineType(types: !498)
!498 = !{null, !464, !49}
!499 = !{!500, !501}
!500 = !DILocalVariable(name: "dst", arg: 1, scope: !496, file: !432, line: 878, type: !464)
!501 = !DILocalVariable(name: "src", arg: 2, scope: !496, file: !432, line: 878, type: !49)
!502 = !DILocation(line: 878, column: 30, scope: !496)
!503 = !DILocation(line: 878, column: 43, scope: !496)
!504 = !DILocation(line: 890, column: 9, scope: !496)
!505 = !DILocation(line: 893, column: 2, scope: !496)
!506 = distinct !DISubprogram(name: "drop_in_place<std::rt::lang_start::{closure#0}>", linkageName: "_ZN4core3ptr85drop_in_place$LT$std..rt..lang_start$LT$$LP$$RP$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$17h3915719e248dede1E", scope: !433, file: !432, line: 188, type: !507, scopeLine: 188, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !12, templateParams: !511, retainedNodes: !509)
!507 = !DISubroutineType(types: !508)
!508 = !{null, !409}
!509 = !{!510}
!510 = !DILocalVariable(arg: 1, scope: !506, file: !432, line: 188, type: !409)
!511 = !{!512}
!512 = !DITemplateTypeParameter(name: "T", type: !144)
!513 = !DILocation(line: 188, column: 1, scope: !506)
!514 = distinct !DISubprogram(name: "black_box<()>", linkageName: "_ZN4core4hint9black_box17h7b40df1726849b56E", scope: !516, file: !515, line: 157, type: !517, scopeLine: 157, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !12, templateParams: !129, retainedNodes: !519)
!515 = !DIFile(filename: "/rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/core/src/hint.rs", directory: "", checksumkind: CSK_MD5, checksum: "353ba7433a0379654c9fa1a930951b37")
!516 = !DINamespace(name: "hint", scope: !17)
!517 = !DISubroutineType(types: !518)
!518 = !{null, !5}
!519 = !{!520}
!520 = !DILocalVariable(name: "dummy", arg: 1, scope: !514, file: !515, line: 157, type: !5)
!521 = !DILocation(line: 157, column: 21, scope: !514)
!522 = !DILocation(line: 158, column: 5, scope: !514)
!523 = !{i32 3165097}
!524 = !DILocation(line: 159, column: 2, scope: !514)
!525 = distinct !DISubprogram(name: "next<i32>", linkageName: "_ZN4core4iter5range110_$LT$impl$u20$core..iter..traits..iterator..Iterator$u20$for$u20$core..ops..range..RangeInclusive$LT$A$GT$$GT$4next17h3cc42889a4f33368E", scope: !526, file: !33, line: 1100, type: !37, scopeLine: 1100, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !12, templateParams: !529, retainedNodes: !527)
!526 = !DINamespace(name: "{impl#12}", scope: !35)
!527 = !{!528}
!528 = !DILocalVariable(name: "self", arg: 1, scope: !525, file: !33, line: 1100, type: !56)
!529 = !{!530}
!530 = !DITemplateTypeParameter(name: "A", type: !49)
!531 = !DILocation(line: 1100, column: 13, scope: !525)
!532 = !DILocation(line: 1101, column: 9, scope: !525)
!533 = !DILocation(line: 1102, column: 6, scope: !525)
!534 = distinct !DISubprogram(name: "clone", linkageName: "_ZN4core5clone5impls52_$LT$impl$u20$core..clone..Clone$u20$for$u20$i32$GT$5clone17h85acc95589e22befE", scope: !536, file: !535, line: 184, type: !539, scopeLine: 184, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !12, templateParams: !46, retainedNodes: !541)
!535 = !DIFile(filename: "/rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/core/src/clone.rs", directory: "", checksumkind: CSK_MD5, checksum: "f2881393f8ff88a77af3b00f49edee0f")
!536 = !DINamespace(name: "{impl#14}", scope: !537)
!537 = !DINamespace(name: "impls", scope: !538)
!538 = !DINamespace(name: "clone", scope: !17)
!539 = !DISubroutineType(types: !540)
!540 = !{!49, !203}
!541 = !{!542}
!542 = !DILocalVariable(name: "self", arg: 1, scope: !534, file: !535, line: 184, type: !203)
!543 = !DILocation(line: 184, column: 30, scope: !534)
!544 = !DILocation(line: 185, column: 25, scope: !534)
!545 = !DILocation(line: 186, column: 22, scope: !534)
!546 = distinct !DISubprogram(name: "report", linkageName: "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h2a77a2c7dc791a56E", scope: !548, file: !547, line: 2019, type: !550, scopeLine: 2019, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !12, templateParams: !46, retainedNodes: !552)
!547 = !DIFile(filename: "/rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/std/src/process.rs", directory: "", checksumkind: CSK_MD5, checksum: "f1040f95df6eac9bb0d3ca98d8a7ea2c")
!548 = !DINamespace(name: "{impl#48}", scope: !549)
!549 = !DINamespace(name: "process", scope: !95)
!550 = !DISubroutineType(types: !551)
!551 = !{!49, !5}
!552 = !{!553}
!553 = !DILocalVariable(name: "self", arg: 1, scope: !546, file: !547, line: 2019, type: !5)
!554 = !DILocation(line: 2019, column: 15, scope: !546)
!555 = !DILocation(line: 2020, column: 9, scope: !546)
!556 = !DILocation(line: 2021, column: 6, scope: !546)
!557 = distinct !DISubprogram(name: "into_iter<core::ops::range::RangeInclusive<i32>>", linkageName: "_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h1577d21432db53acE", scope: !559, file: !558, line: 243, type: !562, scopeLine: 243, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !12, templateParams: !566, retainedNodes: !564)
!558 = !DIFile(filename: "/rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/core/src/iter/traits/collect.rs", directory: "", checksumkind: CSK_MD5, checksum: "46be48ef08ae744b2af0ec194db882b2")
!559 = !DINamespace(name: "{impl#0}", scope: !560)
!560 = !DINamespace(name: "collect", scope: !561)
!561 = !DINamespace(name: "traits", scope: !36)
!562 = !DISubroutineType(types: !563)
!563 = !{!57, !57}
!564 = !{!565}
!565 = !DILocalVariable(name: "self", arg: 1, scope: !557, file: !558, line: 243, type: !57)
!566 = !{!567}
!567 = !DITemplateTypeParameter(name: "I", type: !57)
!568 = !DILocation(line: 243, column: 18, scope: !557)
!569 = !DILocation(line: 244, column: 9, scope: !557)
!570 = !DILocation(line: 245, column: 6, scope: !557)
!571 = distinct !DISubprogram(name: "report", linkageName: "_ZN68_$LT$std..process..ExitCode$u20$as$u20$std..process..Termination$GT$6report17h30388115231fc605E", scope: !572, file: !547, line: 2053, type: !573, scopeLine: 2053, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !12, templateParams: !46, retainedNodes: !578)
!572 = !DINamespace(name: "{impl#52}", scope: !549)
!573 = !DISubroutineType(types: !574)
!574 = !{!49, !575}
!575 = !DICompositeType(tag: DW_TAG_structure_type, name: "ExitCode", scope: !549, file: !2, size: 8, align: 8, elements: !576, templateParams: !46, identifier: "149fcddb424ba2e53106e0c2bb3adcab")
!576 = !{!577}
!577 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !575, file: !2, baseType: !155, size: 8, align: 8)
!578 = !{!579}
!579 = !DILocalVariable(name: "self", arg: 1, scope: !571, file: !547, line: 2053, type: !575)
!580 = !DILocation(line: 2053, column: 15, scope: !571)
!581 = !DILocation(line: 2054, column: 9, scope: !571)
!582 = !DILocation(line: 2055, column: 6, scope: !571)
!583 = distinct !DISubprogram(name: "main", linkageName: "_ZN10playground4main17hbf379cdc43ed47d6E", scope: !585, file: !584, line: 1, type: !99, scopeLine: 1, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagMainSubprogram, unit: !12, templateParams: !46, retainedNodes: !586)
!584 = !DIFile(filename: "src/main.rs", directory: "/playground", checksumkind: CSK_MD5, checksum: "7dd448afdb92ab97670143dc9caee84e")
!585 = !DINamespace(name: "playground", scope: null)
!586 = !{!587, !589, !591, !593, !595}
!587 = !DILocalVariable(name: "iter", scope: !588, file: !584, line: 2, type: !57, align: 4)
!588 = distinct !DILexicalBlock(scope: !583, file: !584, line: 2, column: 5)
!589 = !DILocalVariable(name: "__next", scope: !590, file: !584, line: 2, type: !49, align: 4)
!590 = distinct !DILexicalBlock(scope: !588, file: !584, line: 2, column: 14)
!591 = !DILocalVariable(name: "val", scope: !592, file: !584, line: 2, type: !49, align: 4)
!592 = distinct !DILexicalBlock(scope: !590, file: !584, line: 2, column: 9)
!593 = !DILocalVariable(name: "i", scope: !594, file: !584, line: 2, type: !49, align: 4)
!594 = distinct !DILexicalBlock(scope: !590, file: !584, line: 2, column: 14)
!595 = !DILocalVariable(name: "arg0", scope: !596, file: !584, line: 3, type: !203, align: 8)
!596 = !DILexicalBlockFile(scope: !597, file: !584, discriminator: 0)
!597 = distinct !DILexicalBlock(scope: !594, file: !598, line: 97, column: 28)
!598 = !DIFile(filename: "/rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/std/src/macros.rs", directory: "", checksumkind: CSK_MD5, checksum: "f9ab6ee5184127263a2fc1cebde8cacf")
!599 = !DILocation(line: 2, column: 14, scope: !588)
!600 = !DILocation(line: 2, column: 9, scope: !594)
!601 = !DILocation(line: 2, column: 14, scope: !583)
!602 = !DILocation(line: 2, column: 5, scope: !588)
!603 = !DILocation(line: 2, column: 14, scope: !590)
!604 = !DILocation(line: 5, column: 2, scope: !583)
!605 = !DILocation(line: 2, column: 9, scope: !590)
!606 = !DILocation(line: 2, column: 9, scope: !592)
!607 = !DILocation(line: 3, column: 9, scope: !594)
!608 = !DILocation(line: 3, column: 9, scope: !596)
<core::ops::range::RangeInclusive<T> as core::iter::range::RangeInclusiveIteratorImpl>::spec_next: # @"<core::ops::range::RangeInclusive<T> as core::iter::range::RangeInclusiveIteratorImpl>::spec_next"
# %bb.0:
subq $72, %rsp
movq %rdi, 24(%rsp) # 8-byte Spill
movq %rdi, 56(%rsp)
callq core::ops::range::RangeInclusive<Idx>::is_empty
movb %al, 39(%rsp) # 1-byte Spill
# %bb.1:
movb 39(%rsp), %al # 1-byte Reload
testb $1, %al
jne .LBB0_3
jmp .LBB0_2
.LBB0_2:
movq 24(%rsp), %rsi # 8-byte Reload
movq %rsi, %rdi
addq $4, %rsi
callq core::cmp::impls::<impl core::cmp::PartialOrd for i32>::lt
movb %al, 23(%rsp) # 1-byte Spill
andb $1, %al
movb %al, 67(%rsp)
jmp .LBB0_5
.LBB0_3:
movl $0, 40(%rsp)
.LBB0_4:
movl 40(%rsp), %eax
movl 44(%rsp), %edx
addq $72, %rsp
retq
.LBB0_5:
movb 23(%rsp), %al # 1-byte Reload
testb $1, %al
jne .LBB0_7
jmp .LBB0_6
.LBB0_6:
movq 24(%rsp), %rdi # 8-byte Reload
movb $1, 8(%rdi)
callq core::clone::impls::<impl core::clone::Clone for i32>::clone
movl %eax, 52(%rsp)
jmp .LBB0_12
.LBB0_7:
movq 24(%rsp), %rdi # 8-byte Reload
callq core::clone::impls::<impl core::clone::Clone for i32>::clone
movl %eax, 16(%rsp) # 4-byte Spill
# %bb.8:
movl 16(%rsp), %edi # 4-byte Reload
movl $1, %esi
callq <i32 as core::iter::range::Step>::forward_unchecked
movl %eax, 12(%rsp) # 4-byte Spill
movl %eax, 68(%rsp)
# %bb.9:
movl 12(%rsp), %esi # 4-byte Reload
movq 24(%rsp), %rdi # 8-byte Reload
callq core::mem::replace
movl %eax, 52(%rsp)
# %bb.10:
jmp .LBB0_11
.LBB0_11:
movl 52(%rsp), %eax
movl %eax, 44(%rsp)
movl $1, 40(%rsp)
jmp .LBB0_4
.LBB0_12:
jmp .LBB0_11
# -- End function
std::sys_common::backtrace::__rust_begin_short_backtrace: # @std::sys_common::backtrace::__rust_begin_short_backtrace
# %bb.0:
subq $40, %rsp
movq %rdi, 16(%rsp)
callq core::ops::function::FnOnce::call_once
# %bb.1:
callq core::hint::black_box
jmp .LBB1_2
.LBB1_2:
addq $40, %rsp
retq
.LBB1_3:
jmp .LBB1_5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 24(%rsp)
movl %eax, 32(%rsp)
jmp .LBB1_3
.LBB1_5:
movq 24(%rsp), %rdi
callq _Unwind_Resume@PLT
ud2
# -- End function
std::rt::lang_start: # @std::rt::lang_start
# %bb.0:
subq $56, %rsp
movq %rdx, %rcx
movq %rsi, %rdx
movq %rdi, 24(%rsp)
movq %rdx, 32(%rsp)
movq %rcx, 40(%rsp)
movq %rdi, 16(%rsp)
leaq 16(%rsp), %rdi
leaq .L__unnamed_1(%rip), %rsi
callq *std::rt::lang_start_internal@GOTPCREL(%rip)
movq %rax, 8(%rsp)
# %bb.1:
movq 8(%rsp), %rax
movq %rax, 48(%rsp)
addq $56, %rsp
retq
# -- End function
std::rt::lang_start::{{closure}}: # @"std::rt::lang_start::{{closure}}"
# %bb.0:
subq $24, %rsp
movq %rdi, 16(%rsp)
movq (%rdi), %rdi
callq std::sys_common::backtrace::__rust_begin_short_backtrace
# %bb.1:
callq <() as std::process::Termination>::report
movl %eax, 12(%rsp) # 4-byte Spill
# %bb.2:
movl 12(%rsp), %eax # 4-byte Reload
addq $24, %rsp
retq
# -- End function
std::sys::unix::process::process_common::ExitCode::as_i32: # @std::sys::unix::process::process_common::ExitCode::as_i32
# %bb.0:
pushq %rax
movq %rdi, (%rsp)
movzbl (%rdi), %eax
popq %rcx
retq
# -- End function
<i32 as core::iter::range::Step>::forward_unchecked: # @"<i32 as core::iter::range::Step>::forward_unchecked"
# %bb.0:
subq $32, %rsp
movl %edi, 4(%rsp)
movq %rsi, 8(%rsp)
movl %esi, %eax
movl %edi, 20(%rsp)
movl %eax, 24(%rsp)
addl %eax, %edi
movl %edi, 28(%rsp)
movl 28(%rsp), %eax
movl %eax, (%rsp) # 4-byte Spill
# %bb.1:
movl (%rsp), %eax # 4-byte Reload
addq $32, %rsp
retq
# -- End function
core::cmp::impls::<impl core::cmp::PartialOrd for i32>::le: # @"core::cmp::impls::<impl core::cmp::PartialOrd for i32>::le"
# %bb.0:
subq $16, %rsp
movq %rdi, (%rsp)
movq %rsi, 8(%rsp)
movl (%rdi), %eax
cmpl (%rsi), %eax
setle %al
andb $1, %al
movzbl %al, %eax
addq $16, %rsp
retq
# -- End function
core::cmp::impls::<impl core::cmp::PartialOrd for i32>::lt: # @"core::cmp::impls::<impl core::cmp::PartialOrd for i32>::lt"
# %bb.0:
subq $16, %rsp
movq %rdi, (%rsp)
movq %rsi, 8(%rsp)
movl (%rdi), %eax
cmpl (%rsi), %eax
setl %al
andb $1, %al
movzbl %al, %eax
addq $16, %rsp
retq
# -- End function
core::fmt::ArgumentV1::new: # @core::fmt::ArgumentV1::new
# %bb.0:
subq $72, %rsp
movq %rdi, 8(%rsp) # 8-byte Spill
movq %rdi, 40(%rsp)
movq %rsi, 48(%rsp)
movq %rsi, 56(%rsp)
movq 56(%rsp), %rax
movq %rax, 16(%rsp) # 8-byte Spill
# %bb.1:
movq 8(%rsp), %rax # 8-byte Reload
movq %rax, 64(%rsp)
movq 64(%rsp), %rax
movq %rax, (%rsp) # 8-byte Spill
# %bb.2:
movq 16(%rsp), %rax # 8-byte Reload
movq (%rsp), %rcx # 8-byte Reload
movq %rcx, 24(%rsp)
movq %rax, 32(%rsp)
movq 24(%rsp), %rax
movq 32(%rsp), %rdx
addq $72, %rsp
retq
# -- End function
core::fmt::Arguments::new_v1: # @core::fmt::Arguments::new_v1
# %bb.0:
subq $104, %rsp
movq %r8, (%rsp) # 8-byte Spill
movq %rcx, 8(%rsp) # 8-byte Spill
movq %rdx, 16(%rsp) # 8-byte Spill
movq %rsi, 24(%rsp) # 8-byte Spill
movq %rdi, 32(%rsp) # 8-byte Spill
movq %rdi, 40(%rsp) # 8-byte Spill
movq %rsi, 72(%rsp)
movq %rdx, 80(%rsp)
movq %rcx, 88(%rsp)
movq %r8, 96(%rsp)
cmpq %r8, %rdx
jb .LBB9_2
# %bb.1:
movq 16(%rsp), %rax # 8-byte Reload
movq (%rsp), %rcx # 8-byte Reload
addq $1, %rcx
cmpq %rcx, %rax
seta %al
andb $1, %al
movb %al, 55(%rsp)
jmp .LBB9_3
.LBB9_2:
movb $1, 55(%rsp)
.LBB9_3:
testb $1, 55(%rsp)
jne .LBB9_5
# %bb.4:
movq 40(%rsp), %rax # 8-byte Reload
movq 32(%rsp), %rcx # 8-byte Reload
movq (%rsp), %rdx # 8-byte Reload
movq 8(%rsp), %rsi # 8-byte Reload
movq 16(%rsp), %rdi # 8-byte Reload
movq 24(%rsp), %r8 # 8-byte Reload
movq $0, 56(%rsp)
movq %r8, (%rcx)
movq %rdi, 8(%rcx)
movq 56(%rsp), %r8
movq 64(%rsp), %rdi
movq %r8, 16(%rcx)
movq %rdi, 24(%rcx)
movq %rsi, 32(%rcx)
movq %rdx, 40(%rcx)
addq $104, %rsp
retq
.LBB9_5:
leaq .L__unnamed_2(%rip), %rdi
leaq .L__unnamed_3(%rip), %rdx
movq core::panicking::panic@GOTPCREL(%rip), %rax
movl $12, %esi
callq *%rax
ud2
# -- End function
core::mem::replace: # @core::mem::replace
# %bb.0:
subq $72, %rsp
movq %rdi, 8(%rsp) # 8-byte Spill
movl %esi, 20(%rsp) # 4-byte Spill
movq %rdi, 32(%rsp)
movl %esi, 44(%rsp)
movb $0, 31(%rsp)
movb $1, 31(%rsp)
callq core::ptr::read
movl %eax, 24(%rsp) # 4-byte Spill
jmp .LBB10_1
.LBB10_1:
movl 20(%rsp), %esi # 4-byte Reload
movq 8(%rsp), %rdi # 8-byte Reload
movl 24(%rsp), %eax # 4-byte Reload
movl %eax, 68(%rsp)
movb $0, 31(%rsp)
callq core::ptr::write
jmp .LBB10_4
.LBB10_2:
testb $1, 31(%rsp)
jne .LBB10_8
jmp .LBB10_7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 48(%rsp)
movl %eax, 56(%rsp)
jmp .LBB10_2
.LBB10_4:
movl 24(%rsp), %eax # 4-byte Reload
addq $72, %rsp
retq
.LBB10_5:
jmp .LBB10_2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 48(%rsp)
movl %eax, 56(%rsp)
jmp .LBB10_5
.LBB10_7:
movq 48(%rsp), %rdi
callq _Unwind_Resume@PLT
ud2
.LBB10_8:
jmp .LBB10_7
# -- End function
core::ops::range::RangeInclusive<Idx>::new: # @"core::ops::range::RangeInclusive<Idx>::new"
# %bb.0:
subq $24, %rsp
movl %edi, 16(%rsp)
movl %esi, 20(%rsp)
movl %edi, (%rsp)
movl %esi, 4(%rsp)
movb $0, 8(%rsp)
movl 8(%rsp), %eax
movl %eax, %edx
movq (%rsp), %rax
addq $24, %rsp
retq
# -- End function
core::ops::range::RangeInclusive<Idx>::is_empty: # @"core::ops::range::RangeInclusive<Idx>::is_empty"
# %bb.0:
subq $40, %rsp
movq %rdi, 16(%rsp) # 8-byte Spill
movq %rdi, 32(%rsp)
testb $1, 8(%rdi)
jne .LBB12_2
# %bb.1:
movq 16(%rsp), %rsi # 8-byte Reload
movq %rsi, %rdi
addq $4, %rsi
callq core::cmp::impls::<impl core::cmp::PartialOrd for i32>::le
movb %al, 15(%rsp) # 1-byte Spill
jmp .LBB12_4
.LBB12_2:
movb $1, 31(%rsp)
.LBB12_3:
movb 31(%rsp), %al
andb $1, %al
movzbl %al, %eax
addq $40, %rsp
retq
.LBB12_4:
movb 15(%rsp), %al # 1-byte Reload
xorb $-1, %al
andb $1, %al
movb %al, 31(%rsp)
jmp .LBB12_3
# -- End function
core::ops::function::FnOnce::call_once{{vtable.shim}}: # @"core::ops::function::FnOnce::call_once{{vtable.shim}}"
# %bb.0:
subq $24, %rsp
movq %rdi, 16(%rsp)
movq (%rdi), %rdi
callq core::ops::function::FnOnce::call_once
movl %eax, 4(%rsp) # 4-byte Spill
# %bb.1:
movl 4(%rsp), %eax # 4-byte Reload
addq $24, %rsp
retq
# -- End function
core::ops::function::FnOnce::call_once: # @core::ops::function::FnOnce::call_once
# %bb.0:
subq $24, %rsp
movq %rdi, 16(%rsp)
callq *%rdi
# %bb.1:
addq $24, %rsp
retq
# -- End function
core::ops::function::FnOnce::call_once: # @core::ops::function::FnOnce::call_once
# %bb.0:
subq $40, %rsp
movq %rdi, 8(%rsp)
leaq 8(%rsp), %rdi
callq std::rt::lang_start::{{closure}}
movl %eax, 4(%rsp) # 4-byte Spill
jmp .LBB15_1
.LBB15_1:
jmp .LBB15_5
.LBB15_2:
jmp .LBB15_4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 24(%rsp)
movl %eax, 32(%rsp)
jmp .LBB15_2
.LBB15_4:
movq 24(%rsp), %rdi
callq _Unwind_Resume@PLT
ud2
.LBB15_5:
movl 4(%rsp), %eax # 4-byte Reload
addq $40, %rsp
retq
# -- End function
core::ptr::read: # @core::ptr::read
# %bb.0:
subq $56, %rsp
movq %rdi, 8(%rsp) # 8-byte Spill
movq %rdi, 24(%rsp)
movl 48(%rsp), %eax
movl %eax, 20(%rsp)
# %bb.1:
leaq 20(%rsp), %rax
movq %rax, 32(%rsp)
# %bb.2:
movq 8(%rsp), %rax # 8-byte Reload
movl (%rax), %eax
movl %eax, 20(%rsp)
movl 20(%rsp), %eax
movl %eax, 4(%rsp) # 4-byte Spill
movl %eax, 44(%rsp)
movl %eax, 52(%rsp)
# %bb.3:
movl 4(%rsp), %eax # 4-byte Reload
addq $56, %rsp
retq
# -- End function
core::ptr::write: # @core::ptr::write
# %bb.0:
subq $16, %rsp
movl %esi, 4(%rsp)
movq %rdi, 8(%rsp)
movl 4(%rsp), %eax
movl %eax, (%rdi)
addq $16, %rsp
retq
# -- End function
core::ptr::drop_in_place<std::rt::lang_start<()>::{{closure}}>: # @"core::ptr::drop_in_place<std::rt::lang_start<()>::{{closure}}>"
# %bb.0:
pushq %rax
movq %rdi, (%rsp)
popq %rax
retq
# -- End function
core::hint::black_box: # @core::hint::black_box
# %bb.0:
pushq %rax
# implicit-def: $rax
#APP
#NO_APP
# %bb.1:
popq %rax
retq
# -- End function
core::iter::range::<impl core::iter::traits::iterator::Iterator for core::ops::range::RangeInclusive<A>>::next: # @"core::iter::range::<impl core::iter::traits::iterator::Iterator for core::ops::range::RangeInclusive<A>>::next"
# %bb.0:
subq $24, %rsp
movq %rdi, 16(%rsp)
callq <core::ops::range::RangeInclusive<T> as core::iter::range::RangeInclusiveIteratorImpl>::spec_next
movl %eax, 8(%rsp) # 4-byte Spill
movl %edx, 12(%rsp) # 4-byte Spill
# %bb.1:
movl 12(%rsp), %edx # 4-byte Reload
movl 8(%rsp), %eax # 4-byte Reload
addq $24, %rsp
retq
# -- End function
core::clone::impls::<impl core::clone::Clone for i32>::clone: # @"core::clone::impls::<impl core::clone::Clone for i32>::clone"
# %bb.0:
pushq %rax
movq %rdi, (%rsp)
movl (%rdi), %eax
popq %rcx
retq
# -- End function
<() as std::process::Termination>::report: # @"<() as std::process::Termination>::report"
# %bb.0:
subq $24, %rsp
xorl %edi, %edi
callq <std::process::ExitCode as std::process::Termination>::report
movl %eax, 12(%rsp) # 4-byte Spill
# %bb.1:
movl 12(%rsp), %eax # 4-byte Reload
addq $24, %rsp
retq
# -- End function
<I as core::iter::traits::collect::IntoIterator>::into_iter: # @"<I as core::iter::traits::collect::IntoIterator>::into_iter"
# %bb.0:
subq $48, %rsp
movq %rdi, 16(%rsp)
movl %esi, %eax
movl %eax, 24(%rsp)
movl 24(%rsp), %eax
movl %eax, 8(%rsp)
movq 16(%rsp), %rax
movq %rax, (%rsp)
movl 8(%rsp), %eax
movl %eax, 40(%rsp)
movq (%rsp), %rax
movq %rax, 32(%rsp)
movl 40(%rsp), %eax
movl %eax, %edx
movq 32(%rsp), %rax
addq $48, %rsp
retq
# -- End function
<std::process::ExitCode as std::process::Termination>::report: # @"<std::process::ExitCode as std::process::Termination>::report"
# %bb.0:
pushq %rax
movb %dil, %al
movb %al, 7(%rsp)
leaq 7(%rsp), %rdi
callq std::sys::unix::process::process_common::ExitCode::as_i32
movl %eax, (%rsp) # 4-byte Spill
# %bb.1:
movl (%rsp), %eax # 4-byte Reload
popq %rcx
retq
# -- End function
playground::main: # @playground::main
# %bb.0:
subq $200, %rsp
movl $1, %edi
movl $10, %esi
callq core::ops::range::RangeInclusive<Idx>::new
movq %rax, 152(%rsp)
movl %edx, %eax
movl %eax, 160(%rsp)
movq 152(%rsp), %rax
movq %rax, 32(%rsp)
movl 160(%rsp), %eax
movl %eax, 40(%rsp)
# %bb.1:
movl 40(%rsp), %eax
movl %eax, %esi
movq 32(%rsp), %rdi
callq <I as core::iter::traits::collect::IntoIterator>::into_iter
movq %rax, 168(%rsp)
movl %edx, %eax
movl %eax, 176(%rsp)
movq 168(%rsp), %rax
movq %rax, 16(%rsp)
movl 176(%rsp), %eax
movl %eax, 24(%rsp)
# %bb.2:
movq 16(%rsp), %rax
movq %rax, 48(%rsp)
movl 24(%rsp), %eax
movl %eax, 56(%rsp)
.LBB25_3: # =>This Inner Loop Header: Depth=1
leaq 48(%rsp), %rdi
callq core::iter::range::<impl core::iter::traits::iterator::Iterator for core::ops::range::RangeInclusive<A>>::next
movl %edx, 68(%rsp)
movl %eax, 64(%rsp)
# %bb.4: # in Loop: Header=BB25_3 Depth=1
movl 64(%rsp), %eax
# kill: def $rax killed $eax
testq %rax, %rax
je .LBB25_6
jmp .LBB25_10
.LBB25_10: # in Loop: Header=BB25_3 Depth=1
jmp .LBB25_7
# %bb.5:
ud2
.LBB25_6:
addq $200, %rsp
retq
.LBB25_7: # in Loop: Header=BB25_3 Depth=1
movl 68(%rsp), %eax
movl %eax, 184(%rsp)
movl %eax, 188(%rsp)
movl %eax, 76(%rsp)
leaq 76(%rsp), %rax
movq %rax, 144(%rsp)
movq 144(%rsp), %rdi
movq %rdi, 192(%rsp)
movq core::fmt::num::imp::<impl core::fmt::Display for i32>::fmt@GOTPCREL(%rip), %rsi
callq core::fmt::ArgumentV1::new
movq %rax, (%rsp) # 8-byte Spill
movq %rdx, 8(%rsp) # 8-byte Spill
# %bb.8: # in Loop: Header=BB25_3 Depth=1
movq 8(%rsp), %rax # 8-byte Reload
movq (%rsp), %rcx # 8-byte Reload
movq %rcx, 128(%rsp)
movq %rax, 136(%rsp)
leaq 128(%rsp), %rcx
leaq 80(%rsp), %rdi
leaq .L__unnamed_4(%rip), %rsi
movl $2, %edx
movl $1, %r8d
callq core::fmt::Arguments::new_v1
# %bb.9: # in Loop: Header=BB25_3 Depth=1
leaq 80(%rsp), %rdi
callq *std::io::stdio::_print@GOTPCREL(%rip)
jmp .LBB25_3
# -- End function
main: # @main
# %bb.0:
pushq %rax
movq %rsi, %rdx
movq __rustc_debug_gdb_scripts_section__@GOTPCREL(%rip), %rax
movb (%rax), %al
movslq %edi, %rsi
leaq playground::main(%rip), %rdi
callq std::rt::lang_start
# kill: def $eax killed $eax killed $rax
popq %rcx
retq
# -- End function
.L__unnamed_1:
.quad core::ptr::drop_in_place<std::rt::lang_start<()>::{{closure}}>
.asciz "\b\000\000\000\000\000\000\000\b\000\000\000\000\000\000"
.quad core::ops::function::FnOnce::call_once{{vtable.shim}}
.quad std::rt::lang_start::{{closure}}
.quad std::rt::lang_start::{{closure}}
.L__unnamed_2:
.ascii "invalid args"
.L__unnamed_5:
.ascii "/rustc/514b3877956dc594823106b66c164f8cdbc8b3da/library/core/src/fmt/mod.rs"
.L__unnamed_3:
.quad .L__unnamed_5
.asciz "K\000\000\000\000\000\000\000k\001\000\000\r\000\000"
.L__unnamed_8:
.L__unnamed_9:
.byte 10
.L__unnamed_4:
.quad .L__unnamed_8
.zero 8
.quad .L__unnamed_9
.asciz "\001\000\000\000\000\000\000"
__rustc_debug_gdb_scripts_section__:
.asciz "\001gdb_load_rust_pretty_printers.py"
.byte 1 # Abbreviation Code
.byte 17 # DW_TAG_compile_unit
.byte 1 # DW_CHILDREN_yes
.byte 37 # DW_AT_producer
.byte 14 # DW_FORM_strp
.byte 19 # DW_AT_language
.byte 5 # DW_FORM_data2
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 16 # DW_AT_stmt_list
.byte 23 # DW_FORM_sec_offset
.byte 27 # DW_AT_comp_dir
.byte 14 # DW_FORM_strp
.ascii "\264B" # DW_AT_GNU_pubnames
.byte 25 # DW_FORM_flag_present
.byte 17 # DW_AT_low_pc
.byte 1 # DW_FORM_addr
.byte 85 # DW_AT_ranges
.byte 23 # DW_FORM_sec_offset
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 2 # Abbreviation Code
.byte 52 # DW_TAG_variable
.byte 0 # DW_CHILDREN_no
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 2 # DW_AT_location
.byte 24 # DW_FORM_exprloc
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 3 # Abbreviation Code
.byte 1 # DW_TAG_array_type
.byte 1 # DW_CHILDREN_yes
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 4 # Abbreviation Code
.byte 33 # DW_TAG_subrange_type
.byte 0 # DW_CHILDREN_no
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 34 # DW_AT_lower_bound
.byte 13 # DW_FORM_sdata
.byte 55 # DW_AT_count
.byte 11 # DW_FORM_data1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 5 # Abbreviation Code
.byte 15 # DW_TAG_pointer_type
.byte 0 # DW_CHILDREN_no
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 51 # DW_AT_address_class
.byte 6 # DW_FORM_data4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 6 # Abbreviation Code
.byte 36 # DW_TAG_base_type
.byte 0 # DW_CHILDREN_no
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 62 # DW_AT_encoding
.byte 11 # DW_FORM_data1
.byte 11 # DW_AT_byte_size
.byte 11 # DW_FORM_data1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 7 # Abbreviation Code
.byte 36 # DW_TAG_base_type
.byte 0 # DW_CHILDREN_no
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 11 # DW_AT_byte_size
.byte 11 # DW_FORM_data1
.byte 62 # DW_AT_encoding
.byte 11 # DW_FORM_data1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 8 # Abbreviation Code
.byte 57 # DW_TAG_namespace
.byte 1 # DW_CHILDREN_yes
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 9 # Abbreviation Code
.byte 4 # DW_TAG_enumeration_type
.byte 1 # DW_CHILDREN_yes
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 109 # DW_AT_enum_class
.byte 25 # DW_FORM_flag_present
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 11 # DW_AT_byte_size
.byte 11 # DW_FORM_data1
.ascii "\210\001" # DW_AT_alignment
.byte 15 # DW_FORM_udata
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 10 # Abbreviation Code
.byte 40 # DW_TAG_enumerator
.byte 0 # DW_CHILDREN_no
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 28 # DW_AT_const_value
.byte 15 # DW_FORM_udata
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 11 # Abbreviation Code
.byte 19 # DW_TAG_structure_type
.byte 1 # DW_CHILDREN_yes
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 11 # DW_AT_byte_size
.byte 11 # DW_FORM_data1
.ascii "\210\001" # DW_AT_alignment
.byte 15 # DW_FORM_udata
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 12 # Abbreviation Code
.byte 13 # DW_TAG_member
.byte 0 # DW_CHILDREN_no
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.ascii "\210\001" # DW_AT_alignment
.byte 15 # DW_FORM_udata
.byte 56 # DW_AT_data_member_location
.byte 11 # DW_FORM_data1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 13 # Abbreviation Code
.byte 51 # DW_TAG_variant_part
.byte 1 # DW_CHILDREN_yes
.byte 21 # DW_AT_discr
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 14 # Abbreviation Code
.byte 13 # DW_TAG_member
.byte 0 # DW_CHILDREN_no
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.ascii "\210\001" # DW_AT_alignment
.byte 15 # DW_FORM_udata
.byte 56 # DW_AT_data_member_location
.byte 11 # DW_FORM_data1
.byte 52 # DW_AT_artificial
.byte 25 # DW_FORM_flag_present
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 15 # Abbreviation Code
.byte 25 # DW_TAG_variant
.byte 1 # DW_CHILDREN_yes
.byte 22 # DW_AT_discr_value
.byte 11 # DW_FORM_data1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 16 # Abbreviation Code
.byte 19 # DW_TAG_structure_type
.byte 0 # DW_CHILDREN_no
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 11 # DW_AT_byte_size
.byte 11 # DW_FORM_data1
.ascii "\210\001" # DW_AT_alignment
.byte 15 # DW_FORM_udata
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 17 # Abbreviation Code
.byte 46 # DW_TAG_subprogram
.byte 1 # DW_CHILDREN_yes
.byte 17 # DW_AT_low_pc
.byte 1 # DW_FORM_addr
.byte 18 # DW_AT_high_pc
.byte 6 # DW_FORM_data4
.byte 64 # DW_AT_frame_base
.byte 24 # DW_FORM_exprloc
.byte 110 # DW_AT_linkage_name
.byte 14 # DW_FORM_strp
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 5 # DW_FORM_data2
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 18 # Abbreviation Code
.byte 5 # DW_TAG_formal_parameter
.byte 0 # DW_CHILDREN_no
.byte 2 # DW_AT_location
.byte 24 # DW_FORM_exprloc
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 5 # DW_FORM_data2
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 19 # Abbreviation Code
.byte 47 # DW_TAG_template_type_parameter
.byte 0 # DW_CHILDREN_no
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 20 # Abbreviation Code
.byte 11 # DW_TAG_lexical_block
.byte 1 # DW_CHILDREN_yes
.byte 85 # DW_AT_ranges
.byte 23 # DW_FORM_sec_offset
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 21 # Abbreviation Code
.byte 52 # DW_TAG_variable
.byte 0 # DW_CHILDREN_no
.byte 2 # DW_AT_location
.byte 24 # DW_FORM_exprloc
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 5 # DW_FORM_data2
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 22 # Abbreviation Code
.byte 11 # DW_TAG_lexical_block
.byte 1 # DW_CHILDREN_yes
.byte 17 # DW_AT_low_pc
.byte 1 # DW_FORM_addr
.byte 18 # DW_AT_high_pc
.byte 6 # DW_FORM_data4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 23 # Abbreviation Code
.byte 46 # DW_TAG_subprogram
.byte 1 # DW_CHILDREN_yes
.byte 17 # DW_AT_low_pc
.byte 1 # DW_FORM_addr
.byte 18 # DW_AT_high_pc
.byte 6 # DW_FORM_data4
.byte 64 # DW_AT_frame_base
.byte 24 # DW_FORM_exprloc
.byte 110 # DW_AT_linkage_name
.byte 14 # DW_FORM_strp
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 24 # Abbreviation Code
.byte 5 # DW_TAG_formal_parameter
.byte 0 # DW_CHILDREN_no
.byte 2 # DW_AT_location
.byte 24 # DW_FORM_exprloc
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 25 # Abbreviation Code
.byte 29 # DW_TAG_inlined_subroutine
.byte 1 # DW_CHILDREN_yes
.byte 49 # DW_AT_abstract_origin
.byte 19 # DW_FORM_ref4
.byte 17 # DW_AT_low_pc
.byte 1 # DW_FORM_addr
.byte 18 # DW_AT_high_pc
.byte 6 # DW_FORM_data4
.byte 88 # DW_AT_call_file
.byte 11 # DW_FORM_data1
.byte 89 # DW_AT_call_line
.byte 11 # DW_FORM_data1
.byte 87 # DW_AT_call_column
.byte 11 # DW_FORM_data1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 26 # Abbreviation Code
.byte 5 # DW_TAG_formal_parameter
.byte 0 # DW_CHILDREN_no
.byte 2 # DW_AT_location
.byte 24 # DW_FORM_exprloc
.byte 49 # DW_AT_abstract_origin
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 27 # Abbreviation Code
.byte 46 # DW_TAG_subprogram
.byte 1 # DW_CHILDREN_yes
.byte 110 # DW_AT_linkage_name
.byte 14 # DW_FORM_strp
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 5 # DW_FORM_data2
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 32 # DW_AT_inline
.byte 11 # DW_FORM_data1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 28 # Abbreviation Code
.byte 5 # DW_TAG_formal_parameter
.byte 0 # DW_CHILDREN_no
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 5 # DW_FORM_data2
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 29 # Abbreviation Code
.byte 25 # DW_TAG_variant
.byte 1 # DW_CHILDREN_yes
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 30 # Abbreviation Code
.byte 23 # DW_TAG_union_type
.byte 1 # DW_CHILDREN_yes
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 11 # DW_AT_byte_size
.byte 11 # DW_FORM_data1
.ascii "\210\001" # DW_AT_alignment
.byte 15 # DW_FORM_udata
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 31 # Abbreviation Code
.byte 5 # DW_TAG_formal_parameter
.byte 0 # DW_CHILDREN_no
.byte 2 # DW_AT_location
.byte 24 # DW_FORM_exprloc
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 32 # Abbreviation Code
.byte 46 # DW_TAG_subprogram
.byte 1 # DW_CHILDREN_yes
.byte 17 # DW_AT_low_pc
.byte 1 # DW_FORM_addr
.byte 18 # DW_AT_high_pc
.byte 6 # DW_FORM_data4
.byte 64 # DW_AT_frame_base
.byte 24 # DW_FORM_exprloc
.byte 110 # DW_AT_linkage_name
.byte 14 # DW_FORM_strp
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 33 # Abbreviation Code
.byte 29 # DW_TAG_inlined_subroutine
.byte 0 # DW_CHILDREN_no
.byte 49 # DW_AT_abstract_origin
.byte 19 # DW_FORM_ref4
.byte 17 # DW_AT_low_pc
.byte 1 # DW_FORM_addr
.byte 18 # DW_AT_high_pc
.byte 6 # DW_FORM_data4
.byte 88 # DW_AT_call_file
.byte 11 # DW_FORM_data1
.byte 89 # DW_AT_call_line
.byte 5 # DW_FORM_data2
.byte 87 # DW_AT_call_column
.byte 11 # DW_FORM_data1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 34 # Abbreviation Code
.byte 46 # DW_TAG_subprogram
.byte 1 # DW_CHILDREN_yes
.byte 17 # DW_AT_low_pc
.byte 1 # DW_FORM_addr
.byte 18 # DW_AT_high_pc
.byte 6 # DW_FORM_data4
.byte 64 # DW_AT_frame_base
.byte 24 # DW_FORM_exprloc
.byte 110 # DW_AT_linkage_name
.byte 14 # DW_FORM_strp
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 5 # DW_FORM_data2
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 35 # Abbreviation Code
.byte 52 # DW_TAG_variable
.byte 0 # DW_CHILDREN_no
.byte 2 # DW_AT_location
.byte 24 # DW_FORM_exprloc
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 36 # Abbreviation Code
.byte 52 # DW_TAG_variable
.byte 0 # DW_CHILDREN_no
.byte 2 # DW_AT_location
.byte 24 # DW_FORM_exprloc
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.ascii "\210\001" # DW_AT_alignment
.byte 15 # DW_FORM_udata
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 37 # Abbreviation Code
.byte 21 # DW_TAG_subroutine_type
.byte 1 # DW_CHILDREN_yes
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 38 # Abbreviation Code
.byte 5 # DW_TAG_formal_parameter
.byte 0 # DW_CHILDREN_no
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 39 # Abbreviation Code
.byte 13 # DW_TAG_member
.byte 0 # DW_CHILDREN_no
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.ascii "\210\001" # DW_AT_alignment
.byte 15 # DW_FORM_udata
.byte 56 # DW_AT_data_member_location
.byte 11 # DW_FORM_data1
.byte 52 # DW_AT_artificial
.byte 25 # DW_FORM_flag_present
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 40 # Abbreviation Code
.byte 46 # DW_TAG_subprogram
.byte 1 # DW_CHILDREN_yes
.byte 17 # DW_AT_low_pc
.byte 1 # DW_FORM_addr
.byte 18 # DW_AT_high_pc
.byte 6 # DW_FORM_data4
.byte 64 # DW_AT_frame_base
.byte 24 # DW_FORM_exprloc
.byte 110 # DW_AT_linkage_name
.byte 14 # DW_FORM_strp
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 106 # DW_AT_main_subprogram
.byte 25 # DW_FORM_flag_present
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 41 # Abbreviation Code
.byte 21 # DW_TAG_subroutine_type
.byte 0 # DW_CHILDREN_no
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 0 # EOM(3)
# DW_AT_GNU_pubnames
# DW_AT_enum_class
# DW_AT_enum_class
# DW_AT_artificial
# DW_AT_artificial
# DW_AT_artificial
# DW_AT_artificial
# DW_AT_artificial
# DW_AT_artificial
# DW_AT_main_subprogram