Skip to content

Instantly share code, notes, and snippets.

@LemonBoy

LemonBoy/foo.ll Secret

Created May 18, 2021 09:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save LemonBoy/75b860aabe8c6d4a43c7a983f6702dab to your computer and use it in GitHub Desktop.
Save LemonBoy/75b860aabe8c6d4a43c7a983f6702dab to your computer and use it in GitHub Desktop.
; ModuleID = 'foo'
source_filename = "foo"
target datalayout = "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-f80:32-n8:16:32-S128"
target triple = "i386-unknown-linux-musl"
%"[]u8" = type { i8*, i32 }
%std.builtin.StackTrace = type { i32, %"[]usize" }
%"[]usize" = type { i32*, i32 }
%std.target.LinuxVersionRange = type { %std.builtin.Range, %std.builtin.Version }
%std.builtin.Range = type { %std.builtin.Version, %std.builtin.Version }
%std.builtin.Version = type { i32, i32, i32 }
%std.target.Set = type { [9 x i32] }
%std.target.Model = type { %"[]u8", %"?[:0]const u8", %std.target.Set }
%"?[:0]const u8" = type { %"[]u8", i1 }
%P = type <{ [4 x i8] }>
%"[]std.target.x86.Feature" = type { i8*, i32 }
@panic.1 = internal unnamed_addr constant void (%"[]u8"*, %std.builtin.StackTrace*)* @panic, align 4
@zig_is_stage2 = internal unnamed_addr constant i1 false, align 1
@output_mode = internal unnamed_addr constant i2 0, align 1
@link_libc = internal unnamed_addr constant i1 false, align 1
@os = internal unnamed_addr constant { <{ i6, [3 x i8] }>, { %std.target.LinuxVersionRange, i2, [3 x i8] } } { <{ i6, [3 x i8] }> <{ i6 8, [3 x i8] undef }>, { %std.target.LinuxVersionRange, i2, [3 x i8] } { %std.target.LinuxVersionRange { %std.builtin.Range { %std.builtin.Version { i32 3, i32 16, i32 0 }, %std.builtin.Version { i32 5, i32 5, i32 5 } }, %std.builtin.Version { i32 2, i32 17, i32 0 } }, i2 -2, [3 x i8] undef } }, align 4
@0 = internal unnamed_addr constant [9 x i8] c"pentium4\00", align 1
@pentium4 = internal unnamed_addr constant { %"[]u8", { %"[]u8", i1, [3 x i8] }, %std.target.Set } { %"[]u8" { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @0, i32 0, i32 0), i32 8 }, { %"[]u8", i1, [3 x i8] } { %"[]u8" { i8* getelementptr inbounds ([9 x i8], [9 x i8]* @0, i32 0, i32 0), i32 8 }, i1 true, [3 x i8] undef }, %std.target.Set { [9 x i32] [i32 0, i32 268435496, i32 33792, i32 1114112, i32 68, i32 0, i32 0, i32 0, i32 0] } }, align 4
@cpu = internal unnamed_addr constant { <{ i6, [3 x i8] }>, %std.target.Model*, %std.target.Set } { <{ i6, [3 x i8] }> <{ i6 -32, [3 x i8] undef }>, %std.target.Model* bitcast ({ %"[]u8", { %"[]u8", i1, [3 x i8] }, %std.target.Set }* @pentium4 to %std.target.Model*), %std.target.Set { [9 x i32] [i32 2, i32 268435496, i32 33792, i32 1638400, i32 68, i32 0, i32 0, i32 0, i32 0] } }, align 4
@abi = internal unnamed_addr constant i5 12, align 1
@current = internal unnamed_addr constant { { <{ i6, [3 x i8] }>, %std.target.Model*, %std.target.Set }, { <{ i6, [3 x i8] }>, { %std.target.LinuxVersionRange, i2, [3 x i8] } }, <{ i5, [3 x i8] }> } { { <{ i6, [3 x i8] }>, %std.target.Model*, %std.target.Set } { <{ i6, [3 x i8] }> <{ i6 -32, [3 x i8] undef }>, %std.target.Model* bitcast ({ %"[]u8", { %"[]u8", i1, [3 x i8] }, %std.target.Set }* @pentium4 to %std.target.Model*), %std.target.Set { [9 x i32] [i32 2, i32 268435496, i32 33792, i32 1638400, i32 68, i32 0, i32 0, i32 0, i32 0] } }, { <{ i6, [3 x i8] }>, { %std.target.LinuxVersionRange, i2, [3 x i8] } } { <{ i6, [3 x i8] }> <{ i6 8, [3 x i8] undef }>, { %std.target.LinuxVersionRange, i2, [3 x i8] } { %std.target.LinuxVersionRange { %std.builtin.Range { %std.builtin.Version { i32 3, i32 16, i32 0 }, %std.builtin.Version { i32 5, i32 5, i32 5 } }, %std.builtin.Version { i32 2, i32 17, i32 0 } }, i2 -2, [3 x i8] undef } }, <{ i5, [3 x i8] }> <{ i5 12, [3 x i8] undef }> }, align 4
@arch = internal unnamed_addr constant i6 -32, align 1
@1 = internal unnamed_addr constant [7 x i8] c"_start\00", align 1
@start_sym_name = internal unnamed_addr constant [7 x i8]* @1, align 4
@2 = internal unnamed_addr constant [9 x i32] zeroinitializer, align 4
@3 = internal unnamed_addr constant [17 x i8] c"division by zero\00", align 1
@4 = internal unnamed_addr constant %"[]u8" { i8* getelementptr inbounds ([17 x i8], [17 x i8]* @3, i32 0, i32 0), i32 16 }, align 4
@5 = internal unnamed_addr constant [45 x i8] c"remainder division by zero or negative value\00", align 1
@6 = internal unnamed_addr constant %"[]u8" { i8* getelementptr inbounds ([45 x i8], [45 x i8]* @5, i32 0, i32 0), i32 44 }, align 4
@7 = internal unnamed_addr constant [28 x i8] c"integer cast truncated bits\00", align 1
@8 = internal unnamed_addr constant %"[]u8" { i8* getelementptr inbounds ([28 x i8], [28 x i8]* @7, i32 0, i32 0), i32 27 }, align 4
@9 = internal unnamed_addr constant [20 x i8] c"index out of bounds\00", align 1
@10 = internal unnamed_addr constant %"[]u8" { i8* getelementptr inbounds ([20 x i8], [20 x i8]* @9, i32 0, i32 0), i32 19 }, align 4
; Function Attrs: nobuiltin noreturn nounwind
define internal fastcc void @panic(%"[]u8"* nonnull readonly align 4 %0, %std.builtin.StackTrace* align 4 %1) unnamed_addr #0 !dbg !413 {
Entry:
%error_return_trace = alloca %std.builtin.StackTrace*, align 4
call void @llvm.dbg.declare(metadata %"[]u8"* %0, metadata !429, metadata !DIExpression()), !dbg !431
store %std.builtin.StackTrace* %1, %std.builtin.StackTrace** %error_return_trace, align 4
call void @llvm.dbg.declare(metadata %std.builtin.StackTrace** %error_return_trace, metadata !430, metadata !DIExpression()), !dbg !432
br label %WhileCond, !dbg !433
WhileCond: ; preds = %WhileCond, %Entry
br label %WhileCond, !dbg !433
}
; Function Attrs: nofree nosync nounwind readnone speculatable willreturn
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
; Function Attrs: nobuiltin nounwind
define void @_start() #2 !dbg !435 {
Entry:
%error_return_trace_addresses = alloca [32 x i32], align 4
%error_return_trace = alloca %std.builtin.StackTrace, align 4
%p = alloca %P, align 1
%0 = alloca i16, align 2
%1 = getelementptr inbounds %std.builtin.StackTrace, %std.builtin.StackTrace* %error_return_trace, i32 0, i32 0
store i32 0, i32* %1, align 4
%2 = getelementptr inbounds %std.builtin.StackTrace, %std.builtin.StackTrace* %error_return_trace, i32 0, i32 1
%3 = getelementptr inbounds %"[]usize", %"[]usize"* %2, i32 0, i32 0
%4 = getelementptr inbounds [32 x i32], [32 x i32]* %error_return_trace_addresses, i32 0, i32 0
store i32* %4, i32** %3, align 4
%5 = getelementptr inbounds %"[]usize", %"[]usize"* %2, i32 0, i32 1
store i32 32, i32* %5, align 4
%6 = bitcast %P* %p to i8*, !dbg !450
call void @llvm.memset.p0i8.i32(i8* align 1 %6, i8 -86, i32 4, i1 false), !dbg !450
call void @llvm.dbg.declare(metadata %P* %p, metadata !439, metadata !DIExpression()), !dbg !450
%7 = getelementptr inbounds %P, %P* %p, i32 0, i32 0, !dbg !451
%8 = bitcast [4 x i8]* %7 to i32*, !dbg !451
%9 = load i32, i32* %8, align 1, !dbg !452
%10 = and i32 %9, -8, !dbg !452
%11 = or i32 2, %10, !dbg !452
store i32 %11, i32* %8, align 1, !dbg !452
%12 = getelementptr inbounds %P, %P* %p, i32 0, i32 0, !dbg !453
%13 = bitcast [4 x i8]* %12 to i32*, !dbg !453
%14 = load i32, i32* %13, align 1, !dbg !454
%15 = and i32 %14, -449, !dbg !454
%16 = or i32 256, %15, !dbg !454
store i32 %16, i32* %13, align 1, !dbg !454
%17 = getelementptr inbounds %P, %P* %p, i32 0, i32 0, !dbg !455
%18 = bitcast [4 x i8]* %17 to i32*, !dbg !455
%19 = load i32, i32* %18, align 1, !dbg !456
%20 = and i32 %19, -28673, !dbg !456
%21 = or i32 24576, %20, !dbg !456
store i32 %21, i32* %18, align 1, !dbg !456
%22 = getelementptr inbounds %P, %P* %p, i32 0, i32 0, !dbg !457
%23 = bitcast [4 x i8]* %22 to i32*, !dbg !457
%24 = load i32, i32* %23, align 1, !dbg !457
%25 = and i32 %24, -57, !dbg !457
%26 = or i32 0, %25, !dbg !457
store i32 %26, i32* %23, align 1, !dbg !457
%27 = getelementptr inbounds %P, %P* %p, i32 0, i32 0, !dbg !457
%28 = bitcast [4 x i8]* %27 to i32*, !dbg !457
%29 = load i32, i32* %28, align 1, !dbg !457
%30 = and i32 %29, -3585, !dbg !457
%31 = or i32 0, %30, !dbg !457
store i32 %31, i32* %28, align 1, !dbg !457
%32 = getelementptr inbounds %P, %P* %p, i32 0, i32 0, !dbg !457
%33 = bitcast [4 x i8]* %32 to i32*, !dbg !457
%34 = load i32, i32* %33, align 1, !dbg !457
%35 = and i32 %34, -229377, !dbg !457
%36 = or i32 0, %35, !dbg !457
store i32 %36, i32* %33, align 1, !dbg !457
%37 = getelementptr inbounds %P, %P* %p, i32 0, i32 0, !dbg !458
%38 = bitcast [4 x i8]* %37 to i32*, !dbg !458
%39 = load i32, i32* %38, align 1, !dbg !458
%40 = lshr i32 %39, 6, !dbg !458
%41 = trunc i32 %40 to i3, !dbg !458
%42 = call fastcc i16 @expect(%std.builtin.StackTrace* %error_return_trace, i3 -4, i3 %41), !dbg !459
store i16 %42, i16* %0, align 2, !dbg !459
%43 = icmp ne i16 %42, 0, !dbg !460
br i1 %43, label %UnwrapErrError, label %UnwrapErrOk, !dbg !460
UnwrapErrError: ; preds = %Entry
call void @llvm.debugtrap(), !dbg !461
br label %UnwrapErrEnd, !dbg !460
UnwrapErrOk: ; preds = %Entry
br label %UnwrapErrEnd, !dbg !460
UnwrapErrEnd: ; preds = %UnwrapErrOk, %UnwrapErrError
ret void, !dbg !462
}
; Function Attrs: argmemonly nofree nosync nounwind willreturn writeonly
declare void @llvm.memset.p0i8.i32(i8* nocapture writeonly, i8, i32, i1 immarg) #3
; Function Attrs: nobuiltin nounwind
define internal fastcc i16 @expect(%std.builtin.StackTrace* nonnull %0, i3 %1, i3 %2) unnamed_addr #2 !dbg !463 {
Entry:
%result = alloca i16, align 2
%a = alloca i3, align 1
%b = alloca i3, align 1
store i3 %1, i3* %a, align 1
call void @llvm.dbg.declare(metadata i3* %a, metadata !467, metadata !DIExpression()), !dbg !469
store i3 %2, i3* %b, align 1
call void @llvm.dbg.declare(metadata i3* %b, metadata !468, metadata !DIExpression()), !dbg !470
%3 = load i3, i3* %a, align 1, !dbg !471
%4 = load i3, i3* %b, align 1, !dbg !473
%5 = icmp ne i3 %3, %4, !dbg !474
br i1 %5, label %Then, label %Else, !dbg !475
Then: ; preds = %Entry
store i16 1, i16* %result, align 2, !dbg !476
call fastcc void @__zig_return_error(%std.builtin.StackTrace* %0), !dbg !477
%6 = load i16, i16* %result, align 2, !dbg !477
ret i16 %6, !dbg !477
Else: ; preds = %Entry
br label %EndIf, !dbg !475
EndIf: ; preds = %Else
store i16 0, i16* %result, align 2, !dbg !478
ret i16 0, !dbg !479
}
; Function Attrs: nounwind
declare void @llvm.debugtrap() #4
; Function Attrs: nobuiltin nounwind
define internal fastcc void @"std.target.Feature.feature_set_fns(std.target.x86.Feature).featureSet"(%std.target.Set* nonnull sret(%std.target.Set) %0, %"[]std.target.x86.Feature"* nonnull readonly align 4 %1) unnamed_addr #2 !dbg !480 {
Entry:
%x = alloca %std.target.Set, align 4
%i = alloca i32, align 4
%feature = alloca i8, align 1
call void @llvm.dbg.declare(metadata %"[]std.target.x86.Feature"* %1, metadata !492, metadata !DIExpression()), !dbg !497
call fastcc void @std.target.Set.empty_workaround(%std.target.Set* sret(%std.target.Set) %x), !dbg !498
call void @llvm.dbg.declare(metadata %std.target.Set* %x, metadata !493, metadata !DIExpression()), !dbg !499
store i32 0, i32* %i, align 4, !dbg !500
call void @llvm.dbg.declare(metadata i32* %i, metadata !495, metadata !DIExpression()), !dbg !500
%2 = getelementptr inbounds %"[]std.target.x86.Feature", %"[]std.target.x86.Feature"* %1, i32 0, i32 1, !dbg !500
%3 = load i32, i32* %2, align 4, !dbg !500
br label %ForCond, !dbg !500
ForCond: ; preds = %ForBody, %Entry
%4 = load i32, i32* %i, align 4, !dbg !500
%5 = icmp ult i32 %4, %3, !dbg !500
br i1 %5, label %ForBody, label %ForEnd, !dbg !500
ForBody: ; preds = %ForCond
%6 = getelementptr inbounds %"[]std.target.x86.Feature", %"[]std.target.x86.Feature"* %1, i32 0, i32 0, !dbg !500
%7 = load i8*, i8** %6, align 4, !dbg !500
%8 = getelementptr inbounds i8, i8* %7, i32 %4, !dbg !500
%9 = load i8, i8* %8, align 1, !dbg !501
store i8 %9, i8* %feature, align 1, !dbg !501
call void @llvm.dbg.declare(metadata i8* %feature, metadata !496, metadata !DIExpression()), !dbg !501
%10 = load i8, i8* %feature, align 1, !dbg !502
%11 = zext i8 %10 to i9, !dbg !504
call fastcc void @std.target.Set.addFeature(%std.target.Set* %x, i9 %11), !dbg !505
%12 = add nuw i32 %4, 1, !dbg !500
store i32 %12, i32* %i, align 4, !dbg !500
br label %ForCond, !dbg !500
ForEnd: ; preds = %ForCond
%13 = bitcast %std.target.Set* %x to i8*, !dbg !506
%14 = bitcast %std.target.Set* %0 to i8*, !dbg !506
call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %14, i8* align 4 %13, i32 36, i1 false), !dbg !506
ret void, !dbg !507
}
; Function Attrs: nobuiltin nounwind
define internal fastcc void @std.target.Set.empty_workaround(%std.target.Set* nonnull sret(%std.target.Set) %0) unnamed_addr #2 !dbg !508 {
Entry:
%1 = getelementptr inbounds %std.target.Set, %std.target.Set* %0, i32 0, i32 0, !dbg !511
%2 = bitcast [9 x i32]* %1 to i8*, !dbg !513
call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %2, i8* align 4 bitcast ([9 x i32]* @2 to i8*), i32 36, i1 false), !dbg !513
ret void, !dbg !514
}
; Function Attrs: nobuiltin nounwind
define internal fastcc void @std.target.Set.addFeature(%std.target.Set* nonnull align 4 %0, i9 %1) unnamed_addr #2 !dbg !515 {
Entry:
%usize_index = alloca i9, align 2
%bit_index = alloca i5, align 1
%set = alloca %std.target.Set*, align 4
%arch_feature_index = alloca i9, align 2
store %std.target.Set* %0, %std.target.Set** %set, align 4
call void @llvm.dbg.declare(metadata %std.target.Set** %set, metadata !519, metadata !DIExpression()), !dbg !524
store i9 %1, i9* %arch_feature_index, align 2
call void @llvm.dbg.declare(metadata i9* %arch_feature_index, metadata !520, metadata !DIExpression()), !dbg !525
%2 = load i9, i9* %arch_feature_index, align 2, !dbg !526
br i1 false, label %DivZeroFail, label %DivZeroOk, !dbg !527
DivZeroFail: ; preds = %Entry
call fastcc void @panic(%"[]u8"* @4, %std.builtin.StackTrace* null), !dbg !527
unreachable, !dbg !527
DivZeroOk: ; preds = %Entry
%3 = udiv i9 %2, 32, !dbg !527
store i9 %3, i9* %usize_index, align 2, !dbg !527
call void @llvm.dbg.declare(metadata i9* %usize_index, metadata !521, metadata !DIExpression()), !dbg !528
%4 = load i9, i9* %arch_feature_index, align 2, !dbg !529
br i1 false, label %RemZeroFail, label %RemZeroOk, !dbg !530
RemZeroOk: ; preds = %DivZeroOk
%5 = urem i9 %4, 32, !dbg !530
%6 = trunc i9 %5 to i5, !dbg !531
%7 = zext i5 %6 to i9, !dbg !531
%8 = icmp eq i9 %5, %7, !dbg !531
br i1 %8, label %CastShortenOk, label %CastShortenFail, !dbg !531
RemZeroFail: ; preds = %DivZeroOk
call fastcc void @panic(%"[]u8"* @6, %std.builtin.StackTrace* null), !dbg !530
unreachable, !dbg !530
CastShortenOk: ; preds = %RemZeroOk
store i5 %6, i5* %bit_index, align 1, !dbg !531
call void @llvm.dbg.declare(metadata i5* %bit_index, metadata !523, metadata !DIExpression()), !dbg !532
%9 = load %std.target.Set*, %std.target.Set** %set, align 4, !dbg !533
%10 = getelementptr inbounds %std.target.Set, %std.target.Set* %9, i32 0, i32 0, !dbg !533
%11 = load i9, i9* %usize_index, align 2, !dbg !534
%12 = zext i9 %11 to i32, !dbg !534
%13 = icmp ult i32 %12, 9, !dbg !535
br i1 %13, label %BoundsCheckOk, label %BoundsCheckFail, !dbg !535
CastShortenFail: ; preds = %RemZeroOk
call fastcc void @panic(%"[]u8"* @8, %std.builtin.StackTrace* null), !dbg !531
unreachable, !dbg !531
BoundsCheckFail: ; preds = %CastShortenOk
call fastcc void @panic(%"[]u8"* @10, %std.builtin.StackTrace* null), !dbg !535
unreachable, !dbg !535
BoundsCheckOk: ; preds = %CastShortenOk
%14 = getelementptr inbounds [9 x i32], [9 x i32]* %10, i32 0, i32 %12, !dbg !535
%15 = load i32, i32* %14, align 4, !dbg !535
%16 = load i5, i5* %bit_index, align 1, !dbg !536
%17 = zext i5 %16 to i32, !dbg !537
%18 = shl i32 1, %17, !dbg !537
%19 = or i32 %15, %18, !dbg !538
store i32 %19, i32* %14, align 4, !dbg !538
ret void, !dbg !539
}
; Function Attrs: argmemonly nofree nosync nounwind willreturn
declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #5
; Function Attrs: nobuiltin nounwind
define internal fastcc i1 @std.target.Arch.isWasm(i6 %0) unnamed_addr #2 !dbg !540 {
Entry:
%result = alloca i1, align 1
%arch = alloca i6, align 1
store i6 %0, i6* %arch, align 1
call void @llvm.dbg.declare(metadata i6* %arch, metadata !544, metadata !DIExpression()), !dbg !545
%1 = load i6, i6* %arch, align 1, !dbg !546
switch i6 %1, label %SwitchElse [
i6 -16, label %SwitchProng
i6 -15, label %SwitchProng
], !dbg !546
SwitchElse: ; preds = %Entry
store i1 false, i1* %result, align 1, !dbg !548
br label %SwitchEnd, !dbg !546
SwitchProng: ; preds = %Entry, %Entry
store i1 true, i1* %result, align 1, !dbg !549
br label %SwitchEnd, !dbg !546
SwitchEnd: ; preds = %SwitchProng, %SwitchElse
%2 = load i1, i1* %result, align 1, !dbg !550
ret i1 %2, !dbg !550
}
; Function Attrs: nobuiltin nounwind
define internal fastcc i1 @std.target.Arch.isMIPS(i6 %0) unnamed_addr #2 !dbg !551 {
Entry:
%result = alloca i1, align 1
%arch = alloca i6, align 1
store i6 %0, i6* %arch, align 1
call void @llvm.dbg.declare(metadata i6* %arch, metadata !553, metadata !DIExpression()), !dbg !554
%1 = load i6, i6* %arch, align 1, !dbg !555
switch i6 %1, label %SwitchElse [
i6 11, label %SwitchProng
i6 12, label %SwitchProng
i6 13, label %SwitchProng
i6 14, label %SwitchProng
], !dbg !555
SwitchElse: ; preds = %Entry
store i1 false, i1* %result, align 1, !dbg !557
br label %SwitchEnd, !dbg !555
SwitchProng: ; preds = %Entry, %Entry, %Entry, %Entry
store i1 true, i1* %result, align 1, !dbg !558
br label %SwitchEnd, !dbg !555
SwitchEnd: ; preds = %SwitchProng, %SwitchElse
%2 = load i1, i1* %result, align 1, !dbg !559
ret i1 %2, !dbg !559
}
; Function Attrs: cold noinline nounwind
define internal fastcc void @__zig_return_error(%std.builtin.StackTrace* %0) #6 {
Entry:
%1 = call i8* @llvm.returnaddress(i32 0)
%2 = ptrtoint i8* %1 to i32
%3 = icmp eq %std.builtin.StackTrace* %0, null
br i1 %3, label %Return, label %DestNonNull
Return: ; preds = %Entry
ret void
DestNonNull: ; preds = %Entry
%4 = getelementptr inbounds %std.builtin.StackTrace, %std.builtin.StackTrace* %0, i32 0, i32 0
%5 = getelementptr inbounds %std.builtin.StackTrace, %std.builtin.StackTrace* %0, i32 0, i32 1
%6 = getelementptr inbounds %"[]usize", %"[]usize"* %5, i32 0, i32 0
%7 = getelementptr inbounds %"[]usize", %"[]usize"* %5, i32 0, i32 1
%8 = load i32, i32* %7, align 4
%9 = load i32, i32* %4, align 4
%10 = sub i32 %8, 1
%11 = and i32 %9, %10
%12 = load i32*, i32** %6, align 4
%13 = getelementptr inbounds i32, i32* %12, i32 %11
store i32 %2, i32* %13, align 4
%14 = add nuw i32 %9, 1
store i32 %14, i32* %4, align 4
ret void
}
; Function Attrs: nofree nosync nounwind readnone willreturn
declare i8* @llvm.returnaddress(i32 immarg) #7
attributes #0 = { nobuiltin noreturn nounwind "frame-pointer"="all" "probe-stack"="__zig_probe_stack" }
attributes #1 = { nofree nosync nounwind readnone speculatable willreturn }
attributes #2 = { nobuiltin nounwind "frame-pointer"="all" "probe-stack"="__zig_probe_stack" }
attributes #3 = { argmemonly nofree nosync nounwind willreturn writeonly }
attributes #4 = { nounwind }
attributes #5 = { argmemonly nofree nosync nounwind willreturn }
attributes #6 = { cold noinline nounwind "frame-pointer"="all" }
attributes #7 = { nofree nosync nounwind readnone willreturn }
!llvm.module.flags = !{!0, !1}
!llvm.dbg.cu = !{!2}
!0 = !{i32 2, !"Debug Info Version", i32 3}
!1 = !{i32 2, !"Dwarf Version", i32 4}
!2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "zig 0.0.8", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !314)
!3 = !DIFile(filename: "foo", directory: "/tmp")
!4 = !{!5, !12, !56, !78, !84, !142, !165, !170}
!5 = !DICompositeType(tag: DW_TAG_enumeration_type, name: "std.builtin.OutputMode", scope: !6, file: !6, line: 444, baseType: !7, size: 8, align: 8, elements: !8)
!6 = !DIFile(filename: "builtin.zig", directory: "/home/lemonboy/code/zig/lib/std")
!7 = !DIBasicType(name: "u2", size: 8, encoding: DW_ATE_unsigned)
!8 = !{!9, !10, !11}
!9 = !DIEnumerator(name: "Exe", value: 0)
!10 = !DIEnumerator(name: "Lib", value: 1)
!11 = !DIEnumerator(name: "Obj", value: 2)
!12 = !DICompositeType(tag: DW_TAG_enumeration_type, name: "std.target.Tag", scope: !13, file: !13, line: 23, baseType: !14, size: 8, align: 8, elements: !15)
!13 = !DIFile(filename: "target.zig", directory: "/home/lemonboy/code/zig/lib/std")
!14 = !DIBasicType(name: "u6", size: 8, encoding: DW_ATE_unsigned)
!15 = !{!16, !17, !18, !19, !20, !21, !22, !23, !24, !25, !26, !27, !28, !29, !30, !31, !32, !33, !34, !35, !36, !37, !38, !39, !40, !41, !42, !43, !44, !45, !46, !47, !48, !49, !50, !51, !52, !53, !54, !55}
!16 = !DIEnumerator(name: "freestanding", value: 0)
!17 = !DIEnumerator(name: "ananas", value: 1)
!18 = !DIEnumerator(name: "cloudabi", value: 2)
!19 = !DIEnumerator(name: "dragonfly", value: 3)
!20 = !DIEnumerator(name: "freebsd", value: 4)
!21 = !DIEnumerator(name: "fuchsia", value: 5)
!22 = !DIEnumerator(name: "ios", value: 6)
!23 = !DIEnumerator(name: "kfreebsd", value: 7)
!24 = !DIEnumerator(name: "linux", value: 8)
!25 = !DIEnumerator(name: "lv2", value: 9)
!26 = !DIEnumerator(name: "macos", value: 10)
!27 = !DIEnumerator(name: "netbsd", value: 11)
!28 = !DIEnumerator(name: "openbsd", value: 12)
!29 = !DIEnumerator(name: "solaris", value: 13)
!30 = !DIEnumerator(name: "windows", value: 14)
!31 = !DIEnumerator(name: "zos", value: 15)
!32 = !DIEnumerator(name: "haiku", value: 16)
!33 = !DIEnumerator(name: "minix", value: 17)
!34 = !DIEnumerator(name: "rtems", value: 18)
!35 = !DIEnumerator(name: "nacl", value: 19)
!36 = !DIEnumerator(name: "aix", value: 20)
!37 = !DIEnumerator(name: "cuda", value: 21)
!38 = !DIEnumerator(name: "nvcl", value: 22)
!39 = !DIEnumerator(name: "amdhsa", value: 23)
!40 = !DIEnumerator(name: "ps4", value: 24)
!41 = !DIEnumerator(name: "elfiamcu", value: 25)
!42 = !DIEnumerator(name: "tvos", value: 26)
!43 = !DIEnumerator(name: "watchos", value: 27)
!44 = !DIEnumerator(name: "mesa3d", value: 28)
!45 = !DIEnumerator(name: "contiki", value: 29)
!46 = !DIEnumerator(name: "amdpal", value: 30)
!47 = !DIEnumerator(name: "hermit", value: 31)
!48 = !DIEnumerator(name: "hurd", value: 32)
!49 = !DIEnumerator(name: "wasi", value: 33)
!50 = !DIEnumerator(name: "emscripten", value: 34)
!51 = !DIEnumerator(name: "uefi", value: 35)
!52 = !DIEnumerator(name: "opencl", value: 36)
!53 = !DIEnumerator(name: "glsl450", value: 37)
!54 = !DIEnumerator(name: "vulkan", value: 38)
!55 = !DIEnumerator(name: "other", value: 39)
!56 = !DICompositeType(tag: DW_TAG_enumeration_type, name: "std.target.WindowsVersion", scope: !13, file: !13, line: 92, baseType: !57, size: 32, align: 32, elements: !58)
!57 = !DIBasicType(name: "u32", size: 32, encoding: DW_ATE_unsigned)
!58 = !{!59, !60, !61, !62, !63, !64, !65, !66, !67, !68, !69, !70, !71, !72, !73, !74, !75, !76, !77}
!59 = !DIEnumerator(name: "nt4", value: 67108864)
!60 = !DIEnumerator(name: "win2k", value: 83886080)
!61 = !DIEnumerator(name: "xp", value: 83951616)
!62 = !DIEnumerator(name: "ws2003", value: 84017152)
!63 = !DIEnumerator(name: "vista", value: 100663296)
!64 = !DIEnumerator(name: "win7", value: 100728832)
!65 = !DIEnumerator(name: "win8", value: 100794368)
!66 = !DIEnumerator(name: "win8_1", value: 100859904)
!67 = !DIEnumerator(name: "win10", value: 167772160)
!68 = !DIEnumerator(name: "win10_th2", value: 167772161)
!69 = !DIEnumerator(name: "win10_rs1", value: 167772162)
!70 = !DIEnumerator(name: "win10_rs2", value: 167772163)
!71 = !DIEnumerator(name: "win10_rs3", value: 167772164)
!72 = !DIEnumerator(name: "win10_rs4", value: 167772165)
!73 = !DIEnumerator(name: "win10_rs5", value: 167772166)
!74 = !DIEnumerator(name: "win10_19h1", value: 167772167)
!75 = !DIEnumerator(name: "win10_vb", value: 167772168)
!76 = !DIEnumerator(name: "win10_mn", value: 167772169)
!77 = !DIEnumerator(name: "win10_fe", value: 167772170)
!78 = !DICompositeType(tag: DW_TAG_enumeration_type, name: "@typeInfo(std.target.VersionRange).Union.tag_type.?", scope: !13, file: !13, line: 219, baseType: !7, size: 8, align: 8, elements: !79)
!79 = !{!80, !81, !82, !83}
!80 = !DIEnumerator(name: "none", value: 0)
!81 = !DIEnumerator(name: "semver", value: 1)
!82 = !DIEnumerator(name: "linux", value: 2)
!83 = !DIEnumerator(name: "windows", value: 3)
!84 = !DICompositeType(tag: DW_TAG_enumeration_type, name: "std.target.Arch", scope: !13, file: !13, line: 710, baseType: !14, size: 8, align: 8, elements: !85)
!85 = !{!86, !87, !88, !89, !90, !91, !92, !93, !94, !95, !96, !97, !98, !99, !100, !101, !102, !103, !104, !105, !106, !107, !108, !109, !110, !111, !112, !113, !114, !115, !116, !117, !118, !119, !120, !121, !122, !123, !124, !125, !126, !127, !128, !129, !130, !131, !132, !133, !134, !135, !136, !137, !138, !139, !140, !141}
!86 = !DIEnumerator(name: "arm", value: 0)
!87 = !DIEnumerator(name: "armeb", value: 1)
!88 = !DIEnumerator(name: "aarch64", value: 2)
!89 = !DIEnumerator(name: "aarch64_be", value: 3)
!90 = !DIEnumerator(name: "aarch64_32", value: 4)
!91 = !DIEnumerator(name: "arc", value: 5)
!92 = !DIEnumerator(name: "avr", value: 6)
!93 = !DIEnumerator(name: "bpfel", value: 7)
!94 = !DIEnumerator(name: "bpfeb", value: 8)
!95 = !DIEnumerator(name: "csky", value: 9)
!96 = !DIEnumerator(name: "hexagon", value: 10)
!97 = !DIEnumerator(name: "mips", value: 11)
!98 = !DIEnumerator(name: "mipsel", value: 12)
!99 = !DIEnumerator(name: "mips64", value: 13)
!100 = !DIEnumerator(name: "mips64el", value: 14)
!101 = !DIEnumerator(name: "msp430", value: 15)
!102 = !DIEnumerator(name: "powerpc", value: 16)
!103 = !DIEnumerator(name: "powerpcle", value: 17)
!104 = !DIEnumerator(name: "powerpc64", value: 18)
!105 = !DIEnumerator(name: "powerpc64le", value: 19)
!106 = !DIEnumerator(name: "r600", value: 20)
!107 = !DIEnumerator(name: "amdgcn", value: 21)
!108 = !DIEnumerator(name: "riscv32", value: 22)
!109 = !DIEnumerator(name: "riscv64", value: 23)
!110 = !DIEnumerator(name: "sparc", value: 24)
!111 = !DIEnumerator(name: "sparcv9", value: 25)
!112 = !DIEnumerator(name: "sparcel", value: 26)
!113 = !DIEnumerator(name: "s390x", value: 27)
!114 = !DIEnumerator(name: "tce", value: 28)
!115 = !DIEnumerator(name: "tcele", value: 29)
!116 = !DIEnumerator(name: "thumb", value: 30)
!117 = !DIEnumerator(name: "thumbeb", value: 31)
!118 = !DIEnumerator(name: "i386", value: 32)
!119 = !DIEnumerator(name: "x86_64", value: 33)
!120 = !DIEnumerator(name: "xcore", value: 34)
!121 = !DIEnumerator(name: "nvptx", value: 35)
!122 = !DIEnumerator(name: "nvptx64", value: 36)
!123 = !DIEnumerator(name: "le32", value: 37)
!124 = !DIEnumerator(name: "le64", value: 38)
!125 = !DIEnumerator(name: "amdil", value: 39)
!126 = !DIEnumerator(name: "amdil64", value: 40)
!127 = !DIEnumerator(name: "hsail", value: 41)
!128 = !DIEnumerator(name: "hsail64", value: 42)
!129 = !DIEnumerator(name: "spir", value: 43)
!130 = !DIEnumerator(name: "spir64", value: 44)
!131 = !DIEnumerator(name: "kalimba", value: 45)
!132 = !DIEnumerator(name: "shave", value: 46)
!133 = !DIEnumerator(name: "lanai", value: 47)
!134 = !DIEnumerator(name: "wasm32", value: 48)
!135 = !DIEnumerator(name: "wasm64", value: 49)
!136 = !DIEnumerator(name: "renderscript32", value: 50)
!137 = !DIEnumerator(name: "renderscript64", value: 51)
!138 = !DIEnumerator(name: "ve", value: 52)
!139 = !DIEnumerator(name: "spu_2", value: 53)
!140 = !DIEnumerator(name: "spirv32", value: 54)
!141 = !DIEnumerator(name: "spirv64", value: 55)
!142 = !DICompositeType(tag: DW_TAG_enumeration_type, name: "std.target.Abi", scope: !13, file: !13, line: 440, baseType: !143, size: 8, align: 8, elements: !144)
!143 = !DIBasicType(name: "u5", size: 8, encoding: DW_ATE_unsigned)
!144 = !{!80, !145, !146, !147, !148, !149, !150, !151, !152, !153, !154, !155, !156, !157, !158, !159, !160, !161, !162, !163, !164}
!145 = !DIEnumerator(name: "gnu", value: 1)
!146 = !DIEnumerator(name: "gnuabin32", value: 2)
!147 = !DIEnumerator(name: "gnuabi64", value: 3)
!148 = !DIEnumerator(name: "gnueabi", value: 4)
!149 = !DIEnumerator(name: "gnueabihf", value: 5)
!150 = !DIEnumerator(name: "gnux32", value: 6)
!151 = !DIEnumerator(name: "gnuilp32", value: 7)
!152 = !DIEnumerator(name: "code16", value: 8)
!153 = !DIEnumerator(name: "eabi", value: 9)
!154 = !DIEnumerator(name: "eabihf", value: 10)
!155 = !DIEnumerator(name: "android", value: 11)
!156 = !DIEnumerator(name: "musl", value: 12)
!157 = !DIEnumerator(name: "musleabi", value: 13)
!158 = !DIEnumerator(name: "musleabihf", value: 14)
!159 = !DIEnumerator(name: "msvc", value: 15)
!160 = !DIEnumerator(name: "itanium", value: 16)
!161 = !DIEnumerator(name: "cygnus", value: 17)
!162 = !DIEnumerator(name: "coreclr", value: 18)
!163 = !DIEnumerator(name: "simulator", value: 19)
!164 = !DIEnumerator(name: "macabi", value: 20)
!165 = !DICompositeType(tag: DW_TAG_enumeration_type, name: "anyerror", baseType: !166, size: 16, align: 16, elements: !167)
!166 = !DIBasicType(name: "u16", size: 16, encoding: DW_ATE_unsigned)
!167 = !{!168, !169}
!168 = !DIEnumerator(name: "(none)", value: 0)
!169 = !DIEnumerator(name: "What", value: 1)
!170 = !DICompositeType(tag: DW_TAG_enumeration_type, name: "std.target.x86.Feature", scope: !171, file: !171, line: 7, baseType: !172, size: 8, align: 8, elements: !173)
!171 = !DIFile(filename: "x86.zig", directory: "/home/lemonboy/code/zig/lib/std/target")
!172 = !DIBasicType(name: "u8", size: 8, encoding: DW_ATE_unsigned_char)
!173 = !{!174, !175, !176, !177, !178, !179, !180, !181, !182, !183, !184, !185, !186, !187, !188, !189, !190, !191, !192, !193, !194, !195, !196, !197, !198, !199, !200, !201, !202, !203, !204, !205, !206, !207, !208, !209, !210, !211, !212, !213, !214, !215, !216, !217, !218, !219, !220, !221, !222, !223, !224, !225, !226, !227, !228, !229, !230, !231, !232, !233, !234, !235, !236, !237, !238, !239, !240, !241, !242, !243, !244, !245, !246, !247, !248, !249, !250, !251, !252, !253, !254, !255, !256, !257, !258, !259, !260, !261, !262, !263, !264, !265, !266, !267, !268, !269, !270, !271, !272, !273, !274, !275, !276, !277, !278, !279, !280, !281, !282, !283, !284, !285, !286, !287, !288, !289, !290, !291, !292, !293, !294, !295, !296, !297, !298, !299, !300, !301, !302, !303, !304, !305, !306, !307, !308, !309, !310, !311, !312, !313}
!174 = !DIEnumerator(name: "16bit_mode", value: 0)
!175 = !DIEnumerator(name: "32bit_mode", value: 1)
!176 = !DIEnumerator(name: "3dnow", value: 2)
!177 = !DIEnumerator(name: "3dnowa", value: 3)
!178 = !DIEnumerator(name: "64bit", value: 4)
!179 = !DIEnumerator(name: "adx", value: 5)
!180 = !DIEnumerator(name: "aes", value: 6)
!181 = !DIEnumerator(name: "amx_bf16", value: 7)
!182 = !DIEnumerator(name: "amx_int8", value: 8)
!183 = !DIEnumerator(name: "amx_tile", value: 9)
!184 = !DIEnumerator(name: "avx", value: 10)
!185 = !DIEnumerator(name: "avx2", value: 11)
!186 = !DIEnumerator(name: "avx512bf16", value: 12)
!187 = !DIEnumerator(name: "avx512bitalg", value: 13)
!188 = !DIEnumerator(name: "avx512bw", value: 14)
!189 = !DIEnumerator(name: "avx512cd", value: 15)
!190 = !DIEnumerator(name: "avx512dq", value: 16)
!191 = !DIEnumerator(name: "avx512er", value: 17)
!192 = !DIEnumerator(name: "avx512f", value: 18)
!193 = !DIEnumerator(name: "avx512ifma", value: 19)
!194 = !DIEnumerator(name: "avx512pf", value: 20)
!195 = !DIEnumerator(name: "avx512vbmi", value: 21)
!196 = !DIEnumerator(name: "avx512vbmi2", value: 22)
!197 = !DIEnumerator(name: "avx512vl", value: 23)
!198 = !DIEnumerator(name: "avx512vnni", value: 24)
!199 = !DIEnumerator(name: "avx512vp2intersect", value: 25)
!200 = !DIEnumerator(name: "avx512vpopcntdq", value: 26)
!201 = !DIEnumerator(name: "avxvnni", value: 27)
!202 = !DIEnumerator(name: "bmi", value: 28)
!203 = !DIEnumerator(name: "bmi2", value: 29)
!204 = !DIEnumerator(name: "branchfusion", value: 30)
!205 = !DIEnumerator(name: "cldemote", value: 31)
!206 = !DIEnumerator(name: "clflushopt", value: 32)
!207 = !DIEnumerator(name: "clwb", value: 33)
!208 = !DIEnumerator(name: "clzero", value: 34)
!209 = !DIEnumerator(name: "cmov", value: 35)
!210 = !DIEnumerator(name: "cx16", value: 36)
!211 = !DIEnumerator(name: "cx8", value: 37)
!212 = !DIEnumerator(name: "enqcmd", value: 38)
!213 = !DIEnumerator(name: "ermsb", value: 39)
!214 = !DIEnumerator(name: "f16c", value: 40)
!215 = !DIEnumerator(name: "false_deps_lzcnt_tzcnt", value: 41)
!216 = !DIEnumerator(name: "false_deps_popcnt", value: 42)
!217 = !DIEnumerator(name: "fast_11bytenop", value: 43)
!218 = !DIEnumerator(name: "fast_15bytenop", value: 44)
!219 = !DIEnumerator(name: "fast_7bytenop", value: 45)
!220 = !DIEnumerator(name: "fast_bextr", value: 46)
!221 = !DIEnumerator(name: "fast_gather", value: 47)
!222 = !DIEnumerator(name: "fast_hops", value: 48)
!223 = !DIEnumerator(name: "fast_lzcnt", value: 49)
!224 = !DIEnumerator(name: "fast_scalar_fsqrt", value: 50)
!225 = !DIEnumerator(name: "fast_scalar_shift_masks", value: 51)
!226 = !DIEnumerator(name: "fast_shld_rotate", value: 52)
!227 = !DIEnumerator(name: "fast_variable_shuffle", value: 53)
!228 = !DIEnumerator(name: "fast_vector_fsqrt", value: 54)
!229 = !DIEnumerator(name: "fast_vector_shift_masks", value: 55)
!230 = !DIEnumerator(name: "fma", value: 56)
!231 = !DIEnumerator(name: "fma4", value: 57)
!232 = !DIEnumerator(name: "fsgsbase", value: 58)
!233 = !DIEnumerator(name: "fsrm", value: 59)
!234 = !DIEnumerator(name: "fxsr", value: 60)
!235 = !DIEnumerator(name: "gfni", value: 61)
!236 = !DIEnumerator(name: "hreset", value: 62)
!237 = !DIEnumerator(name: "idivl_to_divb", value: 63)
!238 = !DIEnumerator(name: "idivq_to_divl", value: 64)
!239 = !DIEnumerator(name: "invpcid", value: 65)
!240 = !DIEnumerator(name: "kl", value: 66)
!241 = !DIEnumerator(name: "lea_sp", value: 67)
!242 = !DIEnumerator(name: "lea_uses_ag", value: 68)
!243 = !DIEnumerator(name: "lvi_cfi", value: 69)
!244 = !DIEnumerator(name: "lvi_load_hardening", value: 70)
!245 = !DIEnumerator(name: "lwp", value: 71)
!246 = !DIEnumerator(name: "lzcnt", value: 72)
!247 = !DIEnumerator(name: "macrofusion", value: 73)
!248 = !DIEnumerator(name: "mmx", value: 74)
!249 = !DIEnumerator(name: "movbe", value: 75)
!250 = !DIEnumerator(name: "movdir64b", value: 76)
!251 = !DIEnumerator(name: "movdiri", value: 77)
!252 = !DIEnumerator(name: "mwaitx", value: 78)
!253 = !DIEnumerator(name: "nopl", value: 79)
!254 = !DIEnumerator(name: "pad_short_functions", value: 80)
!255 = !DIEnumerator(name: "pclmul", value: 81)
!256 = !DIEnumerator(name: "pconfig", value: 82)
!257 = !DIEnumerator(name: "pku", value: 83)
!258 = !DIEnumerator(name: "popcnt", value: 84)
!259 = !DIEnumerator(name: "prefer_128_bit", value: 85)
!260 = !DIEnumerator(name: "prefer_256_bit", value: 86)
!261 = !DIEnumerator(name: "prefer_mask_registers", value: 87)
!262 = !DIEnumerator(name: "prefetchwt1", value: 88)
!263 = !DIEnumerator(name: "prfchw", value: 89)
!264 = !DIEnumerator(name: "ptwrite", value: 90)
!265 = !DIEnumerator(name: "rdpid", value: 91)
!266 = !DIEnumerator(name: "rdrnd", value: 92)
!267 = !DIEnumerator(name: "rdseed", value: 93)
!268 = !DIEnumerator(name: "retpoline", value: 94)
!269 = !DIEnumerator(name: "retpoline_external_thunk", value: 95)
!270 = !DIEnumerator(name: "retpoline_indirect_branches", value: 96)
!271 = !DIEnumerator(name: "retpoline_indirect_calls", value: 97)
!272 = !DIEnumerator(name: "rtm", value: 98)
!273 = !DIEnumerator(name: "sahf", value: 99)
!274 = !DIEnumerator(name: "serialize", value: 100)
!275 = !DIEnumerator(name: "seses", value: 101)
!276 = !DIEnumerator(name: "sgx", value: 102)
!277 = !DIEnumerator(name: "sha", value: 103)
!278 = !DIEnumerator(name: "shstk", value: 104)
!279 = !DIEnumerator(name: "slow_3ops_lea", value: 105)
!280 = !DIEnumerator(name: "slow_incdec", value: 106)
!281 = !DIEnumerator(name: "slow_lea", value: 107)
!282 = !DIEnumerator(name: "slow_pmaddwd", value: 108)
!283 = !DIEnumerator(name: "slow_pmulld", value: 109)
!284 = !DIEnumerator(name: "slow_shld", value: 110)
!285 = !DIEnumerator(name: "slow_two_mem_ops", value: 111)
!286 = !DIEnumerator(name: "slow_unaligned_mem_16", value: 112)
!287 = !DIEnumerator(name: "slow_unaligned_mem_32", value: 113)
!288 = !DIEnumerator(name: "soft_float", value: 114)
!289 = !DIEnumerator(name: "sse", value: 115)
!290 = !DIEnumerator(name: "sse2", value: 116)
!291 = !DIEnumerator(name: "sse3", value: 117)
!292 = !DIEnumerator(name: "sse4_1", value: 118)
!293 = !DIEnumerator(name: "sse4_2", value: 119)
!294 = !DIEnumerator(name: "sse4a", value: 120)
!295 = !DIEnumerator(name: "sse_unaligned_mem", value: 121)
!296 = !DIEnumerator(name: "ssse3", value: 122)
!297 = !DIEnumerator(name: "tbm", value: 123)
!298 = !DIEnumerator(name: "tsxldtrk", value: 124)
!299 = !DIEnumerator(name: "uintr", value: 125)
!300 = !DIEnumerator(name: "use_aa", value: 126)
!301 = !DIEnumerator(name: "use_glm_div_sqrt_costs", value: 127)
!302 = !DIEnumerator(name: "vaes", value: 128)
!303 = !DIEnumerator(name: "vpclmulqdq", value: 129)
!304 = !DIEnumerator(name: "vzeroupper", value: 130)
!305 = !DIEnumerator(name: "waitpkg", value: 131)
!306 = !DIEnumerator(name: "wbnoinvd", value: 132)
!307 = !DIEnumerator(name: "widekl", value: 133)
!308 = !DIEnumerator(name: "x87", value: 134)
!309 = !DIEnumerator(name: "xop", value: 135)
!310 = !DIEnumerator(name: "xsave", value: 136)
!311 = !DIEnumerator(name: "xsavec", value: 137)
!312 = !DIEnumerator(name: "xsaveopt", value: 138)
!313 = !DIEnumerator(name: "xsaves", value: 139)
!314 = !{!315, !319, !321, !323, !355, !365, !367, !369, !387, !395, !397, !404, !406}
!315 = !DIGlobalVariableExpression(var: !316, expr: !DIExpression())
!316 = distinct !DIGlobalVariable(name: "zig_is_stage2", linkageName: "zig_is_stage2", scope: !317, file: !317, line: 10, type: !318, isLocal: true, isDefinition: true)
!317 = !DIFile(filename: "builtin.zig", directory: "/home/lemonboy/.cache/zig/o/6d537d00ccae926c273a5b79fa7a167d")
!318 = !DIBasicType(name: "bool", size: 8, encoding: DW_ATE_boolean)
!319 = !DIGlobalVariableExpression(var: !320, expr: !DIExpression())
!320 = distinct !DIGlobalVariable(name: "output_mode", linkageName: "output_mode", scope: !317, file: !317, line: 12, type: !5, isLocal: true, isDefinition: true)
!321 = !DIGlobalVariableExpression(var: !322, expr: !DIExpression())
!322 = distinct !DIGlobalVariable(name: "link_libc", linkageName: "link_libc", scope: !317, file: !317, line: 58, type: !318, isLocal: true, isDefinition: true)
!323 = !DIGlobalVariableExpression(var: !324, expr: !DIExpression())
!324 = distinct !DIGlobalVariable(name: "os", linkageName: "os", scope: !317, file: !317, line: 34, type: !325, isLocal: true, isDefinition: true)
!325 = !DICompositeType(tag: DW_TAG_structure_type, name: "std.target.Os", scope: !13, file: !13, line: 19, size: 352, align: 32, elements: !326)
!326 = !{!327, !328}
!327 = !DIDerivedType(tag: DW_TAG_member, name: "tag", scope: !325, file: !13, line: 20, baseType: !12, size: 8, align: 8)
!328 = !DIDerivedType(tag: DW_TAG_member, name: "version_range", scope: !325, file: !13, line: 21, baseType: !329, size: 320, align: 32, offset: 32)
!329 = !DICompositeType(tag: DW_TAG_structure_type, name: "std.target.VersionRange", scope: !13, file: !13, line: 219, size: 320, align: 32, elements: !330)
!330 = !{!331, !354}
!331 = !DIDerivedType(tag: DW_TAG_member, name: "payload", scope: !329, file: !13, line: 219, baseType: !332, size: 192, align: 32)
!332 = !DICompositeType(tag: DW_TAG_union_type, name: "AnonUnion", scope: !329, file: !13, line: 219, size: 192, align: 32, elements: !333)
!333 = !{!334, !344, !349}
!334 = !DIDerivedType(tag: DW_TAG_member, name: "semver", scope: !329, file: !13, line: 221, baseType: !335, size: 192, align: 32)
!335 = !DICompositeType(tag: DW_TAG_structure_type, name: "std.builtin.Range", scope: !6, file: !6, line: 464, size: 192, align: 32, elements: !336)
!336 = !{!337, !343}
!337 = !DIDerivedType(tag: DW_TAG_member, name: "min", scope: !335, file: !6, line: 465, baseType: !338, size: 96, align: 32)
!338 = !DICompositeType(tag: DW_TAG_structure_type, name: "std.builtin.Version", scope: !6, file: !6, line: 459, size: 96, align: 32, elements: !339)
!339 = !{!340, !341, !342}
!340 = !DIDerivedType(tag: DW_TAG_member, name: "major", scope: !338, file: !6, line: 460, baseType: !57, size: 32, align: 32)
!341 = !DIDerivedType(tag: DW_TAG_member, name: "minor", scope: !338, file: !6, line: 461, baseType: !57, size: 32, align: 32, offset: 32)
!342 = !DIDerivedType(tag: DW_TAG_member, name: "patch", scope: !338, file: !6, line: 462, baseType: !57, size: 32, align: 32, offset: 64)
!343 = !DIDerivedType(tag: DW_TAG_member, name: "max", scope: !335, file: !6, line: 466, baseType: !338, size: 96, align: 32, offset: 96)
!344 = !DIDerivedType(tag: DW_TAG_member, name: "linux", scope: !329, file: !13, line: 222, baseType: !345, size: 288, align: 32)
!345 = !DICompositeType(tag: DW_TAG_structure_type, name: "std.target.LinuxVersionRange", scope: !13, file: !13, line: 180, size: 288, align: 32, elements: !346)
!346 = !{!347, !348}
!347 = !DIDerivedType(tag: DW_TAG_member, name: "range", scope: !345, file: !13, line: 181, baseType: !335, size: 192, align: 32)
!348 = !DIDerivedType(tag: DW_TAG_member, name: "glibc", scope: !345, file: !13, line: 182, baseType: !338, size: 96, align: 32, offset: 192)
!349 = !DIDerivedType(tag: DW_TAG_member, name: "windows", scope: !329, file: !13, line: 223, baseType: !350, size: 64, align: 32)
!350 = !DICompositeType(tag: DW_TAG_structure_type, name: "std.target.Range", scope: !13, file: !13, line: 138, size: 64, align: 32, elements: !351)
!351 = !{!352, !353}
!352 = !DIDerivedType(tag: DW_TAG_member, name: "min", scope: !350, file: !13, line: 139, baseType: !56, size: 32, align: 32)
!353 = !DIDerivedType(tag: DW_TAG_member, name: "max", scope: !350, file: !13, line: 140, baseType: !56, size: 32, align: 32, offset: 32)
!354 = !DIDerivedType(tag: DW_TAG_member, name: "tag", scope: !329, file: !13, line: 219, baseType: !78, size: 2, align: 8, offset: 288)
!355 = !DIGlobalVariableExpression(var: !356, expr: !DIExpression())
!356 = distinct !DIGlobalVariable(name: "needed_bit_count", linkageName: "needed_bit_count", scope: !357, file: !13, line: 598, type: !364, isLocal: true, isDefinition: true)
!357 = !DICompositeType(tag: DW_TAG_structure_type, name: "std.target.Set", scope: !13, file: !13, line: 595, size: 288, align: 32, elements: !358)
!358 = !{!359}
!359 = !DIDerivedType(tag: DW_TAG_member, name: "ints", scope: !357, file: !13, line: 596, baseType: !360, size: 288, align: 32)
!360 = !DICompositeType(tag: DW_TAG_array_type, baseType: !361, size: 288, align: 288, elements: !362)
!361 = !DIBasicType(name: "usize", size: 32, encoding: DW_ATE_unsigned)
!362 = !{!363}
!363 = !DISubrange(count: 9, lowerBound: 0)
!364 = !DIBasicType(name: "u9", size: 16, encoding: DW_ATE_unsigned)
!365 = !DIGlobalVariableExpression(var: !366, expr: !DIExpression())
!366 = distinct !DIGlobalVariable(name: "byte_count", linkageName: "byte_count", scope: !357, file: !13, line: 599, type: !172, isLocal: true, isDefinition: true)
!367 = !DIGlobalVariableExpression(var: !368, expr: !DIExpression())
!368 = distinct !DIGlobalVariable(name: "usize_count", linkageName: "usize_count", scope: !357, file: !13, line: 600, type: !172, isLocal: true, isDefinition: true)
!369 = !DIGlobalVariableExpression(var: !370, expr: !DIExpression())
!370 = distinct !DIGlobalVariable(name: "pentium4", linkageName: "pentium4", scope: !371, file: !171, line: 2388, type: !373, isLocal: true, isDefinition: true)
!371 = !DICompositeType(tag: DW_TAG_structure_type, name: "std.target.x86.cpu", scope: !171, file: !171, line: 964, elements: !372)
!372 = !{}
!373 = !DICompositeType(tag: DW_TAG_structure_type, name: "std.target.Model", scope: !13, file: !13, line: 1172, size: 448, align: 32, elements: !374)
!374 = !{!375, !381, !386}
!375 = !DIDerivedType(tag: DW_TAG_member, name: "name", scope: !373, file: !13, line: 1173, baseType: !376, size: 64, align: 32)
!376 = !DICompositeType(tag: DW_TAG_structure_type, name: "[]u8", size: 64, align: 32, elements: !377)
!377 = !{!378, !380}
!378 = !DIDerivedType(tag: DW_TAG_member, name: "ptr", scope: !376, baseType: !379, size: 32, align: 32)
!379 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*u8", baseType: !172, size: 32, align: 32)
!380 = !DIDerivedType(tag: DW_TAG_member, name: "len", scope: !376, baseType: !361, size: 32, align: 32, offset: 32)
!381 = !DIDerivedType(tag: DW_TAG_member, name: "llvm_name", scope: !373, file: !13, line: 1174, baseType: !382, size: 72, align: 32, offset: 64)
!382 = !DICompositeType(tag: DW_TAG_structure_type, name: "?[:0]const u8", size: 96, align: 32, elements: !383)
!383 = !{!384, !385}
!384 = !DIDerivedType(tag: DW_TAG_member, name: "val", scope: !382, baseType: !376, size: 64, align: 32)
!385 = !DIDerivedType(tag: DW_TAG_member, name: "maybe", scope: !382, baseType: !318, size: 8, align: 8, offset: 64)
!386 = !DIDerivedType(tag: DW_TAG_member, name: "features", scope: !373, file: !13, line: 1175, baseType: !357, size: 288, align: 32, offset: 160)
!387 = !DIGlobalVariableExpression(var: !388, expr: !DIExpression())
!388 = distinct !DIGlobalVariable(name: "cpu", linkageName: "cpu", scope: !317, file: !317, line: 17, type: !389, isLocal: true, isDefinition: true)
!389 = !DICompositeType(tag: DW_TAG_structure_type, name: "std.target.Cpu", scope: !13, file: !13, line: 564, size: 352, align: 32, elements: !390)
!390 = !{!391, !392, !394}
!391 = !DIDerivedType(tag: DW_TAG_member, name: "arch", scope: !389, file: !13, line: 566, baseType: !84, size: 8, align: 8)
!392 = !DIDerivedType(tag: DW_TAG_member, name: "model", scope: !389, file: !13, line: 570, baseType: !393, size: 32, align: 32, offset: 32)
!393 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*std.target.Model", baseType: !373, size: 32, align: 32)
!394 = !DIDerivedType(tag: DW_TAG_member, name: "features", scope: !389, file: !13, line: 573, baseType: !357, size: 288, align: 32, offset: 64)
!395 = !DIGlobalVariableExpression(var: !396, expr: !DIExpression())
!396 = distinct !DIGlobalVariable(name: "abi", linkageName: "abi", scope: !317, file: !317, line: 16, type: !142, isLocal: true, isDefinition: true)
!397 = !DIGlobalVariableExpression(var: !398, expr: !DIExpression())
!398 = distinct !DIGlobalVariable(name: "current", linkageName: "current", scope: !399, file: !13, line: 1245, type: !399, isLocal: true, isDefinition: true)
!399 = !DICompositeType(tag: DW_TAG_structure_type, name: "std.target.Target", scope: !13, file: !13, line: 14, size: 736, align: 32, elements: !400)
!400 = !{!401, !402, !403}
!401 = !DIDerivedType(tag: DW_TAG_member, name: "cpu", scope: !399, file: !13, line: 15, baseType: !389, size: 352, align: 32)
!402 = !DIDerivedType(tag: DW_TAG_member, name: "os", scope: !399, file: !13, line: 16, baseType: !325, size: 352, align: 32, offset: 352)
!403 = !DIDerivedType(tag: DW_TAG_member, name: "abi", scope: !399, file: !13, line: 17, baseType: !142, size: 8, align: 8, offset: 704)
!404 = !DIGlobalVariableExpression(var: !405, expr: !DIExpression())
!405 = distinct !DIGlobalVariable(name: "arch", linkageName: "arch", scope: !317, file: !317, line: 3, type: !84, isLocal: true, isDefinition: true)
!406 = !DIGlobalVariableExpression(var: !407, expr: !DIExpression())
!407 = distinct !DIGlobalVariable(name: "start_sym_name", linkageName: "start_sym_name", scope: !408, file: !408, line: 17, type: !409, isLocal: true, isDefinition: true)
!408 = !DIFile(filename: "start.zig", directory: "/home/lemonboy/code/zig/lib/std")
!409 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*[6:0]u8", baseType: !410, size: 32, align: 32)
!410 = !DICompositeType(tag: DW_TAG_array_type, baseType: !172, size: 56, align: 56, elements: !411)
!411 = !{!412}
!412 = !DISubrange(count: 7, lowerBound: 0)
!413 = distinct !DISubprogram(name: "panic", scope: !414, file: !414, line: 11, type: !415, scopeLine: 11, flags: DIFlagStaticMember, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !2, retainedNodes: !428)
!414 = !DIFile(filename: "foo.zig", directory: "/tmp")
!415 = !DISubroutineType(types: !416)
!416 = !{null, !417, !418}
!417 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*[]const u8", baseType: !376, size: 32, align: 32)
!418 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*std.builtin.StackTrace", baseType: !419, size: 32, align: 32)
!419 = !DICompositeType(tag: DW_TAG_structure_type, name: "std.builtin.StackTrace", scope: !6, file: !6, line: 57, size: 96, align: 32, elements: !420)
!420 = !{!421, !422}
!421 = !DIDerivedType(tag: DW_TAG_member, name: "index", scope: !419, file: !6, line: 58, baseType: !361, size: 32, align: 32)
!422 = !DIDerivedType(tag: DW_TAG_member, name: "instruction_addresses", scope: !419, file: !6, line: 59, baseType: !423, size: 64, align: 32, offset: 32)
!423 = !DICompositeType(tag: DW_TAG_structure_type, name: "[]usize", size: 64, align: 32, elements: !424)
!424 = !{!425, !427}
!425 = !DIDerivedType(tag: DW_TAG_member, name: "ptr", scope: !423, baseType: !426, size: 32, align: 32)
!426 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*usize", baseType: !361, size: 32, align: 32)
!427 = !DIDerivedType(tag: DW_TAG_member, name: "len", scope: !423, baseType: !361, size: 32, align: 32, offset: 32)
!428 = !{!429, !430}
!429 = !DILocalVariable(name: "msg", arg: 1, scope: !413, file: !414, line: 11, type: !376)
!430 = !DILocalVariable(name: "error_return_trace", arg: 2, scope: !413, file: !414, line: 11, type: !418)
!431 = !DILocation(line: 11, column: 14, scope: !413)
!432 = !DILocation(line: 11, column: 31, scope: !413)
!433 = !DILocation(line: 12, column: 5, scope: !434)
!434 = distinct !DILexicalBlock(scope: !413, file: !414, line: 11, column: 82)
!435 = distinct !DISubprogram(name: "_start", scope: !414, file: !414, line: 19, type: !436, scopeLine: 19, flags: DIFlagStaticMember, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !438)
!436 = !DISubroutineType(types: !437)
!437 = !{null}
!438 = !{!439}
!439 = !DILocalVariable(name: "p", scope: !440, file: !414, line: 21, type: !441)
!440 = distinct !DILexicalBlock(scope: !435, file: !414, line: 19, column: 29)
!441 = !DICompositeType(tag: DW_TAG_structure_type, name: "P", scope: !414, file: !414, line: 1, size: 24, align: 8, elements: !442)
!442 = !{!443, !445, !446, !447, !448, !449}
!443 = !DIDerivedType(tag: DW_TAG_member, name: "a", scope: !441, file: !414, line: 2, baseType: !444, size: 3, align: 8)
!444 = !DIBasicType(name: "u3", size: 8, encoding: DW_ATE_unsigned)
!445 = !DIDerivedType(tag: DW_TAG_member, name: "_a", scope: !441, file: !414, line: 3, baseType: !444, size: 3, align: 8, offset: 3)
!446 = !DIDerivedType(tag: DW_TAG_member, name: "b", scope: !441, file: !414, line: 4, baseType: !444, size: 3, align: 8, offset: 6)
!447 = !DIDerivedType(tag: DW_TAG_member, name: "_b", scope: !441, file: !414, line: 5, baseType: !444, size: 3, align: 8, offset: 9)
!448 = !DIDerivedType(tag: DW_TAG_member, name: "c", scope: !441, file: !414, line: 6, baseType: !444, size: 3, align: 8, offset: 12)
!449 = !DIDerivedType(tag: DW_TAG_member, name: "_c", scope: !441, file: !414, line: 7, baseType: !444, size: 3, align: 8, offset: 15)
!450 = !DILocation(line: 21, column: 5, scope: !440)
!451 = !DILocation(line: 22, column: 12, scope: !440)
!452 = !DILocation(line: 22, column: 17, scope: !440)
!453 = !DILocation(line: 22, column: 20, scope: !440)
!454 = !DILocation(line: 22, column: 25, scope: !440)
!455 = !DILocation(line: 22, column: 28, scope: !440)
!456 = !DILocation(line: 22, column: 33, scope: !440)
!457 = !DILocation(line: 22, column: 10, scope: !440)
!458 = !DILocation(line: 23, column: 16, scope: !440)
!459 = !DILocation(line: 23, column: 11, scope: !440)
!460 = !DILocation(line: 23, column: 20, scope: !440)
!461 = !DILocation(line: 23, column: 26, scope: !440)
!462 = !DILocation(line: 19, column: 29, scope: !440)
!463 = distinct !DISubprogram(name: "expect", scope: !414, file: !414, line: 15, type: !464, scopeLine: 15, flags: DIFlagStaticMember, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !2, retainedNodes: !466)
!464 = !DISubroutineType(types: !465)
!465 = !{!165, !418, !444, !444}
!466 = !{!467, !468}
!467 = !DILocalVariable(name: "a", arg: 2, scope: !463, file: !414, line: 15, type: !444)
!468 = !DILocalVariable(name: "b", arg: 3, scope: !463, file: !414, line: 15, type: !444)
!469 = !DILocation(line: 15, column: 15, scope: !463)
!470 = !DILocation(line: 15, column: 22, scope: !463)
!471 = !DILocation(line: 16, column: 9, scope: !472)
!472 = distinct !DILexicalBlock(scope: !463, file: !414, line: 15, column: 35)
!473 = !DILocation(line: 16, column: 14, scope: !472)
!474 = !DILocation(line: 16, column: 11, scope: !472)
!475 = !DILocation(line: 16, column: 5, scope: !472)
!476 = !DILocation(line: 16, column: 29, scope: !472)
!477 = !DILocation(line: 16, column: 17, scope: !472)
!478 = !DILocation(line: 15, column: 35, scope: !463)
!479 = !DILocation(line: 15, column: 35, scope: !472)
!480 = distinct !DISubprogram(name: "std.target.Feature.feature_set_fns(std.target.x86.Feature).featureSet", scope: !481, file: !13, line: 676, type: !482, scopeLine: 676, flags: DIFlagStaticMember, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !2, retainedNodes: !491)
!481 = !DICompositeType(tag: DW_TAG_structure_type, name: "std.target.Feature.feature_set_fns(std.target.x86.Feature)", scope: !13, file: !13, line: 674, elements: !372)
!482 = !DISubroutineType(types: !483)
!483 = !{null, !484, !485}
!484 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*std.target.Set", baseType: !357, size: 32, align: 32)
!485 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*[]const std.target.x86.Feature", baseType: !486, size: 32, align: 32)
!486 = !DICompositeType(tag: DW_TAG_structure_type, name: "[]std.target.x86.Feature", size: 64, align: 32, elements: !487)
!487 = !{!488, !490}
!488 = !DIDerivedType(tag: DW_TAG_member, name: "ptr", scope: !486, baseType: !489, size: 32, align: 32)
!489 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*std.target.x86.Feature", baseType: !170, size: 32, align: 32)
!490 = !DIDerivedType(tag: DW_TAG_member, name: "len", scope: !486, baseType: !361, size: 32, align: 32, offset: 32)
!491 = !{!492, !493, !495, !496}
!492 = !DILocalVariable(name: "features", arg: 2, scope: !480, file: !13, line: 676, type: !486)
!493 = !DILocalVariable(name: "x", scope: !494, file: !13, line: 677, type: !357)
!494 = distinct !DILexicalBlock(scope: !480, file: !13, line: 676, column: 64)
!495 = !DILocalVariable(name: "_anon", scope: !494, file: !13, line: 678, type: !361)
!496 = !DILocalVariable(name: "feature", scope: !494, file: !13, line: 678, type: !170)
!497 = !DILocation(line: 676, column: 39, scope: !480)
!498 = !DILocation(line: 677, column: 53, scope: !494)
!499 = !DILocation(line: 677, column: 25, scope: !494)
!500 = !DILocation(line: 678, column: 25, scope: !494)
!501 = !DILocation(line: 678, column: 41, scope: !494)
!502 = !DILocation(line: 679, column: 53, scope: !503)
!503 = distinct !DILexicalBlock(scope: !494, file: !13, line: 678, column: 50)
!504 = !DILocation(line: 679, column: 42, scope: !503)
!505 = !DILocation(line: 679, column: 41, scope: !503)
!506 = !DILocation(line: 681, column: 32, scope: !494)
!507 = !DILocation(line: 681, column: 25, scope: !494)
!508 = distinct !DISubprogram(name: "std.target.Set.empty_workaround", scope: !357, file: !13, line: 605, type: !509, scopeLine: 605, flags: DIFlagStaticMember, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !2, retainedNodes: !372)
!509 = !DISubroutineType(types: !510)
!510 = !{null, !484}
!511 = !DILocation(line: 606, column: 33, scope: !512)
!512 = distinct !DILexicalBlock(scope: !508, file: !13, line: 605, column: 47)
!513 = !DILocation(line: 606, column: 53, scope: !512)
!514 = !DILocation(line: 606, column: 21, scope: !512)
!515 = distinct !DISubprogram(name: "std.target.Set.addFeature", scope: !357, file: !13, line: 622, type: !516, scopeLine: 622, flags: DIFlagStaticMember, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !2, retainedNodes: !518)
!516 = !DISubroutineType(types: !517)
!517 = !{null, !484, !364}
!518 = !{!519, !520, !521, !523}
!519 = !DILocalVariable(name: "set", arg: 1, scope: !515, file: !13, line: 622, type: !484)
!520 = !DILocalVariable(name: "arch_feature_index", arg: 2, scope: !515, file: !13, line: 622, type: !364)
!521 = !DILocalVariable(name: "usize_index", scope: !522, file: !13, line: 623, type: !364)
!522 = distinct !DILexicalBlock(scope: !515, file: !13, line: 622, column: 78)
!523 = !DILocalVariable(name: "bit_index", scope: !522, file: !13, line: 624, type: !143)
!524 = !DILocation(line: 622, column: 35, scope: !515)
!525 = !DILocation(line: 622, column: 46, scope: !515)
!526 = !DILocation(line: 623, column: 41, scope: !522)
!527 = !DILocation(line: 623, column: 60, scope: !522)
!528 = !DILocation(line: 623, column: 21, scope: !522)
!529 = !DILocation(line: 624, column: 58, scope: !522)
!530 = !DILocation(line: 624, column: 77, scope: !522)
!531 = !DILocation(line: 624, column: 39, scope: !522)
!532 = !DILocation(line: 624, column: 21, scope: !522)
!533 = !DILocation(line: 625, column: 24, scope: !522)
!534 = !DILocation(line: 625, column: 30, scope: !522)
!535 = !DILocation(line: 625, column: 29, scope: !522)
!536 = !DILocation(line: 625, column: 63, scope: !522)
!537 = !DILocation(line: 625, column: 60, scope: !522)
!538 = !DILocation(line: 625, column: 43, scope: !522)
!539 = !DILocation(line: 622, column: 78, scope: !522)
!540 = distinct !DISubprogram(name: "std.target.Arch.isWasm", scope: !84, file: !13, line: 784, type: !541, scopeLine: 784, flags: DIFlagStaticMember, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !2, retainedNodes: !543)
!541 = !DISubroutineType(types: !542)
!542 = !{!318, !84}
!543 = !{!544}
!544 = !DILocalVariable(name: "arch", arg: 1, scope: !540, file: !13, line: 784, type: !84)
!545 = !DILocation(line: 784, column: 27, scope: !540)
!546 = !DILocation(line: 785, column: 24, scope: !547)
!547 = distinct !DILexicalBlock(scope: !540, file: !13, line: 784, column: 44)
!548 = !DILocation(line: 787, column: 29, scope: !547)
!549 = !DILocation(line: 786, column: 41, scope: !547)
!550 = !DILocation(line: 785, column: 17, scope: !547)
!551 = distinct !DISubprogram(name: "std.target.Arch.isMIPS", scope: !84, file: !13, line: 798, type: !541, scopeLine: 798, flags: DIFlagStaticMember, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !2, retainedNodes: !552)
!552 = !{!553}
!553 = !DILocalVariable(name: "arch", arg: 1, scope: !551, file: !13, line: 798, type: !84)
!554 = !DILocation(line: 798, column: 27, scope: !551)
!555 = !DILocation(line: 799, column: 24, scope: !556)
!556 = distinct !DILexicalBlock(scope: !551, file: !13, line: 798, column: 44)
!557 = !DILocation(line: 801, column: 29, scope: !556)
!558 = !DILocation(line: 800, column: 59, scope: !556)
!559 = !DILocation(line: 799, column: 17, scope: !556)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment