lang: rename signed integer types sN -> iN

Surface rename of the signed integer family: s1..s64 become i1..i64
(u1..u64, usize, isize unchanged). 'string' keeps the s-prefix arm in
name classification; width parsing moves to the i-prefix arm next to
isize.

Internal TypeId tags follow the surface (.s8/.s16/.s32/.s64 ->
.i8/.i16/.i32/.i64), as do mono-key mangle fragments (ptr_i64,
tu_i64_bool) and all display/diagnostic formatting (i{d}).

Migrated in the same sweep: stdlib + examples + issue repros + FFI C
companions (shared symbol names like ffi_id_i64), expected
stdout/stderr/ir snapshots, specs.md, readme.md, CLAUDE.md/AGENTS.md,
implementation_plan.md, docs/, issue writeups. Vendored stb_image and
historical flow state left untouched.

zig build test: 426/426; examples suite: 595/595.
This commit is contained in:
agra
2026-06-12 09:31:53 +03:00
parent 515ecebea7
commit d8076b9333
1054 changed files with 6836 additions and 6839 deletions

View File

@@ -51,10 +51,10 @@ ca/=: 4
prec1: 14
prec2: 20
xx-cast: 200
widen-u8-s64: 200
widen-s32-f64: 42.000000
widen-u8-i64: 200
widen-i32-f64: 42.000000
widen-f32-f64: 1.500000
widen-u8-s16: 100
xx-s64-s32: 12345
widen-u8-i16: 100
xx-i64-i32: 12345
xx-f64-f32: 1.500000
xx-f64-s32: 7
xx-f64-i32: 7

View File

@@ -6,7 +6,7 @@ implicit-ret: 42
early-ret: 5
early-ret2: 99
void-return: ok
generic-s32: 42
generic-i32: 42
generic-f32: 1.500000
generic-bool: true
generic-multi: 30

View File

@@ -2,12 +2,12 @@
out-ok
sqrt: 3.000000
sqrt-f64: 4.000000
sizeof-s32: 4
sizeof-i32: 4
sizeof-f64: 8
sizeof-struct: 8
alignof-u8: 1
alignof-s32: 4
alignof-s64: 8
alignof-i32: 4
alignof-i64: 8
alignof-struct: 4
typeof: int
typeof-float: float

View File

@@ -25,10 +25,10 @@
@tag_names = private constant [14 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.438, i64 8 }, { ptr, i64 } { ptr @tag.str.439, i64 2 }, { ptr, i64 } { ptr @tag.str.440, i64 15 }, { ptr, i64 } { ptr @tag.str.441, i64 13 }, { ptr, i64 } { ptr @tag.str.442, i64 9 }, { ptr, i64 } { ptr @tag.str.443, i64 9 }, { ptr, i64 } { ptr @tag.str.444, i64 15 }, { ptr, i64 } { ptr @tag.str.445, i64 14 }, { ptr, i64 } { ptr @tag.str.446, i64 14 }, { ptr, i64 } { ptr @tag.str.447, i64 11 }, { ptr, i64 } { ptr @tag.str.448, i64 12 }, { ptr, i64 } { ptr @tag.str.449, i64 15 }, { ptr, i64 } { ptr @tag.str.450, i64 12 }]
@tn.str = private constant [13 x i8] c"<unresolved>\00"
@tn.str.451 = private constant [5 x i8] c"bool\00"
@tn.str.452 = private constant [3 x i8] c"s8\00"
@tn.str.453 = private constant [4 x i8] c"s16\00"
@tn.str.454 = private constant [4 x i8] c"s32\00"
@tn.str.455 = private constant [4 x i8] c"s64\00"
@tn.str.452 = private constant [3 x i8] c"i8\00"
@tn.str.453 = private constant [4 x i8] c"i16\00"
@tn.str.454 = private constant [4 x i8] c"i32\00"
@tn.str.455 = private constant [4 x i8] c"i64\00"
@tn.str.456 = private constant [3 x i8] c"u8\00"
@tn.str.457 = private constant [4 x i8] c"u16\00"
@tn.str.458 = private constant [4 x i8] c"u32\00"
@@ -45,7 +45,7 @@
@tn.str.469 = private constant [16 x i8] c"Source_Location\00"
@tn.str.470 = private constant [10 x i8] c"Allocator\00"
@tn.str.471 = private constant [8 x i8] c"Context\00"
@tn.str.472 = private constant [7 x i8] c"[4]s64\00"
@tn.str.472 = private constant [7 x i8] c"[4]i64\00"
@tn.str.473 = private constant [9 x i8] c"[]string\00"
@tn.str.474 = private constant [11 x i8] c"CAllocator\00"
@tn.str.475 = private constant [12 x i8] c"*CAllocator\00"
@@ -70,7 +70,7 @@
@tn.str.494 = private constant [4 x i8] c"*u8\00"
@tn.str.495 = private constant [14 x i8] c"ProcessResult\00"
@tn.str.496 = private constant [15 x i8] c"?ProcessResult\00"
@tn.str.497 = private constant [5 x i8] c"*s32\00"
@tn.str.497 = private constant [5 x i8] c"*i32\00"
@tn.str.498 = private constant [9 x i8] c"SockAddr\00"
@tn.str.499 = private constant [10 x i8] c"*SockAddr\00"
@tn.str.500 = private constant [5 x i8] c"*u32\00"
@@ -86,9 +86,9 @@
@tn.str.510 = private constant [5 x i8] c"[]u8\00"
@tn.str.511 = private constant [5 x i8] c"Sink\00"
@tn.str.512 = private constant [6 x i8] c"*Sink\00"
@tn.str.513 = private constant [17 x i8] c"(s64, JsonError)\00"
@tn.str.513 = private constant [17 x i8] c"(i64, JsonError)\00"
@tn.str.514 = private constant [15 x i8] c"JsonParseError\00"
@tn.str.515 = private constant [22 x i8] c"(s64, JsonParseError)\00"
@tn.str.515 = private constant [22 x i8] c"(i64, JsonParseError)\00"
@tn.str.516 = private constant [7 x i8] c"Parser\00"
@tn.str.517 = private constant [8 x i8] c"*Parser\00"
@tn.str.518 = private constant [25 x i8] c"(string, JsonParseError)\00"
@@ -97,7 +97,7 @@
@tn.str.521 = private constant [13 x i8] c"Architecture\00"
@tn.str.522 = private constant [13 x i8] c"BuildOptions\00"
@tn.str.523 = private constant [11 x i8] c"() -> bool\00"
@tn.str.524 = private constant [5 x i8] c"*s64\00"
@tn.str.524 = private constant [5 x i8] c"*i64\00"
@tn.str.525 = private constant [9 x i8] c"CliError\00"
@tn.str.526 = private constant [9 x i8] c"FlagSpec\00"
@tn.str.527 = private constant [11 x i8] c"[]FlagSpec\00"
@@ -110,12 +110,12 @@
@tn.str.534 = private constant [19 x i8] c"(Parsed, CliError)\00"
@tn.str.535 = private constant [10 x i8] c"[]Command\00"
@tn.str.536 = private constant [6 x i8] c"*Diag\00"
@tn.str.537 = private constant [7 x i8] c"[8]s64\00"
@tn.str.537 = private constant [7 x i8] c"[8]i64\00"
@tn.str.538 = private constant [7 x i8] c"[64]u8\00"
@tn.str.539 = private constant [7 x i8] c"Sha256\00"
@tn.str.540 = private constant [8 x i8] c"*Sha256\00"
@tn.str.541 = private constant [8 x i8] c"?[64]u8\00"
@tn.str.542 = private constant [8 x i8] c"[64]s64\00"
@tn.str.542 = private constant [8 x i8] c"[64]i64\00"
@tn.str.543 = private constant [8 x i8] c"[16]f32\00"
@tn.str.544 = private constant [5 x i8] c"Mat4\00"
@tn.str.545 = private constant [5 x i8] c"Vec2\00"
@@ -135,7 +135,7 @@
@tn.str.559 = private constant [7 x i8] c"*Shape\00"
@tn.str.560 = private constant [7 x i8] c"[1]Any\00"
@tn.str.561 = private constant [8 x i8] c"*[1]Any\00"
@tn.str.562 = private constant [8 x i8] c"*[4]s64\00"
@tn.str.562 = private constant [8 x i8] c"*[4]i64\00"
@tn.str.563 = private constant [5 x i8] c"*f64\00"
@tn.str.564 = private constant [17 x i8] c"*Source_Location\00"
@tn.str.565 = private constant [11 x i8] c"*Allocator\00"
@@ -156,9 +156,9 @@
@tn.str.580 = private constant [17 x i8] c"*OperatingSystem\00"
@tn.str.581 = private constant [14 x i8] c"*Architecture\00"
@tn.str.582 = private constant [15 x i8] c"*[16]FlagValue\00"
@tn.str.583 = private constant [8 x i8] c"*[8]s64\00"
@tn.str.583 = private constant [8 x i8] c"*[8]i64\00"
@tn.str.584 = private constant [8 x i8] c"*[64]u8\00"
@tn.str.585 = private constant [9 x i8] c"*[64]s64\00"
@tn.str.585 = private constant [9 x i8] c"*[64]i64\00"
@tn.str.586 = private constant [9 x i8] c"*[16]f32\00"
@tn.str.587 = private constant [10 x i8] c"*[]string\00"
@tn.str.588 = private constant [6 x i8] c"*[]u8\00"
@@ -172,7 +172,7 @@
@tn.str.596 = private constant [20 x i8] c"**TrackingAllocator\00"
@tn.str.597 = private constant [7 x i8] c"**File\00"
@tn.str.598 = private constant [5 x i8] c"**u8\00"
@tn.str.599 = private constant [6 x i8] c"**s32\00"
@tn.str.599 = private constant [6 x i8] c"**i32\00"
@tn.str.600 = private constant [11 x i8] c"**SockAddr\00"
@tn.str.601 = private constant [6 x i8] c"**u32\00"
@tn.str.602 = private constant [10 x i8] c"*[*]Value\00"
@@ -181,7 +181,7 @@
@tn.str.605 = private constant [9 x i8] c"**Object\00"
@tn.str.606 = private constant [7 x i8] c"**Sink\00"
@tn.str.607 = private constant [9 x i8] c"**Parser\00"
@tn.str.608 = private constant [6 x i8] c"**s64\00"
@tn.str.608 = private constant [6 x i8] c"**i64\00"
@tn.str.609 = private constant [9 x i8] c"**Parsed\00"
@tn.str.610 = private constant [7 x i8] c"**Diag\00"
@tn.str.611 = private constant [9 x i8] c"**Sha256\00"
@@ -603,7 +603,7 @@
@str.1024 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1
@str.1025 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.1026 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.1027 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1
@str.1027 = private unnamed_addr constant [5 x i8] c"*i32\00", align 1
@str.1028 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.1029 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.1030 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1
@@ -630,7 +630,7 @@
@str.1051 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1
@str.1052 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.1053 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.1054 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1
@str.1054 = private unnamed_addr constant [5 x i8] c"*i64\00", align 1
@str.1055 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.1056 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.1057 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1
@@ -2067,7 +2067,7 @@ dispatch.case.292: ; preds = %match.arm.47
%ua.raw194 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr195 = inttoptr i64 %ua.raw194 to ptr
%ua.load196 = load [4 x i64], ptr %ua.ptr195, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load196)
%callN = call { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %ua.load196)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.290
@@ -2083,7 +2083,7 @@ dispatch.case.294: ; preds = %match.arm.47
%ua.raw202 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr203 = inttoptr i64 %ua.raw202 to ptr
%ua.load204 = load [8 x i64], ptr %ua.ptr203, align 8
%callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load204)
%callN = call { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %ua.load204)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.290
@@ -2099,7 +2099,7 @@ dispatch.case.296: ; preds = %match.arm.47
%ua.raw210 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr211 = inttoptr i64 %ua.raw210 to ptr
%ua.load212 = load [64 x i64], ptr %ua.ptr211, align 8
%callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load212)
%callN = call { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %ua.load212)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.290
@@ -2258,7 +2258,7 @@ dispatch.case.383: ; preds = %match.arm.49
dispatch.case.384: ; preds = %match.arm.49
%ua.raw277 = extractvalue { i64, i64 } %loadN, 1
%iNp278 = inttoptr i64 %ua.raw277 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp278)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %iNp278)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.372
@@ -2321,7 +2321,7 @@ dispatch.case.392: ; preds = %match.arm.49
dispatch.case.393: ; preds = %match.arm.49
%ua.raw304 = extractvalue { i64, i64 } %loadN, 1
%iNp305 = inttoptr i64 %ua.raw304 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp305)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %iNp305)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.372
@@ -4643,7 +4643,7 @@ entry:
%sg = extractvalue { i32, i32 } %load, 0
%loadN = load { i32, i32 }, ptr %alloca, align 4
%sgN = extractvalue { i32, i32 } %loadN, 1
call void @print__ct_s546acbc299164a0e__pack_s32_s32(ptr @__sx_default_context, i32 %sg, i32 %sgN)
call void @print__ct_s546acbc299164a0e__pack_i32_i32(ptr @__sx_default_context, i32 %sg, i32 %sgN)
%callN = call { i64, [8 x i8] } @local_sh__1(ptr @__sx_default_context)
%allocaN = alloca { i64, [8 x i8] }, align 8
store { i64, [8 x i8] } %callN, ptr %allocaN, align 8
@@ -4704,7 +4704,7 @@ entry:
}
; Function Attrs: nounwind
define internal void @print__ct_s546acbc299164a0e__pack_s32_s32(ptr %0, i32 %1, i32 %2) #0 {
define internal void @print__ct_s546acbc299164a0e__pack_i32_i32(ptr %0, i32 %1, i32 %2) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.650, i64 20 }, ptr %alloca, align 8
@@ -4714,13 +4714,13 @@ entry:
store i32 %2, ptr %allocaN, align 4
%allocaN = alloca [2 x { i64, i64 }], align 8
%load = load i32, ptr %allocaN, align 4
%sN = sext i32 %load to i64
%ba.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %load to i64
%ba.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
%igp.ptr = getelementptr { i64, i64 }, ptr %allocaN, i64 0
store { i64, i64 } %ba.val, ptr %igp.ptr, align 8
%loadN = load i32, ptr %allocaN, align 4
%sN = sext i32 %loadN to i64
%ba.val6 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %loadN to i64
%ba.val6 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
%igp.ptr7 = getelementptr { i64, i64 }, ptr %allocaN, i64 1
store { i64, i64 } %ba.val6, ptr %igp.ptr7, align 8
%allocaN = alloca { ptr, i64 }, align 8
@@ -4738,8 +4738,8 @@ entry:
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i32, ptr %allocaN, align 4
%sN = sext i32 %loadN to i64
%ba.val18 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %loadN to i64
%ba.val18 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
%callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val18)
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
@@ -4750,8 +4750,8 @@ entry:
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i32, ptr %allocaN, align 4
%sN = sext i32 %loadN to i64
%ba.val28 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %loadN to i64
%ba.val28 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
%callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val28)
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
@@ -4919,14 +4919,14 @@ fv.case: ; preds = %if.merge.129
fv.case17: ; preds = %if.merge.129
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.129
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.129
@@ -5622,8 +5622,8 @@ fv.default: ; preds = %if.merge.174
fv.case: ; preds = %if.merge.174
%fv.field = extractvalue { i32 } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
}
@@ -5706,14 +5706,14 @@ fv.case: ; preds = %if.merge.179
fv.case17: ; preds = %if.merge.179
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.179
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.179
@@ -5798,8 +5798,8 @@ fv.default: ; preds = %if.merge.184
fv.case: ; preds = %if.merge.184
%fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case17: ; preds = %if.merge.184
@@ -7143,14 +7143,14 @@ fv.default: ; preds = %if.merge.264
fv.case: ; preds = %if.merge.264
%fv.field = extractvalue { i32, i32 } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case17: ; preds = %if.merge.264
%fv.field18 = extractvalue { i32, i32 } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val20 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val20 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
}
@@ -7584,7 +7584,7 @@ fv.case11: ; preds = %entry
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %1) #0 {
entry:
%alloca = alloca [4 x i64], align 8
%ig.tmp = alloca [4 x i64], align 8
@@ -7687,7 +7687,7 @@ if.merge.309: ; preds = %if.then.308, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %1) #0 {
entry:
%alloca = alloca [8 x i64], align 8
%ig.tmp = alloca [8 x i64], align 8
@@ -7788,7 +7788,7 @@ if.merge.319: ; preds = %if.then.318, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %1) #0 {
entry:
%alloca = alloca [64 x i64], align 8
%ig.tmp = alloca [64 x i64], align 8
@@ -8543,7 +8543,7 @@ if.merge.449: ; preds = %if.else.448, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8
@@ -8793,7 +8793,7 @@ if.merge.476: ; preds = %if.else.475, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8

View File

@@ -25,10 +25,10 @@
@tag_names = private constant [14 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.438, i64 8 }, { ptr, i64 } { ptr @tag.str.439, i64 2 }, { ptr, i64 } { ptr @tag.str.440, i64 15 }, { ptr, i64 } { ptr @tag.str.441, i64 13 }, { ptr, i64 } { ptr @tag.str.442, i64 9 }, { ptr, i64 } { ptr @tag.str.443, i64 9 }, { ptr, i64 } { ptr @tag.str.444, i64 15 }, { ptr, i64 } { ptr @tag.str.445, i64 14 }, { ptr, i64 } { ptr @tag.str.446, i64 14 }, { ptr, i64 } { ptr @tag.str.447, i64 11 }, { ptr, i64 } { ptr @tag.str.448, i64 12 }, { ptr, i64 } { ptr @tag.str.449, i64 15 }, { ptr, i64 } { ptr @tag.str.450, i64 12 }]
@tn.str = private constant [13 x i8] c"<unresolved>\00"
@tn.str.451 = private constant [5 x i8] c"bool\00"
@tn.str.452 = private constant [3 x i8] c"s8\00"
@tn.str.453 = private constant [4 x i8] c"s16\00"
@tn.str.454 = private constant [4 x i8] c"s32\00"
@tn.str.455 = private constant [4 x i8] c"s64\00"
@tn.str.452 = private constant [3 x i8] c"i8\00"
@tn.str.453 = private constant [4 x i8] c"i16\00"
@tn.str.454 = private constant [4 x i8] c"i32\00"
@tn.str.455 = private constant [4 x i8] c"i64\00"
@tn.str.456 = private constant [3 x i8] c"u8\00"
@tn.str.457 = private constant [4 x i8] c"u16\00"
@tn.str.458 = private constant [4 x i8] c"u32\00"
@@ -45,7 +45,7 @@
@tn.str.469 = private constant [16 x i8] c"Source_Location\00"
@tn.str.470 = private constant [10 x i8] c"Allocator\00"
@tn.str.471 = private constant [8 x i8] c"Context\00"
@tn.str.472 = private constant [7 x i8] c"[4]s64\00"
@tn.str.472 = private constant [7 x i8] c"[4]i64\00"
@tn.str.473 = private constant [9 x i8] c"[]string\00"
@tn.str.474 = private constant [11 x i8] c"CAllocator\00"
@tn.str.475 = private constant [12 x i8] c"*CAllocator\00"
@@ -70,7 +70,7 @@
@tn.str.494 = private constant [4 x i8] c"*u8\00"
@tn.str.495 = private constant [14 x i8] c"ProcessResult\00"
@tn.str.496 = private constant [15 x i8] c"?ProcessResult\00"
@tn.str.497 = private constant [5 x i8] c"*s32\00"
@tn.str.497 = private constant [5 x i8] c"*i32\00"
@tn.str.498 = private constant [9 x i8] c"SockAddr\00"
@tn.str.499 = private constant [10 x i8] c"*SockAddr\00"
@tn.str.500 = private constant [5 x i8] c"*u32\00"
@@ -86,9 +86,9 @@
@tn.str.510 = private constant [5 x i8] c"[]u8\00"
@tn.str.511 = private constant [5 x i8] c"Sink\00"
@tn.str.512 = private constant [6 x i8] c"*Sink\00"
@tn.str.513 = private constant [17 x i8] c"(s64, JsonError)\00"
@tn.str.513 = private constant [17 x i8] c"(i64, JsonError)\00"
@tn.str.514 = private constant [15 x i8] c"JsonParseError\00"
@tn.str.515 = private constant [22 x i8] c"(s64, JsonParseError)\00"
@tn.str.515 = private constant [22 x i8] c"(i64, JsonParseError)\00"
@tn.str.516 = private constant [7 x i8] c"Parser\00"
@tn.str.517 = private constant [8 x i8] c"*Parser\00"
@tn.str.518 = private constant [25 x i8] c"(string, JsonParseError)\00"
@@ -97,7 +97,7 @@
@tn.str.521 = private constant [13 x i8] c"Architecture\00"
@tn.str.522 = private constant [13 x i8] c"BuildOptions\00"
@tn.str.523 = private constant [11 x i8] c"() -> bool\00"
@tn.str.524 = private constant [5 x i8] c"*s64\00"
@tn.str.524 = private constant [5 x i8] c"*i64\00"
@tn.str.525 = private constant [9 x i8] c"CliError\00"
@tn.str.526 = private constant [9 x i8] c"FlagSpec\00"
@tn.str.527 = private constant [11 x i8] c"[]FlagSpec\00"
@@ -110,12 +110,12 @@
@tn.str.534 = private constant [19 x i8] c"(Parsed, CliError)\00"
@tn.str.535 = private constant [10 x i8] c"[]Command\00"
@tn.str.536 = private constant [6 x i8] c"*Diag\00"
@tn.str.537 = private constant [7 x i8] c"[8]s64\00"
@tn.str.537 = private constant [7 x i8] c"[8]i64\00"
@tn.str.538 = private constant [7 x i8] c"[64]u8\00"
@tn.str.539 = private constant [7 x i8] c"Sha256\00"
@tn.str.540 = private constant [8 x i8] c"*Sha256\00"
@tn.str.541 = private constant [8 x i8] c"?[64]u8\00"
@tn.str.542 = private constant [8 x i8] c"[64]s64\00"
@tn.str.542 = private constant [8 x i8] c"[64]i64\00"
@tn.str.543 = private constant [8 x i8] c"[16]f32\00"
@tn.str.544 = private constant [5 x i8] c"Mat4\00"
@tn.str.545 = private constant [5 x i8] c"Vec2\00"
@@ -130,7 +130,7 @@
@tn.str.554 = private constant [7 x i8] c"*Point\00"
@tn.str.555 = private constant [7 x i8] c"[1]Any\00"
@tn.str.556 = private constant [8 x i8] c"*[1]Any\00"
@tn.str.557 = private constant [8 x i8] c"*[4]s64\00"
@tn.str.557 = private constant [8 x i8] c"*[4]i64\00"
@tn.str.558 = private constant [5 x i8] c"*f64\00"
@tn.str.559 = private constant [17 x i8] c"*Source_Location\00"
@tn.str.560 = private constant [11 x i8] c"*Allocator\00"
@@ -150,9 +150,9 @@
@tn.str.574 = private constant [17 x i8] c"*OperatingSystem\00"
@tn.str.575 = private constant [14 x i8] c"*Architecture\00"
@tn.str.576 = private constant [15 x i8] c"*[16]FlagValue\00"
@tn.str.577 = private constant [8 x i8] c"*[8]s64\00"
@tn.str.577 = private constant [8 x i8] c"*[8]i64\00"
@tn.str.578 = private constant [8 x i8] c"*[64]u8\00"
@tn.str.579 = private constant [9 x i8] c"*[64]s64\00"
@tn.str.579 = private constant [9 x i8] c"*[64]i64\00"
@tn.str.580 = private constant [9 x i8] c"*[16]f32\00"
@tn.str.581 = private constant [10 x i8] c"*[]string\00"
@tn.str.582 = private constant [6 x i8] c"*[]u8\00"
@@ -166,7 +166,7 @@
@tn.str.590 = private constant [20 x i8] c"**TrackingAllocator\00"
@tn.str.591 = private constant [7 x i8] c"**File\00"
@tn.str.592 = private constant [5 x i8] c"**u8\00"
@tn.str.593 = private constant [6 x i8] c"**s32\00"
@tn.str.593 = private constant [6 x i8] c"**i32\00"
@tn.str.594 = private constant [11 x i8] c"**SockAddr\00"
@tn.str.595 = private constant [6 x i8] c"**u32\00"
@tn.str.596 = private constant [10 x i8] c"*[*]Value\00"
@@ -175,7 +175,7 @@
@tn.str.599 = private constant [9 x i8] c"**Object\00"
@tn.str.600 = private constant [7 x i8] c"**Sink\00"
@tn.str.601 = private constant [9 x i8] c"**Parser\00"
@tn.str.602 = private constant [6 x i8] c"**s64\00"
@tn.str.602 = private constant [6 x i8] c"**i64\00"
@tn.str.603 = private constant [9 x i8] c"**Parsed\00"
@tn.str.604 = private constant [7 x i8] c"**Diag\00"
@tn.str.605 = private constant [9 x i8] c"**Sha256\00"
@@ -577,7 +577,7 @@
@str.998 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1
@str.999 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.1000 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.1001 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1
@str.1001 = private unnamed_addr constant [5 x i8] c"*i32\00", align 1
@str.1002 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.1003 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.1004 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1
@@ -604,7 +604,7 @@
@str.1025 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1
@str.1026 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.1027 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.1028 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1
@str.1028 = private unnamed_addr constant [5 x i8] c"*i64\00", align 1
@str.1029 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.1030 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.1031 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1
@@ -2009,7 +2009,7 @@ dispatch.case.283: ; preds = %match.arm.47
%ua.raw186 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr187 = inttoptr i64 %ua.raw186 to ptr
%ua.load188 = load [4 x i64], ptr %ua.ptr187, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load188)
%callN = call { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %ua.load188)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.281
@@ -2025,7 +2025,7 @@ dispatch.case.285: ; preds = %match.arm.47
%ua.raw194 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr195 = inttoptr i64 %ua.raw194 to ptr
%ua.load196 = load [8 x i64], ptr %ua.ptr195, align 8
%callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load196)
%callN = call { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %ua.load196)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.281
@@ -2041,7 +2041,7 @@ dispatch.case.287: ; preds = %match.arm.47
%ua.raw202 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr203 = inttoptr i64 %ua.raw202 to ptr
%ua.load204 = load [64 x i64], ptr %ua.ptr203, align 8
%callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load204)
%callN = call { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %ua.load204)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.281
@@ -2192,7 +2192,7 @@ dispatch.case.368: ; preds = %match.arm.49
dispatch.case.369: ; preds = %match.arm.49
%ua.raw265 = extractvalue { i64, i64 } %loadN, 1
%iNp266 = inttoptr i64 %ua.raw265 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp266)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %iNp266)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.357
@@ -2255,7 +2255,7 @@ dispatch.case.377: ; preds = %match.arm.49
dispatch.case.378: ; preds = %match.arm.49
%ua.raw292 = extractvalue { i64, i64 } %loadN, 1
%iNp293 = inttoptr i64 %ua.raw292 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp293)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %iNp293)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.357
@@ -4573,10 +4573,10 @@ entry:
store { i32, i32 } { i32 3, i32 4 }, ptr %alloca, align 4
%load = load { i32, i32 }, ptr %alloca, align 4
%call = call i32 @point_sum(ptr @__sx_default_context, { i32, i32 } %load)
call void @print__ct_sfd746eca0faee40b__pack_s32(ptr @__sx_default_context, i32 %call)
call void @print__ct_sfd746eca0faee40b__pack_i32(ptr @__sx_default_context, i32 %call)
%loadN = load { i32, i32 }, ptr %alloca, align 4
%callN = call i32 @point_sum(ptr @__sx_default_context, { i32, i32 } %loadN)
call void @print__ct_s61f699add92dd2af__pack_s32(ptr @__sx_default_context, i32 %callN)
call void @print__ct_s61f699add92dd2af__pack_i32(ptr @__sx_default_context, i32 %callN)
ret i32 0
}
@@ -4626,7 +4626,7 @@ entry:
}
; Function Attrs: nounwind
define internal void @print__ct_sfd746eca0faee40b__pack_s32(ptr %0, i32 %1) #0 {
define internal void @print__ct_sfd746eca0faee40b__pack_i32(ptr %0, i32 %1) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.642, i64 11 }, ptr %alloca, align 8
@@ -4634,8 +4634,8 @@ entry:
store i32 %1, ptr %allocaN, align 4
%allocaN = alloca [1 x { i64, i64 }], align 8
%load = load i32, ptr %allocaN, align 4
%sN = sext i32 %load to i64
%ba.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %load to i64
%ba.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
%igp.ptr = getelementptr { i64, i64 }, ptr %allocaN, i64 0
store { i64, i64 } %ba.val, ptr %igp.ptr, align 8
%allocaN = alloca { ptr, i64 }, align 8
@@ -4653,8 +4653,8 @@ entry:
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i32, ptr %allocaN, align 4
%sN = sext i32 %loadN to i64
%ba.val13 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %loadN to i64
%ba.val13 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
%callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val13)
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
@@ -4678,7 +4678,7 @@ entry:
}
; Function Attrs: nounwind
define internal void @print__ct_s61f699add92dd2af__pack_s32(ptr %0, i32 %1) #0 {
define internal void @print__ct_s61f699add92dd2af__pack_i32(ptr %0, i32 %1) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.645, i64 9 }, ptr %alloca, align 8
@@ -4686,8 +4686,8 @@ entry:
store i32 %1, ptr %allocaN, align 4
%allocaN = alloca [1 x { i64, i64 }], align 8
%load = load i32, ptr %allocaN, align 4
%sN = sext i32 %load to i64
%ba.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %load to i64
%ba.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
%igp.ptr = getelementptr { i64, i64 }, ptr %allocaN, i64 0
store { i64, i64 } %ba.val, ptr %igp.ptr, align 8
%allocaN = alloca { ptr, i64 }, align 8
@@ -4705,8 +4705,8 @@ entry:
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i32, ptr %allocaN, align 4
%sN = sext i32 %loadN to i64
%ba.val13 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %loadN to i64
%ba.val13 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
%callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val13)
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
@@ -4806,14 +4806,14 @@ fv.case: ; preds = %if.merge.128
fv.case17: ; preds = %if.merge.128
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.128
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.128
@@ -5509,8 +5509,8 @@ fv.default: ; preds = %if.merge.173
fv.case: ; preds = %if.merge.173
%fv.field = extractvalue { i32 } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
}
@@ -5593,14 +5593,14 @@ fv.case: ; preds = %if.merge.178
fv.case17: ; preds = %if.merge.178
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.178
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.178
@@ -5685,8 +5685,8 @@ fv.default: ; preds = %if.merge.183
fv.case: ; preds = %if.merge.183
%fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case17: ; preds = %if.merge.183
@@ -7030,14 +7030,14 @@ fv.default: ; preds = %if.merge.263
fv.case: ; preds = %if.merge.263
%fv.field = extractvalue { i32, i32 } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case17: ; preds = %if.merge.263
%fv.field18 = extractvalue { i32, i32 } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val20 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val20 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
}
@@ -7315,7 +7315,7 @@ if.merge.280: ; preds = %if.then.279, %entry
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %1) #0 {
entry:
%alloca = alloca [4 x i64], align 8
%ig.tmp = alloca [4 x i64], align 8
@@ -7418,7 +7418,7 @@ if.merge.299: ; preds = %if.then.298, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %1) #0 {
entry:
%alloca = alloca [8 x i64], align 8
%ig.tmp = alloca [8 x i64], align 8
@@ -7519,7 +7519,7 @@ if.merge.309: ; preds = %if.then.308, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %1) #0 {
entry:
%alloca = alloca [64 x i64], align 8
%ig.tmp = alloca [64 x i64], align 8
@@ -8221,7 +8221,7 @@ if.merge.432: ; preds = %if.else.431, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8
@@ -8471,7 +8471,7 @@ if.merge.459: ; preds = %if.else.458, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8

View File

@@ -1,5 +1,5 @@
error: function returns 's32' but the last expression's value is discarded by this `;` — drop the `;` to return it (or use an explicit `return`)
--> /Users/agra/projects/sx/examples/0041-basic-block-value-reject.sx:10:10
error: function returns 'i32' but the last expression's value is discarded by this `;` — drop the `;` to return it (or use an explicit `return`)
--> examples/0041-basic-block-value-reject.sx:10:10
|
10 | n * 2;
| ^

View File

@@ -25,10 +25,10 @@
@tag_names = private constant [14 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.114, i64 8 }, { ptr, i64 } { ptr @tag.str.115, i64 2 }, { ptr, i64 } { ptr @tag.str.116, i64 15 }, { ptr, i64 } { ptr @tag.str.117, i64 13 }, { ptr, i64 } { ptr @tag.str.118, i64 9 }, { ptr, i64 } { ptr @tag.str.119, i64 9 }, { ptr, i64 } { ptr @tag.str.120, i64 15 }, { ptr, i64 } { ptr @tag.str.121, i64 14 }, { ptr, i64 } { ptr @tag.str.122, i64 14 }, { ptr, i64 } { ptr @tag.str.123, i64 11 }, { ptr, i64 } { ptr @tag.str.124, i64 12 }, { ptr, i64 } { ptr @tag.str.125, i64 15 }, { ptr, i64 } { ptr @tag.str.126, i64 12 }]
@tn.str = private constant [13 x i8] c"<unresolved>\00"
@tn.str.127 = private constant [5 x i8] c"bool\00"
@tn.str.128 = private constant [3 x i8] c"s8\00"
@tn.str.129 = private constant [4 x i8] c"s16\00"
@tn.str.130 = private constant [4 x i8] c"s32\00"
@tn.str.131 = private constant [4 x i8] c"s64\00"
@tn.str.128 = private constant [3 x i8] c"i8\00"
@tn.str.129 = private constant [4 x i8] c"i16\00"
@tn.str.130 = private constant [4 x i8] c"i32\00"
@tn.str.131 = private constant [4 x i8] c"i64\00"
@tn.str.132 = private constant [3 x i8] c"u8\00"
@tn.str.133 = private constant [4 x i8] c"u16\00"
@tn.str.134 = private constant [4 x i8] c"u32\00"
@@ -45,7 +45,7 @@
@tn.str.145 = private constant [16 x i8] c"Source_Location\00"
@tn.str.146 = private constant [10 x i8] c"Allocator\00"
@tn.str.147 = private constant [8 x i8] c"Context\00"
@tn.str.148 = private constant [7 x i8] c"[4]s64\00"
@tn.str.148 = private constant [7 x i8] c"[4]i64\00"
@tn.str.149 = private constant [9 x i8] c"[]string\00"
@tn.str.150 = private constant [11 x i8] c"CAllocator\00"
@tn.str.151 = private constant [12 x i8] c"*CAllocator\00"
@@ -70,7 +70,7 @@
@tn.str.170 = private constant [4 x i8] c"*u8\00"
@tn.str.171 = private constant [14 x i8] c"ProcessResult\00"
@tn.str.172 = private constant [15 x i8] c"?ProcessResult\00"
@tn.str.173 = private constant [5 x i8] c"*s32\00"
@tn.str.173 = private constant [5 x i8] c"*i32\00"
@tn.str.174 = private constant [9 x i8] c"SockAddr\00"
@tn.str.175 = private constant [10 x i8] c"*SockAddr\00"
@tn.str.176 = private constant [5 x i8] c"*u32\00"
@@ -86,9 +86,9 @@
@tn.str.186 = private constant [5 x i8] c"[]u8\00"
@tn.str.187 = private constant [5 x i8] c"Sink\00"
@tn.str.188 = private constant [6 x i8] c"*Sink\00"
@tn.str.189 = private constant [17 x i8] c"(s64, JsonError)\00"
@tn.str.189 = private constant [17 x i8] c"(i64, JsonError)\00"
@tn.str.190 = private constant [15 x i8] c"JsonParseError\00"
@tn.str.191 = private constant [22 x i8] c"(s64, JsonParseError)\00"
@tn.str.191 = private constant [22 x i8] c"(i64, JsonParseError)\00"
@tn.str.192 = private constant [7 x i8] c"Parser\00"
@tn.str.193 = private constant [8 x i8] c"*Parser\00"
@tn.str.194 = private constant [25 x i8] c"(string, JsonParseError)\00"
@@ -97,7 +97,7 @@
@tn.str.197 = private constant [13 x i8] c"Architecture\00"
@tn.str.198 = private constant [13 x i8] c"BuildOptions\00"
@tn.str.199 = private constant [11 x i8] c"() -> bool\00"
@tn.str.200 = private constant [5 x i8] c"*s64\00"
@tn.str.200 = private constant [5 x i8] c"*i64\00"
@tn.str.201 = private constant [9 x i8] c"CliError\00"
@tn.str.202 = private constant [9 x i8] c"FlagSpec\00"
@tn.str.203 = private constant [11 x i8] c"[]FlagSpec\00"
@@ -110,12 +110,12 @@
@tn.str.210 = private constant [19 x i8] c"(Parsed, CliError)\00"
@tn.str.211 = private constant [10 x i8] c"[]Command\00"
@tn.str.212 = private constant [6 x i8] c"*Diag\00"
@tn.str.213 = private constant [7 x i8] c"[8]s64\00"
@tn.str.213 = private constant [7 x i8] c"[8]i64\00"
@tn.str.214 = private constant [7 x i8] c"[64]u8\00"
@tn.str.215 = private constant [7 x i8] c"Sha256\00"
@tn.str.216 = private constant [8 x i8] c"*Sha256\00"
@tn.str.217 = private constant [8 x i8] c"?[64]u8\00"
@tn.str.218 = private constant [8 x i8] c"[64]s64\00"
@tn.str.218 = private constant [8 x i8] c"[64]i64\00"
@tn.str.219 = private constant [13 x i8] c"**CAllocator\00"
@tn.str.220 = private constant [7 x i8] c"**void\00"
@tn.str.221 = private constant [8 x i8] c"*string\00"
@@ -127,7 +127,7 @@
@tn.str.227 = private constant [6 x i8] c"*bool\00"
@tn.str.228 = private constant [7 x i8] c"[3]Any\00"
@tn.str.229 = private constant [8 x i8] c"*[3]Any\00"
@tn.str.230 = private constant [8 x i8] c"*[4]s64\00"
@tn.str.230 = private constant [8 x i8] c"*[4]i64\00"
@tn.str.231 = private constant [5 x i8] c"*f64\00"
@tn.str.232 = private constant [17 x i8] c"*Source_Location\00"
@tn.str.233 = private constant [11 x i8] c"*Allocator\00"
@@ -145,9 +145,9 @@
@tn.str.245 = private constant [17 x i8] c"*OperatingSystem\00"
@tn.str.246 = private constant [14 x i8] c"*Architecture\00"
@tn.str.247 = private constant [15 x i8] c"*[16]FlagValue\00"
@tn.str.248 = private constant [8 x i8] c"*[8]s64\00"
@tn.str.248 = private constant [8 x i8] c"*[8]i64\00"
@tn.str.249 = private constant [8 x i8] c"*[64]u8\00"
@tn.str.250 = private constant [9 x i8] c"*[64]s64\00"
@tn.str.250 = private constant [9 x i8] c"*[64]i64\00"
@tn.str.251 = private constant [10 x i8] c"*[]string\00"
@tn.str.252 = private constant [6 x i8] c"*[]u8\00"
@tn.str.253 = private constant [12 x i8] c"*[]FlagSpec\00"
@@ -160,7 +160,7 @@
@tn.str.260 = private constant [20 x i8] c"**TrackingAllocator\00"
@tn.str.261 = private constant [7 x i8] c"**File\00"
@tn.str.262 = private constant [5 x i8] c"**u8\00"
@tn.str.263 = private constant [6 x i8] c"**s32\00"
@tn.str.263 = private constant [6 x i8] c"**i32\00"
@tn.str.264 = private constant [11 x i8] c"**SockAddr\00"
@tn.str.265 = private constant [6 x i8] c"**u32\00"
@tn.str.266 = private constant [10 x i8] c"*[*]Value\00"
@@ -169,7 +169,7 @@
@tn.str.269 = private constant [9 x i8] c"**Object\00"
@tn.str.270 = private constant [7 x i8] c"**Sink\00"
@tn.str.271 = private constant [9 x i8] c"**Parser\00"
@tn.str.272 = private constant [6 x i8] c"**s64\00"
@tn.str.272 = private constant [6 x i8] c"**i64\00"
@tn.str.273 = private constant [9 x i8] c"**Parsed\00"
@tn.str.274 = private constant [7 x i8] c"**Diag\00"
@tn.str.275 = private constant [9 x i8] c"**Sha256\00"
@@ -554,7 +554,7 @@
@str.651 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1
@str.652 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.653 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.654 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1
@str.654 = private unnamed_addr constant [5 x i8] c"*i32\00", align 1
@str.655 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.656 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.657 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1
@@ -581,7 +581,7 @@
@str.678 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1
@str.679 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.680 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.681 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1
@str.681 = private unnamed_addr constant [5 x i8] c"*i64\00", align 1
@str.682 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.683 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.684 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1
@@ -1956,7 +1956,7 @@ dispatch.case.265: ; preds = %match.arm.47
%ua.raw174 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr175 = inttoptr i64 %ua.raw174 to ptr
%ua.load176 = load [4 x i64], ptr %ua.ptr175, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load176)
%callN = call { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %ua.load176)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.263
@@ -1972,7 +1972,7 @@ dispatch.case.267: ; preds = %match.arm.47
%ua.raw182 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr183 = inttoptr i64 %ua.raw182 to ptr
%ua.load184 = load [8 x i64], ptr %ua.ptr183, align 8
%callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load184)
%callN = call { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %ua.load184)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.263
@@ -1988,7 +1988,7 @@ dispatch.case.269: ; preds = %match.arm.47
%ua.raw190 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr191 = inttoptr i64 %ua.raw190 to ptr
%ua.load192 = load [64 x i64], ptr %ua.ptr191, align 8
%callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load192)
%callN = call { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %ua.load192)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.263
@@ -2139,7 +2139,7 @@ dispatch.case.350: ; preds = %match.arm.49
dispatch.case.351: ; preds = %match.arm.49
%ua.raw253 = extractvalue { i64, i64 } %loadN, 1
%iNp254 = inttoptr i64 %ua.raw253 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp254)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %iNp254)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.339
@@ -2202,7 +2202,7 @@ dispatch.case.359: ; preds = %match.arm.49
dispatch.case.360: ; preds = %match.arm.49
%ua.raw280 = extractvalue { i64, i64 } %loadN, 1
%iNp281 = inttoptr i64 %ua.raw280 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp281)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %iNp281)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.339
@@ -3474,7 +3474,7 @@ entry:
%load = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i32, ptr %alloca, align 4
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
call void @print__ct_s7d5f90608c43cc01__pack_string_s32_string(ptr %0, { ptr, i64 } %load, i32 %loadN, { ptr, i64 } %loadN)
call void @print__ct_s7d5f90608c43cc01__pack_string_i32_string(ptr %0, { ptr, i64 } %load, i32 %loadN, { ptr, i64 } %loadN)
%loadN = load i32, ptr %alloca, align 4
ret i32 %loadN
}
@@ -3483,9 +3483,9 @@ entry:
define i32 @main() #0 {
entry:
%call = call i32 @scale(ptr @__sx_default_context, i32 5, i32 2)
call void @print__ct_sc20f1d9fe3bc82ac__pack_s32(ptr @__sx_default_context, i32 %call)
call void @print__ct_sc20f1d9fe3bc82ac__pack_i32(ptr @__sx_default_context, i32 %call)
%callN = call i32 @scale(ptr @__sx_default_context, i32 5, i32 3)
call void @print__ct_sfb0b0da1195bd991__pack_s32(ptr @__sx_default_context, i32 %callN)
call void @print__ct_sfb0b0da1195bd991__pack_i32(ptr @__sx_default_context, i32 %callN)
%callN = call i32 @label(ptr @__sx_default_context, i32 1, { ptr, i64 } { ptr @str.309, i64 1 }, { ptr, i64 } { ptr @str.310, i64 1 })
%callN = call i32 @label(ptr @__sx_default_context, i32 2, { ptr, i64 } { ptr @str.311, i64 1 }, { ptr, i64 } { ptr @str.312, i64 1 })
%callN = call i32 @label(ptr @__sx_default_context, i32 3, { ptr, i64 } { ptr @str.313, i64 1 }, { ptr, i64 } { ptr @str.314, i64 1 })
@@ -3507,7 +3507,7 @@ entry:
}
; Function Attrs: nounwind
define internal void @print__ct_sc20f1d9fe3bc82ac__pack_s32(ptr %0, i32 %1) #0 {
define internal void @print__ct_sc20f1d9fe3bc82ac__pack_i32(ptr %0, i32 %1) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.315, i64 12 }, ptr %alloca, align 8
@@ -3515,8 +3515,8 @@ entry:
store i32 %1, ptr %allocaN, align 4
%allocaN = alloca [1 x { i64, i64 }], align 8
%load = load i32, ptr %allocaN, align 4
%sN = sext i32 %load to i64
%ba.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %load to i64
%ba.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
%igp.ptr = getelementptr { i64, i64 }, ptr %allocaN, i64 0
store { i64, i64 } %ba.val, ptr %igp.ptr, align 8
%allocaN = alloca { ptr, i64 }, align 8
@@ -3534,8 +3534,8 @@ entry:
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i32, ptr %allocaN, align 4
%sN = sext i32 %loadN to i64
%ba.val13 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %loadN to i64
%ba.val13 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
%callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val13)
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
@@ -3559,7 +3559,7 @@ entry:
}
; Function Attrs: nounwind
define internal void @print__ct_sfb0b0da1195bd991__pack_s32(ptr %0, i32 %1) #0 {
define internal void @print__ct_sfb0b0da1195bd991__pack_i32(ptr %0, i32 %1) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.318, i64 13 }, ptr %alloca, align 8
@@ -3567,8 +3567,8 @@ entry:
store i32 %1, ptr %allocaN, align 4
%allocaN = alloca [1 x { i64, i64 }], align 8
%load = load i32, ptr %allocaN, align 4
%sN = sext i32 %load to i64
%ba.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %load to i64
%ba.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
%igp.ptr = getelementptr { i64, i64 }, ptr %allocaN, i64 0
store { i64, i64 } %ba.val, ptr %igp.ptr, align 8
%allocaN = alloca { ptr, i64 }, align 8
@@ -3586,8 +3586,8 @@ entry:
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i32, ptr %allocaN, align 4
%sN = sext i32 %loadN to i64
%ba.val13 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %loadN to i64
%ba.val13 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
%callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val13)
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
@@ -3611,7 +3611,7 @@ entry:
}
; Function Attrs: nounwind
define internal void @print__ct_s7d5f90608c43cc01__pack_string_s32_string(ptr %0, { ptr, i64 } %1, i32 %2, { ptr, i64 } %3) #0 {
define internal void @print__ct_s7d5f90608c43cc01__pack_string_i32_string(ptr %0, { ptr, i64 } %1, i32 %2, { ptr, i64 } %3) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.321, i64 7 }, ptr %alloca, align 8
@@ -3630,8 +3630,8 @@ entry:
%igp.ptr = getelementptr { i64, i64 }, ptr %allocaN, i64 0
store { i64, i64 } %ba.val, ptr %igp.ptr, align 8
%loadN = load i32, ptr %allocaN, align 4
%sN = sext i32 %loadN to i64
%ba.val6 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %loadN to i64
%ba.val6 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
%igp.ptr7 = getelementptr { i64, i64 }, ptr %allocaN, i64 1
store { i64, i64 } %ba.val6, ptr %igp.ptr7, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
@@ -3660,8 +3660,8 @@ entry:
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i32, ptr %allocaN, align 4
%sN = sext i32 %loadN to i64
%ba.val26 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %loadN to i64
%ba.val26 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
%callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val26)
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
@@ -3770,14 +3770,14 @@ fv.case: ; preds = %if.merge.125
fv.case17: ; preds = %if.merge.125
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.125
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.125
@@ -4473,8 +4473,8 @@ fv.default: ; preds = %if.merge.170
fv.case: ; preds = %if.merge.170
%fv.field = extractvalue { i32 } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
}
@@ -4557,14 +4557,14 @@ fv.case: ; preds = %if.merge.175
fv.case17: ; preds = %if.merge.175
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.175
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.175
@@ -4649,8 +4649,8 @@ fv.default: ; preds = %if.merge.180
fv.case: ; preds = %if.merge.180
%fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case17: ; preds = %if.merge.180
@@ -6051,7 +6051,7 @@ if.merge.262: ; preds = %if.then.261, %entry
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %1) #0 {
entry:
%alloca = alloca [4 x i64], align 8
%ig.tmp = alloca [4 x i64], align 8
@@ -6154,7 +6154,7 @@ if.merge.281: ; preds = %if.then.280, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %1) #0 {
entry:
%alloca = alloca [8 x i64], align 8
%ig.tmp = alloca [8 x i64], align 8
@@ -6255,7 +6255,7 @@ if.merge.291: ; preds = %if.then.290, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %1) #0 {
entry:
%alloca = alloca [64 x i64], align 8
%ig.tmp = alloca [64 x i64], align 8
@@ -6958,7 +6958,7 @@ if.merge.414: ; preds = %if.else.413, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8
@@ -7208,7 +7208,7 @@ if.merge.441: ; preds = %if.else.440, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8

View File

@@ -1,9 +1,9 @@
s64.min=-9223372036854775808
s64.max=9223372036854775807
i64.min=-9223372036854775808
i64.max=9223372036854775807
u64.max=18446744073709551615
s8.min=-128 s8.max=127
s16.min=-32768 s16.max=32767
s32.min=-2147483648 s32.max=2147483647
i8.min=-128 i8.max=127
i16.min=-32768 i16.max=32767
i32.min=-2147483648 i32.max=2147483647
u8.max=255 u16.max=65535
u32.max=4294967295
u8.min=0 u64.min=0 zero=0

View File

@@ -25,10 +25,10 @@
@tag_names = private constant [14 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.114, i64 8 }, { ptr, i64 } { ptr @tag.str.115, i64 2 }, { ptr, i64 } { ptr @tag.str.116, i64 15 }, { ptr, i64 } { ptr @tag.str.117, i64 13 }, { ptr, i64 } { ptr @tag.str.118, i64 9 }, { ptr, i64 } { ptr @tag.str.119, i64 9 }, { ptr, i64 } { ptr @tag.str.120, i64 15 }, { ptr, i64 } { ptr @tag.str.121, i64 14 }, { ptr, i64 } { ptr @tag.str.122, i64 14 }, { ptr, i64 } { ptr @tag.str.123, i64 11 }, { ptr, i64 } { ptr @tag.str.124, i64 12 }, { ptr, i64 } { ptr @tag.str.125, i64 15 }, { ptr, i64 } { ptr @tag.str.126, i64 12 }]
@tn.str = private constant [13 x i8] c"<unresolved>\00"
@tn.str.127 = private constant [5 x i8] c"bool\00"
@tn.str.128 = private constant [3 x i8] c"s8\00"
@tn.str.129 = private constant [4 x i8] c"s16\00"
@tn.str.130 = private constant [4 x i8] c"s32\00"
@tn.str.131 = private constant [4 x i8] c"s64\00"
@tn.str.128 = private constant [3 x i8] c"i8\00"
@tn.str.129 = private constant [4 x i8] c"i16\00"
@tn.str.130 = private constant [4 x i8] c"i32\00"
@tn.str.131 = private constant [4 x i8] c"i64\00"
@tn.str.132 = private constant [3 x i8] c"u8\00"
@tn.str.133 = private constant [4 x i8] c"u16\00"
@tn.str.134 = private constant [4 x i8] c"u32\00"
@@ -45,7 +45,7 @@
@tn.str.145 = private constant [16 x i8] c"Source_Location\00"
@tn.str.146 = private constant [10 x i8] c"Allocator\00"
@tn.str.147 = private constant [8 x i8] c"Context\00"
@tn.str.148 = private constant [7 x i8] c"[4]s64\00"
@tn.str.148 = private constant [7 x i8] c"[4]i64\00"
@tn.str.149 = private constant [9 x i8] c"[]string\00"
@tn.str.150 = private constant [11 x i8] c"CAllocator\00"
@tn.str.151 = private constant [12 x i8] c"*CAllocator\00"
@@ -70,7 +70,7 @@
@tn.str.170 = private constant [4 x i8] c"*u8\00"
@tn.str.171 = private constant [14 x i8] c"ProcessResult\00"
@tn.str.172 = private constant [15 x i8] c"?ProcessResult\00"
@tn.str.173 = private constant [5 x i8] c"*s32\00"
@tn.str.173 = private constant [5 x i8] c"*i32\00"
@tn.str.174 = private constant [9 x i8] c"SockAddr\00"
@tn.str.175 = private constant [10 x i8] c"*SockAddr\00"
@tn.str.176 = private constant [5 x i8] c"*u32\00"
@@ -86,9 +86,9 @@
@tn.str.186 = private constant [5 x i8] c"[]u8\00"
@tn.str.187 = private constant [5 x i8] c"Sink\00"
@tn.str.188 = private constant [6 x i8] c"*Sink\00"
@tn.str.189 = private constant [17 x i8] c"(s64, JsonError)\00"
@tn.str.189 = private constant [17 x i8] c"(i64, JsonError)\00"
@tn.str.190 = private constant [15 x i8] c"JsonParseError\00"
@tn.str.191 = private constant [22 x i8] c"(s64, JsonParseError)\00"
@tn.str.191 = private constant [22 x i8] c"(i64, JsonParseError)\00"
@tn.str.192 = private constant [7 x i8] c"Parser\00"
@tn.str.193 = private constant [8 x i8] c"*Parser\00"
@tn.str.194 = private constant [25 x i8] c"(string, JsonParseError)\00"
@@ -97,7 +97,7 @@
@tn.str.197 = private constant [13 x i8] c"Architecture\00"
@tn.str.198 = private constant [13 x i8] c"BuildOptions\00"
@tn.str.199 = private constant [11 x i8] c"() -> bool\00"
@tn.str.200 = private constant [5 x i8] c"*s64\00"
@tn.str.200 = private constant [5 x i8] c"*i64\00"
@tn.str.201 = private constant [9 x i8] c"CliError\00"
@tn.str.202 = private constant [9 x i8] c"FlagSpec\00"
@tn.str.203 = private constant [11 x i8] c"[]FlagSpec\00"
@@ -110,12 +110,12 @@
@tn.str.210 = private constant [19 x i8] c"(Parsed, CliError)\00"
@tn.str.211 = private constant [10 x i8] c"[]Command\00"
@tn.str.212 = private constant [6 x i8] c"*Diag\00"
@tn.str.213 = private constant [7 x i8] c"[8]s64\00"
@tn.str.213 = private constant [7 x i8] c"[8]i64\00"
@tn.str.214 = private constant [7 x i8] c"[64]u8\00"
@tn.str.215 = private constant [7 x i8] c"Sha256\00"
@tn.str.216 = private constant [8 x i8] c"*Sha256\00"
@tn.str.217 = private constant [8 x i8] c"?[64]u8\00"
@tn.str.218 = private constant [8 x i8] c"[64]s64\00"
@tn.str.218 = private constant [8 x i8] c"[64]i64\00"
@tn.str.219 = private constant [13 x i8] c"**CAllocator\00"
@tn.str.220 = private constant [7 x i8] c"**void\00"
@tn.str.221 = private constant [5 x i8] c"*f32\00"
@@ -126,7 +126,7 @@
@tn.str.226 = private constant [8 x i8] c"*[1]Any\00"
@tn.str.227 = private constant [7 x i8] c"*[]Any\00"
@tn.str.228 = private constant [6 x i8] c"*bool\00"
@tn.str.229 = private constant [8 x i8] c"*[4]s64\00"
@tn.str.229 = private constant [8 x i8] c"*[4]i64\00"
@tn.str.230 = private constant [5 x i8] c"*f64\00"
@tn.str.231 = private constant [17 x i8] c"*Source_Location\00"
@tn.str.232 = private constant [11 x i8] c"*Allocator\00"
@@ -144,9 +144,9 @@
@tn.str.244 = private constant [17 x i8] c"*OperatingSystem\00"
@tn.str.245 = private constant [14 x i8] c"*Architecture\00"
@tn.str.246 = private constant [15 x i8] c"*[16]FlagValue\00"
@tn.str.247 = private constant [8 x i8] c"*[8]s64\00"
@tn.str.247 = private constant [8 x i8] c"*[8]i64\00"
@tn.str.248 = private constant [8 x i8] c"*[64]u8\00"
@tn.str.249 = private constant [9 x i8] c"*[64]s64\00"
@tn.str.249 = private constant [9 x i8] c"*[64]i64\00"
@tn.str.250 = private constant [10 x i8] c"*[]string\00"
@tn.str.251 = private constant [6 x i8] c"*[]u8\00"
@tn.str.252 = private constant [12 x i8] c"*[]FlagSpec\00"
@@ -159,7 +159,7 @@
@tn.str.259 = private constant [20 x i8] c"**TrackingAllocator\00"
@tn.str.260 = private constant [7 x i8] c"**File\00"
@tn.str.261 = private constant [5 x i8] c"**u8\00"
@tn.str.262 = private constant [6 x i8] c"**s32\00"
@tn.str.262 = private constant [6 x i8] c"**i32\00"
@tn.str.263 = private constant [11 x i8] c"**SockAddr\00"
@tn.str.264 = private constant [6 x i8] c"**u32\00"
@tn.str.265 = private constant [10 x i8] c"*[*]Value\00"
@@ -168,7 +168,7 @@
@tn.str.268 = private constant [9 x i8] c"**Object\00"
@tn.str.269 = private constant [7 x i8] c"**Sink\00"
@tn.str.270 = private constant [9 x i8] c"**Parser\00"
@tn.str.271 = private constant [6 x i8] c"**s64\00"
@tn.str.271 = private constant [6 x i8] c"**i64\00"
@tn.str.272 = private constant [9 x i8] c"**Parsed\00"
@tn.str.273 = private constant [7 x i8] c"**Diag\00"
@tn.str.274 = private constant [9 x i8] c"**Sha256\00"
@@ -539,7 +539,7 @@
@str.636 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1
@str.637 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.638 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.639 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1
@str.639 = private unnamed_addr constant [5 x i8] c"*i32\00", align 1
@str.640 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.641 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.642 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1
@@ -566,7 +566,7 @@
@str.663 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1
@str.664 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.665 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.666 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1
@str.666 = private unnamed_addr constant [5 x i8] c"*i64\00", align 1
@str.667 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.668 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.669 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1
@@ -1939,7 +1939,7 @@ dispatch.case.270: ; preds = %match.arm.52
%ua.raw174 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr175 = inttoptr i64 %ua.raw174 to ptr
%ua.load176 = load [4 x i64], ptr %ua.ptr175, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load176)
%callN = call { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %ua.load176)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.268
@@ -1955,7 +1955,7 @@ dispatch.case.272: ; preds = %match.arm.52
%ua.raw182 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr183 = inttoptr i64 %ua.raw182 to ptr
%ua.load184 = load [8 x i64], ptr %ua.ptr183, align 8
%callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load184)
%callN = call { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %ua.load184)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.268
@@ -1971,7 +1971,7 @@ dispatch.case.274: ; preds = %match.arm.52
%ua.raw190 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr191 = inttoptr i64 %ua.raw190 to ptr
%ua.load192 = load [64 x i64], ptr %ua.ptr191, align 8
%callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load192)
%callN = call { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %ua.load192)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.268
@@ -2114,7 +2114,7 @@ dispatch.case.349: ; preds = %match.arm.54
dispatch.case.350: ; preds = %match.arm.54
%ua.raw249 = extractvalue { i64, i64 } %loadN, 1
%iNp250 = inttoptr i64 %ua.raw249 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp250)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %iNp250)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.338
@@ -2177,7 +2177,7 @@ dispatch.case.358: ; preds = %match.arm.54
dispatch.case.359: ; preds = %match.arm.54
%ua.raw276 = extractvalue { i64, i64 } %loadN, 1
%iNp277 = inttoptr i64 %ua.raw276 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp277)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %iNp277)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.338
@@ -3603,14 +3603,14 @@ fv.case: ; preds = %if.merge.130
fv.case17: ; preds = %if.merge.130
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.130
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.130
@@ -4306,8 +4306,8 @@ fv.default: ; preds = %if.merge.175
fv.case: ; preds = %if.merge.175
%fv.field = extractvalue { i32 } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
}
@@ -4390,14 +4390,14 @@ fv.case: ; preds = %if.merge.180
fv.case17: ; preds = %if.merge.180
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.180
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.180
@@ -4482,8 +4482,8 @@ fv.default: ; preds = %if.merge.185
fv.case: ; preds = %if.merge.185
%fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case17: ; preds = %if.merge.185
@@ -5884,7 +5884,7 @@ if.merge.267: ; preds = %if.then.266, %entry
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %1) #0 {
entry:
%alloca = alloca [4 x i64], align 8
%ig.tmp = alloca [4 x i64], align 8
@@ -5987,7 +5987,7 @@ if.merge.285: ; preds = %if.then.284, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %1) #0 {
entry:
%alloca = alloca [8 x i64], align 8
%ig.tmp = alloca [8 x i64], align 8
@@ -6088,7 +6088,7 @@ if.merge.295: ; preds = %if.then.294, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %1) #0 {
entry:
%alloca = alloca [64 x i64], align 8
%ig.tmp = alloca [64 x i64], align 8
@@ -6738,7 +6738,7 @@ if.merge.413: ; preds = %if.else.412, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8
@@ -6988,7 +6988,7 @@ if.merge.440: ; preds = %if.else.439, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8

View File

@@ -2,9 +2,9 @@
__invoke :: (block_self: *Block) -> void callconv(.c) { typed_fn : (*void) -> void = xx block_self.sx_fn; typed_fn(block_self.sx_env); } return .{ isa = @_NSConcreteStackBlock, flags = 0, reserved = 0, invoke = xx @__invoke, descriptor = xx @__sx_block_descriptor, sx_env = self.env, sx_fn = self.fn_ptr, };
--- void / bool ---
__invoke :: (block_self: *Block, arg0: bool) -> void callconv(.c) { typed_fn : (*void, bool) -> void = xx block_self.sx_fn; typed_fn(block_self.sx_env, arg0); } return .{ isa = @_NSConcreteStackBlock, flags = 0, reserved = 0, invoke = xx @__invoke, descriptor = xx @__sx_block_descriptor, sx_env = self.env, sx_fn = self.fn_ptr, };
--- void / s64, string ---
__invoke :: (block_self: *Block, arg0: s64, arg1: string) -> void callconv(.c) { typed_fn : (*void, s64, string) -> void = xx block_self.sx_fn; typed_fn(block_self.sx_env, arg0, arg1); } return .{ isa = @_NSConcreteStackBlock, flags = 0, reserved = 0, invoke = xx @__invoke, descriptor = xx @__sx_block_descriptor, sx_env = self.env, sx_fn = self.fn_ptr, };
--- s32 / f64 ---
__invoke :: (block_self: *Block, arg0: f64) -> s32 callconv(.c) { typed_fn : (*void, f64) -> s32 = xx block_self.sx_fn; return typed_fn(block_self.sx_env, arg0); } return .{ isa = @_NSConcreteStackBlock, flags = 0, reserved = 0, invoke = xx @__invoke, descriptor = xx @__sx_block_descriptor, sx_env = self.env, sx_fn = self.fn_ptr, };
--- void / i64, string ---
__invoke :: (block_self: *Block, arg0: i64, arg1: string) -> void callconv(.c) { typed_fn : (*void, i64, string) -> void = xx block_self.sx_fn; typed_fn(block_self.sx_env, arg0, arg1); } return .{ isa = @_NSConcreteStackBlock, flags = 0, reserved = 0, invoke = xx @__invoke, descriptor = xx @__sx_block_descriptor, sx_env = self.env, sx_fn = self.fn_ptr, };
--- i32 / f64 ---
__invoke :: (block_self: *Block, arg0: f64) -> i32 callconv(.c) { typed_fn : (*void, f64) -> i32 = xx block_self.sx_fn; return typed_fn(block_self.sx_env, arg0); } return .{ isa = @_NSConcreteStackBlock, flags = 0, reserved = 0, invoke = xx @__invoke, descriptor = xx @__sx_block_descriptor, sx_env = self.env, sx_fn = self.fn_ptr, };
--- build done ---
rt

View File

@@ -2,8 +2,8 @@ size_of(*u8) = 8
align_of(*u8) = 8
size_of(?u8) = 2
size_of([3]u8) = 3
size_of((s32)->s32) = 8
size_of((s32, s32)) = 8
size_of((i32)->i32) = 8
size_of((i32, i32)) = 8
size_of(Ptr) = 8
size_of(Maybe) = 2
size_of(Arr) = 3

View File

@@ -1,6 +1,6 @@
direct s32: 4
alias s32: 4
chain s32: 4
direct i32: 4
alias i32: 4
chain i32: 4
align alias: 4
align chain: 4
size struct-alias: 16

View File

@@ -1,11 +1,11 @@
=== 1. literal == ===
s64 == s64: true
s64 == string: false
i64 == i64: true
i64 == string: false
*u8 == *u8: true
?s64 == ?s64: true
?s64 == ?s32: false
?i64 == ?i64: true
?i64 == ?i32: false
=== 2. type_of(value) == T ===
type_of(a) == s64: true
type_of(a) == i64: true
type_of(b) == f64: true
type_of(s) == string: true
type_of(a) == f64: false
@@ -15,45 +15,45 @@ t == string: false
after reassign t == string: true
t == bool: true
=== 4. type_name ===
type_name(s64): s64
type_name(i64): i64
type_name(*u8): *u8
type_name(Point): Point
type_name(Color): Color
type_name(t): f64
=== 5. print Type values ===
literal: s64
literal: i64
var: string
type_of(b): f64
=== 6. generic dispatch ===
describe(s64): int64
describe(i64): int64
describe(string): text
describe(bool): boolean
describe(f64): other
=== 7. identity($T, val) ===
identity(s64, 7): 7
identity(i64, 7): 7
identity(string, hi): hi
identity(bool, true): true
=== 8. Wrap($T) ===
Wrap(s64).v: 42
Wrap(i64).v: 42
Wrap(string).v: wrapped
=== 9. reflection on Type ===
size_of(s64): 8
size_of(i64): 8
size_of(*u8): 8
align_of(f64): 8
field_count(Point): 2
type_eq(s64, s64): true
type_eq(s64, string): false
type_eq(i64, i64): true
type_eq(i64, string): false
=== 10. ..$args walking ===
type_list(): []
type_list(1): [s64]
type_list(1, "x"): [s64, string]
type_list(1): [i64]
type_list(1, "x"): [i64, string]
type_list(true, 3.14): [bool, f64]
=== 11. Type in struct field ===
h.t == s64: true
h.t == i64: true
h.t == string: false
type_name(h.t): s64
type_name(h.t): i64
=== 12. compound literals ===
type_name(*Point): *Point
type_name([4]s32): [4]s32
type_name([4]i32): [4]i32
type_name([]bool): []bool
type_name(?f64): ?f64

View File

@@ -1,7 +1,7 @@
=== 3. Types ===
s8: 127
s16: 32000
s32: 100000
i8: 127
i16: 32000
i32: 100000
u8: 255
u16: 65000
u32: 4000000

View File

@@ -1,3 +1,3 @@
=== 16. Compound Assign ===
f64+=f32: 13.000000
s64-=s32: 93
i64-=i32: 93

View File

@@ -1,5 +1,5 @@
error: 's2' is a reserved type name and cannot be used as an identifier
--> /Users/agra/projects/sx/examples/0125-types-type-named-var-rejected.sx:10:5
error: 'i2' is a reserved type name and cannot be used as an identifier
--> examples/0125-types-type-named-var-rejected.sx:10:5
|
10 | s2 := 42;
10 | i2 := 42;
| ^^

View File

@@ -17,5 +17,5 @@ opt-if5: 42.000000
usize: 42
isize: -7
usize+8: 50
s32->usize: 10
usize->s64: 42
i32->usize: 10
usize->i64: 42

View File

@@ -1,3 +1,3 @@
chain s32: 4
chain i32: 4
forward u8: 1
v + n: 10

View File

@@ -1,7 +1,7 @@
scalar a0=7 a3=42
string s0=hi s1=yo
string i0=hi i1=yo
struct p0x=1 p0y=2 p2x=5
alias a0=11 a3=99
alias s0=al s2=ok
alias i0=al i2=ok
nested g00=1 g32=8
union u0=70 u3=7

View File

@@ -1,6 +1,6 @@
direct d0=3 d7=21 len=8
alias a0=7 a7=99 len=8
alias s0=hi s7=yo
alias i0=hi i7=yo
alias p0x=1 p0y=2 p7x=5
nested g00=1 g77=10
fwd f0=4 f4=40 len=5

View File

@@ -3,5 +3,5 @@ mul direct.len=24 alias.len=24 d23=230 a23=230
sub direct.len=2 alias.len=2 d1=9 a1=9
nest direct.len=9 alias.len=9 paren direct.len=10 alias.len=10
typed direct.len=6 alias.len=6
str alias.len=5 s0=hi s4=yo
str alias.len=5 i0=hi i4=yo
struct alias.len=5 p0x=1 p4y=6

View File

@@ -7,7 +7,7 @@ lane.expr3: 1.000000 2.000000 3.000000
lane.float4: 4.000000
vp.struct.expr: len=3 v=30
vp.struct.alias.u32: len=3 v=31
vp.struct.alias.s8: len=4 v=32
vp.struct.alias.i8: len=4 v=32
vp.typefn.expr: len=3 v=33
for.expr: 3
for.float: 6

View File

@@ -1,18 +1,18 @@
s1.min=-1 s1.max=0
s2.min=-2 s2.max=1
s3.max=3
i1.min=-1 i1.max=0
i2.min=-2 i2.max=1
i3.max=3
u1.min=0 u1.max=1
u2.max=3
s8.min=-128 s8.max=127
i8.min=-128 i8.max=127
u8.max=255
s32.min=-2147483648 s32.max=2147483647
s64.max=9223372036854775807
s64.min+1 == -(s64.max): true
s64.min + s64.max == -1: true
u64.max as s64 == -1: true
usize.max as s64 == -1: true
i32.min=-2147483648 i32.max=2147483647
i64.max=9223372036854775807
i64.min+1 == -(i64.max): true
i64.min + i64.max == -1: true
u64.max as i64 == -1: true
usize.max as i64 == -1: true
usize.max == u64.max: true
isize.min == s64.min: true
isize.min == i64.min: true
typed: m3=3 mu=255 ms=-128
[u8.max]u8 len=255 a[254]=7
[s16.max]u8 len=32767 b[32766]=9
[i16.max]u8 len=32767 b[32766]=9

View File

@@ -1,7 +1,7 @@
error: type 's32' has no '.epsilon' — '.epsilon' applies only to float types (f32/f64); integer types expose only '.min'/'.max'
error: type 'i32' has no '.epsilon' — '.epsilon' applies only to float types (f32/f64); integer types expose only '.min'/'.max'
--> examples/0160-types-float-numeric-limits-errors.sx:20:10
|
20 | a := s32.epsilon;
20 | a := i32.epsilon;
| ^^^^^^^^^^^
error: type 'u8' has no '.inf' — '.inf' applies only to float types (f32/f64); integer types expose only '.min'/'.max'
@@ -10,10 +10,10 @@ error: type 'u8' has no '.inf' — '.inf' applies only to float types (f32/f64);
21 | b := u8.inf;
| ^^^^^^
error: type 's64' has no '.true_min' — '.true_min' applies only to float types (f32/f64); integer types expose only '.min'/'.max'
error: type 'i64' has no '.true_min' — '.true_min' applies only to float types (f32/f64); integer types expose only '.min'/'.max'
--> examples/0160-types-float-numeric-limits-errors.sx:22:10
|
22 | c := s64.true_min;
22 | c := i64.true_min;
| ^^^^^^^^^^^^
error: type 'bool' has no '.nan' — numeric limits apply only to integer and float types

View File

@@ -1,12 +1,12 @@
local f64: epsilon=11 max=22 min_positive=33
local s32: max=78 min=-78
local i32: max=78 min=-78
local u8: max=7
global f32: epsilon=44 max=55 min_positive=66
const s16: max=99 min=-99
const i16: max=99 min=-99
typed val e=11
lim s32.max=2147483647 s32.min=-2147483648
lim i32.max=2147483647 i32.min=-2147483648
lim u8.max=255
lim s16.max=32767 s16.min=-32768
lim i16.max=32767 i16.min=-32768
lim (1.0+f64.epsilon)!=1.0: true
lim f64.inf > f64.max: true
lim f64.min == -f64.max: true

View File

@@ -1,4 +1,4 @@
type_name(av)=s64
type_name(av)=i64
type_is_unsigned(av)=false
print(av)=6
type_name(au)=u32

View File

@@ -0,0 +1,5 @@
f.x: i64
g.x: i64
big: i64 = 3000000000
a: i64 b: i64
main.x: i64

View File

@@ -1,5 +0,0 @@
f.x: s64
g.x: s64
big: s64 = 3000000000
a: s64 b: s64
main.x: s64

View File

@@ -3,4 +3,4 @@ b: 42
c: 42
d: 7
e: 3 3
f: *s64
f: *i64

View File

@@ -25,10 +25,10 @@
@tag_names = private constant [14 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.114, i64 8 }, { ptr, i64 } { ptr @tag.str.115, i64 2 }, { ptr, i64 } { ptr @tag.str.116, i64 15 }, { ptr, i64 } { ptr @tag.str.117, i64 13 }, { ptr, i64 } { ptr @tag.str.118, i64 9 }, { ptr, i64 } { ptr @tag.str.119, i64 9 }, { ptr, i64 } { ptr @tag.str.120, i64 15 }, { ptr, i64 } { ptr @tag.str.121, i64 14 }, { ptr, i64 } { ptr @tag.str.122, i64 14 }, { ptr, i64 } { ptr @tag.str.123, i64 11 }, { ptr, i64 } { ptr @tag.str.124, i64 12 }, { ptr, i64 } { ptr @tag.str.125, i64 15 }, { ptr, i64 } { ptr @tag.str.126, i64 12 }]
@tn.str = private constant [13 x i8] c"<unresolved>\00"
@tn.str.127 = private constant [5 x i8] c"bool\00"
@tn.str.128 = private constant [3 x i8] c"s8\00"
@tn.str.129 = private constant [4 x i8] c"s16\00"
@tn.str.130 = private constant [4 x i8] c"s32\00"
@tn.str.131 = private constant [4 x i8] c"s64\00"
@tn.str.128 = private constant [3 x i8] c"i8\00"
@tn.str.129 = private constant [4 x i8] c"i16\00"
@tn.str.130 = private constant [4 x i8] c"i32\00"
@tn.str.131 = private constant [4 x i8] c"i64\00"
@tn.str.132 = private constant [3 x i8] c"u8\00"
@tn.str.133 = private constant [4 x i8] c"u16\00"
@tn.str.134 = private constant [4 x i8] c"u32\00"
@@ -45,7 +45,7 @@
@tn.str.145 = private constant [16 x i8] c"Source_Location\00"
@tn.str.146 = private constant [10 x i8] c"Allocator\00"
@tn.str.147 = private constant [8 x i8] c"Context\00"
@tn.str.148 = private constant [7 x i8] c"[4]s64\00"
@tn.str.148 = private constant [7 x i8] c"[4]i64\00"
@tn.str.149 = private constant [9 x i8] c"[]string\00"
@tn.str.150 = private constant [11 x i8] c"CAllocator\00"
@tn.str.151 = private constant [12 x i8] c"*CAllocator\00"
@@ -70,7 +70,7 @@
@tn.str.170 = private constant [4 x i8] c"*u8\00"
@tn.str.171 = private constant [14 x i8] c"ProcessResult\00"
@tn.str.172 = private constant [15 x i8] c"?ProcessResult\00"
@tn.str.173 = private constant [5 x i8] c"*s32\00"
@tn.str.173 = private constant [5 x i8] c"*i32\00"
@tn.str.174 = private constant [9 x i8] c"SockAddr\00"
@tn.str.175 = private constant [10 x i8] c"*SockAddr\00"
@tn.str.176 = private constant [5 x i8] c"*u32\00"
@@ -86,9 +86,9 @@
@tn.str.186 = private constant [5 x i8] c"[]u8\00"
@tn.str.187 = private constant [5 x i8] c"Sink\00"
@tn.str.188 = private constant [6 x i8] c"*Sink\00"
@tn.str.189 = private constant [17 x i8] c"(s64, JsonError)\00"
@tn.str.189 = private constant [17 x i8] c"(i64, JsonError)\00"
@tn.str.190 = private constant [15 x i8] c"JsonParseError\00"
@tn.str.191 = private constant [22 x i8] c"(s64, JsonParseError)\00"
@tn.str.191 = private constant [22 x i8] c"(i64, JsonParseError)\00"
@tn.str.192 = private constant [7 x i8] c"Parser\00"
@tn.str.193 = private constant [8 x i8] c"*Parser\00"
@tn.str.194 = private constant [25 x i8] c"(string, JsonParseError)\00"
@@ -97,7 +97,7 @@
@tn.str.197 = private constant [13 x i8] c"Architecture\00"
@tn.str.198 = private constant [13 x i8] c"BuildOptions\00"
@tn.str.199 = private constant [11 x i8] c"() -> bool\00"
@tn.str.200 = private constant [5 x i8] c"*s64\00"
@tn.str.200 = private constant [5 x i8] c"*i64\00"
@tn.str.201 = private constant [9 x i8] c"CliError\00"
@tn.str.202 = private constant [9 x i8] c"FlagSpec\00"
@tn.str.203 = private constant [11 x i8] c"[]FlagSpec\00"
@@ -110,12 +110,12 @@
@tn.str.210 = private constant [19 x i8] c"(Parsed, CliError)\00"
@tn.str.211 = private constant [10 x i8] c"[]Command\00"
@tn.str.212 = private constant [6 x i8] c"*Diag\00"
@tn.str.213 = private constant [7 x i8] c"[8]s64\00"
@tn.str.213 = private constant [7 x i8] c"[8]i64\00"
@tn.str.214 = private constant [7 x i8] c"[64]u8\00"
@tn.str.215 = private constant [7 x i8] c"Sha256\00"
@tn.str.216 = private constant [8 x i8] c"*Sha256\00"
@tn.str.217 = private constant [8 x i8] c"?[64]u8\00"
@tn.str.218 = private constant [8 x i8] c"[64]s64\00"
@tn.str.218 = private constant [8 x i8] c"[64]i64\00"
@tn.str.219 = private constant [13 x i8] c"**CAllocator\00"
@tn.str.220 = private constant [7 x i8] c"**void\00"
@tn.str.221 = private constant [8 x i8] c"*string\00"
@@ -126,7 +126,7 @@
@tn.str.226 = private constant [7 x i8] c"*[]Any\00"
@tn.str.227 = private constant [6 x i8] c"*bool\00"
@tn.str.228 = private constant [5 x i8] c"*f64\00"
@tn.str.229 = private constant [8 x i8] c"*[4]s64\00"
@tn.str.229 = private constant [8 x i8] c"*[4]i64\00"
@tn.str.230 = private constant [17 x i8] c"*Source_Location\00"
@tn.str.231 = private constant [11 x i8] c"*Allocator\00"
@tn.str.232 = private constant [9 x i8] c"*Context\00"
@@ -143,9 +143,9 @@
@tn.str.243 = private constant [17 x i8] c"*OperatingSystem\00"
@tn.str.244 = private constant [14 x i8] c"*Architecture\00"
@tn.str.245 = private constant [15 x i8] c"*[16]FlagValue\00"
@tn.str.246 = private constant [8 x i8] c"*[8]s64\00"
@tn.str.246 = private constant [8 x i8] c"*[8]i64\00"
@tn.str.247 = private constant [8 x i8] c"*[64]u8\00"
@tn.str.248 = private constant [9 x i8] c"*[64]s64\00"
@tn.str.248 = private constant [9 x i8] c"*[64]i64\00"
@tn.str.249 = private constant [10 x i8] c"*[]string\00"
@tn.str.250 = private constant [6 x i8] c"*[]u8\00"
@tn.str.251 = private constant [12 x i8] c"*[]FlagSpec\00"
@@ -158,7 +158,7 @@
@tn.str.258 = private constant [20 x i8] c"**TrackingAllocator\00"
@tn.str.259 = private constant [7 x i8] c"**File\00"
@tn.str.260 = private constant [5 x i8] c"**u8\00"
@tn.str.261 = private constant [6 x i8] c"**s32\00"
@tn.str.261 = private constant [6 x i8] c"**i32\00"
@tn.str.262 = private constant [11 x i8] c"**SockAddr\00"
@tn.str.263 = private constant [6 x i8] c"**u32\00"
@tn.str.264 = private constant [10 x i8] c"*[*]Value\00"
@@ -167,7 +167,7 @@
@tn.str.267 = private constant [9 x i8] c"**Object\00"
@tn.str.268 = private constant [7 x i8] c"**Sink\00"
@tn.str.269 = private constant [9 x i8] c"**Parser\00"
@tn.str.270 = private constant [6 x i8] c"**s64\00"
@tn.str.270 = private constant [6 x i8] c"**i64\00"
@tn.str.271 = private constant [9 x i8] c"**Parsed\00"
@tn.str.272 = private constant [7 x i8] c"**Diag\00"
@tn.str.273 = private constant [9 x i8] c"**Sha256\00"
@@ -540,7 +540,7 @@
@str.637 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1
@str.638 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.639 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.640 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1
@str.640 = private unnamed_addr constant [5 x i8] c"*i32\00", align 1
@str.641 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.642 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.643 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1
@@ -567,7 +567,7 @@
@str.664 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1
@str.665 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.666 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.667 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1
@str.667 = private unnamed_addr constant [5 x i8] c"*i64\00", align 1
@str.668 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.669 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.670 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1
@@ -1940,7 +1940,7 @@ dispatch.case.265: ; preds = %match.arm.47
%ua.raw174 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr175 = inttoptr i64 %ua.raw174 to ptr
%ua.load176 = load [4 x i64], ptr %ua.ptr175, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load176)
%callN = call { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %ua.load176)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.263
@@ -1956,7 +1956,7 @@ dispatch.case.267: ; preds = %match.arm.47
%ua.raw182 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr183 = inttoptr i64 %ua.raw182 to ptr
%ua.load184 = load [8 x i64], ptr %ua.ptr183, align 8
%callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load184)
%callN = call { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %ua.load184)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.263
@@ -1972,7 +1972,7 @@ dispatch.case.269: ; preds = %match.arm.47
%ua.raw190 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr191 = inttoptr i64 %ua.raw190 to ptr
%ua.load192 = load [64 x i64], ptr %ua.ptr191, align 8
%callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load192)
%callN = call { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %ua.load192)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.263
@@ -2115,7 +2115,7 @@ dispatch.case.344: ; preds = %match.arm.49
dispatch.case.345: ; preds = %match.arm.49
%ua.raw249 = extractvalue { i64, i64 } %loadN, 1
%iNp250 = inttoptr i64 %ua.raw249 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp250)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %iNp250)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.333
@@ -2178,7 +2178,7 @@ dispatch.case.353: ; preds = %match.arm.49
dispatch.case.354: ; preds = %match.arm.49
%ua.raw276 = extractvalue { i64, i64 } %loadN, 1
%iNp277 = inttoptr i64 %ua.raw276 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp277)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %iNp277)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.333
@@ -3428,13 +3428,13 @@ declare void @assert.107(ptr, i1) #0
; Function Attrs: nounwind
define i32 @main() #0 {
entry:
%call = call i64 @sum__s64(ptr @__sx_default_context, i64 2, i64 3)
%call = call i64 @sum__i64(ptr @__sx_default_context, i64 2, i64 3)
%alloca = alloca i64, align 8
store i64 %call, ptr %alloca, align 8
%load = load i64, ptr %alloca, align 8
call void @print__ct_s95dfd2a009f17129__pack_s64(ptr @__sx_default_context, i64 %load)
%callN = call i64 @sum__s64(ptr @__sx_default_context, i64 40, i64 2)
call void @print__ct_s95dfd2a009f17129__pack_s64(ptr @__sx_default_context, i64 %callN)
call void @print__ct_s95dfd2a009f17129__pack_i64(ptr @__sx_default_context, i64 %load)
%callN = call i64 @sum__i64(ptr @__sx_default_context, i64 40, i64 2)
call void @print__ct_s95dfd2a009f17129__pack_i64(ptr @__sx_default_context, i64 %callN)
%callN = call double @sum__f64(ptr @__sx_default_context, double 4.000000e+01, double 2.500000e+00)
call void @print__ct_s95dfd2a009f17129__pack_f64(ptr @__sx_default_context, double %callN)
ret i32 0
@@ -3455,7 +3455,7 @@ entry:
}
; Function Attrs: nounwind
define internal i64 @sum__s64(ptr %0, i64 %1, i64 %2) #0 {
define internal i64 @sum__i64(ptr %0, i64 %1, i64 %2) #0 {
entry:
%alloca = alloca i64, align 8
store i64 %1, ptr %alloca, align 8
@@ -3468,7 +3468,7 @@ entry:
}
; Function Attrs: nounwind
define internal void @print__ct_s95dfd2a009f17129__pack_s64(ptr %0, i64 %1) #0 {
define internal void @print__ct_s95dfd2a009f17129__pack_i64(ptr %0, i64 %1) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.307, i64 8 }, ptr %alloca, align 8
@@ -3659,14 +3659,14 @@ fv.case: ; preds = %if.merge.125
fv.case17: ; preds = %if.merge.125
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.125
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.125
@@ -4362,8 +4362,8 @@ fv.default: ; preds = %if.merge.170
fv.case: ; preds = %if.merge.170
%fv.field = extractvalue { i32 } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
}
@@ -4446,14 +4446,14 @@ fv.case: ; preds = %if.merge.175
fv.case17: ; preds = %if.merge.175
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.175
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.175
@@ -4538,8 +4538,8 @@ fv.default: ; preds = %if.merge.180
fv.case: ; preds = %if.merge.180
%fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case17: ; preds = %if.merge.180
@@ -5940,7 +5940,7 @@ if.merge.262: ; preds = %if.then.261, %entry
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %1) #0 {
entry:
%alloca = alloca [4 x i64], align 8
%ig.tmp = alloca [4 x i64], align 8
@@ -6043,7 +6043,7 @@ if.merge.280: ; preds = %if.then.279, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %1) #0 {
entry:
%alloca = alloca [8 x i64], align 8
%ig.tmp = alloca [8 x i64], align 8
@@ -6144,7 +6144,7 @@ if.merge.290: ; preds = %if.then.289, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %1) #0 {
entry:
%alloca = alloca [64 x i64], align 8
%ig.tmp = alloca [64 x i64], align 8
@@ -6794,7 +6794,7 @@ if.merge.408: ; preds = %if.else.407, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8
@@ -7044,7 +7044,7 @@ if.merge.435: ; preds = %if.else.434, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8

View File

@@ -25,10 +25,10 @@
@tag_names = private constant [14 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.114, i64 8 }, { ptr, i64 } { ptr @tag.str.115, i64 2 }, { ptr, i64 } { ptr @tag.str.116, i64 15 }, { ptr, i64 } { ptr @tag.str.117, i64 13 }, { ptr, i64 } { ptr @tag.str.118, i64 9 }, { ptr, i64 } { ptr @tag.str.119, i64 9 }, { ptr, i64 } { ptr @tag.str.120, i64 15 }, { ptr, i64 } { ptr @tag.str.121, i64 14 }, { ptr, i64 } { ptr @tag.str.122, i64 14 }, { ptr, i64 } { ptr @tag.str.123, i64 11 }, { ptr, i64 } { ptr @tag.str.124, i64 12 }, { ptr, i64 } { ptr @tag.str.125, i64 15 }, { ptr, i64 } { ptr @tag.str.126, i64 12 }]
@tn.str = private constant [13 x i8] c"<unresolved>\00"
@tn.str.127 = private constant [5 x i8] c"bool\00"
@tn.str.128 = private constant [3 x i8] c"s8\00"
@tn.str.129 = private constant [4 x i8] c"s16\00"
@tn.str.130 = private constant [4 x i8] c"s32\00"
@tn.str.131 = private constant [4 x i8] c"s64\00"
@tn.str.128 = private constant [3 x i8] c"i8\00"
@tn.str.129 = private constant [4 x i8] c"i16\00"
@tn.str.130 = private constant [4 x i8] c"i32\00"
@tn.str.131 = private constant [4 x i8] c"i64\00"
@tn.str.132 = private constant [3 x i8] c"u8\00"
@tn.str.133 = private constant [4 x i8] c"u16\00"
@tn.str.134 = private constant [4 x i8] c"u32\00"
@@ -45,7 +45,7 @@
@tn.str.145 = private constant [16 x i8] c"Source_Location\00"
@tn.str.146 = private constant [10 x i8] c"Allocator\00"
@tn.str.147 = private constant [8 x i8] c"Context\00"
@tn.str.148 = private constant [7 x i8] c"[4]s64\00"
@tn.str.148 = private constant [7 x i8] c"[4]i64\00"
@tn.str.149 = private constant [9 x i8] c"[]string\00"
@tn.str.150 = private constant [11 x i8] c"CAllocator\00"
@tn.str.151 = private constant [12 x i8] c"*CAllocator\00"
@@ -70,7 +70,7 @@
@tn.str.170 = private constant [4 x i8] c"*u8\00"
@tn.str.171 = private constant [14 x i8] c"ProcessResult\00"
@tn.str.172 = private constant [15 x i8] c"?ProcessResult\00"
@tn.str.173 = private constant [5 x i8] c"*s32\00"
@tn.str.173 = private constant [5 x i8] c"*i32\00"
@tn.str.174 = private constant [9 x i8] c"SockAddr\00"
@tn.str.175 = private constant [10 x i8] c"*SockAddr\00"
@tn.str.176 = private constant [5 x i8] c"*u32\00"
@@ -86,9 +86,9 @@
@tn.str.186 = private constant [5 x i8] c"[]u8\00"
@tn.str.187 = private constant [5 x i8] c"Sink\00"
@tn.str.188 = private constant [6 x i8] c"*Sink\00"
@tn.str.189 = private constant [17 x i8] c"(s64, JsonError)\00"
@tn.str.189 = private constant [17 x i8] c"(i64, JsonError)\00"
@tn.str.190 = private constant [15 x i8] c"JsonParseError\00"
@tn.str.191 = private constant [22 x i8] c"(s64, JsonParseError)\00"
@tn.str.191 = private constant [22 x i8] c"(i64, JsonParseError)\00"
@tn.str.192 = private constant [7 x i8] c"Parser\00"
@tn.str.193 = private constant [8 x i8] c"*Parser\00"
@tn.str.194 = private constant [25 x i8] c"(string, JsonParseError)\00"
@@ -97,7 +97,7 @@
@tn.str.197 = private constant [13 x i8] c"Architecture\00"
@tn.str.198 = private constant [13 x i8] c"BuildOptions\00"
@tn.str.199 = private constant [11 x i8] c"() -> bool\00"
@tn.str.200 = private constant [5 x i8] c"*s64\00"
@tn.str.200 = private constant [5 x i8] c"*i64\00"
@tn.str.201 = private constant [9 x i8] c"CliError\00"
@tn.str.202 = private constant [9 x i8] c"FlagSpec\00"
@tn.str.203 = private constant [11 x i8] c"[]FlagSpec\00"
@@ -110,12 +110,12 @@
@tn.str.210 = private constant [19 x i8] c"(Parsed, CliError)\00"
@tn.str.211 = private constant [10 x i8] c"[]Command\00"
@tn.str.212 = private constant [6 x i8] c"*Diag\00"
@tn.str.213 = private constant [7 x i8] c"[8]s64\00"
@tn.str.213 = private constant [7 x i8] c"[8]i64\00"
@tn.str.214 = private constant [7 x i8] c"[64]u8\00"
@tn.str.215 = private constant [7 x i8] c"Sha256\00"
@tn.str.216 = private constant [8 x i8] c"*Sha256\00"
@tn.str.217 = private constant [8 x i8] c"?[64]u8\00"
@tn.str.218 = private constant [8 x i8] c"[64]s64\00"
@tn.str.218 = private constant [8 x i8] c"[64]i64\00"
@tn.str.219 = private constant [8 x i8] c"[16]f32\00"
@tn.str.220 = private constant [5 x i8] c"Mat4\00"
@tn.str.221 = private constant [5 x i8] c"Vec2\00"
@@ -142,7 +142,7 @@
@tn.str.242 = private constant [5 x i8] c"*f64\00"
@tn.str.243 = private constant [8 x i8] c"Sx__f32\00"
@tn.str.244 = private constant [9 x i8] c"*Sx__f32\00"
@tn.str.245 = private constant [8 x i8] c"*[4]s64\00"
@tn.str.245 = private constant [8 x i8] c"*[4]i64\00"
@tn.str.246 = private constant [17 x i8] c"*Source_Location\00"
@tn.str.247 = private constant [11 x i8] c"*Allocator\00"
@tn.str.248 = private constant [9 x i8] c"*Context\00"
@@ -163,9 +163,9 @@
@tn.str.263 = private constant [17 x i8] c"*OperatingSystem\00"
@tn.str.264 = private constant [14 x i8] c"*Architecture\00"
@tn.str.265 = private constant [15 x i8] c"*[16]FlagValue\00"
@tn.str.266 = private constant [8 x i8] c"*[8]s64\00"
@tn.str.266 = private constant [8 x i8] c"*[8]i64\00"
@tn.str.267 = private constant [8 x i8] c"*[64]u8\00"
@tn.str.268 = private constant [9 x i8] c"*[64]s64\00"
@tn.str.268 = private constant [9 x i8] c"*[64]i64\00"
@tn.str.269 = private constant [9 x i8] c"*[16]f32\00"
@tn.str.270 = private constant [10 x i8] c"*[]string\00"
@tn.str.271 = private constant [6 x i8] c"*[]u8\00"
@@ -179,7 +179,7 @@
@tn.str.279 = private constant [20 x i8] c"**TrackingAllocator\00"
@tn.str.280 = private constant [7 x i8] c"**File\00"
@tn.str.281 = private constant [5 x i8] c"**u8\00"
@tn.str.282 = private constant [6 x i8] c"**s32\00"
@tn.str.282 = private constant [6 x i8] c"**i32\00"
@tn.str.283 = private constant [11 x i8] c"**SockAddr\00"
@tn.str.284 = private constant [6 x i8] c"**u32\00"
@tn.str.285 = private constant [10 x i8] c"*[*]Value\00"
@@ -188,7 +188,7 @@
@tn.str.288 = private constant [9 x i8] c"**Object\00"
@tn.str.289 = private constant [7 x i8] c"**Sink\00"
@tn.str.290 = private constant [9 x i8] c"**Parser\00"
@tn.str.291 = private constant [6 x i8] c"**s64\00"
@tn.str.291 = private constant [6 x i8] c"**i64\00"
@tn.str.292 = private constant [9 x i8] c"**Parsed\00"
@tn.str.293 = private constant [7 x i8] c"**Diag\00"
@tn.str.294 = private constant [9 x i8] c"**Sha256\00"
@@ -658,7 +658,7 @@
@str.755 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1
@str.756 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.757 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.758 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1
@str.758 = private unnamed_addr constant [5 x i8] c"*i32\00", align 1
@str.759 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.760 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.761 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1
@@ -685,7 +685,7 @@
@str.782 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1
@str.783 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.784 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.785 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1
@str.785 = private unnamed_addr constant [5 x i8] c"*i64\00", align 1
@str.786 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.787 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.788 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1
@@ -2186,7 +2186,7 @@ dispatch.case.312: ; preds = %match.arm.47
%ua.raw211 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr212 = inttoptr i64 %ua.raw211 to ptr
%ua.load213 = load [4 x i64], ptr %ua.ptr212, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load213)
%callN = call { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %ua.load213)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.310
@@ -2202,7 +2202,7 @@ dispatch.case.314: ; preds = %match.arm.47
%ua.raw219 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr220 = inttoptr i64 %ua.raw219 to ptr
%ua.load221 = load [8 x i64], ptr %ua.ptr220, align 8
%callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load221)
%callN = call { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %ua.load221)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.310
@@ -2218,7 +2218,7 @@ dispatch.case.316: ; preds = %match.arm.47
%ua.raw227 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr228 = inttoptr i64 %ua.raw227 to ptr
%ua.load229 = load [64 x i64], ptr %ua.ptr228, align 8
%callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load229)
%callN = call { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %ua.load229)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.310
@@ -2377,7 +2377,7 @@ dispatch.case.403: ; preds = %match.arm.49
dispatch.case.404: ; preds = %match.arm.49
%ua.raw294 = extractvalue { i64, i64 } %loadN, 1
%iNp295 = inttoptr i64 %ua.raw294 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp295)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %iNp295)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.392
@@ -2440,7 +2440,7 @@ dispatch.case.412: ; preds = %match.arm.49
dispatch.case.413: ; preds = %match.arm.49
%ua.raw321 = extractvalue { i64, i64 } %loadN, 1
%iNp322 = inttoptr i64 %ua.raw321 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp322)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %iNp322)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.392
@@ -3882,9 +3882,9 @@ entry:
store { i64, [4 x i8] } %ei.val, ptr %allocaN, align 8
%loadN = load { i64, [4 x i8] }, ptr %allocaN, align 8
call void @print__ct_sbc6305862a3a863d__pack_Sx__f32(ptr @__sx_default_context, { i64, [4 x i8] } %loadN)
call void @print__ct_sbc6305862a3a863d__pack_s64(ptr @__sx_default_context, i64 4)
call void @print__ct_sbc6305862a3a863d__pack_s64(ptr @__sx_default_context, i64 16)
call void @print__ct_sbc6305862a3a863d__pack_s64(ptr @__sx_default_context, i64 8)
call void @print__ct_sbc6305862a3a863d__pack_i64(ptr @__sx_default_context, i64 4)
call void @print__ct_sbc6305862a3a863d__pack_i64(ptr @__sx_default_context, i64 16)
call void @print__ct_sbc6305862a3a863d__pack_i64(ptr @__sx_default_context, i64 8)
ret i32 0
}
@@ -4515,7 +4515,7 @@ entry:
}
; Function Attrs: nounwind
define internal void @print__ct_sbc6305862a3a863d__pack_s64(ptr %0, i64 %1) #0 {
define internal void @print__ct_sbc6305862a3a863d__pack_i64(ptr %0, i64 %1) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.368, i64 3 }, ptr %alloca, align 8
@@ -4636,14 +4636,14 @@ fv.case: ; preds = %if.merge.131
fv.case17: ; preds = %if.merge.131
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.131
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.131
@@ -5339,8 +5339,8 @@ fv.default: ; preds = %if.merge.176
fv.case: ; preds = %if.merge.176
%fv.field = extractvalue { i32 } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
}
@@ -5423,14 +5423,14 @@ fv.case: ; preds = %if.merge.181
fv.case17: ; preds = %if.merge.181
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.181
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.181
@@ -5515,8 +5515,8 @@ fv.default: ; preds = %if.merge.186
fv.case: ; preds = %if.merge.186
%fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case17: ; preds = %if.merge.186
@@ -7422,8 +7422,8 @@ fv.case: ; preds = %entry
store { i64, [4 x i8] } %loadN, ptr %fv.utmp, align 8
%fv.pp = getelementptr inbounds { i64, [4 x i8] }, ptr %fv.utmp, i32 0, i32 1
%fv.field = load i32, ptr %fv.pp, align 4
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case6: ; preds = %entry
@@ -7487,7 +7487,7 @@ if.merge.309: ; preds = %if.then.308, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %1) #0 {
entry:
%alloca = alloca [4 x i64], align 8
%ig.tmp = alloca [4 x i64], align 8
@@ -7590,7 +7590,7 @@ if.merge.329: ; preds = %if.then.328, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %1) #0 {
entry:
%alloca = alloca [8 x i64], align 8
%ig.tmp = alloca [8 x i64], align 8
@@ -7691,7 +7691,7 @@ if.merge.339: ; preds = %if.then.338, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %1) #0 {
entry:
%alloca = alloca [64 x i64], align 8
%ig.tmp = alloca [64 x i64], align 8
@@ -8445,7 +8445,7 @@ if.merge.473: ; preds = %if.else.472, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8
@@ -8695,7 +8695,7 @@ if.merge.500: ; preds = %if.else.499, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8

View File

@@ -1,5 +1,5 @@
plain: 7
sized s32: 4
sized s64: 8
sized i32: 4
sized i64: 8
taking explicit: 42
taking inferred: 99

View File

@@ -25,10 +25,10 @@
@tag_names = private constant [14 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.114, i64 8 }, { ptr, i64 } { ptr @tag.str.115, i64 2 }, { ptr, i64 } { ptr @tag.str.116, i64 15 }, { ptr, i64 } { ptr @tag.str.117, i64 13 }, { ptr, i64 } { ptr @tag.str.118, i64 9 }, { ptr, i64 } { ptr @tag.str.119, i64 9 }, { ptr, i64 } { ptr @tag.str.120, i64 15 }, { ptr, i64 } { ptr @tag.str.121, i64 14 }, { ptr, i64 } { ptr @tag.str.122, i64 14 }, { ptr, i64 } { ptr @tag.str.123, i64 11 }, { ptr, i64 } { ptr @tag.str.124, i64 12 }, { ptr, i64 } { ptr @tag.str.125, i64 15 }, { ptr, i64 } { ptr @tag.str.126, i64 12 }]
@tn.str = private constant [13 x i8] c"<unresolved>\00"
@tn.str.127 = private constant [5 x i8] c"bool\00"
@tn.str.128 = private constant [3 x i8] c"s8\00"
@tn.str.129 = private constant [4 x i8] c"s16\00"
@tn.str.130 = private constant [4 x i8] c"s32\00"
@tn.str.131 = private constant [4 x i8] c"s64\00"
@tn.str.128 = private constant [3 x i8] c"i8\00"
@tn.str.129 = private constant [4 x i8] c"i16\00"
@tn.str.130 = private constant [4 x i8] c"i32\00"
@tn.str.131 = private constant [4 x i8] c"i64\00"
@tn.str.132 = private constant [3 x i8] c"u8\00"
@tn.str.133 = private constant [4 x i8] c"u16\00"
@tn.str.134 = private constant [4 x i8] c"u32\00"
@@ -45,7 +45,7 @@
@tn.str.145 = private constant [16 x i8] c"Source_Location\00"
@tn.str.146 = private constant [10 x i8] c"Allocator\00"
@tn.str.147 = private constant [8 x i8] c"Context\00"
@tn.str.148 = private constant [7 x i8] c"[4]s64\00"
@tn.str.148 = private constant [7 x i8] c"[4]i64\00"
@tn.str.149 = private constant [9 x i8] c"[]string\00"
@tn.str.150 = private constant [11 x i8] c"CAllocator\00"
@tn.str.151 = private constant [12 x i8] c"*CAllocator\00"
@@ -70,7 +70,7 @@
@tn.str.170 = private constant [4 x i8] c"*u8\00"
@tn.str.171 = private constant [14 x i8] c"ProcessResult\00"
@tn.str.172 = private constant [15 x i8] c"?ProcessResult\00"
@tn.str.173 = private constant [5 x i8] c"*s32\00"
@tn.str.173 = private constant [5 x i8] c"*i32\00"
@tn.str.174 = private constant [9 x i8] c"SockAddr\00"
@tn.str.175 = private constant [10 x i8] c"*SockAddr\00"
@tn.str.176 = private constant [5 x i8] c"*u32\00"
@@ -86,9 +86,9 @@
@tn.str.186 = private constant [5 x i8] c"[]u8\00"
@tn.str.187 = private constant [5 x i8] c"Sink\00"
@tn.str.188 = private constant [6 x i8] c"*Sink\00"
@tn.str.189 = private constant [17 x i8] c"(s64, JsonError)\00"
@tn.str.189 = private constant [17 x i8] c"(i64, JsonError)\00"
@tn.str.190 = private constant [15 x i8] c"JsonParseError\00"
@tn.str.191 = private constant [22 x i8] c"(s64, JsonParseError)\00"
@tn.str.191 = private constant [22 x i8] c"(i64, JsonParseError)\00"
@tn.str.192 = private constant [7 x i8] c"Parser\00"
@tn.str.193 = private constant [8 x i8] c"*Parser\00"
@tn.str.194 = private constant [25 x i8] c"(string, JsonParseError)\00"
@@ -97,7 +97,7 @@
@tn.str.197 = private constant [13 x i8] c"Architecture\00"
@tn.str.198 = private constant [13 x i8] c"BuildOptions\00"
@tn.str.199 = private constant [11 x i8] c"() -> bool\00"
@tn.str.200 = private constant [5 x i8] c"*s64\00"
@tn.str.200 = private constant [5 x i8] c"*i64\00"
@tn.str.201 = private constant [9 x i8] c"CliError\00"
@tn.str.202 = private constant [9 x i8] c"FlagSpec\00"
@tn.str.203 = private constant [11 x i8] c"[]FlagSpec\00"
@@ -110,16 +110,16 @@
@tn.str.210 = private constant [19 x i8] c"(Parsed, CliError)\00"
@tn.str.211 = private constant [10 x i8] c"[]Command\00"
@tn.str.212 = private constant [6 x i8] c"*Diag\00"
@tn.str.213 = private constant [7 x i8] c"[8]s64\00"
@tn.str.213 = private constant [7 x i8] c"[8]i64\00"
@tn.str.214 = private constant [7 x i8] c"[64]u8\00"
@tn.str.215 = private constant [7 x i8] c"Sha256\00"
@tn.str.216 = private constant [8 x i8] c"*Sha256\00"
@tn.str.217 = private constant [8 x i8] c"?[64]u8\00"
@tn.str.218 = private constant [8 x i8] c"[64]s64\00"
@tn.str.219 = private constant [18 x i8] c"(s32, s32) -> s32\00"
@tn.str.218 = private constant [8 x i8] c"[64]i64\00"
@tn.str.219 = private constant [18 x i8] c"(i32, i32) -> i32\00"
@tn.str.220 = private constant [13 x i8] c"**CAllocator\00"
@tn.str.221 = private constant [7 x i8] c"**void\00"
@tn.str.222 = private constant [19 x i8] c"*(s32, s32) -> s32\00"
@tn.str.222 = private constant [19 x i8] c"*(i32, i32) -> i32\00"
@tn.str.223 = private constant [8 x i8] c"*string\00"
@tn.str.224 = private constant [6 x i8] c"[]Any\00"
@tn.str.225 = private constant [5 x i8] c"*Any\00"
@@ -127,7 +127,7 @@
@tn.str.227 = private constant [8 x i8] c"*[1]Any\00"
@tn.str.228 = private constant [7 x i8] c"*[]Any\00"
@tn.str.229 = private constant [6 x i8] c"*bool\00"
@tn.str.230 = private constant [8 x i8] c"*[4]s64\00"
@tn.str.230 = private constant [8 x i8] c"*[4]i64\00"
@tn.str.231 = private constant [5 x i8] c"*f64\00"
@tn.str.232 = private constant [17 x i8] c"*Source_Location\00"
@tn.str.233 = private constant [11 x i8] c"*Allocator\00"
@@ -145,9 +145,9 @@
@tn.str.245 = private constant [17 x i8] c"*OperatingSystem\00"
@tn.str.246 = private constant [14 x i8] c"*Architecture\00"
@tn.str.247 = private constant [15 x i8] c"*[16]FlagValue\00"
@tn.str.248 = private constant [8 x i8] c"*[8]s64\00"
@tn.str.248 = private constant [8 x i8] c"*[8]i64\00"
@tn.str.249 = private constant [8 x i8] c"*[64]u8\00"
@tn.str.250 = private constant [9 x i8] c"*[64]s64\00"
@tn.str.250 = private constant [9 x i8] c"*[64]i64\00"
@tn.str.251 = private constant [10 x i8] c"*[]string\00"
@tn.str.252 = private constant [6 x i8] c"*[]u8\00"
@tn.str.253 = private constant [12 x i8] c"*[]FlagSpec\00"
@@ -160,7 +160,7 @@
@tn.str.260 = private constant [20 x i8] c"**TrackingAllocator\00"
@tn.str.261 = private constant [7 x i8] c"**File\00"
@tn.str.262 = private constant [5 x i8] c"**u8\00"
@tn.str.263 = private constant [6 x i8] c"**s32\00"
@tn.str.263 = private constant [6 x i8] c"**i32\00"
@tn.str.264 = private constant [11 x i8] c"**SockAddr\00"
@tn.str.265 = private constant [6 x i8] c"**u32\00"
@tn.str.266 = private constant [10 x i8] c"*[*]Value\00"
@@ -169,13 +169,13 @@
@tn.str.269 = private constant [9 x i8] c"**Object\00"
@tn.str.270 = private constant [7 x i8] c"**Sink\00"
@tn.str.271 = private constant [9 x i8] c"**Parser\00"
@tn.str.272 = private constant [6 x i8] c"**s64\00"
@tn.str.272 = private constant [6 x i8] c"**i64\00"
@tn.str.273 = private constant [9 x i8] c"**Parsed\00"
@tn.str.274 = private constant [7 x i8] c"**Diag\00"
@tn.str.275 = private constant [9 x i8] c"**Sha256\00"
@tn.str.276 = private constant [14 x i8] c"***CAllocator\00"
@tn.str.277 = private constant [8 x i8] c"***void\00"
@tn.str.278 = private constant [20 x i8] c"**(s32, s32) -> s32\00"
@tn.str.278 = private constant [20 x i8] c"**(i32, i32) -> i32\00"
@tn.str.279 = private constant [9 x i8] c"**string\00"
@tn.str.280 = private constant [6 x i8] c"**Any\00"
@tn.str.281 = private constant [9 x i8] c"**[1]Any\00"
@@ -545,7 +545,7 @@
@str.642 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1
@str.643 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.644 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.645 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1
@str.645 = private unnamed_addr constant [5 x i8] c"*i32\00", align 1
@str.646 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.647 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.648 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1
@@ -572,7 +572,7 @@
@str.669 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1
@str.670 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.671 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.672 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1
@str.672 = private unnamed_addr constant [5 x i8] c"*i64\00", align 1
@str.673 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.674 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.675 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1
@@ -1945,7 +1945,7 @@ dispatch.case.265: ; preds = %match.arm.47
%ua.raw174 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr175 = inttoptr i64 %ua.raw174 to ptr
%ua.load176 = load [4 x i64], ptr %ua.ptr175, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load176)
%callN = call { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %ua.load176)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.263
@@ -1961,7 +1961,7 @@ dispatch.case.267: ; preds = %match.arm.47
%ua.raw182 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr183 = inttoptr i64 %ua.raw182 to ptr
%ua.load184 = load [8 x i64], ptr %ua.ptr183, align 8
%callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load184)
%callN = call { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %ua.load184)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.263
@@ -1977,7 +1977,7 @@ dispatch.case.269: ; preds = %match.arm.47
%ua.raw190 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr191 = inttoptr i64 %ua.raw190 to ptr
%ua.load192 = load [64 x i64], ptr %ua.ptr191, align 8
%callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load192)
%callN = call { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %ua.load192)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.263
@@ -2120,7 +2120,7 @@ dispatch.case.344: ; preds = %match.arm.49
dispatch.case.345: ; preds = %match.arm.49
%ua.raw249 = extractvalue { i64, i64 } %loadN, 1
%iNp250 = inttoptr i64 %ua.raw249 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp250)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %iNp250)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.333
@@ -2183,7 +2183,7 @@ dispatch.case.353: ; preds = %match.arm.49
dispatch.case.354: ; preds = %match.arm.49
%ua.raw276 = extractvalue { i64, i64 } %loadN, 1
%iNp277 = inttoptr i64 %ua.raw276 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp277)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %iNp277)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.333
@@ -2225,7 +2225,7 @@ dispatch.case.359: ; preds = %match.arm.49
dispatch.case.360: ; preds = %match.arm.49
%ua.raw294 = extractvalue { i64, i64 } %loadN, 1
%iNp295 = inttoptr i64 %ua.raw294 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_fn_s32_s32__s32(ptr %0, ptr %iNp295)
%callN = call { ptr, i64 } @pointer_to_string__ptr_fn_i32_i32__i32(ptr %0, ptr %iNp295)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.333
@@ -3479,15 +3479,15 @@ entry:
store ptr @add, ptr %alloca, align 8
%load = load ptr, ptr %alloca, align 8
%icall = call i32 %load(ptr @__sx_default_context, i32 3, i32 4)
call void @print__ct_sab6a3b1f9bc359ad__pack_s32(ptr @__sx_default_context, i32 %icall)
call void @print__ct_sab6a3b1f9bc359ad__pack_i32(ptr @__sx_default_context, i32 %icall)
store ptr @mul, ptr %alloca, align 8
%loadN = load ptr, ptr %alloca, align 8
%icallN = call i32 %loadN(ptr @__sx_default_context, i32 3, i32 4)
call void @print__ct_sab6a3b1f9bc359ad__pack_s32(ptr @__sx_default_context, i32 %icallN)
call void @print__ct_sab6a3b1f9bc359ad__pack_i32(ptr @__sx_default_context, i32 %icallN)
%call = call i32 @apply(ptr @__sx_default_context, ptr @add, i32 5, i32 6)
call void @print__ct_s3417a75739024851__pack_s32(ptr @__sx_default_context, i32 %call)
call void @print__ct_s3417a75739024851__pack_i32(ptr @__sx_default_context, i32 %call)
%callN = call i32 @apply(ptr @__sx_default_context, ptr @mul, i32 5, i32 6)
call void @print__ct_s2ed9f416bd1dfc65__pack_s32(ptr @__sx_default_context, i32 %callN)
call void @print__ct_s2ed9f416bd1dfc65__pack_i32(ptr @__sx_default_context, i32 %callN)
ret i32 0
}
@@ -3506,7 +3506,7 @@ entry:
}
; Function Attrs: nounwind
define internal void @print__ct_sab6a3b1f9bc359ad__pack_s32(ptr %0, i32 %1) #0 {
define internal void @print__ct_sab6a3b1f9bc359ad__pack_i32(ptr %0, i32 %1) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.309, i64 13 }, ptr %alloca, align 8
@@ -3514,8 +3514,8 @@ entry:
store i32 %1, ptr %allocaN, align 4
%allocaN = alloca [1 x { i64, i64 }], align 8
%load = load i32, ptr %allocaN, align 4
%sN = sext i32 %load to i64
%ba.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %load to i64
%ba.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
%igp.ptr = getelementptr { i64, i64 }, ptr %allocaN, i64 0
store { i64, i64 } %ba.val, ptr %igp.ptr, align 8
%allocaN = alloca { ptr, i64 }, align 8
@@ -3533,8 +3533,8 @@ entry:
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i32, ptr %allocaN, align 4
%sN = sext i32 %loadN to i64
%ba.val13 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %loadN to i64
%ba.val13 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
%callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val13)
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
@@ -3558,7 +3558,7 @@ entry:
}
; Function Attrs: nounwind
define internal void @print__ct_s3417a75739024851__pack_s32(ptr %0, i32 %1) #0 {
define internal void @print__ct_s3417a75739024851__pack_i32(ptr %0, i32 %1) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.312, i64 20 }, ptr %alloca, align 8
@@ -3566,8 +3566,8 @@ entry:
store i32 %1, ptr %allocaN, align 4
%allocaN = alloca [1 x { i64, i64 }], align 8
%load = load i32, ptr %allocaN, align 4
%sN = sext i32 %load to i64
%ba.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %load to i64
%ba.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
%igp.ptr = getelementptr { i64, i64 }, ptr %allocaN, i64 0
store { i64, i64 } %ba.val, ptr %igp.ptr, align 8
%allocaN = alloca { ptr, i64 }, align 8
@@ -3585,8 +3585,8 @@ entry:
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i32, ptr %allocaN, align 4
%sN = sext i32 %loadN to i64
%ba.val13 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %loadN to i64
%ba.val13 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
%callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val13)
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
@@ -3610,7 +3610,7 @@ entry:
}
; Function Attrs: nounwind
define internal void @print__ct_s2ed9f416bd1dfc65__pack_s32(ptr %0, i32 %1) #0 {
define internal void @print__ct_s2ed9f416bd1dfc65__pack_i32(ptr %0, i32 %1) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.315, i64 20 }, ptr %alloca, align 8
@@ -3618,8 +3618,8 @@ entry:
store i32 %1, ptr %allocaN, align 4
%allocaN = alloca [1 x { i64, i64 }], align 8
%load = load i32, ptr %allocaN, align 4
%sN = sext i32 %load to i64
%ba.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %load to i64
%ba.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
%igp.ptr = getelementptr { i64, i64 }, ptr %allocaN, i64 0
store { i64, i64 } %ba.val, ptr %igp.ptr, align 8
%allocaN = alloca { ptr, i64 }, align 8
@@ -3637,8 +3637,8 @@ entry:
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i32, ptr %allocaN, align 4
%sN = sext i32 %loadN to i64
%ba.val13 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %loadN to i64
%ba.val13 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
%callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val13)
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
@@ -3738,14 +3738,14 @@ fv.case: ; preds = %if.merge.125
fv.case17: ; preds = %if.merge.125
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.125
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.125
@@ -4441,8 +4441,8 @@ fv.default: ; preds = %if.merge.170
fv.case: ; preds = %if.merge.170
%fv.field = extractvalue { i32 } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
}
@@ -4525,14 +4525,14 @@ fv.case: ; preds = %if.merge.175
fv.case17: ; preds = %if.merge.175
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.175
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.175
@@ -4617,8 +4617,8 @@ fv.default: ; preds = %if.merge.180
fv.case: ; preds = %if.merge.180
%fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case17: ; preds = %if.merge.180
@@ -6019,7 +6019,7 @@ if.merge.262: ; preds = %if.then.261, %entry
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %1) #0 {
entry:
%alloca = alloca [4 x i64], align 8
%ig.tmp = alloca [4 x i64], align 8
@@ -6122,7 +6122,7 @@ if.merge.280: ; preds = %if.then.279, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %1) #0 {
entry:
%alloca = alloca [8 x i64], align 8
%ig.tmp = alloca [8 x i64], align 8
@@ -6223,7 +6223,7 @@ if.merge.290: ; preds = %if.then.289, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %1) #0 {
entry:
%alloca = alloca [64 x i64], align 8
%ig.tmp = alloca [64 x i64], align 8
@@ -6873,7 +6873,7 @@ if.merge.408: ; preds = %if.else.407, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8
@@ -7123,7 +7123,7 @@ if.merge.435: ; preds = %if.else.434, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8
@@ -7291,7 +7291,7 @@ if.merge.453: ; preds = %if.else.452, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_fn_s32_s32__s32(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_fn_i32_i32__i32(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8

View File

@@ -25,10 +25,10 @@
@tag_names = private constant [14 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.114, i64 8 }, { ptr, i64 } { ptr @tag.str.115, i64 2 }, { ptr, i64 } { ptr @tag.str.116, i64 15 }, { ptr, i64 } { ptr @tag.str.117, i64 13 }, { ptr, i64 } { ptr @tag.str.118, i64 9 }, { ptr, i64 } { ptr @tag.str.119, i64 9 }, { ptr, i64 } { ptr @tag.str.120, i64 15 }, { ptr, i64 } { ptr @tag.str.121, i64 14 }, { ptr, i64 } { ptr @tag.str.122, i64 14 }, { ptr, i64 } { ptr @tag.str.123, i64 11 }, { ptr, i64 } { ptr @tag.str.124, i64 12 }, { ptr, i64 } { ptr @tag.str.125, i64 15 }, { ptr, i64 } { ptr @tag.str.126, i64 12 }]
@tn.str = private constant [13 x i8] c"<unresolved>\00"
@tn.str.127 = private constant [5 x i8] c"bool\00"
@tn.str.128 = private constant [3 x i8] c"s8\00"
@tn.str.129 = private constant [4 x i8] c"s16\00"
@tn.str.130 = private constant [4 x i8] c"s32\00"
@tn.str.131 = private constant [4 x i8] c"s64\00"
@tn.str.128 = private constant [3 x i8] c"i8\00"
@tn.str.129 = private constant [4 x i8] c"i16\00"
@tn.str.130 = private constant [4 x i8] c"i32\00"
@tn.str.131 = private constant [4 x i8] c"i64\00"
@tn.str.132 = private constant [3 x i8] c"u8\00"
@tn.str.133 = private constant [4 x i8] c"u16\00"
@tn.str.134 = private constant [4 x i8] c"u32\00"
@@ -46,7 +46,7 @@
@tn.str.146 = private constant [16 x i8] c"Source_Location\00"
@tn.str.147 = private constant [10 x i8] c"Allocator\00"
@tn.str.148 = private constant [8 x i8] c"Context\00"
@tn.str.149 = private constant [7 x i8] c"[4]s64\00"
@tn.str.149 = private constant [7 x i8] c"[4]i64\00"
@tn.str.150 = private constant [9 x i8] c"[]string\00"
@tn.str.151 = private constant [11 x i8] c"CAllocator\00"
@tn.str.152 = private constant [12 x i8] c"*CAllocator\00"
@@ -71,7 +71,7 @@
@tn.str.171 = private constant [4 x i8] c"*u8\00"
@tn.str.172 = private constant [14 x i8] c"ProcessResult\00"
@tn.str.173 = private constant [15 x i8] c"?ProcessResult\00"
@tn.str.174 = private constant [5 x i8] c"*s32\00"
@tn.str.174 = private constant [5 x i8] c"*i32\00"
@tn.str.175 = private constant [9 x i8] c"SockAddr\00"
@tn.str.176 = private constant [10 x i8] c"*SockAddr\00"
@tn.str.177 = private constant [5 x i8] c"*u32\00"
@@ -87,9 +87,9 @@
@tn.str.187 = private constant [5 x i8] c"[]u8\00"
@tn.str.188 = private constant [5 x i8] c"Sink\00"
@tn.str.189 = private constant [6 x i8] c"*Sink\00"
@tn.str.190 = private constant [17 x i8] c"(s64, JsonError)\00"
@tn.str.190 = private constant [17 x i8] c"(i64, JsonError)\00"
@tn.str.191 = private constant [15 x i8] c"JsonParseError\00"
@tn.str.192 = private constant [22 x i8] c"(s64, JsonParseError)\00"
@tn.str.192 = private constant [22 x i8] c"(i64, JsonParseError)\00"
@tn.str.193 = private constant [7 x i8] c"Parser\00"
@tn.str.194 = private constant [8 x i8] c"*Parser\00"
@tn.str.195 = private constant [25 x i8] c"(string, JsonParseError)\00"
@@ -98,7 +98,7 @@
@tn.str.198 = private constant [13 x i8] c"Architecture\00"
@tn.str.199 = private constant [13 x i8] c"BuildOptions\00"
@tn.str.200 = private constant [11 x i8] c"() -> bool\00"
@tn.str.201 = private constant [5 x i8] c"*s64\00"
@tn.str.201 = private constant [5 x i8] c"*i64\00"
@tn.str.202 = private constant [9 x i8] c"CliError\00"
@tn.str.203 = private constant [9 x i8] c"FlagSpec\00"
@tn.str.204 = private constant [11 x i8] c"[]FlagSpec\00"
@@ -111,12 +111,12 @@
@tn.str.211 = private constant [19 x i8] c"(Parsed, CliError)\00"
@tn.str.212 = private constant [10 x i8] c"[]Command\00"
@tn.str.213 = private constant [6 x i8] c"*Diag\00"
@tn.str.214 = private constant [7 x i8] c"[8]s64\00"
@tn.str.214 = private constant [7 x i8] c"[8]i64\00"
@tn.str.215 = private constant [7 x i8] c"[64]u8\00"
@tn.str.216 = private constant [7 x i8] c"Sha256\00"
@tn.str.217 = private constant [8 x i8] c"*Sha256\00"
@tn.str.218 = private constant [8 x i8] c"?[64]u8\00"
@tn.str.219 = private constant [8 x i8] c"[64]s64\00"
@tn.str.219 = private constant [8 x i8] c"[64]i64\00"
@tn.str.220 = private constant [13 x i8] c"**CAllocator\00"
@tn.str.221 = private constant [7 x i8] c"**void\00"
@tn.str.222 = private constant [5 x i8] c"*f32\00"
@@ -129,7 +129,7 @@
@tn.str.229 = private constant [6 x i8] c"*bool\00"
@tn.str.230 = private constant [6 x i8] c"**f32\00"
@tn.str.231 = private constant [10 x i8] c"*Lerpable\00"
@tn.str.232 = private constant [8 x i8] c"*[4]s64\00"
@tn.str.232 = private constant [8 x i8] c"*[4]i64\00"
@tn.str.233 = private constant [5 x i8] c"*f64\00"
@tn.str.234 = private constant [17 x i8] c"*Source_Location\00"
@tn.str.235 = private constant [11 x i8] c"*Allocator\00"
@@ -147,9 +147,9 @@
@tn.str.247 = private constant [17 x i8] c"*OperatingSystem\00"
@tn.str.248 = private constant [14 x i8] c"*Architecture\00"
@tn.str.249 = private constant [15 x i8] c"*[16]FlagValue\00"
@tn.str.250 = private constant [8 x i8] c"*[8]s64\00"
@tn.str.250 = private constant [8 x i8] c"*[8]i64\00"
@tn.str.251 = private constant [8 x i8] c"*[64]u8\00"
@tn.str.252 = private constant [9 x i8] c"*[64]s64\00"
@tn.str.252 = private constant [9 x i8] c"*[64]i64\00"
@tn.str.253 = private constant [10 x i8] c"*[]string\00"
@tn.str.254 = private constant [6 x i8] c"*[]u8\00"
@tn.str.255 = private constant [12 x i8] c"*[]FlagSpec\00"
@@ -162,7 +162,7 @@
@tn.str.262 = private constant [20 x i8] c"**TrackingAllocator\00"
@tn.str.263 = private constant [7 x i8] c"**File\00"
@tn.str.264 = private constant [5 x i8] c"**u8\00"
@tn.str.265 = private constant [6 x i8] c"**s32\00"
@tn.str.265 = private constant [6 x i8] c"**i32\00"
@tn.str.266 = private constant [11 x i8] c"**SockAddr\00"
@tn.str.267 = private constant [6 x i8] c"**u32\00"
@tn.str.268 = private constant [10 x i8] c"*[*]Value\00"
@@ -171,7 +171,7 @@
@tn.str.271 = private constant [9 x i8] c"**Object\00"
@tn.str.272 = private constant [7 x i8] c"**Sink\00"
@tn.str.273 = private constant [9 x i8] c"**Parser\00"
@tn.str.274 = private constant [6 x i8] c"**s64\00"
@tn.str.274 = private constant [6 x i8] c"**i64\00"
@tn.str.275 = private constant [9 x i8] c"**Parsed\00"
@tn.str.276 = private constant [7 x i8] c"**Diag\00"
@tn.str.277 = private constant [9 x i8] c"**Sha256\00"
@@ -553,7 +553,7 @@
@str.650 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1
@str.651 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.652 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.653 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1
@str.653 = private unnamed_addr constant [5 x i8] c"*i32\00", align 1
@str.654 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.655 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.656 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1
@@ -580,7 +580,7 @@
@str.677 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1
@str.678 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.679 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.680 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1
@str.680 = private unnamed_addr constant [5 x i8] c"*i64\00", align 1
@str.681 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.682 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.683 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1
@@ -2039,7 +2039,7 @@ dispatch.case.271: ; preds = %match.arm.47
%ua.raw178 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr179 = inttoptr i64 %ua.raw178 to ptr
%ua.load180 = load [4 x i64], ptr %ua.ptr179, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load180)
%callN = call { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %ua.load180)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.269
@@ -2055,7 +2055,7 @@ dispatch.case.273: ; preds = %match.arm.47
%ua.raw186 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr187 = inttoptr i64 %ua.raw186 to ptr
%ua.load188 = load [8 x i64], ptr %ua.ptr187, align 8
%callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load188)
%callN = call { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %ua.load188)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.269
@@ -2071,7 +2071,7 @@ dispatch.case.275: ; preds = %match.arm.47
%ua.raw194 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr195 = inttoptr i64 %ua.raw194 to ptr
%ua.load196 = load [64 x i64], ptr %ua.ptr195, align 8
%callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load196)
%callN = call { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %ua.load196)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.269
@@ -2214,7 +2214,7 @@ dispatch.case.350: ; preds = %match.arm.49
dispatch.case.351: ; preds = %match.arm.49
%ua.raw253 = extractvalue { i64, i64 } %loadN, 1
%iNp254 = inttoptr i64 %ua.raw253 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp254)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %iNp254)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.339
@@ -2277,7 +2277,7 @@ dispatch.case.359: ; preds = %match.arm.49
dispatch.case.360: ; preds = %match.arm.49
%ua.raw280 = extractvalue { i64, i64 } %loadN, 1
%iNp281 = inttoptr i64 %ua.raw280 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp281)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %iNp281)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.339
@@ -3825,14 +3825,14 @@ fv.case: ; preds = %if.merge.131
fv.case17: ; preds = %if.merge.131
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.131
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.131
@@ -4528,8 +4528,8 @@ fv.default: ; preds = %if.merge.176
fv.case: ; preds = %if.merge.176
%fv.field = extractvalue { i32 } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
}
@@ -4612,14 +4612,14 @@ fv.case: ; preds = %if.merge.181
fv.case17: ; preds = %if.merge.181
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.181
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.181
@@ -4704,8 +4704,8 @@ fv.default: ; preds = %if.merge.186
fv.case: ; preds = %if.merge.186
%fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case17: ; preds = %if.merge.186
@@ -6106,7 +6106,7 @@ if.merge.268: ; preds = %if.then.267, %entry
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %1) #0 {
entry:
%alloca = alloca [4 x i64], align 8
%ig.tmp = alloca [4 x i64], align 8
@@ -6209,7 +6209,7 @@ if.merge.286: ; preds = %if.then.285, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %1) #0 {
entry:
%alloca = alloca [8 x i64], align 8
%ig.tmp = alloca [8 x i64], align 8
@@ -6310,7 +6310,7 @@ if.merge.296: ; preds = %if.then.295, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %1) #0 {
entry:
%alloca = alloca [64 x i64], align 8
%ig.tmp = alloca [64 x i64], align 8
@@ -6960,7 +6960,7 @@ if.merge.416: ; preds = %if.else.415, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8
@@ -7210,7 +7210,7 @@ if.merge.443: ; preds = %if.else.442, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8

View File

@@ -1,5 +1,5 @@
error: no visible xx conversion from 's64' to 'Wrap' — impl exists in another module but is not imported
--> /Users/agra/projects/sx/examples/./0410-protocols-impl-visibility-user.sx:7:17
error: no visible xx conversion from 'i64' to 'Wrap' — impl exists in another module but is not imported
--> examples/./0410-protocols-impl-visibility-user.sx:7:17
|
7 | w : Wrap = xx 7;
| ^

View File

@@ -1,5 +1,5 @@
error: duplicate xx conversion from 's64' to 'Wrap': impls in /Users/agra/projects/sx/examples/./0411-protocols-impl-duplicate-impl-a.sx and /Users/agra/projects/sx/examples/./0411-protocols-impl-duplicate-impl-b.sx
--> /Users/agra/projects/sx/examples/0411-protocols-impl-duplicate.sx:23:17
error: duplicate xx conversion from 'i64' to 'Wrap': impls in examples/./0411-protocols-impl-duplicate-impl-a.sx and examples/./0411-protocols-impl-duplicate-impl-b.sx
--> examples/0411-protocols-impl-duplicate.sx:23:17
|
23 | w : Wrap = xx 7;
| ^

View File

@@ -1,9 +1,9 @@
error: duplicate impl 'Into' for source 's64' in /Users/agra/projects/sx/examples/0412-protocols-impl-duplicate-same-file.sx
--> /Users/agra/projects/sx/examples/0412-protocols-impl-duplicate-same-file.sx:15:1
error: duplicate impl 'Into' for source 'i64' in examples/0412-protocols-impl-duplicate-same-file.sx
--> examples/0412-protocols-impl-duplicate-same-file.sx:15:1
|
15 | impl Into(MyA) for s64 {
15 | impl Into(MyA) for i64 {
| ^^^^^^^^^^^^^^^^^^^^^^^^
16 | convert :: (self: s64) -> MyA { .{ v = self * 2 } }
16 | convert :: (self: i64) -> MyA { .{ v = self * 2 } }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
17 | }
| ^

View File

@@ -1,6 +1,6 @@
@__sx_default_context = internal constant { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc_bytes, ptr @__thunk_CAllocator_Allocator_dealloc_bytes }, ptr null }
@__VL__s64__IntCell__vtable = internal constant { ptr } { ptr @__thunk_IntCell_VL__s64_get }
@__VL__i64__IntCell__vtable = internal constant { ptr } { ptr @__thunk_IntCell_VL__i64_get }
@__VL__string__StrCell__vtable = internal constant { ptr } { ptr @__thunk_StrCell_VL__string_get }
@str = private unnamed_addr constant [2 x i8] c"0\00", align 1
@str.108 = private unnamed_addr constant [2 x i8] c"0\00", align 1
@@ -27,10 +27,10 @@
@tag_names = private constant [14 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.114, i64 8 }, { ptr, i64 } { ptr @tag.str.115, i64 2 }, { ptr, i64 } { ptr @tag.str.116, i64 15 }, { ptr, i64 } { ptr @tag.str.117, i64 13 }, { ptr, i64 } { ptr @tag.str.118, i64 9 }, { ptr, i64 } { ptr @tag.str.119, i64 9 }, { ptr, i64 } { ptr @tag.str.120, i64 15 }, { ptr, i64 } { ptr @tag.str.121, i64 14 }, { ptr, i64 } { ptr @tag.str.122, i64 14 }, { ptr, i64 } { ptr @tag.str.123, i64 11 }, { ptr, i64 } { ptr @tag.str.124, i64 12 }, { ptr, i64 } { ptr @tag.str.125, i64 15 }, { ptr, i64 } { ptr @tag.str.126, i64 12 }]
@tn.str = private constant [13 x i8] c"<unresolved>\00"
@tn.str.127 = private constant [5 x i8] c"bool\00"
@tn.str.128 = private constant [3 x i8] c"s8\00"
@tn.str.129 = private constant [4 x i8] c"s16\00"
@tn.str.130 = private constant [4 x i8] c"s32\00"
@tn.str.131 = private constant [4 x i8] c"s64\00"
@tn.str.128 = private constant [3 x i8] c"i8\00"
@tn.str.129 = private constant [4 x i8] c"i16\00"
@tn.str.130 = private constant [4 x i8] c"i32\00"
@tn.str.131 = private constant [4 x i8] c"i64\00"
@tn.str.132 = private constant [3 x i8] c"u8\00"
@tn.str.133 = private constant [4 x i8] c"u16\00"
@tn.str.134 = private constant [4 x i8] c"u32\00"
@@ -47,7 +47,7 @@
@tn.str.145 = private constant [16 x i8] c"Source_Location\00"
@tn.str.146 = private constant [10 x i8] c"Allocator\00"
@tn.str.147 = private constant [8 x i8] c"Context\00"
@tn.str.148 = private constant [7 x i8] c"[4]s64\00"
@tn.str.148 = private constant [7 x i8] c"[4]i64\00"
@tn.str.149 = private constant [9 x i8] c"[]string\00"
@tn.str.150 = private constant [11 x i8] c"CAllocator\00"
@tn.str.151 = private constant [12 x i8] c"*CAllocator\00"
@@ -72,7 +72,7 @@
@tn.str.170 = private constant [4 x i8] c"*u8\00"
@tn.str.171 = private constant [14 x i8] c"ProcessResult\00"
@tn.str.172 = private constant [15 x i8] c"?ProcessResult\00"
@tn.str.173 = private constant [5 x i8] c"*s32\00"
@tn.str.173 = private constant [5 x i8] c"*i32\00"
@tn.str.174 = private constant [9 x i8] c"SockAddr\00"
@tn.str.175 = private constant [10 x i8] c"*SockAddr\00"
@tn.str.176 = private constant [5 x i8] c"*u32\00"
@@ -88,9 +88,9 @@
@tn.str.186 = private constant [5 x i8] c"[]u8\00"
@tn.str.187 = private constant [5 x i8] c"Sink\00"
@tn.str.188 = private constant [6 x i8] c"*Sink\00"
@tn.str.189 = private constant [17 x i8] c"(s64, JsonError)\00"
@tn.str.189 = private constant [17 x i8] c"(i64, JsonError)\00"
@tn.str.190 = private constant [15 x i8] c"JsonParseError\00"
@tn.str.191 = private constant [22 x i8] c"(s64, JsonParseError)\00"
@tn.str.191 = private constant [22 x i8] c"(i64, JsonParseError)\00"
@tn.str.192 = private constant [7 x i8] c"Parser\00"
@tn.str.193 = private constant [8 x i8] c"*Parser\00"
@tn.str.194 = private constant [25 x i8] c"(string, JsonParseError)\00"
@@ -99,7 +99,7 @@
@tn.str.197 = private constant [13 x i8] c"Architecture\00"
@tn.str.198 = private constant [13 x i8] c"BuildOptions\00"
@tn.str.199 = private constant [11 x i8] c"() -> bool\00"
@tn.str.200 = private constant [5 x i8] c"*s64\00"
@tn.str.200 = private constant [5 x i8] c"*i64\00"
@tn.str.201 = private constant [9 x i8] c"CliError\00"
@tn.str.202 = private constant [9 x i8] c"FlagSpec\00"
@tn.str.203 = private constant [11 x i8] c"[]FlagSpec\00"
@@ -112,23 +112,23 @@
@tn.str.210 = private constant [19 x i8] c"(Parsed, CliError)\00"
@tn.str.211 = private constant [10 x i8] c"[]Command\00"
@tn.str.212 = private constant [6 x i8] c"*Diag\00"
@tn.str.213 = private constant [7 x i8] c"[8]s64\00"
@tn.str.213 = private constant [7 x i8] c"[8]i64\00"
@tn.str.214 = private constant [7 x i8] c"[64]u8\00"
@tn.str.215 = private constant [7 x i8] c"Sha256\00"
@tn.str.216 = private constant [8 x i8] c"*Sha256\00"
@tn.str.217 = private constant [8 x i8] c"?[64]u8\00"
@tn.str.218 = private constant [8 x i8] c"[64]s64\00"
@tn.str.218 = private constant [8 x i8] c"[64]i64\00"
@tn.str.219 = private constant [8 x i8] c"IntCell\00"
@tn.str.220 = private constant [8 x i8] c"StrCell\00"
@tn.str.221 = private constant [9 x i8] c"*IntCell\00"
@tn.str.222 = private constant [9 x i8] c"*StrCell\00"
@tn.str.223 = private constant [13 x i8] c"**CAllocator\00"
@tn.str.224 = private constant [7 x i8] c"**void\00"
@tn.str.225 = private constant [8 x i8] c"VL__s64\00"
@tn.str.226 = private constant [18 x i8] c"__VL__s64__Vtable\00"
@tn.str.227 = private constant [9 x i8] c"*VL__s64\00"
@tn.str.225 = private constant [8 x i8] c"VL__i64\00"
@tn.str.226 = private constant [18 x i8] c"__VL__i64__Vtable\00"
@tn.str.227 = private constant [9 x i8] c"*VL__i64\00"
@tn.str.228 = private constant [10 x i8] c"**IntCell\00"
@tn.str.229 = private constant [19 x i8] c"*__VL__s64__Vtable\00"
@tn.str.229 = private constant [19 x i8] c"*__VL__i64__Vtable\00"
@tn.str.230 = private constant [8 x i8] c"*string\00"
@tn.str.231 = private constant [6 x i8] c"[]Any\00"
@tn.str.232 = private constant [5 x i8] c"*Any\00"
@@ -141,7 +141,7 @@
@tn.str.239 = private constant [12 x i8] c"*VL__string\00"
@tn.str.240 = private constant [10 x i8] c"**StrCell\00"
@tn.str.241 = private constant [22 x i8] c"*__VL__string__Vtable\00"
@tn.str.242 = private constant [8 x i8] c"*[4]s64\00"
@tn.str.242 = private constant [8 x i8] c"*[4]i64\00"
@tn.str.243 = private constant [5 x i8] c"*f64\00"
@tn.str.244 = private constant [17 x i8] c"*Source_Location\00"
@tn.str.245 = private constant [11 x i8] c"*Allocator\00"
@@ -159,9 +159,9 @@
@tn.str.257 = private constant [17 x i8] c"*OperatingSystem\00"
@tn.str.258 = private constant [14 x i8] c"*Architecture\00"
@tn.str.259 = private constant [15 x i8] c"*[16]FlagValue\00"
@tn.str.260 = private constant [8 x i8] c"*[8]s64\00"
@tn.str.260 = private constant [8 x i8] c"*[8]i64\00"
@tn.str.261 = private constant [8 x i8] c"*[64]u8\00"
@tn.str.262 = private constant [9 x i8] c"*[64]s64\00"
@tn.str.262 = private constant [9 x i8] c"*[64]i64\00"
@tn.str.263 = private constant [10 x i8] c"*[]string\00"
@tn.str.264 = private constant [6 x i8] c"*[]u8\00"
@tn.str.265 = private constant [12 x i8] c"*[]FlagSpec\00"
@@ -174,7 +174,7 @@
@tn.str.272 = private constant [20 x i8] c"**TrackingAllocator\00"
@tn.str.273 = private constant [7 x i8] c"**File\00"
@tn.str.274 = private constant [5 x i8] c"**u8\00"
@tn.str.275 = private constant [6 x i8] c"**s32\00"
@tn.str.275 = private constant [6 x i8] c"**i32\00"
@tn.str.276 = private constant [11 x i8] c"**SockAddr\00"
@tn.str.277 = private constant [6 x i8] c"**u32\00"
@tn.str.278 = private constant [10 x i8] c"*[*]Value\00"
@@ -183,15 +183,15 @@
@tn.str.281 = private constant [9 x i8] c"**Object\00"
@tn.str.282 = private constant [7 x i8] c"**Sink\00"
@tn.str.283 = private constant [9 x i8] c"**Parser\00"
@tn.str.284 = private constant [6 x i8] c"**s64\00"
@tn.str.284 = private constant [6 x i8] c"**i64\00"
@tn.str.285 = private constant [9 x i8] c"**Parsed\00"
@tn.str.286 = private constant [7 x i8] c"**Diag\00"
@tn.str.287 = private constant [9 x i8] c"**Sha256\00"
@tn.str.288 = private constant [14 x i8] c"***CAllocator\00"
@tn.str.289 = private constant [8 x i8] c"***void\00"
@tn.str.290 = private constant [10 x i8] c"**VL__s64\00"
@tn.str.290 = private constant [10 x i8] c"**VL__i64\00"
@tn.str.291 = private constant [11 x i8] c"***IntCell\00"
@tn.str.292 = private constant [20 x i8] c"**__VL__s64__Vtable\00"
@tn.str.292 = private constant [20 x i8] c"**__VL__i64__Vtable\00"
@tn.str.293 = private constant [9 x i8] c"**string\00"
@tn.str.294 = private constant [6 x i8] c"**Any\00"
@tn.str.295 = private constant [9 x i8] c"**[1]Any\00"
@@ -467,7 +467,7 @@
@fld.str.562 = private constant [2 x i8] c"s\00"
@field_names.563 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.562, i64 1 }]
@str.564 = private unnamed_addr constant [3 x i8] c": \00", align 1
@str.565 = private unnamed_addr constant [8 x i8] c"VL__s64\00", align 1
@str.565 = private unnamed_addr constant [8 x i8] c"VL__i64\00", align 1
@str.566 = private unnamed_addr constant [2 x i8] c"{\00", align 1
@str.567 = private unnamed_addr constant [2 x i8] c"}\00", align 1
@str.568 = private unnamed_addr constant [3 x i8] c", \00", align 1
@@ -475,7 +475,7 @@
@fld.str.570 = private constant [9 x i8] c"__vtable\00"
@field_names.571 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.569, i64 3 }, { ptr, i64 } { ptr @fld.str.570, i64 8 }]
@str.572 = private unnamed_addr constant [3 x i8] c": \00", align 1
@str.573 = private unnamed_addr constant [18 x i8] c"__VL__s64__Vtable\00", align 1
@str.573 = private unnamed_addr constant [18 x i8] c"__VL__i64__Vtable\00", align 1
@str.574 = private unnamed_addr constant [2 x i8] c"{\00", align 1
@str.575 = private unnamed_addr constant [2 x i8] c"}\00", align 1
@str.576 = private unnamed_addr constant [3 x i8] c", \00", align 1
@@ -606,7 +606,7 @@
@str.701 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1
@str.702 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.703 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.704 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1
@str.704 = private unnamed_addr constant [5 x i8] c"*i32\00", align 1
@str.705 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.706 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.707 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1
@@ -633,7 +633,7 @@
@str.728 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1
@str.729 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.730 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.731 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1
@str.731 = private unnamed_addr constant [5 x i8] c"*i64\00", align 1
@str.732 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.733 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.734 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1
@@ -657,13 +657,13 @@
@str.752 = private unnamed_addr constant [7 x i8] c"**void\00", align 1
@str.753 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.754 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.755 = private unnamed_addr constant [9 x i8] c"*VL__s64\00", align 1
@str.755 = private unnamed_addr constant [9 x i8] c"*VL__i64\00", align 1
@str.756 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.757 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.758 = private unnamed_addr constant [10 x i8] c"**IntCell\00", align 1
@str.759 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.760 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.761 = private unnamed_addr constant [19 x i8] c"*__VL__s64__Vtable\00", align 1
@str.761 = private unnamed_addr constant [19 x i8] c"*__VL__i64__Vtable\00", align 1
@str.762 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.763 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.764 = private unnamed_addr constant [8 x i8] c"*string\00", align 1
@@ -2019,7 +2019,7 @@ dispatch.case.123: ; preds = %match.arm.43
%ua.raw168 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr169 = inttoptr i64 %ua.raw168 to ptr
%ua.load170 = load { ptr, ptr }, ptr %ua.ptr169, align 8
%callN = call { ptr, i64 } @struct_to_string__VL__s64(ptr %0, { ptr, ptr } %ua.load170)
%callN = call { ptr, i64 } @struct_to_string__VL__i64(ptr %0, { ptr, ptr } %ua.load170)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
@@ -2027,7 +2027,7 @@ dispatch.case.124: ; preds = %match.arm.43
%ua.raw172 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr173 = inttoptr i64 %ua.raw172 to ptr
%ua.load174 = load { ptr }, ptr %ua.ptr173, align 8
%callN = call { ptr, i64 } @struct_to_string____VL__s64__Vtable(ptr %0, { ptr } %ua.load174)
%callN = call { ptr, i64 } @struct_to_string____VL__i64__Vtable(ptr %0, { ptr } %ua.load174)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
@@ -2101,7 +2101,7 @@ dispatch.case.301: ; preds = %match.arm.47
%ua.raw198 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr199 = inttoptr i64 %ua.raw198 to ptr
%ua.load200 = load [4 x i64], ptr %ua.ptr199, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load200)
%callN = call { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %ua.load200)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.299
@@ -2117,7 +2117,7 @@ dispatch.case.303: ; preds = %match.arm.47
%ua.raw206 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr207 = inttoptr i64 %ua.raw206 to ptr
%ua.load208 = load [8 x i64], ptr %ua.ptr207, align 8
%callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load208)
%callN = call { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %ua.load208)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.299
@@ -2133,7 +2133,7 @@ dispatch.case.305: ; preds = %match.arm.47
%ua.raw214 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr215 = inttoptr i64 %ua.raw214 to ptr
%ua.load216 = load [64 x i64], ptr %ua.ptr215, align 8
%callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load216)
%callN = call { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %ua.load216)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.299
@@ -2276,7 +2276,7 @@ dispatch.case.380: ; preds = %match.arm.49
dispatch.case.381: ; preds = %match.arm.49
%ua.raw273 = extractvalue { i64, i64 } %loadN, 1
%iNp274 = inttoptr i64 %ua.raw273 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp274)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %iNp274)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.369
@@ -2339,7 +2339,7 @@ dispatch.case.389: ; preds = %match.arm.49
dispatch.case.390: ; preds = %match.arm.49
%ua.raw300 = extractvalue { i64, i64 } %loadN, 1
%iNp301 = inttoptr i64 %ua.raw300 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp301)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %iNp301)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.369
@@ -2395,7 +2395,7 @@ dispatch.case.397: ; preds = %match.arm.49
dispatch.case.398: ; preds = %match.arm.49
%ua.raw324 = extractvalue { i64, i64 } %loadN, 1
%iNp325 = inttoptr i64 %ua.raw324 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_VL__s64(ptr %0, ptr %iNp325)
%callN = call { ptr, i64 } @pointer_to_string__ptr_VL__i64(ptr %0, ptr %iNp325)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.369
@@ -2409,7 +2409,7 @@ dispatch.case.399: ; preds = %match.arm.49
dispatch.case.400: ; preds = %match.arm.49
%ua.raw330 = extractvalue { i64, i64 } %loadN, 1
%iNp331 = inttoptr i64 %ua.raw330 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr___VL__s64__Vtable(ptr %0, ptr %iNp331)
%callN = call { ptr, i64 } @pointer_to_string__ptr___VL__i64__Vtable(ptr %0, ptr %iNp331)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.369
@@ -3670,7 +3670,7 @@ entry:
%icall = call ptr %sgN(ptr @__sx_default_context, ptr %sgN, i64 8)
%call = call ptr @memcpy(ptr %icall, ptr %allocaN, i64 8)
%si = insertvalue { ptr, ptr } undef, ptr %icall, 0
%siN = insertvalue { ptr, ptr } %si, ptr @__VL__s64__IntCell__vtable, 1
%siN = insertvalue { ptr, ptr } %si, ptr @__VL__i64__IntCell__vtable, 1
store { ptr, ptr } %siN, ptr %alloca, align 8
%loadN = load { ptr, ptr }, ptr %alloca, align 8
%sgN = extractvalue { ptr, ptr } %loadN, 0
@@ -3678,7 +3678,7 @@ entry:
%deref = load { ptr }, ptr %sgN, align 8
%sgN = extractvalue { ptr } %deref, 0
%icallN = call i64 %sgN(ptr @__sx_default_context, ptr %sgN)
call void @print__ct_seb9f5db11fd9fc4e__pack_s64(ptr @__sx_default_context, i64 %icallN)
call void @print__ct_seb9f5db11fd9fc4e__pack_i64(ptr @__sx_default_context, i64 %icallN)
%allocaN = alloca { ptr, ptr }, align 8
%allocaN = alloca { { ptr, i64 } }, align 8
store { { ptr, i64 } } { { ptr, i64 } { ptr @str.326, i64 2 } }, ptr %allocaN, align 8
@@ -3716,14 +3716,14 @@ entry:
}
; Function Attrs: nounwind
define internal i64 @__thunk_IntCell_VL__s64_get(ptr %0, ptr %1) #0 {
define internal i64 @__thunk_IntCell_VL__i64_get(ptr %0, ptr %1) #0 {
entry:
%call = call i64 @IntCell.get(ptr %0, ptr %1)
ret i64 %call
}
; Function Attrs: nounwind
define internal void @print__ct_seb9f5db11fd9fc4e__pack_s64(ptr %0, i64 %1) #0 {
define internal void @print__ct_seb9f5db11fd9fc4e__pack_i64(ptr %0, i64 %1) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.327, i64 9 }, ptr %alloca, align 8
@@ -3912,14 +3912,14 @@ fv.case: ; preds = %if.merge.131
fv.case17: ; preds = %if.merge.131
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.131
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.131
@@ -4615,8 +4615,8 @@ fv.default: ; preds = %if.merge.176
fv.case: ; preds = %if.merge.176
%fv.field = extractvalue { i32 } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
}
@@ -4699,14 +4699,14 @@ fv.case: ; preds = %if.merge.181
fv.case17: ; preds = %if.merge.181
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.181
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.181
@@ -4791,8 +4791,8 @@ fv.default: ; preds = %if.merge.186
fv.case: ; preds = %if.merge.186
%fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case17: ; preds = %if.merge.186
@@ -6061,7 +6061,7 @@ fv.case: ; preds = %if.merge.261
}
; Function Attrs: nounwind
define internal { ptr, i64 } @struct_to_string__VL__s64(ptr %0, { ptr, ptr } %1) #0 {
define internal { ptr, i64 } @struct_to_string__VL__i64(ptr %0, { ptr, ptr } %1) #0 {
entry:
%alloca = alloca { ptr, ptr }, align 8
store { ptr, ptr } %1, ptr %alloca, align 8
@@ -6138,7 +6138,7 @@ fv.case17: ; preds = %if.merge.266
}
; Function Attrs: nounwind
define internal { ptr, i64 } @struct_to_string____VL__s64__Vtable(ptr %0, { ptr } %1) #0 {
define internal { ptr, i64 } @struct_to_string____VL__i64__Vtable(ptr %0, { ptr } %1) #0 {
entry:
%alloca = alloca { ptr }, align 8
store { ptr } %1, ptr %alloca, align 8
@@ -6628,7 +6628,7 @@ if.merge.298: ; preds = %if.then.297, %entry
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %1) #0 {
entry:
%alloca = alloca [4 x i64], align 8
%ig.tmp = alloca [4 x i64], align 8
@@ -6731,7 +6731,7 @@ if.merge.316: ; preds = %if.then.315, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %1) #0 {
entry:
%alloca = alloca [8 x i64], align 8
%ig.tmp = alloca [8 x i64], align 8
@@ -6832,7 +6832,7 @@ if.merge.326: ; preds = %if.then.325, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %1) #0 {
entry:
%alloca = alloca [64 x i64], align 8
%ig.tmp = alloca [64 x i64], align 8
@@ -7482,7 +7482,7 @@ if.merge.451: ; preds = %if.else.450, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8
@@ -7732,7 +7732,7 @@ if.merge.478: ; preds = %if.else.477, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8
@@ -7956,7 +7956,7 @@ if.merge.502: ; preds = %if.else.501, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_VL__s64(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_VL__i64(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8
@@ -8012,7 +8012,7 @@ if.merge.508: ; preds = %if.else.507, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr___VL__s64__Vtable(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr___VL__i64__Vtable(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8

View File

@@ -1,7 +1,7 @@
@__sx_default_context = internal constant { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc_bytes, ptr @__thunk_CAllocator_Allocator_dealloc_bytes }, ptr null }
@__VL__s64__IntCell__vtable = internal constant { ptr } { ptr @__thunk_IntCell_VL__s64_get }
@__VL__s64__Combined__s64__s64__vtable = internal constant { ptr } { ptr @__thunk_Combined__s64__s64_VL__s64_get }
@__VL__i64__IntCell__vtable = internal constant { ptr } { ptr @__thunk_IntCell_VL__i64_get }
@__VL__i64__Combined__i64__i64__vtable = internal constant { ptr } { ptr @__thunk_Combined__i64__i64_VL__i64_get }
@str = private unnamed_addr constant [2 x i8] c"0\00", align 1
@str.108 = private unnamed_addr constant [2 x i8] c"0\00", align 1
@str.109 = private unnamed_addr constant [5 x i8] c"true\00", align 1
@@ -27,10 +27,10 @@
@tag_names = private constant [14 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.114, i64 8 }, { ptr, i64 } { ptr @tag.str.115, i64 2 }, { ptr, i64 } { ptr @tag.str.116, i64 15 }, { ptr, i64 } { ptr @tag.str.117, i64 13 }, { ptr, i64 } { ptr @tag.str.118, i64 9 }, { ptr, i64 } { ptr @tag.str.119, i64 9 }, { ptr, i64 } { ptr @tag.str.120, i64 15 }, { ptr, i64 } { ptr @tag.str.121, i64 14 }, { ptr, i64 } { ptr @tag.str.122, i64 14 }, { ptr, i64 } { ptr @tag.str.123, i64 11 }, { ptr, i64 } { ptr @tag.str.124, i64 12 }, { ptr, i64 } { ptr @tag.str.125, i64 15 }, { ptr, i64 } { ptr @tag.str.126, i64 12 }]
@tn.str = private constant [13 x i8] c"<unresolved>\00"
@tn.str.127 = private constant [5 x i8] c"bool\00"
@tn.str.128 = private constant [3 x i8] c"s8\00"
@tn.str.129 = private constant [4 x i8] c"s16\00"
@tn.str.130 = private constant [4 x i8] c"s32\00"
@tn.str.131 = private constant [4 x i8] c"s64\00"
@tn.str.128 = private constant [3 x i8] c"i8\00"
@tn.str.129 = private constant [4 x i8] c"i16\00"
@tn.str.130 = private constant [4 x i8] c"i32\00"
@tn.str.131 = private constant [4 x i8] c"i64\00"
@tn.str.132 = private constant [3 x i8] c"u8\00"
@tn.str.133 = private constant [4 x i8] c"u16\00"
@tn.str.134 = private constant [4 x i8] c"u32\00"
@@ -47,7 +47,7 @@
@tn.str.145 = private constant [16 x i8] c"Source_Location\00"
@tn.str.146 = private constant [10 x i8] c"Allocator\00"
@tn.str.147 = private constant [8 x i8] c"Context\00"
@tn.str.148 = private constant [7 x i8] c"[4]s64\00"
@tn.str.148 = private constant [7 x i8] c"[4]i64\00"
@tn.str.149 = private constant [9 x i8] c"[]string\00"
@tn.str.150 = private constant [11 x i8] c"CAllocator\00"
@tn.str.151 = private constant [12 x i8] c"*CAllocator\00"
@@ -72,7 +72,7 @@
@tn.str.170 = private constant [4 x i8] c"*u8\00"
@tn.str.171 = private constant [14 x i8] c"ProcessResult\00"
@tn.str.172 = private constant [15 x i8] c"?ProcessResult\00"
@tn.str.173 = private constant [5 x i8] c"*s32\00"
@tn.str.173 = private constant [5 x i8] c"*i32\00"
@tn.str.174 = private constant [9 x i8] c"SockAddr\00"
@tn.str.175 = private constant [10 x i8] c"*SockAddr\00"
@tn.str.176 = private constant [5 x i8] c"*u32\00"
@@ -88,9 +88,9 @@
@tn.str.186 = private constant [5 x i8] c"[]u8\00"
@tn.str.187 = private constant [5 x i8] c"Sink\00"
@tn.str.188 = private constant [6 x i8] c"*Sink\00"
@tn.str.189 = private constant [17 x i8] c"(s64, JsonError)\00"
@tn.str.189 = private constant [17 x i8] c"(i64, JsonError)\00"
@tn.str.190 = private constant [15 x i8] c"JsonParseError\00"
@tn.str.191 = private constant [22 x i8] c"(s64, JsonParseError)\00"
@tn.str.191 = private constant [22 x i8] c"(i64, JsonParseError)\00"
@tn.str.192 = private constant [7 x i8] c"Parser\00"
@tn.str.193 = private constant [8 x i8] c"*Parser\00"
@tn.str.194 = private constant [25 x i8] c"(string, JsonParseError)\00"
@@ -99,7 +99,7 @@
@tn.str.197 = private constant [13 x i8] c"Architecture\00"
@tn.str.198 = private constant [13 x i8] c"BuildOptions\00"
@tn.str.199 = private constant [11 x i8] c"() -> bool\00"
@tn.str.200 = private constant [5 x i8] c"*s64\00"
@tn.str.200 = private constant [5 x i8] c"*i64\00"
@tn.str.201 = private constant [9 x i8] c"CliError\00"
@tn.str.202 = private constant [9 x i8] c"FlagSpec\00"
@tn.str.203 = private constant [11 x i8] c"[]FlagSpec\00"
@@ -112,18 +112,18 @@
@tn.str.210 = private constant [19 x i8] c"(Parsed, CliError)\00"
@tn.str.211 = private constant [10 x i8] c"[]Command\00"
@tn.str.212 = private constant [6 x i8] c"*Diag\00"
@tn.str.213 = private constant [7 x i8] c"[8]s64\00"
@tn.str.213 = private constant [7 x i8] c"[8]i64\00"
@tn.str.214 = private constant [7 x i8] c"[64]u8\00"
@tn.str.215 = private constant [7 x i8] c"Sha256\00"
@tn.str.216 = private constant [8 x i8] c"*Sha256\00"
@tn.str.217 = private constant [8 x i8] c"?[64]u8\00"
@tn.str.218 = private constant [8 x i8] c"[64]s64\00"
@tn.str.218 = private constant [8 x i8] c"[64]i64\00"
@tn.str.219 = private constant [8 x i8] c"IntCell\00"
@tn.str.220 = private constant [9 x i8] c"*IntCell\00"
@tn.str.221 = private constant [2 x i8] c"R\00"
@tn.str.222 = private constant [9 x i8] c"Combined\00"
@tn.str.223 = private constant [8 x i8] c"VL__s64\00"
@tn.str.224 = private constant [18 x i8] c"__VL__s64__Vtable\00"
@tn.str.223 = private constant [8 x i8] c"VL__i64\00"
@tn.str.224 = private constant [18 x i8] c"__VL__i64__Vtable\00"
@tn.str.225 = private constant [3 x i8] c"VL\00"
@tn.str.226 = private constant [5 x i8] c"[]VL\00"
@tn.str.227 = private constant [13 x i8] c"**CAllocator\00"
@@ -133,17 +133,17 @@
@tn.str.231 = private constant [7 x i8] c"[1]Any\00"
@tn.str.232 = private constant [8 x i8] c"*[1]Any\00"
@tn.str.233 = private constant [7 x i8] c"*[]Any\00"
@tn.str.234 = private constant [10 x i8] c"(VL__s64)\00"
@tn.str.235 = private constant [19 x i8] c"Combined__s64__s64\00"
@tn.str.236 = private constant [20 x i8] c"*Combined__s64__s64\00"
@tn.str.234 = private constant [10 x i8] c"(VL__i64)\00"
@tn.str.235 = private constant [19 x i8] c"Combined__i64__i64\00"
@tn.str.236 = private constant [20 x i8] c"*Combined__i64__i64\00"
@tn.str.237 = private constant [10 x i8] c"**IntCell\00"
@tn.str.238 = private constant [19 x i8] c"*__VL__s64__Vtable\00"
@tn.str.239 = private constant [11 x i8] c"*(VL__s64)\00"
@tn.str.240 = private constant [21 x i8] c"**Combined__s64__s64\00"
@tn.str.241 = private constant [9 x i8] c"*VL__s64\00"
@tn.str.238 = private constant [19 x i8] c"*__VL__i64__Vtable\00"
@tn.str.239 = private constant [11 x i8] c"*(VL__i64)\00"
@tn.str.240 = private constant [21 x i8] c"**Combined__i64__i64\00"
@tn.str.241 = private constant [9 x i8] c"*VL__i64\00"
@tn.str.242 = private constant [8 x i8] c"*string\00"
@tn.str.243 = private constant [6 x i8] c"*bool\00"
@tn.str.244 = private constant [8 x i8] c"*[4]s64\00"
@tn.str.244 = private constant [8 x i8] c"*[4]i64\00"
@tn.str.245 = private constant [5 x i8] c"*f64\00"
@tn.str.246 = private constant [17 x i8] c"*Source_Location\00"
@tn.str.247 = private constant [11 x i8] c"*Allocator\00"
@@ -164,9 +164,9 @@
@tn.str.262 = private constant [17 x i8] c"*OperatingSystem\00"
@tn.str.263 = private constant [14 x i8] c"*Architecture\00"
@tn.str.264 = private constant [15 x i8] c"*[16]FlagValue\00"
@tn.str.265 = private constant [8 x i8] c"*[8]s64\00"
@tn.str.265 = private constant [8 x i8] c"*[8]i64\00"
@tn.str.266 = private constant [8 x i8] c"*[64]u8\00"
@tn.str.267 = private constant [9 x i8] c"*[64]s64\00"
@tn.str.267 = private constant [9 x i8] c"*[64]i64\00"
@tn.str.268 = private constant [10 x i8] c"*[]string\00"
@tn.str.269 = private constant [6 x i8] c"*[]u8\00"
@tn.str.270 = private constant [12 x i8] c"*[]FlagSpec\00"
@@ -180,7 +180,7 @@
@tn.str.278 = private constant [20 x i8] c"**TrackingAllocator\00"
@tn.str.279 = private constant [7 x i8] c"**File\00"
@tn.str.280 = private constant [5 x i8] c"**u8\00"
@tn.str.281 = private constant [6 x i8] c"**s32\00"
@tn.str.281 = private constant [6 x i8] c"**i32\00"
@tn.str.282 = private constant [11 x i8] c"**SockAddr\00"
@tn.str.283 = private constant [6 x i8] c"**u32\00"
@tn.str.284 = private constant [10 x i8] c"*[*]Value\00"
@@ -189,7 +189,7 @@
@tn.str.287 = private constant [9 x i8] c"**Object\00"
@tn.str.288 = private constant [7 x i8] c"**Sink\00"
@tn.str.289 = private constant [9 x i8] c"**Parser\00"
@tn.str.290 = private constant [6 x i8] c"**s64\00"
@tn.str.290 = private constant [6 x i8] c"**i64\00"
@tn.str.291 = private constant [9 x i8] c"**Parsed\00"
@tn.str.292 = private constant [7 x i8] c"**Diag\00"
@tn.str.293 = private constant [9 x i8] c"**Sha256\00"
@@ -199,10 +199,10 @@
@tn.str.297 = private constant [9 x i8] c"**[1]Any\00"
@tn.str.298 = private constant [8 x i8] c"**[]Any\00"
@tn.str.299 = private constant [11 x i8] c"***IntCell\00"
@tn.str.300 = private constant [20 x i8] c"**__VL__s64__Vtable\00"
@tn.str.301 = private constant [12 x i8] c"**(VL__s64)\00"
@tn.str.302 = private constant [22 x i8] c"***Combined__s64__s64\00"
@tn.str.303 = private constant [10 x i8] c"**VL__s64\00"
@tn.str.300 = private constant [20 x i8] c"**__VL__i64__Vtable\00"
@tn.str.301 = private constant [12 x i8] c"**(VL__i64)\00"
@tn.str.302 = private constant [22 x i8] c"***Combined__i64__i64\00"
@tn.str.303 = private constant [10 x i8] c"**VL__i64\00"
@tn.str.304 = private constant [9 x i8] c"**string\00"
@tn.str.305 = private constant [7 x i8] c"**bool\00"
@tn.str.306 = private constant [7 x i8] c"*?File\00"
@@ -473,7 +473,7 @@
@str.568 = private unnamed_addr constant [3 x i8] c", \00", align 1
@field_names.569 = private constant [0 x { ptr, i64 }] zeroinitializer
@str.570 = private unnamed_addr constant [3 x i8] c": \00", align 1
@str.571 = private unnamed_addr constant [8 x i8] c"VL__s64\00", align 1
@str.571 = private unnamed_addr constant [8 x i8] c"VL__i64\00", align 1
@str.572 = private unnamed_addr constant [2 x i8] c"{\00", align 1
@str.573 = private unnamed_addr constant [2 x i8] c"}\00", align 1
@str.574 = private unnamed_addr constant [3 x i8] c", \00", align 1
@@ -481,7 +481,7 @@
@fld.str.576 = private constant [9 x i8] c"__vtable\00"
@field_names.577 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.575, i64 3 }, { ptr, i64 } { ptr @fld.str.576, i64 8 }]
@str.578 = private unnamed_addr constant [3 x i8] c": \00", align 1
@str.579 = private unnamed_addr constant [18 x i8] c"__VL__s64__Vtable\00", align 1
@str.579 = private unnamed_addr constant [18 x i8] c"__VL__i64__Vtable\00", align 1
@str.580 = private unnamed_addr constant [2 x i8] c"{\00", align 1
@str.581 = private unnamed_addr constant [2 x i8] c"}\00", align 1
@str.582 = private unnamed_addr constant [3 x i8] c", \00", align 1
@@ -494,7 +494,7 @@
@str.589 = private unnamed_addr constant [3 x i8] c", \00", align 1
@field_names.590 = private constant [0 x { ptr, i64 }] zeroinitializer
@str.591 = private unnamed_addr constant [3 x i8] c": \00", align 1
@str.592 = private unnamed_addr constant [19 x i8] c"Combined__s64__s64\00", align 1
@str.592 = private unnamed_addr constant [19 x i8] c"Combined__i64__i64\00", align 1
@str.593 = private unnamed_addr constant [2 x i8] c"{\00", align 1
@str.594 = private unnamed_addr constant [2 x i8] c"}\00", align 1
@str.595 = private unnamed_addr constant [3 x i8] c", \00", align 1
@@ -614,7 +614,7 @@
@str.709 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1
@str.710 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.711 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.712 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1
@str.712 = private unnamed_addr constant [5 x i8] c"*i32\00", align 1
@str.713 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.714 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.715 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1
@@ -641,7 +641,7 @@
@str.736 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1
@str.737 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.738 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.739 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1
@str.739 = private unnamed_addr constant [5 x i8] c"*i64\00", align 1
@str.740 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.741 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.742 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1
@@ -671,22 +671,22 @@
@str.766 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1
@str.767 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.768 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.769 = private unnamed_addr constant [20 x i8] c"*Combined__s64__s64\00", align 1
@str.769 = private unnamed_addr constant [20 x i8] c"*Combined__i64__i64\00", align 1
@str.770 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.771 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.772 = private unnamed_addr constant [10 x i8] c"**IntCell\00", align 1
@str.773 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.774 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.775 = private unnamed_addr constant [19 x i8] c"*__VL__s64__Vtable\00", align 1
@str.775 = private unnamed_addr constant [19 x i8] c"*__VL__i64__Vtable\00", align 1
@str.776 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.777 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.778 = private unnamed_addr constant [7 x i8] c"*tuple\00", align 1
@str.779 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.780 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.781 = private unnamed_addr constant [21 x i8] c"**Combined__s64__s64\00", align 1
@str.781 = private unnamed_addr constant [21 x i8] c"**Combined__i64__i64\00", align 1
@str.782 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.783 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.784 = private unnamed_addr constant [9 x i8] c"*VL__s64\00", align 1
@str.784 = private unnamed_addr constant [9 x i8] c"*VL__i64\00", align 1
@str.785 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.786 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.787 = private unnamed_addr constant [8 x i8] c"*string\00", align 1
@@ -2034,7 +2034,7 @@ dispatch.case.124: ; preds = %match.arm.43
%ua.raw172 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr173 = inttoptr i64 %ua.raw172 to ptr
%ua.load174 = load { ptr, ptr }, ptr %ua.ptr173, align 8
%callN = call { ptr, i64 } @struct_to_string__VL__s64(ptr %0, { ptr, ptr } %ua.load174)
%callN = call { ptr, i64 } @struct_to_string__VL__i64(ptr %0, { ptr, ptr } %ua.load174)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
@@ -2042,7 +2042,7 @@ dispatch.case.125: ; preds = %match.arm.43
%ua.raw176 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr177 = inttoptr i64 %ua.raw176 to ptr
%ua.load178 = load { ptr }, ptr %ua.ptr177, align 8
%callN = call { ptr, i64 } @struct_to_string____VL__s64__Vtable(ptr %0, { ptr } %ua.load178)
%callN = call { ptr, i64 } @struct_to_string____VL__i64__Vtable(ptr %0, { ptr } %ua.load178)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
@@ -2058,7 +2058,7 @@ dispatch.case.127: ; preds = %match.arm.43
%ua.raw184 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr185 = inttoptr i64 %ua.raw184 to ptr
%ua.load186 = load { { { ptr, ptr } }, i64 }, ptr %ua.ptr185, align 8
%callN = call { ptr, i64 } @struct_to_string__Combined__s64__s64(ptr %0, { { { ptr, ptr } }, i64 } %ua.load186)
%callN = call { ptr, i64 } @struct_to_string__Combined__i64__i64(ptr %0, { { { ptr, ptr } }, i64 } %ua.load186)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.94
@@ -2116,7 +2116,7 @@ dispatch.case.307: ; preds = %match.arm.47
%ua.raw202 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr203 = inttoptr i64 %ua.raw202 to ptr
%ua.load204 = load [4 x i64], ptr %ua.ptr203, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load204)
%callN = call { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %ua.load204)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.305
@@ -2132,7 +2132,7 @@ dispatch.case.309: ; preds = %match.arm.47
%ua.raw210 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr211 = inttoptr i64 %ua.raw210 to ptr
%ua.load212 = load [8 x i64], ptr %ua.ptr211, align 8
%callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load212)
%callN = call { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %ua.load212)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.305
@@ -2148,7 +2148,7 @@ dispatch.case.311: ; preds = %match.arm.47
%ua.raw218 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr219 = inttoptr i64 %ua.raw218 to ptr
%ua.load220 = load [64 x i64], ptr %ua.ptr219, align 8
%callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load220)
%callN = call { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %ua.load220)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.305
@@ -2299,7 +2299,7 @@ dispatch.case.392: ; preds = %match.arm.49
dispatch.case.393: ; preds = %match.arm.49
%ua.raw281 = extractvalue { i64, i64 } %loadN, 1
%iNp282 = inttoptr i64 %ua.raw281 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp282)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %iNp282)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.381
@@ -2362,7 +2362,7 @@ dispatch.case.401: ; preds = %match.arm.49
dispatch.case.402: ; preds = %match.arm.49
%ua.raw308 = extractvalue { i64, i64 } %loadN, 1
%iNp309 = inttoptr i64 %ua.raw308 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp309)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %iNp309)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.381
@@ -2432,7 +2432,7 @@ dispatch.case.411: ; preds = %match.arm.49
dispatch.case.412: ; preds = %match.arm.49
%ua.raw338 = extractvalue { i64, i64 } %loadN, 1
%iNp339 = inttoptr i64 %ua.raw338 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_Combined__s64__s64(ptr %0, ptr %iNp339)
%callN = call { ptr, i64 } @pointer_to_string__ptr_Combined__i64__i64(ptr %0, ptr %iNp339)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.381
@@ -2446,28 +2446,28 @@ dispatch.case.413: ; preds = %match.arm.49
dispatch.case.414: ; preds = %match.arm.49
%ua.raw344 = extractvalue { i64, i64 } %loadN, 1
%iNp345 = inttoptr i64 %ua.raw344 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr___VL__s64__Vtable(ptr %0, ptr %iNp345)
%callN = call { ptr, i64 } @pointer_to_string__ptr___VL__i64__Vtable(ptr %0, ptr %iNp345)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.381
dispatch.case.415: ; preds = %match.arm.49
%ua.raw347 = extractvalue { i64, i64 } %loadN, 1
%iNp348 = inttoptr i64 %ua.raw347 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_tu_VL__s64(ptr %0, ptr %iNp348)
%callN = call { ptr, i64 } @pointer_to_string__ptr_tu_VL__i64(ptr %0, ptr %iNp348)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.381
dispatch.case.416: ; preds = %match.arm.49
%ua.raw350 = extractvalue { i64, i64 } %loadN, 1
%iNp351 = inttoptr i64 %ua.raw350 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_Combined__s64__s64(ptr %0, ptr %iNp351)
%callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_Combined__i64__i64(ptr %0, ptr %iNp351)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.381
dispatch.case.417: ; preds = %match.arm.49
%ua.raw353 = extractvalue { i64, i64 } %loadN, 1
%iNp354 = inttoptr i64 %ua.raw353 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_VL__s64(ptr %0, ptr %iNp354)
%callN = call { ptr, i64 } @pointer_to_string__ptr_VL__i64(ptr %0, ptr %iNp354)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.381
@@ -3677,7 +3677,7 @@ entry:
%deref = load { ptr }, ptr %sgN, align 8
%sgN = extractvalue { ptr } %deref, 0
%icall = call i64 %sgN(ptr @__sx_default_context, ptr %sg)
call void @print__ct_sbc6305862a3a863d__pack_s64(ptr @__sx_default_context, i64 %icall)
call void @print__ct_sbc6305862a3a863d__pack_i64(ptr @__sx_default_context, i64 %icall)
ret i32 0
}
@@ -3720,32 +3720,32 @@ entry:
store i64 99, ptr %gepN, align 8
%loadN = load { i64 }, ptr %alloca, align 8
%si = insertvalue { ptr, ptr } undef, ptr %alloca, 0
%siN = insertvalue { ptr, ptr } %si, ptr @__VL__s64__IntCell__vtable, 1
%siN = insertvalue { ptr, ptr } %si, ptr @__VL__i64__IntCell__vtable, 1
%ti = insertvalue { { ptr, ptr } } undef, { ptr, ptr } %siN, 0
%gepN = getelementptr inbounds { { { ptr, ptr } }, i64 }, ptr %allocaN, i32 0, i32 0
store { { ptr, ptr } } %ti, ptr %gepN, align 8
%loadN = load { { { ptr, ptr } }, i64 }, ptr %allocaN, align 8
%siN = insertvalue { ptr, ptr } undef, ptr %allocaN, 0
%siN = insertvalue { ptr, ptr } %siN, ptr @__VL__s64__Combined__s64__s64__vtable, 1
%siN = insertvalue { ptr, ptr } %siN, ptr @__VL__i64__Combined__i64__i64__vtable, 1
ret { ptr, ptr } %siN
}
; Function Attrs: nounwind
define internal i64 @__thunk_IntCell_VL__s64_get(ptr %0, ptr %1) #0 {
define internal i64 @__thunk_IntCell_VL__i64_get(ptr %0, ptr %1) #0 {
entry:
%call = call i64 @IntCell.get(ptr %0, ptr %1)
ret i64 %call
}
; Function Attrs: nounwind
define internal i64 @__thunk_Combined__s64__s64_VL__s64_get(ptr %0, ptr %1) #0 {
define internal i64 @__thunk_Combined__i64__i64_VL__i64_get(ptr %0, ptr %1) #0 {
entry:
%call = call i64 @Combined__s64__s64.get(ptr %0, ptr %1)
%call = call i64 @Combined__i64__i64.get(ptr %0, ptr %1)
ret i64 %call
}
; Function Attrs: nounwind
define internal i64 @Combined__s64__s64.get(ptr %0, ptr %1) #0 {
define internal i64 @Combined__i64__i64.get(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8
@@ -3756,7 +3756,7 @@ entry:
}
; Function Attrs: nounwind
define internal void @print__ct_sbc6305862a3a863d__pack_s64(ptr %0, i64 %1) #0 {
define internal void @print__ct_sbc6305862a3a863d__pack_i64(ptr %0, i64 %1) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.331, i64 3 }, ptr %alloca, align 8
@@ -3877,14 +3877,14 @@ fv.case: ; preds = %if.merge.132
fv.case17: ; preds = %if.merge.132
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.132
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.132
@@ -4580,8 +4580,8 @@ fv.default: ; preds = %if.merge.177
fv.case: ; preds = %if.merge.177
%fv.field = extractvalue { i32 } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
}
@@ -4664,14 +4664,14 @@ fv.case: ; preds = %if.merge.182
fv.case17: ; preds = %if.merge.182
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.182
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.182
@@ -4756,8 +4756,8 @@ fv.default: ; preds = %if.merge.187
fv.case: ; preds = %if.merge.187
%fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case17: ; preds = %if.merge.187
@@ -6064,7 +6064,7 @@ if.merge.267: ; preds = %if.then.266, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @struct_to_string__VL__s64(ptr %0, { ptr, ptr } %1) #0 {
define internal { ptr, i64 } @struct_to_string__VL__i64(ptr %0, { ptr, ptr } %1) #0 {
entry:
%alloca = alloca { ptr, ptr }, align 8
store { ptr, ptr } %1, ptr %alloca, align 8
@@ -6141,7 +6141,7 @@ fv.case17: ; preds = %if.merge.272
}
; Function Attrs: nounwind
define internal { ptr, i64 } @struct_to_string____VL__s64__Vtable(ptr %0, { ptr } %1) #0 {
define internal { ptr, i64 } @struct_to_string____VL__i64__Vtable(ptr %0, { ptr } %1) #0 {
entry:
%alloca = alloca { ptr }, align 8
store { ptr } %1, ptr %alloca, align 8
@@ -6266,7 +6266,7 @@ if.merge.282: ; preds = %if.then.281, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @struct_to_string__Combined__s64__s64(ptr %0, { { { ptr, ptr } }, i64 } %1) #0 {
define internal { ptr, i64 } @struct_to_string__Combined__i64__i64(ptr %0, { { { ptr, ptr } }, i64 } %1) #0 {
entry:
%alloca = alloca { { { ptr, ptr } }, i64 }, align 8
%ba.tmp = alloca { { ptr, ptr } }, align 8
@@ -6617,7 +6617,7 @@ if.merge.304: ; preds = %if.then.303, %entry
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %1) #0 {
entry:
%alloca = alloca [4 x i64], align 8
%ig.tmp = alloca [4 x i64], align 8
@@ -6720,7 +6720,7 @@ if.merge.322: ; preds = %if.then.321, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %1) #0 {
entry:
%alloca = alloca [8 x i64], align 8
%ig.tmp = alloca [8 x i64], align 8
@@ -6821,7 +6821,7 @@ if.merge.332: ; preds = %if.then.331, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %1) #0 {
entry:
%alloca = alloca [64 x i64], align 8
%ig.tmp = alloca [64 x i64], align 8
@@ -7525,7 +7525,7 @@ if.merge.462: ; preds = %if.else.461, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8
@@ -7775,7 +7775,7 @@ if.merge.489: ; preds = %if.else.488, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8
@@ -8055,7 +8055,7 @@ if.merge.519: ; preds = %if.else.518, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_Combined__s64__s64(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_Combined__i64__i64(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8
@@ -8111,7 +8111,7 @@ if.merge.525: ; preds = %if.else.524, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr___VL__s64__Vtable(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr___VL__i64__Vtable(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8
@@ -8139,7 +8139,7 @@ if.merge.528: ; preds = %if.else.527, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_tu_VL__s64(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_tu_VL__i64(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8
@@ -8167,7 +8167,7 @@ if.merge.531: ; preds = %if.else.530, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_ptr_Combined__s64__s64(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_ptr_Combined__i64__i64(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8
@@ -8195,7 +8195,7 @@ if.merge.534: ; preds = %if.else.533, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_VL__s64(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_VL__i64(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8

View File

@@ -26,10 +26,10 @@
@tag_names = private constant [14 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.439, i64 8 }, { ptr, i64 } { ptr @tag.str.440, i64 2 }, { ptr, i64 } { ptr @tag.str.441, i64 15 }, { ptr, i64 } { ptr @tag.str.442, i64 13 }, { ptr, i64 } { ptr @tag.str.443, i64 9 }, { ptr, i64 } { ptr @tag.str.444, i64 9 }, { ptr, i64 } { ptr @tag.str.445, i64 15 }, { ptr, i64 } { ptr @tag.str.446, i64 14 }, { ptr, i64 } { ptr @tag.str.447, i64 14 }, { ptr, i64 } { ptr @tag.str.448, i64 11 }, { ptr, i64 } { ptr @tag.str.449, i64 12 }, { ptr, i64 } { ptr @tag.str.450, i64 15 }, { ptr, i64 } { ptr @tag.str.451, i64 12 }]
@tn.str = private constant [13 x i8] c"<unresolved>\00"
@tn.str.452 = private constant [5 x i8] c"bool\00"
@tn.str.453 = private constant [3 x i8] c"s8\00"
@tn.str.454 = private constant [4 x i8] c"s16\00"
@tn.str.455 = private constant [4 x i8] c"s32\00"
@tn.str.456 = private constant [4 x i8] c"s64\00"
@tn.str.453 = private constant [3 x i8] c"i8\00"
@tn.str.454 = private constant [4 x i8] c"i16\00"
@tn.str.455 = private constant [4 x i8] c"i32\00"
@tn.str.456 = private constant [4 x i8] c"i64\00"
@tn.str.457 = private constant [3 x i8] c"u8\00"
@tn.str.458 = private constant [4 x i8] c"u16\00"
@tn.str.459 = private constant [4 x i8] c"u32\00"
@@ -46,7 +46,7 @@
@tn.str.470 = private constant [16 x i8] c"Source_Location\00"
@tn.str.471 = private constant [10 x i8] c"Allocator\00"
@tn.str.472 = private constant [8 x i8] c"Context\00"
@tn.str.473 = private constant [7 x i8] c"[4]s64\00"
@tn.str.473 = private constant [7 x i8] c"[4]i64\00"
@tn.str.474 = private constant [9 x i8] c"[]string\00"
@tn.str.475 = private constant [11 x i8] c"CAllocator\00"
@tn.str.476 = private constant [12 x i8] c"*CAllocator\00"
@@ -71,7 +71,7 @@
@tn.str.495 = private constant [4 x i8] c"*u8\00"
@tn.str.496 = private constant [14 x i8] c"ProcessResult\00"
@tn.str.497 = private constant [15 x i8] c"?ProcessResult\00"
@tn.str.498 = private constant [5 x i8] c"*s32\00"
@tn.str.498 = private constant [5 x i8] c"*i32\00"
@tn.str.499 = private constant [9 x i8] c"SockAddr\00"
@tn.str.500 = private constant [10 x i8] c"*SockAddr\00"
@tn.str.501 = private constant [5 x i8] c"*u32\00"
@@ -87,9 +87,9 @@
@tn.str.511 = private constant [5 x i8] c"[]u8\00"
@tn.str.512 = private constant [5 x i8] c"Sink\00"
@tn.str.513 = private constant [6 x i8] c"*Sink\00"
@tn.str.514 = private constant [17 x i8] c"(s64, JsonError)\00"
@tn.str.514 = private constant [17 x i8] c"(i64, JsonError)\00"
@tn.str.515 = private constant [15 x i8] c"JsonParseError\00"
@tn.str.516 = private constant [22 x i8] c"(s64, JsonParseError)\00"
@tn.str.516 = private constant [22 x i8] c"(i64, JsonParseError)\00"
@tn.str.517 = private constant [7 x i8] c"Parser\00"
@tn.str.518 = private constant [8 x i8] c"*Parser\00"
@tn.str.519 = private constant [25 x i8] c"(string, JsonParseError)\00"
@@ -98,7 +98,7 @@
@tn.str.522 = private constant [13 x i8] c"Architecture\00"
@tn.str.523 = private constant [13 x i8] c"BuildOptions\00"
@tn.str.524 = private constant [11 x i8] c"() -> bool\00"
@tn.str.525 = private constant [5 x i8] c"*s64\00"
@tn.str.525 = private constant [5 x i8] c"*i64\00"
@tn.str.526 = private constant [9 x i8] c"CliError\00"
@tn.str.527 = private constant [9 x i8] c"FlagSpec\00"
@tn.str.528 = private constant [11 x i8] c"[]FlagSpec\00"
@@ -111,12 +111,12 @@
@tn.str.535 = private constant [19 x i8] c"(Parsed, CliError)\00"
@tn.str.536 = private constant [10 x i8] c"[]Command\00"
@tn.str.537 = private constant [6 x i8] c"*Diag\00"
@tn.str.538 = private constant [7 x i8] c"[8]s64\00"
@tn.str.538 = private constant [7 x i8] c"[8]i64\00"
@tn.str.539 = private constant [7 x i8] c"[64]u8\00"
@tn.str.540 = private constant [7 x i8] c"Sha256\00"
@tn.str.541 = private constant [8 x i8] c"*Sha256\00"
@tn.str.542 = private constant [8 x i8] c"?[64]u8\00"
@tn.str.543 = private constant [8 x i8] c"[64]s64\00"
@tn.str.543 = private constant [8 x i8] c"[64]i64\00"
@tn.str.544 = private constant [8 x i8] c"[16]f32\00"
@tn.str.545 = private constant [5 x i8] c"Mat4\00"
@tn.str.546 = private constant [5 x i8] c"Vec2\00"
@@ -145,7 +145,7 @@
@tn.str.569 = private constant [8 x i8] c"*[1]Any\00"
@tn.str.570 = private constant [7 x i8] c"*Adder\00"
@tn.str.571 = private constant [14 x i8] c"**Accumulator\00"
@tn.str.572 = private constant [8 x i8] c"*[4]s64\00"
@tn.str.572 = private constant [8 x i8] c"*[4]i64\00"
@tn.str.573 = private constant [5 x i8] c"*f64\00"
@tn.str.574 = private constant [17 x i8] c"*Source_Location\00"
@tn.str.575 = private constant [11 x i8] c"*Allocator\00"
@@ -167,9 +167,9 @@
@tn.str.591 = private constant [17 x i8] c"*OperatingSystem\00"
@tn.str.592 = private constant [14 x i8] c"*Architecture\00"
@tn.str.593 = private constant [15 x i8] c"*[16]FlagValue\00"
@tn.str.594 = private constant [8 x i8] c"*[8]s64\00"
@tn.str.594 = private constant [8 x i8] c"*[8]i64\00"
@tn.str.595 = private constant [8 x i8] c"*[64]u8\00"
@tn.str.596 = private constant [9 x i8] c"*[64]s64\00"
@tn.str.596 = private constant [9 x i8] c"*[64]i64\00"
@tn.str.597 = private constant [9 x i8] c"*[16]f32\00"
@tn.str.598 = private constant [10 x i8] c"*[]string\00"
@tn.str.599 = private constant [6 x i8] c"*[]u8\00"
@@ -183,7 +183,7 @@
@tn.str.607 = private constant [20 x i8] c"**TrackingAllocator\00"
@tn.str.608 = private constant [7 x i8] c"**File\00"
@tn.str.609 = private constant [5 x i8] c"**u8\00"
@tn.str.610 = private constant [6 x i8] c"**s32\00"
@tn.str.610 = private constant [6 x i8] c"**i32\00"
@tn.str.611 = private constant [11 x i8] c"**SockAddr\00"
@tn.str.612 = private constant [6 x i8] c"**u32\00"
@tn.str.613 = private constant [10 x i8] c"*[*]Value\00"
@@ -192,7 +192,7 @@
@tn.str.616 = private constant [9 x i8] c"**Object\00"
@tn.str.617 = private constant [7 x i8] c"**Sink\00"
@tn.str.618 = private constant [9 x i8] c"**Parser\00"
@tn.str.619 = private constant [6 x i8] c"**s64\00"
@tn.str.619 = private constant [6 x i8] c"**i64\00"
@tn.str.620 = private constant [9 x i8] c"**Parsed\00"
@tn.str.621 = private constant [7 x i8] c"**Diag\00"
@tn.str.622 = private constant [9 x i8] c"**Sha256\00"
@@ -662,7 +662,7 @@
@str.1083 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1
@str.1084 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.1085 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.1086 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1
@str.1086 = private unnamed_addr constant [5 x i8] c"*i32\00", align 1
@str.1087 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.1088 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.1089 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1
@@ -689,7 +689,7 @@
@str.1110 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1
@str.1111 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.1112 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.1113 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1
@str.1113 = private unnamed_addr constant [5 x i8] c"*i64\00", align 1
@str.1114 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.1115 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.1116 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1
@@ -2199,7 +2199,7 @@ dispatch.case.325: ; preds = %match.arm.47
%ua.raw214 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr215 = inttoptr i64 %ua.raw214 to ptr
%ua.load216 = load [4 x i64], ptr %ua.ptr215, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load216)
%callN = call { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %ua.load216)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.323
@@ -2215,7 +2215,7 @@ dispatch.case.327: ; preds = %match.arm.47
%ua.raw222 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr223 = inttoptr i64 %ua.raw222 to ptr
%ua.load224 = load [8 x i64], ptr %ua.ptr223, align 8
%callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load224)
%callN = call { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %ua.load224)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.323
@@ -2231,7 +2231,7 @@ dispatch.case.329: ; preds = %match.arm.47
%ua.raw230 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr231 = inttoptr i64 %ua.raw230 to ptr
%ua.load232 = load [64 x i64], ptr %ua.ptr231, align 8
%callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load232)
%callN = call { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %ua.load232)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.323
@@ -2382,7 +2382,7 @@ dispatch.case.410: ; preds = %match.arm.49
dispatch.case.411: ; preds = %match.arm.49
%ua.raw293 = extractvalue { i64, i64 } %loadN, 1
%iNp294 = inttoptr i64 %ua.raw293 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp294)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %iNp294)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.399
@@ -2445,7 +2445,7 @@ dispatch.case.419: ; preds = %match.arm.49
dispatch.case.420: ; preds = %match.arm.49
%ua.raw320 = extractvalue { i64, i64 } %loadN, 1
%iNp321 = inttoptr i64 %ua.raw320 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp321)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %iNp321)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.399
@@ -4869,7 +4869,7 @@ entry:
%allocaN = alloca i32, align 4
store i32 %callN, ptr %allocaN, align 4
%loadN = load i32, ptr %allocaN, align 4
call void @print__ct_sbdf493528d053170__pack_s32(ptr @__sx_default_context, i32 %loadN)
call void @print__ct_sbdf493528d053170__pack_i32(ptr @__sx_default_context, i32 %loadN)
%allocaN = alloca { i32 }, align 8
store { i32 } zeroinitializer, ptr %allocaN, align 4
%allocaN = alloca { ptr, ptr, ptr }, align 8
@@ -4890,7 +4890,7 @@ entry:
%sgN = extractvalue { ptr, ptr, ptr } %loadN, 0
%sgN = extractvalue { ptr, ptr, ptr } %loadN, 2
%icallN = call i32 %sgN(ptr @__sx_default_context, ptr %sgN)
call void @print__ct_s35bfc3f99c7ed027__pack_s32(ptr @__sx_default_context, i32 %icallN)
call void @print__ct_s35bfc3f99c7ed027__pack_i32(ptr @__sx_default_context, i32 %icallN)
%allocaN = alloca { i32 }, align 8
store { i32 } { i32 100 }, ptr %allocaN, align 4
%loadN = load { { ptr, ptr, ptr }, ptr }, ptr @__sx_default_context, align 8
@@ -4905,7 +4905,7 @@ entry:
%allocaN = alloca i32, align 4
store i32 %callN, ptr %allocaN, align 4
%loadN = load i32, ptr %allocaN, align 4
call void @print__ct_s9619ba29713d8564__pack_s32(ptr @__sx_default_context, i32 %loadN)
call void @print__ct_s9619ba29713d8564__pack_i32(ptr @__sx_default_context, i32 %loadN)
%allocaN = alloca { i32 }, align 8
store { i32 } { i32 50 }, ptr %allocaN, align 4
%loadN = load { { ptr, ptr, ptr }, ptr }, ptr @__sx_default_context, align 8
@@ -4920,7 +4920,7 @@ entry:
%allocaN = alloca i32, align 4
store i32 %callN, ptr %allocaN, align 4
%loadN = load i32, ptr %allocaN, align 4
call void @print__ct_s299c24782c1d67ee__pack_s32(ptr @__sx_default_context, i32 %loadN)
call void @print__ct_s299c24782c1d67ee__pack_i32(ptr @__sx_default_context, i32 %loadN)
%allocaN = alloca { i32 }, align 8
store { i32 } { i32 5 }, ptr %allocaN, align 4
%allocaN = alloca ptr, align 8
@@ -4932,7 +4932,7 @@ entry:
call void @use_adder__3(ptr @__sx_default_context, { ptr, ptr, ptr } %siN)
%loadN = load { i32 }, ptr %allocaN, align 4
%sgN = extractvalue { i32 } %loadN, 0
call void @print__ct_sf40ed4735476a9ee__pack_s32(ptr @__sx_default_context, i32 %sgN)
call void @print__ct_sf40ed4735476a9ee__pack_i32(ptr @__sx_default_context, i32 %sgN)
ret i32 0
}
@@ -5022,7 +5022,7 @@ entry:
}
; Function Attrs: nounwind
define internal void @print__ct_sbdf493528d053170__pack_s32(ptr %0, i32 %1) #0 {
define internal void @print__ct_sbdf493528d053170__pack_i32(ptr %0, i32 %1) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.664, i64 8 }, ptr %alloca, align 8
@@ -5030,8 +5030,8 @@ entry:
store i32 %1, ptr %allocaN, align 4
%allocaN = alloca [1 x { i64, i64 }], align 8
%load = load i32, ptr %allocaN, align 4
%sN = sext i32 %load to i64
%ba.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %load to i64
%ba.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
%igp.ptr = getelementptr { i64, i64 }, ptr %allocaN, i64 0
store { i64, i64 } %ba.val, ptr %igp.ptr, align 8
%allocaN = alloca { ptr, i64 }, align 8
@@ -5049,8 +5049,8 @@ entry:
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i32, ptr %allocaN, align 4
%sN = sext i32 %loadN to i64
%ba.val13 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %loadN to i64
%ba.val13 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
%callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val13)
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
@@ -5088,7 +5088,7 @@ entry:
}
; Function Attrs: nounwind
define internal void @print__ct_s35bfc3f99c7ed027__pack_s32(ptr %0, i32 %1) #0 {
define internal void @print__ct_s35bfc3f99c7ed027__pack_i32(ptr %0, i32 %1) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.667, i64 8 }, ptr %alloca, align 8
@@ -5096,8 +5096,8 @@ entry:
store i32 %1, ptr %allocaN, align 4
%allocaN = alloca [1 x { i64, i64 }], align 8
%load = load i32, ptr %allocaN, align 4
%sN = sext i32 %load to i64
%ba.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %load to i64
%ba.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
%igp.ptr = getelementptr { i64, i64 }, ptr %allocaN, i64 0
store { i64, i64 } %ba.val, ptr %igp.ptr, align 8
%allocaN = alloca { ptr, i64 }, align 8
@@ -5115,8 +5115,8 @@ entry:
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i32, ptr %allocaN, align 4
%sN = sext i32 %loadN to i64
%ba.val13 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %loadN to i64
%ba.val13 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
%callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val13)
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
@@ -5166,7 +5166,7 @@ entry:
}
; Function Attrs: nounwind
define internal void @print__ct_s9619ba29713d8564__pack_s32(ptr %0, i32 %1) #0 {
define internal void @print__ct_s9619ba29713d8564__pack_i32(ptr %0, i32 %1) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.670, i64 8 }, ptr %alloca, align 8
@@ -5174,8 +5174,8 @@ entry:
store i32 %1, ptr %allocaN, align 4
%allocaN = alloca [1 x { i64, i64 }], align 8
%load = load i32, ptr %allocaN, align 4
%sN = sext i32 %load to i64
%ba.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %load to i64
%ba.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
%igp.ptr = getelementptr { i64, i64 }, ptr %allocaN, i64 0
store { i64, i64 } %ba.val, ptr %igp.ptr, align 8
%allocaN = alloca { ptr, i64 }, align 8
@@ -5193,8 +5193,8 @@ entry:
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i32, ptr %allocaN, align 4
%sN = sext i32 %loadN to i64
%ba.val13 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %loadN to i64
%ba.val13 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
%callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val13)
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
@@ -5238,7 +5238,7 @@ entry:
}
; Function Attrs: nounwind
define internal void @print__ct_s299c24782c1d67ee__pack_s32(ptr %0, i32 %1) #0 {
define internal void @print__ct_s299c24782c1d67ee__pack_i32(ptr %0, i32 %1) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.673, i64 8 }, ptr %alloca, align 8
@@ -5246,8 +5246,8 @@ entry:
store i32 %1, ptr %allocaN, align 4
%allocaN = alloca [1 x { i64, i64 }], align 8
%load = load i32, ptr %allocaN, align 4
%sN = sext i32 %load to i64
%ba.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %load to i64
%ba.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
%igp.ptr = getelementptr { i64, i64 }, ptr %allocaN, i64 0
store { i64, i64 } %ba.val, ptr %igp.ptr, align 8
%allocaN = alloca { ptr, i64 }, align 8
@@ -5265,8 +5265,8 @@ entry:
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i32, ptr %allocaN, align 4
%sN = sext i32 %loadN to i64
%ba.val13 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %loadN to i64
%ba.val13 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
%callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val13)
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
@@ -5302,7 +5302,7 @@ entry:
}
; Function Attrs: nounwind
define internal void @print__ct_sf40ed4735476a9ee__pack_s32(ptr %0, i32 %1) #0 {
define internal void @print__ct_sf40ed4735476a9ee__pack_i32(ptr %0, i32 %1) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.676, i64 8 }, ptr %alloca, align 8
@@ -5310,8 +5310,8 @@ entry:
store i32 %1, ptr %allocaN, align 4
%allocaN = alloca [1 x { i64, i64 }], align 8
%load = load i32, ptr %allocaN, align 4
%sN = sext i32 %load to i64
%ba.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %load to i64
%ba.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
%igp.ptr = getelementptr { i64, i64 }, ptr %allocaN, i64 0
store { i64, i64 } %ba.val, ptr %igp.ptr, align 8
%allocaN = alloca { ptr, i64 }, align 8
@@ -5329,8 +5329,8 @@ entry:
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i32, ptr %allocaN, align 4
%sN = sext i32 %loadN to i64
%ba.val13 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %loadN to i64
%ba.val13 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
%callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val13)
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
@@ -5430,14 +5430,14 @@ fv.case: ; preds = %if.merge.135
fv.case17: ; preds = %if.merge.135
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.135
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.135
@@ -6133,8 +6133,8 @@ fv.default: ; preds = %if.merge.180
fv.case: ; preds = %if.merge.180
%fv.field = extractvalue { i32 } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
}
@@ -6217,14 +6217,14 @@ fv.case: ; preds = %if.merge.185
fv.case17: ; preds = %if.merge.185
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.185
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.185
@@ -6309,8 +6309,8 @@ fv.default: ; preds = %if.merge.190
fv.case: ; preds = %if.merge.190
%fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case17: ; preds = %if.merge.190
@@ -7654,14 +7654,14 @@ fv.default: ; preds = %if.merge.270
fv.case: ; preds = %if.merge.270
%fv.field = extractvalue { i32, i32 } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case17: ; preds = %if.merge.270
%fv.field18 = extractvalue { i32, i32 } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val20 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val20 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
}
@@ -8031,8 +8031,8 @@ fv.default: ; preds = %if.merge.295
fv.case: ; preds = %if.merge.295
%fv.field = extractvalue { i32 } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
}
@@ -8185,8 +8185,8 @@ fv.default: ; preds = %if.merge.305
fv.case: ; preds = %if.merge.305
%fv.field = extractvalue { i32 } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
}
@@ -8464,7 +8464,7 @@ if.merge.322: ; preds = %if.then.321, %entry
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %1) #0 {
entry:
%alloca = alloca [4 x i64], align 8
%ig.tmp = alloca [4 x i64], align 8
@@ -8567,7 +8567,7 @@ if.merge.341: ; preds = %if.then.340, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %1) #0 {
entry:
%alloca = alloca [8 x i64], align 8
%ig.tmp = alloca [8 x i64], align 8
@@ -8668,7 +8668,7 @@ if.merge.351: ; preds = %if.then.350, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %1) #0 {
entry:
%alloca = alloca [64 x i64], align 8
%ig.tmp = alloca [64 x i64], align 8
@@ -9370,7 +9370,7 @@ if.merge.481: ; preds = %if.else.480, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8
@@ -9620,7 +9620,7 @@ if.merge.508: ; preds = %if.else.507, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8

View File

@@ -25,10 +25,10 @@
@tag_names = private constant [14 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.114, i64 8 }, { ptr, i64 } { ptr @tag.str.115, i64 2 }, { ptr, i64 } { ptr @tag.str.116, i64 15 }, { ptr, i64 } { ptr @tag.str.117, i64 13 }, { ptr, i64 } { ptr @tag.str.118, i64 9 }, { ptr, i64 } { ptr @tag.str.119, i64 9 }, { ptr, i64 } { ptr @tag.str.120, i64 15 }, { ptr, i64 } { ptr @tag.str.121, i64 14 }, { ptr, i64 } { ptr @tag.str.122, i64 14 }, { ptr, i64 } { ptr @tag.str.123, i64 11 }, { ptr, i64 } { ptr @tag.str.124, i64 12 }, { ptr, i64 } { ptr @tag.str.125, i64 15 }, { ptr, i64 } { ptr @tag.str.126, i64 12 }]
@tn.str = private constant [13 x i8] c"<unresolved>\00"
@tn.str.127 = private constant [5 x i8] c"bool\00"
@tn.str.128 = private constant [3 x i8] c"s8\00"
@tn.str.129 = private constant [4 x i8] c"s16\00"
@tn.str.130 = private constant [4 x i8] c"s32\00"
@tn.str.131 = private constant [4 x i8] c"s64\00"
@tn.str.128 = private constant [3 x i8] c"i8\00"
@tn.str.129 = private constant [4 x i8] c"i16\00"
@tn.str.130 = private constant [4 x i8] c"i32\00"
@tn.str.131 = private constant [4 x i8] c"i64\00"
@tn.str.132 = private constant [3 x i8] c"u8\00"
@tn.str.133 = private constant [4 x i8] c"u16\00"
@tn.str.134 = private constant [4 x i8] c"u32\00"
@@ -45,7 +45,7 @@
@tn.str.145 = private constant [16 x i8] c"Source_Location\00"
@tn.str.146 = private constant [10 x i8] c"Allocator\00"
@tn.str.147 = private constant [8 x i8] c"Context\00"
@tn.str.148 = private constant [7 x i8] c"[4]s64\00"
@tn.str.148 = private constant [7 x i8] c"[4]i64\00"
@tn.str.149 = private constant [9 x i8] c"[]string\00"
@tn.str.150 = private constant [11 x i8] c"CAllocator\00"
@tn.str.151 = private constant [12 x i8] c"*CAllocator\00"
@@ -70,7 +70,7 @@
@tn.str.170 = private constant [4 x i8] c"*u8\00"
@tn.str.171 = private constant [14 x i8] c"ProcessResult\00"
@tn.str.172 = private constant [15 x i8] c"?ProcessResult\00"
@tn.str.173 = private constant [5 x i8] c"*s32\00"
@tn.str.173 = private constant [5 x i8] c"*i32\00"
@tn.str.174 = private constant [9 x i8] c"SockAddr\00"
@tn.str.175 = private constant [10 x i8] c"*SockAddr\00"
@tn.str.176 = private constant [5 x i8] c"*u32\00"
@@ -86,9 +86,9 @@
@tn.str.186 = private constant [5 x i8] c"[]u8\00"
@tn.str.187 = private constant [5 x i8] c"Sink\00"
@tn.str.188 = private constant [6 x i8] c"*Sink\00"
@tn.str.189 = private constant [17 x i8] c"(s64, JsonError)\00"
@tn.str.189 = private constant [17 x i8] c"(i64, JsonError)\00"
@tn.str.190 = private constant [15 x i8] c"JsonParseError\00"
@tn.str.191 = private constant [22 x i8] c"(s64, JsonParseError)\00"
@tn.str.191 = private constant [22 x i8] c"(i64, JsonParseError)\00"
@tn.str.192 = private constant [7 x i8] c"Parser\00"
@tn.str.193 = private constant [8 x i8] c"*Parser\00"
@tn.str.194 = private constant [25 x i8] c"(string, JsonParseError)\00"
@@ -97,7 +97,7 @@
@tn.str.197 = private constant [13 x i8] c"Architecture\00"
@tn.str.198 = private constant [13 x i8] c"BuildOptions\00"
@tn.str.199 = private constant [11 x i8] c"() -> bool\00"
@tn.str.200 = private constant [5 x i8] c"*s64\00"
@tn.str.200 = private constant [5 x i8] c"*i64\00"
@tn.str.201 = private constant [9 x i8] c"CliError\00"
@tn.str.202 = private constant [9 x i8] c"FlagSpec\00"
@tn.str.203 = private constant [11 x i8] c"[]FlagSpec\00"
@@ -110,12 +110,12 @@
@tn.str.210 = private constant [19 x i8] c"(Parsed, CliError)\00"
@tn.str.211 = private constant [10 x i8] c"[]Command\00"
@tn.str.212 = private constant [6 x i8] c"*Diag\00"
@tn.str.213 = private constant [7 x i8] c"[8]s64\00"
@tn.str.213 = private constant [7 x i8] c"[8]i64\00"
@tn.str.214 = private constant [7 x i8] c"[64]u8\00"
@tn.str.215 = private constant [7 x i8] c"Sha256\00"
@tn.str.216 = private constant [8 x i8] c"*Sha256\00"
@tn.str.217 = private constant [8 x i8] c"?[64]u8\00"
@tn.str.218 = private constant [8 x i8] c"[64]s64\00"
@tn.str.218 = private constant [8 x i8] c"[64]i64\00"
@tn.str.219 = private constant [13 x i8] c"**CAllocator\00"
@tn.str.220 = private constant [7 x i8] c"**void\00"
@tn.str.221 = private constant [6 x i8] c"[]Any\00"
@@ -131,7 +131,7 @@
@tn.str.231 = private constant [8 x i8] c"*[2]Any\00"
@tn.str.232 = private constant [7 x i8] c"[5]Any\00"
@tn.str.233 = private constant [8 x i8] c"*[5]Any\00"
@tn.str.234 = private constant [8 x i8] c"*[4]s64\00"
@tn.str.234 = private constant [8 x i8] c"*[4]i64\00"
@tn.str.235 = private constant [5 x i8] c"*f64\00"
@tn.str.236 = private constant [17 x i8] c"*Source_Location\00"
@tn.str.237 = private constant [11 x i8] c"*Allocator\00"
@@ -149,9 +149,9 @@
@tn.str.249 = private constant [17 x i8] c"*OperatingSystem\00"
@tn.str.250 = private constant [14 x i8] c"*Architecture\00"
@tn.str.251 = private constant [15 x i8] c"*[16]FlagValue\00"
@tn.str.252 = private constant [8 x i8] c"*[8]s64\00"
@tn.str.252 = private constant [8 x i8] c"*[8]i64\00"
@tn.str.253 = private constant [8 x i8] c"*[64]u8\00"
@tn.str.254 = private constant [9 x i8] c"*[64]s64\00"
@tn.str.254 = private constant [9 x i8] c"*[64]i64\00"
@tn.str.255 = private constant [10 x i8] c"*[]string\00"
@tn.str.256 = private constant [6 x i8] c"*[]u8\00"
@tn.str.257 = private constant [12 x i8] c"*[]FlagSpec\00"
@@ -164,7 +164,7 @@
@tn.str.264 = private constant [20 x i8] c"**TrackingAllocator\00"
@tn.str.265 = private constant [7 x i8] c"**File\00"
@tn.str.266 = private constant [5 x i8] c"**u8\00"
@tn.str.267 = private constant [6 x i8] c"**s32\00"
@tn.str.267 = private constant [6 x i8] c"**i32\00"
@tn.str.268 = private constant [11 x i8] c"**SockAddr\00"
@tn.str.269 = private constant [6 x i8] c"**u32\00"
@tn.str.270 = private constant [10 x i8] c"*[*]Value\00"
@@ -173,7 +173,7 @@
@tn.str.273 = private constant [9 x i8] c"**Object\00"
@tn.str.274 = private constant [7 x i8] c"**Sink\00"
@tn.str.275 = private constant [9 x i8] c"**Parser\00"
@tn.str.276 = private constant [6 x i8] c"**s64\00"
@tn.str.276 = private constant [6 x i8] c"**i64\00"
@tn.str.277 = private constant [9 x i8] c"**Parsed\00"
@tn.str.278 = private constant [7 x i8] c"**Diag\00"
@tn.str.279 = private constant [9 x i8] c"**Sha256\00"
@@ -555,7 +555,7 @@
@str.652 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1
@str.653 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.654 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.655 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1
@str.655 = private unnamed_addr constant [5 x i8] c"*i32\00", align 1
@str.656 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.657 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.658 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1
@@ -582,7 +582,7 @@
@str.679 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1
@str.680 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.681 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.682 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1
@str.682 = private unnamed_addr constant [5 x i8] c"*i64\00", align 1
@str.683 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.684 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.685 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1
@@ -1971,7 +1971,7 @@ dispatch.case.265: ; preds = %match.arm.47
%ua.raw174 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr175 = inttoptr i64 %ua.raw174 to ptr
%ua.load176 = load [4 x i64], ptr %ua.ptr175, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load176)
%callN = call { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %ua.load176)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.263
@@ -1987,7 +1987,7 @@ dispatch.case.267: ; preds = %match.arm.47
%ua.raw182 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr183 = inttoptr i64 %ua.raw182 to ptr
%ua.load184 = load [8 x i64], ptr %ua.ptr183, align 8
%callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load184)
%callN = call { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %ua.load184)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.263
@@ -2003,7 +2003,7 @@ dispatch.case.269: ; preds = %match.arm.47
%ua.raw190 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr191 = inttoptr i64 %ua.raw190 to ptr
%ua.load192 = load [64 x i64], ptr %ua.ptr191, align 8
%callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load192)
%callN = call { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %ua.load192)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.263
@@ -2170,7 +2170,7 @@ dispatch.case.362: ; preds = %match.arm.49
dispatch.case.363: ; preds = %match.arm.49
%ua.raw261 = extractvalue { i64, i64 } %loadN, 1
%iNp262 = inttoptr i64 %ua.raw261 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp262)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %iNp262)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.351
@@ -2233,7 +2233,7 @@ dispatch.case.371: ; preds = %match.arm.49
dispatch.case.372: ; preds = %match.arm.49
%ua.raw288 = extractvalue { i64, i64 } %loadN, 1
%iNp289 = inttoptr i64 %ua.raw288 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp289)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %iNp289)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.351
@@ -3500,13 +3500,13 @@ entry:
%call = call i64 @count__pack(ptr @__sx_default_context)
%alloca = alloca i64, align 8
store i64 %call, ptr %alloca, align 8
%callN = call i64 @count__pack_s64(ptr @__sx_default_context, i64 1)
%callN = call i64 @count__pack_i64(ptr @__sx_default_context, i64 1)
%allocaN = alloca i64, align 8
store i64 %callN, ptr %allocaN, align 8
%callN = call i64 @count__pack_s64(ptr @__sx_default_context, i64 2)
%callN = call i64 @count__pack_i64(ptr @__sx_default_context, i64 2)
%allocaN = alloca i64, align 8
store i64 %callN, ptr %allocaN, align 8
%callN = call i64 @count__pack_s64_s64_s64(ptr @__sx_default_context, i64 1, i64 2, i64 3)
%callN = call i64 @count__pack_i64_i64_i64(ptr @__sx_default_context, i64 1, i64 2, i64 3)
%allocaN = alloca i64, align 8
store i64 %callN, ptr %allocaN, align 8
%callN = call i64 @count__pack_string_bool(ptr @__sx_default_context, { ptr, i64 } { ptr @str.315, i64 1 }, i1 true)
@@ -3517,7 +3517,7 @@ entry:
%loadN = load i64, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
%loadN = load i64, ptr %allocaN, align 8
call void @print__ct_s9aced10c9b3e5318__pack_s64_s64_s64_s64_s64(ptr @__sx_default_context, i64 %load, i64 %loadN, i64 %loadN, i64 %loadN, i64 %loadN)
call void @print__ct_s9aced10c9b3e5318__pack_i64_i64_i64_i64_i64(ptr @__sx_default_context, i64 %load, i64 %loadN, i64 %loadN, i64 %loadN, i64 %loadN)
ret i32 0
}
@@ -3547,7 +3547,7 @@ entry:
}
; Function Attrs: nounwind
define internal i64 @count__pack_s64(ptr %0, i64 %1) #0 {
define internal i64 @count__pack_i64(ptr %0, i64 %1) #0 {
entry:
%alloca = alloca i64, align 8
store i64 %1, ptr %alloca, align 8
@@ -3566,7 +3566,7 @@ entry:
}
; Function Attrs: nounwind
define internal i64 @count__pack_s64_s64_s64(ptr %0, i64 %1, i64 %2, i64 %3) #0 {
define internal i64 @count__pack_i64_i64_i64(ptr %0, i64 %1, i64 %2, i64 %3) #0 {
entry:
%alloca = alloca i64, align 8
store i64 %1, ptr %alloca, align 8
@@ -3626,7 +3626,7 @@ entry:
}
; Function Attrs: nounwind
define internal void @print__ct_s9aced10c9b3e5318__pack_s64_s64_s64_s64_s64(ptr %0, i64 %1, i64 %2, i64 %3, i64 %4, i64 %5) #0 {
define internal void @print__ct_s9aced10c9b3e5318__pack_i64_i64_i64_i64_i64(ptr %0, i64 %1, i64 %2, i64 %3, i64 %4, i64 %5) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.316, i64 15 }, ptr %alloca, align 8
@@ -3815,14 +3815,14 @@ fv.case: ; preds = %if.merge.125
fv.case17: ; preds = %if.merge.125
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.125
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.125
@@ -4518,8 +4518,8 @@ fv.default: ; preds = %if.merge.170
fv.case: ; preds = %if.merge.170
%fv.field = extractvalue { i32 } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
}
@@ -4602,14 +4602,14 @@ fv.case: ; preds = %if.merge.175
fv.case17: ; preds = %if.merge.175
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.175
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.175
@@ -4694,8 +4694,8 @@ fv.default: ; preds = %if.merge.180
fv.case: ; preds = %if.merge.180
%fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case17: ; preds = %if.merge.180
@@ -6096,7 +6096,7 @@ if.merge.262: ; preds = %if.then.261, %entry
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %1) #0 {
entry:
%alloca = alloca [4 x i64], align 8
%ig.tmp = alloca [4 x i64], align 8
@@ -6199,7 +6199,7 @@ if.merge.283: ; preds = %if.then.282, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %1) #0 {
entry:
%alloca = alloca [8 x i64], align 8
%ig.tmp = alloca [8 x i64], align 8
@@ -6300,7 +6300,7 @@ if.merge.293: ; preds = %if.then.292, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %1) #0 {
entry:
%alloca = alloca [64 x i64], align 8
%ig.tmp = alloca [64 x i64], align 8
@@ -7109,7 +7109,7 @@ if.merge.428: ; preds = %if.else.427, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8
@@ -7359,7 +7359,7 @@ if.merge.455: ; preds = %if.else.454, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8

View File

@@ -1,5 +1,5 @@
error: pack index 2 out of bounds: 'args' has 1 element
--> /Users/agra/projects/sx/examples/0510-packs-pack-index-oob.sx:14:32
--> examples/0510-packs-pack-index-oob.sx:14:32
|
14 | foo :: (..$args) -> $R => args[2];
| ^

View File

@@ -1,5 +1,5 @@
error: pack 'args' must be indexed by a compile-time constant — a pack is comptime-only and has no runtime value
--> /Users/agra/projects/sx/examples/0512-packs-pack-runtime-index.sx:18:24
--> examples/0512-packs-pack-runtime-index.sx:18:24
|
18 | x : Any = args[i]; // ERROR: runtime index into a comptime-only pack
| ^

View File

@@ -25,10 +25,10 @@
@tag_names = private constant [14 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.114, i64 8 }, { ptr, i64 } { ptr @tag.str.115, i64 2 }, { ptr, i64 } { ptr @tag.str.116, i64 15 }, { ptr, i64 } { ptr @tag.str.117, i64 13 }, { ptr, i64 } { ptr @tag.str.118, i64 9 }, { ptr, i64 } { ptr @tag.str.119, i64 9 }, { ptr, i64 } { ptr @tag.str.120, i64 15 }, { ptr, i64 } { ptr @tag.str.121, i64 14 }, { ptr, i64 } { ptr @tag.str.122, i64 14 }, { ptr, i64 } { ptr @tag.str.123, i64 11 }, { ptr, i64 } { ptr @tag.str.124, i64 12 }, { ptr, i64 } { ptr @tag.str.125, i64 15 }, { ptr, i64 } { ptr @tag.str.126, i64 12 }]
@tn.str = private constant [13 x i8] c"<unresolved>\00"
@tn.str.127 = private constant [5 x i8] c"bool\00"
@tn.str.128 = private constant [3 x i8] c"s8\00"
@tn.str.129 = private constant [4 x i8] c"s16\00"
@tn.str.130 = private constant [4 x i8] c"s32\00"
@tn.str.131 = private constant [4 x i8] c"s64\00"
@tn.str.128 = private constant [3 x i8] c"i8\00"
@tn.str.129 = private constant [4 x i8] c"i16\00"
@tn.str.130 = private constant [4 x i8] c"i32\00"
@tn.str.131 = private constant [4 x i8] c"i64\00"
@tn.str.132 = private constant [3 x i8] c"u8\00"
@tn.str.133 = private constant [4 x i8] c"u16\00"
@tn.str.134 = private constant [4 x i8] c"u32\00"
@@ -45,7 +45,7 @@
@tn.str.145 = private constant [16 x i8] c"Source_Location\00"
@tn.str.146 = private constant [10 x i8] c"Allocator\00"
@tn.str.147 = private constant [8 x i8] c"Context\00"
@tn.str.148 = private constant [7 x i8] c"[4]s64\00"
@tn.str.148 = private constant [7 x i8] c"[4]i64\00"
@tn.str.149 = private constant [9 x i8] c"[]string\00"
@tn.str.150 = private constant [11 x i8] c"CAllocator\00"
@tn.str.151 = private constant [12 x i8] c"*CAllocator\00"
@@ -70,7 +70,7 @@
@tn.str.170 = private constant [4 x i8] c"*u8\00"
@tn.str.171 = private constant [14 x i8] c"ProcessResult\00"
@tn.str.172 = private constant [15 x i8] c"?ProcessResult\00"
@tn.str.173 = private constant [5 x i8] c"*s32\00"
@tn.str.173 = private constant [5 x i8] c"*i32\00"
@tn.str.174 = private constant [9 x i8] c"SockAddr\00"
@tn.str.175 = private constant [10 x i8] c"*SockAddr\00"
@tn.str.176 = private constant [5 x i8] c"*u32\00"
@@ -86,9 +86,9 @@
@tn.str.186 = private constant [5 x i8] c"[]u8\00"
@tn.str.187 = private constant [5 x i8] c"Sink\00"
@tn.str.188 = private constant [6 x i8] c"*Sink\00"
@tn.str.189 = private constant [17 x i8] c"(s64, JsonError)\00"
@tn.str.189 = private constant [17 x i8] c"(i64, JsonError)\00"
@tn.str.190 = private constant [15 x i8] c"JsonParseError\00"
@tn.str.191 = private constant [22 x i8] c"(s64, JsonParseError)\00"
@tn.str.191 = private constant [22 x i8] c"(i64, JsonParseError)\00"
@tn.str.192 = private constant [7 x i8] c"Parser\00"
@tn.str.193 = private constant [8 x i8] c"*Parser\00"
@tn.str.194 = private constant [25 x i8] c"(string, JsonParseError)\00"
@@ -97,7 +97,7 @@
@tn.str.197 = private constant [13 x i8] c"Architecture\00"
@tn.str.198 = private constant [13 x i8] c"BuildOptions\00"
@tn.str.199 = private constant [11 x i8] c"() -> bool\00"
@tn.str.200 = private constant [5 x i8] c"*s64\00"
@tn.str.200 = private constant [5 x i8] c"*i64\00"
@tn.str.201 = private constant [9 x i8] c"CliError\00"
@tn.str.202 = private constant [9 x i8] c"FlagSpec\00"
@tn.str.203 = private constant [11 x i8] c"[]FlagSpec\00"
@@ -110,12 +110,12 @@
@tn.str.210 = private constant [19 x i8] c"(Parsed, CliError)\00"
@tn.str.211 = private constant [10 x i8] c"[]Command\00"
@tn.str.212 = private constant [6 x i8] c"*Diag\00"
@tn.str.213 = private constant [7 x i8] c"[8]s64\00"
@tn.str.213 = private constant [7 x i8] c"[8]i64\00"
@tn.str.214 = private constant [7 x i8] c"[64]u8\00"
@tn.str.215 = private constant [7 x i8] c"Sha256\00"
@tn.str.216 = private constant [8 x i8] c"*Sha256\00"
@tn.str.217 = private constant [8 x i8] c"?[64]u8\00"
@tn.str.218 = private constant [8 x i8] c"[64]s64\00"
@tn.str.218 = private constant [8 x i8] c"[64]i64\00"
@tn.str.219 = private constant [13 x i8] c"**CAllocator\00"
@tn.str.220 = private constant [7 x i8] c"**void\00"
@tn.str.221 = private constant [6 x i8] c"[]Any\00"
@@ -127,7 +127,7 @@
@tn.str.227 = private constant [7 x i8] c"[1]Any\00"
@tn.str.228 = private constant [8 x i8] c"*[1]Any\00"
@tn.str.229 = private constant [6 x i8] c"*bool\00"
@tn.str.230 = private constant [8 x i8] c"*[4]s64\00"
@tn.str.230 = private constant [8 x i8] c"*[4]i64\00"
@tn.str.231 = private constant [5 x i8] c"*f64\00"
@tn.str.232 = private constant [17 x i8] c"*Source_Location\00"
@tn.str.233 = private constant [11 x i8] c"*Allocator\00"
@@ -145,9 +145,9 @@
@tn.str.245 = private constant [17 x i8] c"*OperatingSystem\00"
@tn.str.246 = private constant [14 x i8] c"*Architecture\00"
@tn.str.247 = private constant [15 x i8] c"*[16]FlagValue\00"
@tn.str.248 = private constant [8 x i8] c"*[8]s64\00"
@tn.str.248 = private constant [8 x i8] c"*[8]i64\00"
@tn.str.249 = private constant [8 x i8] c"*[64]u8\00"
@tn.str.250 = private constant [9 x i8] c"*[64]s64\00"
@tn.str.250 = private constant [9 x i8] c"*[64]i64\00"
@tn.str.251 = private constant [10 x i8] c"*[]string\00"
@tn.str.252 = private constant [6 x i8] c"*[]u8\00"
@tn.str.253 = private constant [12 x i8] c"*[]FlagSpec\00"
@@ -160,7 +160,7 @@
@tn.str.260 = private constant [20 x i8] c"**TrackingAllocator\00"
@tn.str.261 = private constant [7 x i8] c"**File\00"
@tn.str.262 = private constant [5 x i8] c"**u8\00"
@tn.str.263 = private constant [6 x i8] c"**s32\00"
@tn.str.263 = private constant [6 x i8] c"**i32\00"
@tn.str.264 = private constant [11 x i8] c"**SockAddr\00"
@tn.str.265 = private constant [6 x i8] c"**u32\00"
@tn.str.266 = private constant [10 x i8] c"*[*]Value\00"
@@ -169,7 +169,7 @@
@tn.str.269 = private constant [9 x i8] c"**Object\00"
@tn.str.270 = private constant [7 x i8] c"**Sink\00"
@tn.str.271 = private constant [9 x i8] c"**Parser\00"
@tn.str.272 = private constant [6 x i8] c"**s64\00"
@tn.str.272 = private constant [6 x i8] c"**i64\00"
@tn.str.273 = private constant [9 x i8] c"**Parsed\00"
@tn.str.274 = private constant [7 x i8] c"**Diag\00"
@tn.str.275 = private constant [9 x i8] c"**Sha256\00"
@@ -542,7 +542,7 @@
@str.639 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1
@str.640 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.641 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.642 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1
@str.642 = private unnamed_addr constant [5 x i8] c"*i32\00", align 1
@str.643 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.644 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.645 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1
@@ -569,7 +569,7 @@
@str.666 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1
@str.667 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.668 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.669 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1
@str.669 = private unnamed_addr constant [5 x i8] c"*i64\00", align 1
@str.670 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.671 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.672 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1
@@ -1944,7 +1944,7 @@ dispatch.case.265: ; preds = %match.arm.47
%ua.raw174 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr175 = inttoptr i64 %ua.raw174 to ptr
%ua.load176 = load [4 x i64], ptr %ua.ptr175, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load176)
%callN = call { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %ua.load176)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.263
@@ -1960,7 +1960,7 @@ dispatch.case.267: ; preds = %match.arm.47
%ua.raw182 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr183 = inttoptr i64 %ua.raw182 to ptr
%ua.load184 = load [8 x i64], ptr %ua.ptr183, align 8
%callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load184)
%callN = call { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %ua.load184)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.263
@@ -1976,7 +1976,7 @@ dispatch.case.269: ; preds = %match.arm.47
%ua.raw190 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr191 = inttoptr i64 %ua.raw190 to ptr
%ua.load192 = load [64 x i64], ptr %ua.ptr191, align 8
%callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load192)
%callN = call { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %ua.load192)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.263
@@ -2127,7 +2127,7 @@ dispatch.case.350: ; preds = %match.arm.49
dispatch.case.351: ; preds = %match.arm.49
%ua.raw253 = extractvalue { i64, i64 } %loadN, 1
%iNp254 = inttoptr i64 %ua.raw253 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp254)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %iNp254)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.339
@@ -2190,7 +2190,7 @@ dispatch.case.359: ; preds = %match.arm.49
dispatch.case.360: ; preds = %match.arm.49
%ua.raw280 = extractvalue { i64, i64 } %loadN, 1
%iNp281 = inttoptr i64 %ua.raw280 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp281)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %iNp281)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.339
@@ -3440,10 +3440,10 @@ declare void @assert.107(ptr, i1) #0
; Function Attrs: nounwind
define i32 @main() #0 {
entry:
%call = call i64 @tagged__ct_7__pack_s64_s64_s64(ptr @__sx_default_context, i64 1, i64 2, i64 3)
call void @print__ct_sbc6305862a3a863d__pack_s64(ptr @__sx_default_context, i64 %call)
%call = call i64 @tagged__ct_7__pack_i64_i64_i64(ptr @__sx_default_context, i64 1, i64 2, i64 3)
call void @print__ct_sbc6305862a3a863d__pack_i64(ptr @__sx_default_context, i64 %call)
%callN = call i64 @tagged__ct_9__pack(ptr @__sx_default_context)
call void @print__ct_sbc6305862a3a863d__pack_s64(ptr @__sx_default_context, i64 %callN)
call void @print__ct_sbc6305862a3a863d__pack_i64(ptr @__sx_default_context, i64 %callN)
ret i32 0
}
@@ -3462,7 +3462,7 @@ entry:
}
; Function Attrs: nounwind
define internal i64 @tagged__ct_7__pack_s64_s64_s64(ptr %0, i64 %1, i64 %2, i64 %3) #0 {
define internal i64 @tagged__ct_7__pack_i64_i64_i64(ptr %0, i64 %1, i64 %2, i64 %3) #0 {
entry:
%alloca = alloca i64, align 8
store i64 7, ptr %alloca, align 8
@@ -3498,7 +3498,7 @@ entry:
}
; Function Attrs: nounwind
define internal void @print__ct_sbc6305862a3a863d__pack_s64(ptr %0, i64 %1) #0 {
define internal void @print__ct_sbc6305862a3a863d__pack_i64(ptr %0, i64 %1) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.309, i64 3 }, ptr %alloca, align 8
@@ -3635,14 +3635,14 @@ fv.case: ; preds = %if.merge.125
fv.case17: ; preds = %if.merge.125
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.125
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.125
@@ -4338,8 +4338,8 @@ fv.default: ; preds = %if.merge.170
fv.case: ; preds = %if.merge.170
%fv.field = extractvalue { i32 } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
}
@@ -4422,14 +4422,14 @@ fv.case: ; preds = %if.merge.175
fv.case17: ; preds = %if.merge.175
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.175
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.175
@@ -4514,8 +4514,8 @@ fv.default: ; preds = %if.merge.180
fv.case: ; preds = %if.merge.180
%fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case17: ; preds = %if.merge.180
@@ -5916,7 +5916,7 @@ if.merge.262: ; preds = %if.then.261, %entry
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %1) #0 {
entry:
%alloca = alloca [4 x i64], align 8
%ig.tmp = alloca [4 x i64], align 8
@@ -6019,7 +6019,7 @@ if.merge.281: ; preds = %if.then.280, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %1) #0 {
entry:
%alloca = alloca [8 x i64], align 8
%ig.tmp = alloca [8 x i64], align 8
@@ -6120,7 +6120,7 @@ if.merge.291: ; preds = %if.then.290, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %1) #0 {
entry:
%alloca = alloca [64 x i64], align 8
%ig.tmp = alloca [64 x i64], align 8
@@ -6823,7 +6823,7 @@ if.merge.414: ; preds = %if.else.413, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8
@@ -7073,7 +7073,7 @@ if.merge.441: ; preds = %if.else.440, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8

View File

@@ -1,8 +1,8 @@
s64 string bool
i64 string bool
true false true false
inline-if folded: same
Allocator/CAllocator: true
Allocator/s64: false
Wrap(s64)/s32: true
Wrap(s64)/bool: false
Wrap(bool)/s32: false
Allocator/i64: false
Wrap(i64)/i32: true
Wrap(i64)/bool: false
Wrap(bool)/i32: false

View File

@@ -25,10 +25,10 @@
@tag_names = private constant [14 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.114, i64 8 }, { ptr, i64 } { ptr @tag.str.115, i64 2 }, { ptr, i64 } { ptr @tag.str.116, i64 15 }, { ptr, i64 } { ptr @tag.str.117, i64 13 }, { ptr, i64 } { ptr @tag.str.118, i64 9 }, { ptr, i64 } { ptr @tag.str.119, i64 9 }, { ptr, i64 } { ptr @tag.str.120, i64 15 }, { ptr, i64 } { ptr @tag.str.121, i64 14 }, { ptr, i64 } { ptr @tag.str.122, i64 14 }, { ptr, i64 } { ptr @tag.str.123, i64 11 }, { ptr, i64 } { ptr @tag.str.124, i64 12 }, { ptr, i64 } { ptr @tag.str.125, i64 15 }, { ptr, i64 } { ptr @tag.str.126, i64 12 }]
@tn.str = private constant [13 x i8] c"<unresolved>\00"
@tn.str.127 = private constant [5 x i8] c"bool\00"
@tn.str.128 = private constant [3 x i8] c"s8\00"
@tn.str.129 = private constant [4 x i8] c"s16\00"
@tn.str.130 = private constant [4 x i8] c"s32\00"
@tn.str.131 = private constant [4 x i8] c"s64\00"
@tn.str.128 = private constant [3 x i8] c"i8\00"
@tn.str.129 = private constant [4 x i8] c"i16\00"
@tn.str.130 = private constant [4 x i8] c"i32\00"
@tn.str.131 = private constant [4 x i8] c"i64\00"
@tn.str.132 = private constant [3 x i8] c"u8\00"
@tn.str.133 = private constant [4 x i8] c"u16\00"
@tn.str.134 = private constant [4 x i8] c"u32\00"
@@ -45,7 +45,7 @@
@tn.str.145 = private constant [16 x i8] c"Source_Location\00"
@tn.str.146 = private constant [10 x i8] c"Allocator\00"
@tn.str.147 = private constant [8 x i8] c"Context\00"
@tn.str.148 = private constant [7 x i8] c"[4]s64\00"
@tn.str.148 = private constant [7 x i8] c"[4]i64\00"
@tn.str.149 = private constant [9 x i8] c"[]string\00"
@tn.str.150 = private constant [11 x i8] c"CAllocator\00"
@tn.str.151 = private constant [12 x i8] c"*CAllocator\00"
@@ -70,7 +70,7 @@
@tn.str.170 = private constant [4 x i8] c"*u8\00"
@tn.str.171 = private constant [14 x i8] c"ProcessResult\00"
@tn.str.172 = private constant [15 x i8] c"?ProcessResult\00"
@tn.str.173 = private constant [5 x i8] c"*s32\00"
@tn.str.173 = private constant [5 x i8] c"*i32\00"
@tn.str.174 = private constant [9 x i8] c"SockAddr\00"
@tn.str.175 = private constant [10 x i8] c"*SockAddr\00"
@tn.str.176 = private constant [5 x i8] c"*u32\00"
@@ -86,9 +86,9 @@
@tn.str.186 = private constant [5 x i8] c"[]u8\00"
@tn.str.187 = private constant [5 x i8] c"Sink\00"
@tn.str.188 = private constant [6 x i8] c"*Sink\00"
@tn.str.189 = private constant [17 x i8] c"(s64, JsonError)\00"
@tn.str.189 = private constant [17 x i8] c"(i64, JsonError)\00"
@tn.str.190 = private constant [15 x i8] c"JsonParseError\00"
@tn.str.191 = private constant [22 x i8] c"(s64, JsonParseError)\00"
@tn.str.191 = private constant [22 x i8] c"(i64, JsonParseError)\00"
@tn.str.192 = private constant [7 x i8] c"Parser\00"
@tn.str.193 = private constant [8 x i8] c"*Parser\00"
@tn.str.194 = private constant [25 x i8] c"(string, JsonParseError)\00"
@@ -97,7 +97,7 @@
@tn.str.197 = private constant [13 x i8] c"Architecture\00"
@tn.str.198 = private constant [13 x i8] c"BuildOptions\00"
@tn.str.199 = private constant [11 x i8] c"() -> bool\00"
@tn.str.200 = private constant [5 x i8] c"*s64\00"
@tn.str.200 = private constant [5 x i8] c"*i64\00"
@tn.str.201 = private constant [9 x i8] c"CliError\00"
@tn.str.202 = private constant [9 x i8] c"FlagSpec\00"
@tn.str.203 = private constant [11 x i8] c"[]FlagSpec\00"
@@ -110,12 +110,12 @@
@tn.str.210 = private constant [19 x i8] c"(Parsed, CliError)\00"
@tn.str.211 = private constant [10 x i8] c"[]Command\00"
@tn.str.212 = private constant [6 x i8] c"*Diag\00"
@tn.str.213 = private constant [7 x i8] c"[8]s64\00"
@tn.str.213 = private constant [7 x i8] c"[8]i64\00"
@tn.str.214 = private constant [7 x i8] c"[64]u8\00"
@tn.str.215 = private constant [7 x i8] c"Sha256\00"
@tn.str.216 = private constant [8 x i8] c"*Sha256\00"
@tn.str.217 = private constant [8 x i8] c"?[64]u8\00"
@tn.str.218 = private constant [8 x i8] c"[64]s64\00"
@tn.str.218 = private constant [8 x i8] c"[64]i64\00"
@tn.str.219 = private constant [13 x i8] c"**CAllocator\00"
@tn.str.220 = private constant [7 x i8] c"**void\00"
@tn.str.221 = private constant [6 x i8] c"[]Any\00"
@@ -126,7 +126,7 @@
@tn.str.226 = private constant [8 x i8] c"*string\00"
@tn.str.227 = private constant [6 x i8] c"*bool\00"
@tn.str.228 = private constant [5 x i8] c"*f64\00"
@tn.str.229 = private constant [8 x i8] c"*[4]s64\00"
@tn.str.229 = private constant [8 x i8] c"*[4]i64\00"
@tn.str.230 = private constant [17 x i8] c"*Source_Location\00"
@tn.str.231 = private constant [11 x i8] c"*Allocator\00"
@tn.str.232 = private constant [9 x i8] c"*Context\00"
@@ -143,9 +143,9 @@
@tn.str.243 = private constant [17 x i8] c"*OperatingSystem\00"
@tn.str.244 = private constant [14 x i8] c"*Architecture\00"
@tn.str.245 = private constant [15 x i8] c"*[16]FlagValue\00"
@tn.str.246 = private constant [8 x i8] c"*[8]s64\00"
@tn.str.246 = private constant [8 x i8] c"*[8]i64\00"
@tn.str.247 = private constant [8 x i8] c"*[64]u8\00"
@tn.str.248 = private constant [9 x i8] c"*[64]s64\00"
@tn.str.248 = private constant [9 x i8] c"*[64]i64\00"
@tn.str.249 = private constant [10 x i8] c"*[]string\00"
@tn.str.250 = private constant [6 x i8] c"*[]u8\00"
@tn.str.251 = private constant [12 x i8] c"*[]FlagSpec\00"
@@ -158,7 +158,7 @@
@tn.str.258 = private constant [20 x i8] c"**TrackingAllocator\00"
@tn.str.259 = private constant [7 x i8] c"**File\00"
@tn.str.260 = private constant [5 x i8] c"**u8\00"
@tn.str.261 = private constant [6 x i8] c"**s32\00"
@tn.str.261 = private constant [6 x i8] c"**i32\00"
@tn.str.262 = private constant [11 x i8] c"**SockAddr\00"
@tn.str.263 = private constant [6 x i8] c"**u32\00"
@tn.str.264 = private constant [10 x i8] c"*[*]Value\00"
@@ -167,7 +167,7 @@
@tn.str.267 = private constant [9 x i8] c"**Object\00"
@tn.str.268 = private constant [7 x i8] c"**Sink\00"
@tn.str.269 = private constant [9 x i8] c"**Parser\00"
@tn.str.270 = private constant [6 x i8] c"**s64\00"
@tn.str.270 = private constant [6 x i8] c"**i64\00"
@tn.str.271 = private constant [9 x i8] c"**Parsed\00"
@tn.str.272 = private constant [7 x i8] c"**Diag\00"
@tn.str.273 = private constant [9 x i8] c"**Sha256\00"
@@ -207,13 +207,13 @@
@str.306 = private unnamed_addr constant [5 x i8] c")); \00", align 1
@str.307 = private unnamed_addr constant [3 x i8] c"hi\00", align 1
@str.308 = private unnamed_addr constant [6 x i8] c"hello\00", align 1
@str.309 = private unnamed_addr constant [4 x i8] c"s64\00", align 1
@str.309 = private unnamed_addr constant [4 x i8] c"i64\00", align 1
@str.310 = private unnamed_addr constant [4 x i8] c"{}\0A\00", align 1
@str.311 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
@str.312 = private unnamed_addr constant [4 x i8] c"{}\0A\00", align 1
@str.313 = private unnamed_addr constant [7 x i8] c"string\00", align 1
@str.314 = private unnamed_addr constant [4 x i8] c"f64\00", align 1
@str.315 = private unnamed_addr constant [8 x i8] c"got s64\00", align 1
@str.315 = private unnamed_addr constant [8 x i8] c"got i64\00", align 1
@str.316 = private unnamed_addr constant [11 x i8] c"got string\00", align 1
@str.317 = private unnamed_addr constant [9 x i8] c"got bool\00", align 1
@str.318 = private unnamed_addr constant [10 x i8] c"got other\00", align 1
@@ -546,7 +546,7 @@
@str.643 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1
@str.644 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.645 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.646 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1
@str.646 = private unnamed_addr constant [5 x i8] c"*i32\00", align 1
@str.647 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.648 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.649 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1
@@ -573,7 +573,7 @@
@str.670 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1
@str.671 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.672 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.673 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1
@str.673 = private unnamed_addr constant [5 x i8] c"*i64\00", align 1
@str.674 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.675 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.676 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1
@@ -1946,7 +1946,7 @@ dispatch.case.265: ; preds = %match.arm.47
%ua.raw174 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr175 = inttoptr i64 %ua.raw174 to ptr
%ua.load176 = load [4 x i64], ptr %ua.ptr175, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load176)
%callN = call { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %ua.load176)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.263
@@ -1962,7 +1962,7 @@ dispatch.case.267: ; preds = %match.arm.47
%ua.raw182 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr183 = inttoptr i64 %ua.raw182 to ptr
%ua.load184 = load [8 x i64], ptr %ua.ptr183, align 8
%callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load184)
%callN = call { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %ua.load184)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.263
@@ -1978,7 +1978,7 @@ dispatch.case.269: ; preds = %match.arm.47
%ua.raw190 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr191 = inttoptr i64 %ua.raw190 to ptr
%ua.load192 = load [64 x i64], ptr %ua.ptr191, align 8
%callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load192)
%callN = call { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %ua.load192)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.263
@@ -2121,7 +2121,7 @@ dispatch.case.344: ; preds = %match.arm.49
dispatch.case.345: ; preds = %match.arm.49
%ua.raw249 = extractvalue { i64, i64 } %loadN, 1
%iNp250 = inttoptr i64 %ua.raw249 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp250)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %iNp250)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.333
@@ -2184,7 +2184,7 @@ dispatch.case.353: ; preds = %match.arm.49
dispatch.case.354: ; preds = %match.arm.49
%ua.raw276 = extractvalue { i64, i64 } %loadN, 1
%iNp277 = inttoptr i64 %ua.raw276 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp277)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %iNp277)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.333
@@ -3434,13 +3434,13 @@ declare void @assert.107(ptr, i1) #0
; Function Attrs: nounwind
define i32 @main() #0 {
entry:
%call = call { ptr, i64 } @show__pack_s64(ptr @__sx_default_context, i64 42)
%call = call { ptr, i64 } @show__pack_i64(ptr @__sx_default_context, i64 42)
call void @print__ct_sbc6305862a3a863d__pack_string(ptr @__sx_default_context, { ptr, i64 } %call)
%callN = call { ptr, i64 } @show__pack_string(ptr @__sx_default_context, { ptr, i64 } { ptr @str.307, i64 2 })
call void @print__ct_sbc6305862a3a863d__pack_string(ptr @__sx_default_context, { ptr, i64 } %callN)
%callN = call { ptr, i64 } @show__pack_f64(ptr @__sx_default_context, double 3.140000e+00)
call void @print__ct_sbc6305862a3a863d__pack_string(ptr @__sx_default_context, { ptr, i64 } %callN)
%callN = call { ptr, i64 } @describe__pack_s64(ptr @__sx_default_context, i64 42)
%callN = call { ptr, i64 } @describe__pack_i64(ptr @__sx_default_context, i64 42)
call void @print__ct_sbc6305862a3a863d__pack_string(ptr @__sx_default_context, { ptr, i64 } %callN)
%callN = call { ptr, i64 } @describe__pack_string(ptr @__sx_default_context, { ptr, i64 } { ptr @str.308, i64 5 })
call void @print__ct_sbc6305862a3a863d__pack_string(ptr @__sx_default_context, { ptr, i64 } %callN)
@@ -3466,7 +3466,7 @@ entry:
}
; Function Attrs: nounwind
define internal { ptr, i64 } @show__pack_s64(ptr %0, i64 %1) #0 {
define internal { ptr, i64 } @show__pack_i64(ptr %0, i64 %1) #0 {
entry:
%alloca = alloca i64, align 8
store i64 %1, ptr %alloca, align 8
@@ -3578,7 +3578,7 @@ entry:
}
; Function Attrs: nounwind
define internal { ptr, i64 } @describe__pack_s64(ptr %0, i64 %1) #0 {
define internal { ptr, i64 } @describe__pack_i64(ptr %0, i64 %1) #0 {
entry:
%alloca = alloca i64, align 8
store i64 %1, ptr %alloca, align 8
@@ -3735,14 +3735,14 @@ fv.case: ; preds = %if.merge.125
fv.case17: ; preds = %if.merge.125
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.125
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.125
@@ -4438,8 +4438,8 @@ fv.default: ; preds = %if.merge.170
fv.case: ; preds = %if.merge.170
%fv.field = extractvalue { i32 } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
}
@@ -4522,14 +4522,14 @@ fv.case: ; preds = %if.merge.175
fv.case17: ; preds = %if.merge.175
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.175
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.175
@@ -4614,8 +4614,8 @@ fv.default: ; preds = %if.merge.180
fv.case: ; preds = %if.merge.180
%fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case17: ; preds = %if.merge.180
@@ -6016,7 +6016,7 @@ if.merge.262: ; preds = %if.then.261, %entry
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %1) #0 {
entry:
%alloca = alloca [4 x i64], align 8
%ig.tmp = alloca [4 x i64], align 8
@@ -6119,7 +6119,7 @@ if.merge.280: ; preds = %if.then.279, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %1) #0 {
entry:
%alloca = alloca [8 x i64], align 8
%ig.tmp = alloca [8 x i64], align 8
@@ -6220,7 +6220,7 @@ if.merge.290: ; preds = %if.then.289, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %1) #0 {
entry:
%alloca = alloca [64 x i64], align 8
%ig.tmp = alloca [64 x i64], align 8
@@ -6870,7 +6870,7 @@ if.merge.408: ; preds = %if.else.407, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8
@@ -7120,7 +7120,7 @@ if.merge.435: ; preds = %if.else.434, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8

View File

@@ -1,7 +1,7 @@
s64
i64
string
f64
got s64
got i64
got string
got bool
got other

View File

@@ -1,3 +1,3 @@
s64string
i64string
--- build done ---
rt

View File

@@ -1,6 +1,6 @@
[]
[s64]
[s64, string]
[bool, f64, string, s64]
[i64]
[i64, string]
[bool, f64, string, i64]
--- build done ---
rt

View File

@@ -1,6 +1,6 @@
0: []
1: [s64]
3: [s64, string, bool]
5: [s64, f64, string, bool, s64]
1: [i64]
3: [i64, string, bool]
5: [i64, f64, string, bool, i64]
--- build done ---
rt

View File

@@ -1,5 +1,5 @@
error: pack argument of type 'Naked' does not conform to protocol 'Show'
--> /Users/agra/projects/sx/examples/0527-packs-pack-non-conform.sx:22:30
--> examples/0527-packs-pack-non-conform.sx:22:30
|
22 | print("{}\n", howmany(a, n)); // `n` does not conform to Show
| ^

View File

@@ -25,10 +25,10 @@
@tag_names = private constant [14 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.114, i64 8 }, { ptr, i64 } { ptr @tag.str.115, i64 2 }, { ptr, i64 } { ptr @tag.str.116, i64 15 }, { ptr, i64 } { ptr @tag.str.117, i64 13 }, { ptr, i64 } { ptr @tag.str.118, i64 9 }, { ptr, i64 } { ptr @tag.str.119, i64 9 }, { ptr, i64 } { ptr @tag.str.120, i64 15 }, { ptr, i64 } { ptr @tag.str.121, i64 14 }, { ptr, i64 } { ptr @tag.str.122, i64 14 }, { ptr, i64 } { ptr @tag.str.123, i64 11 }, { ptr, i64 } { ptr @tag.str.124, i64 12 }, { ptr, i64 } { ptr @tag.str.125, i64 15 }, { ptr, i64 } { ptr @tag.str.126, i64 12 }]
@tn.str = private constant [13 x i8] c"<unresolved>\00"
@tn.str.127 = private constant [5 x i8] c"bool\00"
@tn.str.128 = private constant [3 x i8] c"s8\00"
@tn.str.129 = private constant [4 x i8] c"s16\00"
@tn.str.130 = private constant [4 x i8] c"s32\00"
@tn.str.131 = private constant [4 x i8] c"s64\00"
@tn.str.128 = private constant [3 x i8] c"i8\00"
@tn.str.129 = private constant [4 x i8] c"i16\00"
@tn.str.130 = private constant [4 x i8] c"i32\00"
@tn.str.131 = private constant [4 x i8] c"i64\00"
@tn.str.132 = private constant [3 x i8] c"u8\00"
@tn.str.133 = private constant [4 x i8] c"u16\00"
@tn.str.134 = private constant [4 x i8] c"u32\00"
@@ -45,7 +45,7 @@
@tn.str.145 = private constant [16 x i8] c"Source_Location\00"
@tn.str.146 = private constant [10 x i8] c"Allocator\00"
@tn.str.147 = private constant [8 x i8] c"Context\00"
@tn.str.148 = private constant [7 x i8] c"[4]s64\00"
@tn.str.148 = private constant [7 x i8] c"[4]i64\00"
@tn.str.149 = private constant [9 x i8] c"[]string\00"
@tn.str.150 = private constant [11 x i8] c"CAllocator\00"
@tn.str.151 = private constant [12 x i8] c"*CAllocator\00"
@@ -70,7 +70,7 @@
@tn.str.170 = private constant [4 x i8] c"*u8\00"
@tn.str.171 = private constant [14 x i8] c"ProcessResult\00"
@tn.str.172 = private constant [15 x i8] c"?ProcessResult\00"
@tn.str.173 = private constant [5 x i8] c"*s32\00"
@tn.str.173 = private constant [5 x i8] c"*i32\00"
@tn.str.174 = private constant [9 x i8] c"SockAddr\00"
@tn.str.175 = private constant [10 x i8] c"*SockAddr\00"
@tn.str.176 = private constant [5 x i8] c"*u32\00"
@@ -86,9 +86,9 @@
@tn.str.186 = private constant [5 x i8] c"[]u8\00"
@tn.str.187 = private constant [5 x i8] c"Sink\00"
@tn.str.188 = private constant [6 x i8] c"*Sink\00"
@tn.str.189 = private constant [17 x i8] c"(s64, JsonError)\00"
@tn.str.189 = private constant [17 x i8] c"(i64, JsonError)\00"
@tn.str.190 = private constant [15 x i8] c"JsonParseError\00"
@tn.str.191 = private constant [22 x i8] c"(s64, JsonParseError)\00"
@tn.str.191 = private constant [22 x i8] c"(i64, JsonParseError)\00"
@tn.str.192 = private constant [7 x i8] c"Parser\00"
@tn.str.193 = private constant [8 x i8] c"*Parser\00"
@tn.str.194 = private constant [25 x i8] c"(string, JsonParseError)\00"
@@ -97,7 +97,7 @@
@tn.str.197 = private constant [13 x i8] c"Architecture\00"
@tn.str.198 = private constant [13 x i8] c"BuildOptions\00"
@tn.str.199 = private constant [11 x i8] c"() -> bool\00"
@tn.str.200 = private constant [5 x i8] c"*s64\00"
@tn.str.200 = private constant [5 x i8] c"*i64\00"
@tn.str.201 = private constant [9 x i8] c"CliError\00"
@tn.str.202 = private constant [9 x i8] c"FlagSpec\00"
@tn.str.203 = private constant [11 x i8] c"[]FlagSpec\00"
@@ -110,12 +110,12 @@
@tn.str.210 = private constant [19 x i8] c"(Parsed, CliError)\00"
@tn.str.211 = private constant [10 x i8] c"[]Command\00"
@tn.str.212 = private constant [6 x i8] c"*Diag\00"
@tn.str.213 = private constant [7 x i8] c"[8]s64\00"
@tn.str.213 = private constant [7 x i8] c"[8]i64\00"
@tn.str.214 = private constant [7 x i8] c"[64]u8\00"
@tn.str.215 = private constant [7 x i8] c"Sha256\00"
@tn.str.216 = private constant [8 x i8] c"*Sha256\00"
@tn.str.217 = private constant [8 x i8] c"?[64]u8\00"
@tn.str.218 = private constant [8 x i8] c"[64]s64\00"
@tn.str.218 = private constant [8 x i8] c"[64]i64\00"
@tn.str.219 = private constant [8 x i8] c"Greeter\00"
@tn.str.220 = private constant [18 x i8] c"__Greeter__Vtable\00"
@tn.str.221 = private constant [4 x i8] c"Dog\00"
@@ -136,7 +136,7 @@
@tn.str.236 = private constant [7 x i8] c"[1]Any\00"
@tn.str.237 = private constant [8 x i8] c"*[1]Any\00"
@tn.str.238 = private constant [6 x i8] c"*bool\00"
@tn.str.239 = private constant [8 x i8] c"*[4]s64\00"
@tn.str.239 = private constant [8 x i8] c"*[4]i64\00"
@tn.str.240 = private constant [5 x i8] c"*f64\00"
@tn.str.241 = private constant [17 x i8] c"*Source_Location\00"
@tn.str.242 = private constant [11 x i8] c"*Allocator\00"
@@ -156,9 +156,9 @@
@tn.str.256 = private constant [17 x i8] c"*OperatingSystem\00"
@tn.str.257 = private constant [14 x i8] c"*Architecture\00"
@tn.str.258 = private constant [15 x i8] c"*[16]FlagValue\00"
@tn.str.259 = private constant [8 x i8] c"*[8]s64\00"
@tn.str.259 = private constant [8 x i8] c"*[8]i64\00"
@tn.str.260 = private constant [8 x i8] c"*[64]u8\00"
@tn.str.261 = private constant [9 x i8] c"*[64]s64\00"
@tn.str.261 = private constant [9 x i8] c"*[64]i64\00"
@tn.str.262 = private constant [10 x i8] c"*[]string\00"
@tn.str.263 = private constant [6 x i8] c"*[]u8\00"
@tn.str.264 = private constant [12 x i8] c"*[]FlagSpec\00"
@@ -172,7 +172,7 @@
@tn.str.272 = private constant [20 x i8] c"**TrackingAllocator\00"
@tn.str.273 = private constant [7 x i8] c"**File\00"
@tn.str.274 = private constant [5 x i8] c"**u8\00"
@tn.str.275 = private constant [6 x i8] c"**s32\00"
@tn.str.275 = private constant [6 x i8] c"**i32\00"
@tn.str.276 = private constant [11 x i8] c"**SockAddr\00"
@tn.str.277 = private constant [6 x i8] c"**u32\00"
@tn.str.278 = private constant [10 x i8] c"*[*]Value\00"
@@ -181,7 +181,7 @@
@tn.str.281 = private constant [9 x i8] c"**Object\00"
@tn.str.282 = private constant [7 x i8] c"**Sink\00"
@tn.str.283 = private constant [9 x i8] c"**Parser\00"
@tn.str.284 = private constant [6 x i8] c"**s64\00"
@tn.str.284 = private constant [6 x i8] c"**i64\00"
@tn.str.285 = private constant [9 x i8] c"**Parsed\00"
@tn.str.286 = private constant [7 x i8] c"**Diag\00"
@tn.str.287 = private constant [9 x i8] c"**Sha256\00"
@@ -594,7 +594,7 @@
@str.691 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1
@str.692 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.693 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.694 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1
@str.694 = private unnamed_addr constant [5 x i8] c"*i32\00", align 1
@str.695 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.696 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.697 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1
@@ -621,7 +621,7 @@
@str.718 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1
@str.719 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.720 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.721 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1
@str.721 = private unnamed_addr constant [5 x i8] c"*i64\00", align 1
@str.722 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.723 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.724 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1
@@ -2058,7 +2058,7 @@ dispatch.case.289: ; preds = %match.arm.47
%ua.raw190 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr191 = inttoptr i64 %ua.raw190 to ptr
%ua.load192 = load [4 x i64], ptr %ua.ptr191, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load192)
%callN = call { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %ua.load192)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.287
@@ -2074,7 +2074,7 @@ dispatch.case.291: ; preds = %match.arm.47
%ua.raw198 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr199 = inttoptr i64 %ua.raw198 to ptr
%ua.load200 = load [8 x i64], ptr %ua.ptr199, align 8
%callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load200)
%callN = call { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %ua.load200)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.287
@@ -2090,7 +2090,7 @@ dispatch.case.293: ; preds = %match.arm.47
%ua.raw206 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr207 = inttoptr i64 %ua.raw206 to ptr
%ua.load208 = load [64 x i64], ptr %ua.ptr207, align 8
%callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load208)
%callN = call { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %ua.load208)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.287
@@ -2249,7 +2249,7 @@ dispatch.case.380: ; preds = %match.arm.49
dispatch.case.381: ; preds = %match.arm.49
%ua.raw273 = extractvalue { i64, i64 } %loadN, 1
%iNp274 = inttoptr i64 %ua.raw273 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp274)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %iNp274)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.369
@@ -2312,7 +2312,7 @@ dispatch.case.389: ; preds = %match.arm.49
dispatch.case.390: ; preds = %match.arm.49
%ua.raw300 = extractvalue { i64, i64 } %loadN, 1
%iNp301 = inttoptr i64 %ua.raw300 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp301)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %iNp301)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.369
@@ -3623,14 +3623,14 @@ entry:
%load = load { i64 }, ptr %alloca, align 8
%loadN = load { i64 }, ptr %allocaN, align 8
%call = call i64 @pair_sum__pack_Dog_Cat(ptr @__sx_default_context, { i64 } %load, { i64 } %loadN)
call void @print__ct_sa93836785e55c522__pack_s64(ptr @__sx_default_context, i64 %call)
call void @print__ct_sa93836785e55c522__pack_i64(ptr @__sx_default_context, i64 %call)
%loadN = load { i64 }, ptr %allocaN, align 8
%loadN = load { i64 }, ptr %alloca, align 8
%callN = call i64 @pair_sum__pack_Cat_Dog(ptr @__sx_default_context, { i64 } %loadN, { i64 } %loadN)
call void @print__ct_sdcda2f2aa37cf168__pack_s64(ptr @__sx_default_context, i64 %callN)
call void @print__ct_sdcda2f2aa37cf168__pack_i64(ptr @__sx_default_context, i64 %callN)
%loadN = load { i64 }, ptr %alloca, align 8
%callN = call i64 @pair_sum__pack_Dog_Dog(ptr @__sx_default_context, { i64 } %loadN, { i64 } { i64 4 })
call void @print__ct_s1a602d8c97d1af91__pack_s64(ptr @__sx_default_context, i64 %callN)
call void @print__ct_s1a602d8c97d1af91__pack_i64(ptr @__sx_default_context, i64 %callN)
ret i32 0
}
@@ -3689,7 +3689,7 @@ entry:
}
; Function Attrs: nounwind
define internal void @print__ct_sa93836785e55c522__pack_s64(ptr %0, i64 %1) #0 {
define internal void @print__ct_sa93836785e55c522__pack_i64(ptr %0, i64 %1) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.323, i64 11 }, ptr %alloca, align 8
@@ -3779,7 +3779,7 @@ entry:
}
; Function Attrs: nounwind
define internal void @print__ct_sdcda2f2aa37cf168__pack_s64(ptr %0, i64 %1) #0 {
define internal void @print__ct_sdcda2f2aa37cf168__pack_i64(ptr %0, i64 %1) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.326, i64 11 }, ptr %alloca, align 8
@@ -3869,7 +3869,7 @@ entry:
}
; Function Attrs: nounwind
define internal void @print__ct_s1a602d8c97d1af91__pack_s64(ptr %0, i64 %1) #0 {
define internal void @print__ct_s1a602d8c97d1af91__pack_i64(ptr %0, i64 %1) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.329, i64 11 }, ptr %alloca, align 8
@@ -3995,14 +3995,14 @@ fv.case: ; preds = %if.merge.129
fv.case17: ; preds = %if.merge.129
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.129
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.129
@@ -4698,8 +4698,8 @@ fv.default: ; preds = %if.merge.174
fv.case: ; preds = %if.merge.174
%fv.field = extractvalue { i32 } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
}
@@ -4782,14 +4782,14 @@ fv.case: ; preds = %if.merge.179
fv.case17: ; preds = %if.merge.179
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.179
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.179
@@ -4874,8 +4874,8 @@ fv.default: ; preds = %if.merge.184
fv.case: ; preds = %if.merge.184
%fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case17: ; preds = %if.merge.184
@@ -6561,7 +6561,7 @@ if.merge.286: ; preds = %if.then.285, %entry
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %1) #0 {
entry:
%alloca = alloca [4 x i64], align 8
%ig.tmp = alloca [4 x i64], align 8
@@ -6664,7 +6664,7 @@ if.merge.305: ; preds = %if.then.304, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %1) #0 {
entry:
%alloca = alloca [8 x i64], align 8
%ig.tmp = alloca [8 x i64], align 8
@@ -6765,7 +6765,7 @@ if.merge.315: ; preds = %if.then.314, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %1) #0 {
entry:
%alloca = alloca [64 x i64], align 8
%ig.tmp = alloca [64 x i64], align 8
@@ -7522,7 +7522,7 @@ if.merge.448: ; preds = %if.else.447, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8
@@ -7772,7 +7772,7 @@ if.merge.475: ; preds = %if.else.474, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8

View File

@@ -1,5 +1,5 @@
error: 'v' is not part of protocol 'Box' — a pack element exposes only the protocol's interface
--> /Users/agra/projects/sx/examples/0530-packs-pack-interface-only.sx:16:12
--> examples/0530-packs-pack-interface-only.sx:16:12
|
16 | return xs[0].v; // `v` is not part of Box — error
| ^^^^^^^

View File

@@ -23,12 +23,12 @@ help: materialize a tuple `(..xs)` to store it, or `xx xs` to convert it to an e
error: pack 'xs' has no runtime value — a pack is comptime-only and can't be used as a value here
--> examples/0536-packs-pack-as-value.sx:16:42
|
16 | ret :: (..xs: Show) -> s64 { return xs; } // C: return
16 | ret :: (..xs: Show) -> i64 { return xs; } // C: return
| ^^
help: to return it, return a tuple `(..xs)` and make the return type that tuple
|
16 | ret :: (..xs: Show) -> s64 { return xs; } // C: return
16 | ret :: (..xs: Show) -> i64 { return xs; } // C: return
| ^^
error: pack 'xs' has no runtime value — a pack is comptime-only and can't be used as a value here

View File

@@ -1,4 +1,4 @@
f64
3.200000
Vector(4,f32)
() -> s32
() -> i32

View File

@@ -1,17 +1,17 @@
error: 'c_only_fn' is not visible; #import the module that declares it
--> /Users/agra/projects/sx/examples/0706-modules-import-non-transitive.sx:15:37
--> examples/0706-modules-import-non-transitive.sx:15:37
|
15 | print("c_only_fn direct: {}\n", c_only_fn());
| ^^^^^^^^^
error: 'c_only_const' is not visible; #import the module that declares it
--> /Users/agra/projects/sx/examples/0706-modules-import-non-transitive.sx:16:40
--> examples/0706-modules-import-non-transitive.sx:16:40
|
16 | print("c_only_const direct: {}\n", c_only_const);
| ^^^^^^^^^^^^
error: unresolved 'c_only_const' (in /Users/agra/projects/sx/examples/0706-modules-import-non-transitive.sx fn main)
--> /Users/agra/projects/sx/examples/0706-modules-import-non-transitive.sx:16:40
error: unresolved 'c_only_const' (in examples/0706-modules-import-non-transitive.sx fn main)
--> examples/0706-modules-import-non-transitive.sx:16:40
|
16 | print("c_only_const direct: {}\n", c_only_const);
| ^^^^^^^^^^^^

View File

@@ -21,10 +21,10 @@ uni-len: ok
uni-A: ok
uni-e1: ok
uni-e2: ok
uni-s0: ok
uni-s1: ok
uni-s2: ok
uni-s3: ok
uni-i0: ok
uni-i1: ok
uni-i2: ok
uni-i3: ok
err-truncated: ok
err-bad-escape: ok
err-trailing-junk: ok

View File

@@ -1,5 +1,5 @@
error: array dimension must be a compile-time integer constant
--> examples/0742-modules-namespaced-only-bare-const-not-visible.sx:13:12
|
13 | arr : [DEP_LEN]s32 = ---;
13 | arr : [DEP_LEN]i32 = ---;
| ^^^^^^^

View File

@@ -1,5 +1,5 @@
error: type 'COnly' is not visible; #import the module that declares it
--> /Users/agra/projects/sx/examples/0763-modules-import-type-non-transitive.sx:17:9
--> examples/0763-modules-import-type-non-transitive.sx:17:9
|
17 | x : COnly = .{ v = 5 };
| ^^^^^

View File

@@ -1,5 +1,5 @@
error: type 'Box' is not visible; #import the module that declares it
--> /Users/agra/projects/sx/examples/0764-modules-import-generic-head-non-transitive.sx:21:9
--> examples/0764-modules-import-generic-head-non-transitive.sx:21:9
|
21 | x : Box(s64) = .{ v = 3 };
21 | x : Box(i64) = .{ v = 3 };
| ^^^^^^^^

View File

@@ -1,17 +1,17 @@
error: type 'Nums' is not visible; #import the module that declares it
--> /Users/agra/projects/sx/examples/0765-modules-import-reflection-type-non-transitive.sx:22:27
--> examples/0765-modules-import-reflection-type-non-transitive.sx:22:27
|
22 | print("{}\n", size_of(Nums));
| ^^^^
error: type 'COnly' is not visible; #import the module that declares it
--> /Users/agra/projects/sx/examples/0765-modules-import-reflection-type-non-transitive.sx:23:28
--> examples/0765-modules-import-reflection-type-non-transitive.sx:23:28
|
23 | print("{}\n", size_of(*COnly));
| ^^^^^
error: type 'Nums' is not visible; #import the module that declares it
--> /Users/agra/projects/sx/examples/0765-modules-import-reflection-type-non-transitive.sx:24:11
--> examples/0765-modules-import-reflection-type-non-transitive.sx:24:11
|
24 | xs := Nums.[1, 2];
| ^^^^

View File

@@ -13,7 +13,7 @@ error: type 'Nums' is ambiguous: it is declared in multiple flat-imported module
error: type 'Box' is ambiguous: it is declared in multiple flat-imported modules; qualify the reference or remove the duplicate import
--> examples/0767-modules-ambiguous-bare-type-forms.sx:35:9
|
35 | x : Box(s64) = .{ v = 3 };
35 | x : Box(i64) = .{ v = 3 };
| ^^^^^^^^
error: type 'Thing' is ambiguous: it is declared in multiple flat-imported modules; qualify the reference or remove the duplicate import

View File

@@ -1,5 +1,5 @@
error: type 'Make' is ambiguous: it is declared in multiple flat-imported modules; qualify the reference or remove the duplicate import
--> examples/0769-modules-ambiguous-type-fn-head.sx:19:32
|
19 | print("size={}\n", size_of(Make(s64)));
19 | print("size={}\n", size_of(Make(i64)));
| ^^^^

View File

@@ -1,5 +1,5 @@
error: type 'Make' is not visible; #import the module that declares it
--> examples/0770-modules-type-fn-head-non-transitive.sx:21:32
|
21 | print("size={}\n", size_of(Make(s64)));
21 | print("size={}\n", size_of(Make(i64)));
| ^^^^

View File

@@ -1,5 +1,5 @@
error: type 'Make' is not visible; #import the module that declares it
--> examples/0771-modules-type-fn-head-ordinary-fn-no-vouch.sx:23:32
|
23 | print("size={}\n", size_of(Make(s64)));
23 | print("size={}\n", size_of(Make(i64)));
| ^^^^

View File

@@ -1,5 +1,5 @@
error: namespace 'a' has no member 'Box'
--> examples/0775-modules-qualified-generic-missing-member.sx:20:9
|
20 | x : a.Box(s64) = .{ x = 1, y = 2 };
20 | x : a.Box(i64) = .{ x = 1, y = 2 };
| ^^^^^^^^^^

View File

@@ -1,5 +1,5 @@
error: type 'Box' is ambiguous: it is declared in multiple flat-imported modules; qualify the reference or remove the duplicate import
--> examples/0782-modules-bare-generic-instance-ambiguous-authors.sx:15:10
|
15 | x := Box(s64).make(7);
15 | x := Box(i64).make(7);
| ^^^

View File

@@ -1,5 +1,5 @@
error: namespace 'a' has no member 'Box'
--> examples/0785-modules-qualified-generic-static-missing-member.sx:16:10
|
16 | x := a.Box(s64).make(7);
16 | x := a.Box(i64).make(7);
| ^^^^^

View File

@@ -1 +1 @@
List__s32{items: [*]s32@0xADDR, len: 5, cap: 8}
List__i32{items: [*]i32@0xADDR, len: 5, cap: 8}

View File

@@ -26,10 +26,10 @@
@tag_names = private constant [14 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.114, i64 8 }, { ptr, i64 } { ptr @tag.str.115, i64 2 }, { ptr, i64 } { ptr @tag.str.116, i64 15 }, { ptr, i64 } { ptr @tag.str.117, i64 13 }, { ptr, i64 } { ptr @tag.str.118, i64 9 }, { ptr, i64 } { ptr @tag.str.119, i64 9 }, { ptr, i64 } { ptr @tag.str.120, i64 15 }, { ptr, i64 } { ptr @tag.str.121, i64 14 }, { ptr, i64 } { ptr @tag.str.122, i64 14 }, { ptr, i64 } { ptr @tag.str.123, i64 11 }, { ptr, i64 } { ptr @tag.str.124, i64 12 }, { ptr, i64 } { ptr @tag.str.125, i64 15 }, { ptr, i64 } { ptr @tag.str.126, i64 12 }]
@tn.str = private constant [13 x i8] c"<unresolved>\00"
@tn.str.127 = private constant [5 x i8] c"bool\00"
@tn.str.128 = private constant [3 x i8] c"s8\00"
@tn.str.129 = private constant [4 x i8] c"s16\00"
@tn.str.130 = private constant [4 x i8] c"s32\00"
@tn.str.131 = private constant [4 x i8] c"s64\00"
@tn.str.128 = private constant [3 x i8] c"i8\00"
@tn.str.129 = private constant [4 x i8] c"i16\00"
@tn.str.130 = private constant [4 x i8] c"i32\00"
@tn.str.131 = private constant [4 x i8] c"i64\00"
@tn.str.132 = private constant [3 x i8] c"u8\00"
@tn.str.133 = private constant [4 x i8] c"u16\00"
@tn.str.134 = private constant [4 x i8] c"u32\00"
@@ -46,7 +46,7 @@
@tn.str.145 = private constant [16 x i8] c"Source_Location\00"
@tn.str.146 = private constant [10 x i8] c"Allocator\00"
@tn.str.147 = private constant [8 x i8] c"Context\00"
@tn.str.148 = private constant [7 x i8] c"[4]s64\00"
@tn.str.148 = private constant [7 x i8] c"[4]i64\00"
@tn.str.149 = private constant [9 x i8] c"[]string\00"
@tn.str.150 = private constant [11 x i8] c"CAllocator\00"
@tn.str.151 = private constant [12 x i8] c"*CAllocator\00"
@@ -71,7 +71,7 @@
@tn.str.170 = private constant [4 x i8] c"*u8\00"
@tn.str.171 = private constant [14 x i8] c"ProcessResult\00"
@tn.str.172 = private constant [15 x i8] c"?ProcessResult\00"
@tn.str.173 = private constant [5 x i8] c"*s32\00"
@tn.str.173 = private constant [5 x i8] c"*i32\00"
@tn.str.174 = private constant [9 x i8] c"SockAddr\00"
@tn.str.175 = private constant [10 x i8] c"*SockAddr\00"
@tn.str.176 = private constant [5 x i8] c"*u32\00"
@@ -87,9 +87,9 @@
@tn.str.186 = private constant [5 x i8] c"[]u8\00"
@tn.str.187 = private constant [5 x i8] c"Sink\00"
@tn.str.188 = private constant [6 x i8] c"*Sink\00"
@tn.str.189 = private constant [17 x i8] c"(s64, JsonError)\00"
@tn.str.189 = private constant [17 x i8] c"(i64, JsonError)\00"
@tn.str.190 = private constant [15 x i8] c"JsonParseError\00"
@tn.str.191 = private constant [22 x i8] c"(s64, JsonParseError)\00"
@tn.str.191 = private constant [22 x i8] c"(i64, JsonParseError)\00"
@tn.str.192 = private constant [7 x i8] c"Parser\00"
@tn.str.193 = private constant [8 x i8] c"*Parser\00"
@tn.str.194 = private constant [25 x i8] c"(string, JsonParseError)\00"
@@ -98,7 +98,7 @@
@tn.str.197 = private constant [13 x i8] c"Architecture\00"
@tn.str.198 = private constant [13 x i8] c"BuildOptions\00"
@tn.str.199 = private constant [11 x i8] c"() -> bool\00"
@tn.str.200 = private constant [5 x i8] c"*s64\00"
@tn.str.200 = private constant [5 x i8] c"*i64\00"
@tn.str.201 = private constant [9 x i8] c"CliError\00"
@tn.str.202 = private constant [9 x i8] c"FlagSpec\00"
@tn.str.203 = private constant [11 x i8] c"[]FlagSpec\00"
@@ -111,12 +111,12 @@
@tn.str.210 = private constant [19 x i8] c"(Parsed, CliError)\00"
@tn.str.211 = private constant [10 x i8] c"[]Command\00"
@tn.str.212 = private constant [6 x i8] c"*Diag\00"
@tn.str.213 = private constant [7 x i8] c"[8]s64\00"
@tn.str.213 = private constant [7 x i8] c"[8]i64\00"
@tn.str.214 = private constant [7 x i8] c"[64]u8\00"
@tn.str.215 = private constant [7 x i8] c"Sha256\00"
@tn.str.216 = private constant [8 x i8] c"*Sha256\00"
@tn.str.217 = private constant [8 x i8] c"?[64]u8\00"
@tn.str.218 = private constant [8 x i8] c"[64]s64\00"
@tn.str.218 = private constant [8 x i8] c"[64]i64\00"
@tn.str.219 = private constant [5 x i8] c"?f32\00"
@tn.str.220 = private constant [13 x i8] c"ProposedSize\00"
@tn.str.221 = private constant [8 x i8] c"Sizable\00"
@@ -138,7 +138,7 @@
@tn.str.237 = private constant [9 x i8] c"*Sizable\00"
@tn.str.238 = private constant [9 x i8] c"**Widget\00"
@tn.str.239 = private constant [19 x i8] c"*__Sizable__Vtable\00"
@tn.str.240 = private constant [8 x i8] c"*[4]s64\00"
@tn.str.240 = private constant [8 x i8] c"*[4]i64\00"
@tn.str.241 = private constant [17 x i8] c"*Source_Location\00"
@tn.str.242 = private constant [11 x i8] c"*Allocator\00"
@tn.str.243 = private constant [9 x i8] c"*Context\00"
@@ -155,9 +155,9 @@
@tn.str.254 = private constant [17 x i8] c"*OperatingSystem\00"
@tn.str.255 = private constant [14 x i8] c"*Architecture\00"
@tn.str.256 = private constant [15 x i8] c"*[16]FlagValue\00"
@tn.str.257 = private constant [8 x i8] c"*[8]s64\00"
@tn.str.257 = private constant [8 x i8] c"*[8]i64\00"
@tn.str.258 = private constant [8 x i8] c"*[64]u8\00"
@tn.str.259 = private constant [9 x i8] c"*[64]s64\00"
@tn.str.259 = private constant [9 x i8] c"*[64]i64\00"
@tn.str.260 = private constant [10 x i8] c"*[]string\00"
@tn.str.261 = private constant [6 x i8] c"*[]u8\00"
@tn.str.262 = private constant [12 x i8] c"*[]FlagSpec\00"
@@ -170,7 +170,7 @@
@tn.str.269 = private constant [20 x i8] c"**TrackingAllocator\00"
@tn.str.270 = private constant [7 x i8] c"**File\00"
@tn.str.271 = private constant [5 x i8] c"**u8\00"
@tn.str.272 = private constant [6 x i8] c"**s32\00"
@tn.str.272 = private constant [6 x i8] c"**i32\00"
@tn.str.273 = private constant [11 x i8] c"**SockAddr\00"
@tn.str.274 = private constant [6 x i8] c"**u32\00"
@tn.str.275 = private constant [10 x i8] c"*[*]Value\00"
@@ -179,7 +179,7 @@
@tn.str.278 = private constant [9 x i8] c"**Object\00"
@tn.str.279 = private constant [7 x i8] c"**Sink\00"
@tn.str.280 = private constant [9 x i8] c"**Parser\00"
@tn.str.281 = private constant [6 x i8] c"**s64\00"
@tn.str.281 = private constant [6 x i8] c"**i64\00"
@tn.str.282 = private constant [9 x i8] c"**Parsed\00"
@tn.str.283 = private constant [7 x i8] c"**Diag\00"
@tn.str.284 = private constant [9 x i8] c"**Sha256\00"
@@ -611,7 +611,7 @@
@str.707 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1
@str.708 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.709 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.710 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1
@str.710 = private unnamed_addr constant [5 x i8] c"*i32\00", align 1
@str.711 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.712 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.713 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1
@@ -638,7 +638,7 @@
@str.734 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1
@str.735 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.736 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.737 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1
@str.737 = private unnamed_addr constant [5 x i8] c"*i64\00", align 1
@str.738 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.739 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.740 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1
@@ -2084,7 +2084,7 @@ dispatch.case.301: ; preds = %match.arm.59
%ua.raw190 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr191 = inttoptr i64 %ua.raw190 to ptr
%ua.load192 = load [4 x i64], ptr %ua.ptr191, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load192)
%callN = call { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %ua.load192)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.299
@@ -2100,7 +2100,7 @@ dispatch.case.303: ; preds = %match.arm.59
%ua.raw198 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr199 = inttoptr i64 %ua.raw198 to ptr
%ua.load200 = load [8 x i64], ptr %ua.ptr199, align 8
%callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load200)
%callN = call { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %ua.load200)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.299
@@ -2116,7 +2116,7 @@ dispatch.case.305: ; preds = %match.arm.59
%ua.raw206 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr207 = inttoptr i64 %ua.raw206 to ptr
%ua.load208 = load [64 x i64], ptr %ua.ptr207, align 8
%callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load208)
%callN = call { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %ua.load208)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.299
@@ -2259,7 +2259,7 @@ dispatch.case.380: ; preds = %match.arm.61
dispatch.case.381: ; preds = %match.arm.61
%ua.raw265 = extractvalue { i64, i64 } %loadN, 1
%iNp266 = inttoptr i64 %ua.raw265 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp266)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %iNp266)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.369
@@ -2322,7 +2322,7 @@ dispatch.case.389: ; preds = %match.arm.61
dispatch.case.390: ; preds = %match.arm.61
%ua.raw292 = extractvalue { i64, i64 } %loadN, 1
%iNp293 = inttoptr i64 %ua.raw292 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp293)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %iNp293)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.369
@@ -4392,14 +4392,14 @@ fv.case: ; preds = %if.merge.141
fv.case17: ; preds = %if.merge.141
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.141
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.141
@@ -5095,8 +5095,8 @@ fv.default: ; preds = %if.merge.186
fv.case: ; preds = %if.merge.186
%fv.field = extractvalue { i32 } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
}
@@ -5179,14 +5179,14 @@ fv.case: ; preds = %if.merge.191
fv.case17: ; preds = %if.merge.191
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.191
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.191
@@ -5271,8 +5271,8 @@ fv.default: ; preds = %if.merge.196
fv.case: ; preds = %if.merge.196
%fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case17: ; preds = %if.merge.196
@@ -6956,7 +6956,7 @@ if.merge.298: ; preds = %if.then.297, %entry
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %1) #0 {
entry:
%alloca = alloca [4 x i64], align 8
%ig.tmp = alloca [4 x i64], align 8
@@ -7059,7 +7059,7 @@ if.merge.316: ; preds = %if.then.315, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %1) #0 {
entry:
%alloca = alloca [8 x i64], align 8
%ig.tmp = alloca [8 x i64], align 8
@@ -7160,7 +7160,7 @@ if.merge.326: ; preds = %if.then.325, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %1) #0 {
entry:
%alloca = alloca [64 x i64], align 8
%ig.tmp = alloca [64 x i64], align 8
@@ -7810,7 +7810,7 @@ if.merge.450: ; preds = %if.else.449, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8
@@ -8060,7 +8060,7 @@ if.merge.477: ; preds = %if.else.476, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8

File diff suppressed because one or more lines are too long

View File

@@ -1,11 +1,11 @@
error: error tag 'error.NotInSet' is not in error set 'ParseErr'
--> /Users/agra/projects/sx/examples/1001-errors-set-typing.sx:13:20
--> examples/1001-errors-set-typing.sx:13:20
|
13 | c : ParseErr = error.NotInSet; // error: NotInSet not in ParseErr
| ^^^^^^^^^^^^^^
error: an error-set value compares only with an `error.X` tag or another error-set value; coerce with `xx` to compare the raw id
--> /Users/agra/projects/sx/examples/1001-errors-set-typing.sx:14:8
--> examples/1001-errors-set-typing.sx:14:8
|
14 | if c == 42 { return 1; } // error: error-set value vs raw integer
| ^

View File

@@ -1,17 +1,17 @@
error: error tag 'error.NotInSet' is not in error set 'ParseErr'
--> /Users/agra/projects/sx/examples/1003-errors-raise-rejections.sx:17:11
--> examples/1003-errors-raise-rejections.sx:17:11
|
17 | raise error.NotInSet; // error: NotInSet not in ParseErr
| ^^^^^^^^^^^^^^
error: error tag 'error.Weird' is not in caller's error set 'ParseErr'
--> /Users/agra/projects/sx/examples/1003-errors-raise-rejections.sx:24:5
--> examples/1003-errors-raise-rejections.sx:24:5
|
24 | raise e; // error: OtherErr not subset of ParseErr
| ^^^^^^^^
error: `raise` is only valid inside a failable function (a return type with `!` or `!Named`)
--> /Users/agra/projects/sx/examples/1003-errors-raise-rejections.sx:30:5
--> examples/1003-errors-raise-rejections.sx:30:5
|
30 | raise error.BadDigit; // error: main (-> s32) is not failable
30 | raise error.BadDigit; // error: main (-> i32) is not failable
| ^^^^^^^^^^^^^^^^^^^^^

View File

@@ -27,10 +27,10 @@
@tag_names = private constant [16 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.114, i64 8 }, { ptr, i64 } { ptr @tag.str.115, i64 2 }, { ptr, i64 } { ptr @tag.str.116, i64 15 }, { ptr, i64 } { ptr @tag.str.117, i64 13 }, { ptr, i64 } { ptr @tag.str.118, i64 9 }, { ptr, i64 } { ptr @tag.str.119, i64 9 }, { ptr, i64 } { ptr @tag.str.120, i64 15 }, { ptr, i64 } { ptr @tag.str.121, i64 14 }, { ptr, i64 } { ptr @tag.str.122, i64 14 }, { ptr, i64 } { ptr @tag.str.123, i64 11 }, { ptr, i64 } { ptr @tag.str.124, i64 12 }, { ptr, i64 } { ptr @tag.str.125, i64 15 }, { ptr, i64 } { ptr @tag.str.126, i64 12 }, { ptr, i64 } { ptr @tag.str.127, i64 3 }, { ptr, i64 } { ptr @tag.str.128, i64 5 }]
@tn.str = private constant [13 x i8] c"<unresolved>\00"
@tn.str.129 = private constant [5 x i8] c"bool\00"
@tn.str.130 = private constant [3 x i8] c"s8\00"
@tn.str.131 = private constant [4 x i8] c"s16\00"
@tn.str.132 = private constant [4 x i8] c"s32\00"
@tn.str.133 = private constant [4 x i8] c"s64\00"
@tn.str.130 = private constant [3 x i8] c"i8\00"
@tn.str.131 = private constant [4 x i8] c"i16\00"
@tn.str.132 = private constant [4 x i8] c"i32\00"
@tn.str.133 = private constant [4 x i8] c"i64\00"
@tn.str.134 = private constant [3 x i8] c"u8\00"
@tn.str.135 = private constant [4 x i8] c"u16\00"
@tn.str.136 = private constant [4 x i8] c"u32\00"
@@ -47,7 +47,7 @@
@tn.str.147 = private constant [16 x i8] c"Source_Location\00"
@tn.str.148 = private constant [10 x i8] c"Allocator\00"
@tn.str.149 = private constant [8 x i8] c"Context\00"
@tn.str.150 = private constant [7 x i8] c"[4]s64\00"
@tn.str.150 = private constant [7 x i8] c"[4]i64\00"
@tn.str.151 = private constant [9 x i8] c"[]string\00"
@tn.str.152 = private constant [11 x i8] c"CAllocator\00"
@tn.str.153 = private constant [12 x i8] c"*CAllocator\00"
@@ -72,7 +72,7 @@
@tn.str.172 = private constant [4 x i8] c"*u8\00"
@tn.str.173 = private constant [14 x i8] c"ProcessResult\00"
@tn.str.174 = private constant [15 x i8] c"?ProcessResult\00"
@tn.str.175 = private constant [5 x i8] c"*s32\00"
@tn.str.175 = private constant [5 x i8] c"*i32\00"
@tn.str.176 = private constant [9 x i8] c"SockAddr\00"
@tn.str.177 = private constant [10 x i8] c"*SockAddr\00"
@tn.str.178 = private constant [5 x i8] c"*u32\00"
@@ -88,9 +88,9 @@
@tn.str.188 = private constant [5 x i8] c"[]u8\00"
@tn.str.189 = private constant [5 x i8] c"Sink\00"
@tn.str.190 = private constant [6 x i8] c"*Sink\00"
@tn.str.191 = private constant [17 x i8] c"(s64, JsonError)\00"
@tn.str.191 = private constant [17 x i8] c"(i64, JsonError)\00"
@tn.str.192 = private constant [15 x i8] c"JsonParseError\00"
@tn.str.193 = private constant [22 x i8] c"(s64, JsonParseError)\00"
@tn.str.193 = private constant [22 x i8] c"(i64, JsonParseError)\00"
@tn.str.194 = private constant [7 x i8] c"Parser\00"
@tn.str.195 = private constant [8 x i8] c"*Parser\00"
@tn.str.196 = private constant [25 x i8] c"(string, JsonParseError)\00"
@@ -99,7 +99,7 @@
@tn.str.199 = private constant [13 x i8] c"Architecture\00"
@tn.str.200 = private constant [13 x i8] c"BuildOptions\00"
@tn.str.201 = private constant [11 x i8] c"() -> bool\00"
@tn.str.202 = private constant [5 x i8] c"*s64\00"
@tn.str.202 = private constant [5 x i8] c"*i64\00"
@tn.str.203 = private constant [9 x i8] c"CliError\00"
@tn.str.204 = private constant [9 x i8] c"FlagSpec\00"
@tn.str.205 = private constant [11 x i8] c"[]FlagSpec\00"
@@ -112,12 +112,12 @@
@tn.str.212 = private constant [19 x i8] c"(Parsed, CliError)\00"
@tn.str.213 = private constant [10 x i8] c"[]Command\00"
@tn.str.214 = private constant [6 x i8] c"*Diag\00"
@tn.str.215 = private constant [7 x i8] c"[8]s64\00"
@tn.str.215 = private constant [7 x i8] c"[8]i64\00"
@tn.str.216 = private constant [7 x i8] c"[64]u8\00"
@tn.str.217 = private constant [7 x i8] c"Sha256\00"
@tn.str.218 = private constant [8 x i8] c"*Sha256\00"
@tn.str.219 = private constant [8 x i8] c"?[64]u8\00"
@tn.str.220 = private constant [8 x i8] c"[64]s64\00"
@tn.str.220 = private constant [8 x i8] c"[64]i64\00"
@tn.str.221 = private constant [2 x i8] c"E\00"
@tn.str.222 = private constant [13 x i8] c"**CAllocator\00"
@tn.str.223 = private constant [7 x i8] c"**void\00"
@@ -129,7 +129,7 @@
@tn.str.229 = private constant [8 x i8] c"*[1]Any\00"
@tn.str.230 = private constant [7 x i8] c"*[]Any\00"
@tn.str.231 = private constant [6 x i8] c"*bool\00"
@tn.str.232 = private constant [8 x i8] c"*[4]s64\00"
@tn.str.232 = private constant [8 x i8] c"*[4]i64\00"
@tn.str.233 = private constant [5 x i8] c"*f64\00"
@tn.str.234 = private constant [17 x i8] c"*Source_Location\00"
@tn.str.235 = private constant [11 x i8] c"*Allocator\00"
@@ -147,9 +147,9 @@
@tn.str.247 = private constant [17 x i8] c"*OperatingSystem\00"
@tn.str.248 = private constant [14 x i8] c"*Architecture\00"
@tn.str.249 = private constant [15 x i8] c"*[16]FlagValue\00"
@tn.str.250 = private constant [8 x i8] c"*[8]s64\00"
@tn.str.250 = private constant [8 x i8] c"*[8]i64\00"
@tn.str.251 = private constant [8 x i8] c"*[64]u8\00"
@tn.str.252 = private constant [9 x i8] c"*[64]s64\00"
@tn.str.252 = private constant [9 x i8] c"*[64]i64\00"
@tn.str.253 = private constant [10 x i8] c"*[]string\00"
@tn.str.254 = private constant [6 x i8] c"*[]u8\00"
@tn.str.255 = private constant [12 x i8] c"*[]FlagSpec\00"
@@ -162,7 +162,7 @@
@tn.str.262 = private constant [20 x i8] c"**TrackingAllocator\00"
@tn.str.263 = private constant [7 x i8] c"**File\00"
@tn.str.264 = private constant [5 x i8] c"**u8\00"
@tn.str.265 = private constant [6 x i8] c"**s32\00"
@tn.str.265 = private constant [6 x i8] c"**i32\00"
@tn.str.266 = private constant [11 x i8] c"**SockAddr\00"
@tn.str.267 = private constant [6 x i8] c"**u32\00"
@tn.str.268 = private constant [10 x i8] c"*[*]Value\00"
@@ -171,7 +171,7 @@
@tn.str.271 = private constant [9 x i8] c"**Object\00"
@tn.str.272 = private constant [7 x i8] c"**Sink\00"
@tn.str.273 = private constant [9 x i8] c"**Parser\00"
@tn.str.274 = private constant [6 x i8] c"**s64\00"
@tn.str.274 = private constant [6 x i8] c"**i64\00"
@tn.str.275 = private constant [9 x i8] c"**Parsed\00"
@tn.str.276 = private constant [7 x i8] c"**Diag\00"
@tn.str.277 = private constant [9 x i8] c"**Sha256\00"
@@ -548,7 +548,7 @@
@str.643 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1
@str.644 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.645 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.646 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1
@str.646 = private unnamed_addr constant [5 x i8] c"*i32\00", align 1
@str.647 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.648 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.649 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1
@@ -575,7 +575,7 @@
@str.670 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1
@str.671 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.672 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.673 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1
@str.673 = private unnamed_addr constant [5 x i8] c"*i64\00", align 1
@str.674 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.675 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.676 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1
@@ -1949,7 +1949,7 @@ dispatch.case.275: ; preds = %match.arm.57
%ua.raw174 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr175 = inttoptr i64 %ua.raw174 to ptr
%ua.load176 = load [4 x i64], ptr %ua.ptr175, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load176)
%callN = call { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %ua.load176)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.273
@@ -1965,7 +1965,7 @@ dispatch.case.277: ; preds = %match.arm.57
%ua.raw182 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr183 = inttoptr i64 %ua.raw182 to ptr
%ua.load184 = load [8 x i64], ptr %ua.ptr183, align 8
%callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load184)
%callN = call { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %ua.load184)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.273
@@ -1981,7 +1981,7 @@ dispatch.case.279: ; preds = %match.arm.57
%ua.raw190 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr191 = inttoptr i64 %ua.raw190 to ptr
%ua.load192 = load [64 x i64], ptr %ua.ptr191, align 8
%callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load192)
%callN = call { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %ua.load192)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.273
@@ -2124,7 +2124,7 @@ dispatch.case.354: ; preds = %match.arm.59
dispatch.case.355: ; preds = %match.arm.59
%ua.raw249 = extractvalue { i64, i64 } %loadN, 1
%iNp250 = inttoptr i64 %ua.raw249 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp250)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %iNp250)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.343
@@ -2187,7 +2187,7 @@ dispatch.case.363: ; preds = %match.arm.59
dispatch.case.364: ; preds = %match.arm.59
%ua.raw276 = extractvalue { i64, i64 } %loadN, 1
%iNp277 = inttoptr i64 %ua.raw276 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp277)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %iNp277)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.343
@@ -3513,7 +3513,7 @@ if.then.8: ; preds = %if.merge.7
if.merge.9: ; preds = %if.then.8, %if.merge.7
%loadN = load i32, ptr %allocaN, align 4
call void @print__ct_s1c36e8f510df0c92__pack_s32(ptr @__sx_default_context, i32 %loadN)
call void @print__ct_s1c36e8f510df0c92__pack_i32(ptr @__sx_default_context, i32 %loadN)
%loadN = load i32, ptr %allocaN, align 4
ret i32 %loadN
}
@@ -3533,7 +3533,7 @@ entry:
}
; Function Attrs: nounwind
define internal void @print__ct_s1c36e8f510df0c92__pack_s32(ptr %0, i32 %1) #0 {
define internal void @print__ct_s1c36e8f510df0c92__pack_i32(ptr %0, i32 %1) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.316, i64 15 }, ptr %alloca, align 8
@@ -3541,8 +3541,8 @@ entry:
store i32 %1, ptr %allocaN, align 4
%allocaN = alloca [1 x { i64, i64 }], align 8
%load = load i32, ptr %allocaN, align 4
%sN = sext i32 %load to i64
%ba.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %load to i64
%ba.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
%igp.ptr = getelementptr { i64, i64 }, ptr %allocaN, i64 0
store { i64, i64 } %ba.val, ptr %igp.ptr, align 8
%allocaN = alloca { ptr, i64 }, align 8
@@ -3560,8 +3560,8 @@ entry:
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i32, ptr %allocaN, align 4
%sN = sext i32 %loadN to i64
%ba.val13 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %loadN to i64
%ba.val13 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
%callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val13)
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
@@ -3661,14 +3661,14 @@ fv.case: ; preds = %if.merge.135
fv.case17: ; preds = %if.merge.135
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.135
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.135
@@ -4364,8 +4364,8 @@ fv.default: ; preds = %if.merge.180
fv.case: ; preds = %if.merge.180
%fv.field = extractvalue { i32 } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
}
@@ -4448,14 +4448,14 @@ fv.case: ; preds = %if.merge.185
fv.case17: ; preds = %if.merge.185
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.185
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.185
@@ -4540,8 +4540,8 @@ fv.default: ; preds = %if.merge.190
fv.case: ; preds = %if.merge.190
%fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case17: ; preds = %if.merge.190
@@ -5942,7 +5942,7 @@ if.merge.272: ; preds = %if.then.271, %entry
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %1) #0 {
entry:
%alloca = alloca [4 x i64], align 8
%ig.tmp = alloca [4 x i64], align 8
@@ -6045,7 +6045,7 @@ if.merge.290: ; preds = %if.then.289, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %1) #0 {
entry:
%alloca = alloca [8 x i64], align 8
%ig.tmp = alloca [8 x i64], align 8
@@ -6146,7 +6146,7 @@ if.merge.300: ; preds = %if.then.299, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %1) #0 {
entry:
%alloca = alloca [64 x i64], align 8
%ig.tmp = alloca [64 x i64], align 8
@@ -6796,7 +6796,7 @@ if.merge.418: ; preds = %if.else.417, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8
@@ -7046,7 +7046,7 @@ if.merge.445: ; preds = %if.else.444, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8

View File

@@ -1,17 +1,17 @@
error: `try` is only valid inside a failable function (a return type with `!` or `!Named`)
--> /Users/agra/projects/sx/examples/1005-errors-try-rejections.sx:20:5
--> examples/1005-errors-try-rejections.sx:20:5
|
20 | try ga(); // error: `try` outside a failable function
| ^^^^^^^^
error: `try` requires a failable expression; operand has type 's32'
--> /Users/agra/projects/sx/examples/1005-errors-try-rejections.sx:26:5
error: `try` requires a failable expression; operand has type 'i32'
--> examples/1005-errors-try-rejections.sx:26:5
|
26 | try plain(); // error: operand has type s32 (not failable)
26 | try plain(); // error: operand has type i32 (not failable)
| ^^^^^^^^^^^
error: error tag 'error.Yb' is not in caller's error set 'A'
--> /Users/agra/projects/sx/examples/1005-errors-try-rejections.sx:32:5
--> examples/1005-errors-try-rejections.sx:32:5
|
32 | try gb(); // error: Yb not in caller's error set A
| ^^^^^^^^

View File

@@ -27,10 +27,10 @@
@tag_names = private constant [16 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.115, i64 8 }, { ptr, i64 } { ptr @tag.str.116, i64 2 }, { ptr, i64 } { ptr @tag.str.117, i64 15 }, { ptr, i64 } { ptr @tag.str.118, i64 13 }, { ptr, i64 } { ptr @tag.str.119, i64 9 }, { ptr, i64 } { ptr @tag.str.120, i64 9 }, { ptr, i64 } { ptr @tag.str.121, i64 15 }, { ptr, i64 } { ptr @tag.str.122, i64 14 }, { ptr, i64 } { ptr @tag.str.123, i64 14 }, { ptr, i64 } { ptr @tag.str.124, i64 11 }, { ptr, i64 } { ptr @tag.str.125, i64 12 }, { ptr, i64 } { ptr @tag.str.126, i64 15 }, { ptr, i64 } { ptr @tag.str.127, i64 12 }, { ptr, i64 } { ptr @tag.str.128, i64 3 }, { ptr, i64 } { ptr @tag.str.129, i64 3 }]
@tn.str = private constant [13 x i8] c"<unresolved>\00"
@tn.str.130 = private constant [5 x i8] c"bool\00"
@tn.str.131 = private constant [3 x i8] c"s8\00"
@tn.str.132 = private constant [4 x i8] c"s16\00"
@tn.str.133 = private constant [4 x i8] c"s32\00"
@tn.str.134 = private constant [4 x i8] c"s64\00"
@tn.str.131 = private constant [3 x i8] c"i8\00"
@tn.str.132 = private constant [4 x i8] c"i16\00"
@tn.str.133 = private constant [4 x i8] c"i32\00"
@tn.str.134 = private constant [4 x i8] c"i64\00"
@tn.str.135 = private constant [3 x i8] c"u8\00"
@tn.str.136 = private constant [4 x i8] c"u16\00"
@tn.str.137 = private constant [4 x i8] c"u32\00"
@@ -47,7 +47,7 @@
@tn.str.148 = private constant [16 x i8] c"Source_Location\00"
@tn.str.149 = private constant [10 x i8] c"Allocator\00"
@tn.str.150 = private constant [8 x i8] c"Context\00"
@tn.str.151 = private constant [7 x i8] c"[4]s64\00"
@tn.str.151 = private constant [7 x i8] c"[4]i64\00"
@tn.str.152 = private constant [9 x i8] c"[]string\00"
@tn.str.153 = private constant [11 x i8] c"CAllocator\00"
@tn.str.154 = private constant [12 x i8] c"*CAllocator\00"
@@ -72,7 +72,7 @@
@tn.str.173 = private constant [4 x i8] c"*u8\00"
@tn.str.174 = private constant [14 x i8] c"ProcessResult\00"
@tn.str.175 = private constant [15 x i8] c"?ProcessResult\00"
@tn.str.176 = private constant [5 x i8] c"*s32\00"
@tn.str.176 = private constant [5 x i8] c"*i32\00"
@tn.str.177 = private constant [9 x i8] c"SockAddr\00"
@tn.str.178 = private constant [10 x i8] c"*SockAddr\00"
@tn.str.179 = private constant [5 x i8] c"*u32\00"
@@ -88,9 +88,9 @@
@tn.str.189 = private constant [5 x i8] c"[]u8\00"
@tn.str.190 = private constant [5 x i8] c"Sink\00"
@tn.str.191 = private constant [6 x i8] c"*Sink\00"
@tn.str.192 = private constant [17 x i8] c"(s64, JsonError)\00"
@tn.str.192 = private constant [17 x i8] c"(i64, JsonError)\00"
@tn.str.193 = private constant [15 x i8] c"JsonParseError\00"
@tn.str.194 = private constant [22 x i8] c"(s64, JsonParseError)\00"
@tn.str.194 = private constant [22 x i8] c"(i64, JsonParseError)\00"
@tn.str.195 = private constant [7 x i8] c"Parser\00"
@tn.str.196 = private constant [8 x i8] c"*Parser\00"
@tn.str.197 = private constant [25 x i8] c"(string, JsonParseError)\00"
@@ -99,7 +99,7 @@
@tn.str.200 = private constant [13 x i8] c"Architecture\00"
@tn.str.201 = private constant [13 x i8] c"BuildOptions\00"
@tn.str.202 = private constant [11 x i8] c"() -> bool\00"
@tn.str.203 = private constant [5 x i8] c"*s64\00"
@tn.str.203 = private constant [5 x i8] c"*i64\00"
@tn.str.204 = private constant [9 x i8] c"CliError\00"
@tn.str.205 = private constant [9 x i8] c"FlagSpec\00"
@tn.str.206 = private constant [11 x i8] c"[]FlagSpec\00"
@@ -112,12 +112,12 @@
@tn.str.213 = private constant [19 x i8] c"(Parsed, CliError)\00"
@tn.str.214 = private constant [10 x i8] c"[]Command\00"
@tn.str.215 = private constant [6 x i8] c"*Diag\00"
@tn.str.216 = private constant [7 x i8] c"[8]s64\00"
@tn.str.216 = private constant [7 x i8] c"[8]i64\00"
@tn.str.217 = private constant [7 x i8] c"[64]u8\00"
@tn.str.218 = private constant [7 x i8] c"Sha256\00"
@tn.str.219 = private constant [8 x i8] c"*Sha256\00"
@tn.str.220 = private constant [8 x i8] c"?[64]u8\00"
@tn.str.221 = private constant [8 x i8] c"[64]s64\00"
@tn.str.221 = private constant [8 x i8] c"[64]i64\00"
@tn.str.222 = private constant [2 x i8] c"A\00"
@tn.str.223 = private constant [2 x i8] c"!\00"
@tn.str.224 = private constant [13 x i8] c"**CAllocator\00"
@@ -130,7 +130,7 @@
@tn.str.231 = private constant [8 x i8] c"*[1]Any\00"
@tn.str.232 = private constant [7 x i8] c"*[]Any\00"
@tn.str.233 = private constant [6 x i8] c"*bool\00"
@tn.str.234 = private constant [8 x i8] c"*[4]s64\00"
@tn.str.234 = private constant [8 x i8] c"*[4]i64\00"
@tn.str.235 = private constant [5 x i8] c"*f64\00"
@tn.str.236 = private constant [17 x i8] c"*Source_Location\00"
@tn.str.237 = private constant [11 x i8] c"*Allocator\00"
@@ -148,9 +148,9 @@
@tn.str.249 = private constant [17 x i8] c"*OperatingSystem\00"
@tn.str.250 = private constant [14 x i8] c"*Architecture\00"
@tn.str.251 = private constant [15 x i8] c"*[16]FlagValue\00"
@tn.str.252 = private constant [8 x i8] c"*[8]s64\00"
@tn.str.252 = private constant [8 x i8] c"*[8]i64\00"
@tn.str.253 = private constant [8 x i8] c"*[64]u8\00"
@tn.str.254 = private constant [9 x i8] c"*[64]s64\00"
@tn.str.254 = private constant [9 x i8] c"*[64]i64\00"
@tn.str.255 = private constant [10 x i8] c"*[]string\00"
@tn.str.256 = private constant [6 x i8] c"*[]u8\00"
@tn.str.257 = private constant [12 x i8] c"*[]FlagSpec\00"
@@ -163,7 +163,7 @@
@tn.str.264 = private constant [20 x i8] c"**TrackingAllocator\00"
@tn.str.265 = private constant [7 x i8] c"**File\00"
@tn.str.266 = private constant [5 x i8] c"**u8\00"
@tn.str.267 = private constant [6 x i8] c"**s32\00"
@tn.str.267 = private constant [6 x i8] c"**i32\00"
@tn.str.268 = private constant [11 x i8] c"**SockAddr\00"
@tn.str.269 = private constant [6 x i8] c"**u32\00"
@tn.str.270 = private constant [10 x i8] c"*[*]Value\00"
@@ -172,7 +172,7 @@
@tn.str.273 = private constant [9 x i8] c"**Object\00"
@tn.str.274 = private constant [7 x i8] c"**Sink\00"
@tn.str.275 = private constant [9 x i8] c"**Parser\00"
@tn.str.276 = private constant [6 x i8] c"**s64\00"
@tn.str.276 = private constant [6 x i8] c"**i64\00"
@tn.str.277 = private constant [9 x i8] c"**Parsed\00"
@tn.str.278 = private constant [7 x i8] c"**Diag\00"
@tn.str.279 = private constant [9 x i8] c"**Sha256\00"
@@ -554,7 +554,7 @@
@str.650 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1
@str.651 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.652 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.653 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1
@str.653 = private unnamed_addr constant [5 x i8] c"*i32\00", align 1
@str.654 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.655 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.656 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1
@@ -581,7 +581,7 @@
@str.677 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1
@str.678 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.679 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.680 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1
@str.680 = private unnamed_addr constant [5 x i8] c"*i64\00", align 1
@str.681 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.682 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.683 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1
@@ -1956,7 +1956,7 @@ dispatch.case.277: ; preds = %match.arm.59
%ua.raw174 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr175 = inttoptr i64 %ua.raw174 to ptr
%ua.load176 = load [4 x i64], ptr %ua.ptr175, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load176)
%callN = call { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %ua.load176)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.275
@@ -1972,7 +1972,7 @@ dispatch.case.279: ; preds = %match.arm.59
%ua.raw182 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr183 = inttoptr i64 %ua.raw182 to ptr
%ua.load184 = load [8 x i64], ptr %ua.ptr183, align 8
%callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load184)
%callN = call { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %ua.load184)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.275
@@ -1988,7 +1988,7 @@ dispatch.case.281: ; preds = %match.arm.59
%ua.raw190 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr191 = inttoptr i64 %ua.raw190 to ptr
%ua.load192 = load [64 x i64], ptr %ua.ptr191, align 8
%callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load192)
%callN = call { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %ua.load192)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.275
@@ -2131,7 +2131,7 @@ dispatch.case.356: ; preds = %match.arm.61
dispatch.case.357: ; preds = %match.arm.61
%ua.raw249 = extractvalue { i64, i64 } %loadN, 1
%iNp250 = inttoptr i64 %ua.raw249 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp250)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %iNp250)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.345
@@ -2194,7 +2194,7 @@ dispatch.case.365: ; preds = %match.arm.61
dispatch.case.366: ; preds = %match.arm.61
%ua.raw276 = extractvalue { i64, i64 } %loadN, 1
%iNp277 = inttoptr i64 %ua.raw276 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp277)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %iNp277)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.345
@@ -3532,7 +3532,7 @@ if.then.10: ; preds = %if.merge.9
if.merge.11: ; preds = %if.then.10, %if.merge.9
%loadN = load i32, ptr %allocaN, align 4
call void @print__ct_s5a624c50db282f36__pack_s32(ptr @__sx_default_context, i32 %loadN)
call void @print__ct_s5a624c50db282f36__pack_i32(ptr @__sx_default_context, i32 %loadN)
%loadN = load i32, ptr %allocaN, align 4
ret i32 %loadN
}
@@ -3552,7 +3552,7 @@ entry:
}
; Function Attrs: nounwind
define internal void @print__ct_s5a624c50db282f36__pack_s32(ptr %0, i32 %1) #0 {
define internal void @print__ct_s5a624c50db282f36__pack_i32(ptr %0, i32 %1) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.323, i64 20 }, ptr %alloca, align 8
@@ -3560,8 +3560,8 @@ entry:
store i32 %1, ptr %allocaN, align 4
%allocaN = alloca [1 x { i64, i64 }], align 8
%load = load i32, ptr %allocaN, align 4
%sN = sext i32 %load to i64
%ba.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %load to i64
%ba.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
%igp.ptr = getelementptr { i64, i64 }, ptr %allocaN, i64 0
store { i64, i64 } %ba.val, ptr %igp.ptr, align 8
%allocaN = alloca { ptr, i64 }, align 8
@@ -3579,8 +3579,8 @@ entry:
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i32, ptr %allocaN, align 4
%sN = sext i32 %loadN to i64
%ba.val13 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %loadN to i64
%ba.val13 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
%callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val13)
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
@@ -3680,14 +3680,14 @@ fv.case: ; preds = %if.merge.137
fv.case17: ; preds = %if.merge.137
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.137
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.137
@@ -4383,8 +4383,8 @@ fv.default: ; preds = %if.merge.182
fv.case: ; preds = %if.merge.182
%fv.field = extractvalue { i32 } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
}
@@ -4467,14 +4467,14 @@ fv.case: ; preds = %if.merge.187
fv.case17: ; preds = %if.merge.187
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.187
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.187
@@ -4559,8 +4559,8 @@ fv.default: ; preds = %if.merge.192
fv.case: ; preds = %if.merge.192
%fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case17: ; preds = %if.merge.192
@@ -5961,7 +5961,7 @@ if.merge.274: ; preds = %if.then.273, %entry
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %1) #0 {
entry:
%alloca = alloca [4 x i64], align 8
%ig.tmp = alloca [4 x i64], align 8
@@ -6064,7 +6064,7 @@ if.merge.292: ; preds = %if.then.291, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %1) #0 {
entry:
%alloca = alloca [8 x i64], align 8
%ig.tmp = alloca [8 x i64], align 8
@@ -6165,7 +6165,7 @@ if.merge.302: ; preds = %if.then.301, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %1) #0 {
entry:
%alloca = alloca [64 x i64], align 8
%ig.tmp = alloca [64 x i64], align 8
@@ -6815,7 +6815,7 @@ if.merge.420: ; preds = %if.else.419, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8
@@ -7065,7 +7065,7 @@ if.merge.447: ; preds = %if.else.446, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8

View File

@@ -1,5 +1,5 @@
error: error tag 'error.Foo' is not in caller's error set 'A'
--> /Users/agra/projects/sx/examples/1007-errors-inferred-widening-reject.sx:23:5
--> examples/1007-errors-inferred-widening-reject.sx:23:5
|
23 | try via(); // error: Foo (via's converged set) not in A
| ^^^^^^^^^

View File

@@ -27,10 +27,10 @@
@tag_names = private constant [16 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.114, i64 8 }, { ptr, i64 } { ptr @tag.str.115, i64 2 }, { ptr, i64 } { ptr @tag.str.116, i64 15 }, { ptr, i64 } { ptr @tag.str.117, i64 13 }, { ptr, i64 } { ptr @tag.str.118, i64 9 }, { ptr, i64 } { ptr @tag.str.119, i64 9 }, { ptr, i64 } { ptr @tag.str.120, i64 15 }, { ptr, i64 } { ptr @tag.str.121, i64 14 }, { ptr, i64 } { ptr @tag.str.122, i64 14 }, { ptr, i64 } { ptr @tag.str.123, i64 11 }, { ptr, i64 } { ptr @tag.str.124, i64 12 }, { ptr, i64 } { ptr @tag.str.125, i64 15 }, { ptr, i64 } { ptr @tag.str.126, i64 12 }, { ptr, i64 } { ptr @tag.str.127, i64 3 }, { ptr, i64 } { ptr @tag.str.128, i64 5 }]
@tn.str = private constant [13 x i8] c"<unresolved>\00"
@tn.str.129 = private constant [5 x i8] c"bool\00"
@tn.str.130 = private constant [3 x i8] c"s8\00"
@tn.str.131 = private constant [4 x i8] c"s16\00"
@tn.str.132 = private constant [4 x i8] c"s32\00"
@tn.str.133 = private constant [4 x i8] c"s64\00"
@tn.str.130 = private constant [3 x i8] c"i8\00"
@tn.str.131 = private constant [4 x i8] c"i16\00"
@tn.str.132 = private constant [4 x i8] c"i32\00"
@tn.str.133 = private constant [4 x i8] c"i64\00"
@tn.str.134 = private constant [3 x i8] c"u8\00"
@tn.str.135 = private constant [4 x i8] c"u16\00"
@tn.str.136 = private constant [4 x i8] c"u32\00"
@@ -47,7 +47,7 @@
@tn.str.147 = private constant [16 x i8] c"Source_Location\00"
@tn.str.148 = private constant [10 x i8] c"Allocator\00"
@tn.str.149 = private constant [8 x i8] c"Context\00"
@tn.str.150 = private constant [7 x i8] c"[4]s64\00"
@tn.str.150 = private constant [7 x i8] c"[4]i64\00"
@tn.str.151 = private constant [9 x i8] c"[]string\00"
@tn.str.152 = private constant [11 x i8] c"CAllocator\00"
@tn.str.153 = private constant [12 x i8] c"*CAllocator\00"
@@ -72,7 +72,7 @@
@tn.str.172 = private constant [4 x i8] c"*u8\00"
@tn.str.173 = private constant [14 x i8] c"ProcessResult\00"
@tn.str.174 = private constant [15 x i8] c"?ProcessResult\00"
@tn.str.175 = private constant [5 x i8] c"*s32\00"
@tn.str.175 = private constant [5 x i8] c"*i32\00"
@tn.str.176 = private constant [9 x i8] c"SockAddr\00"
@tn.str.177 = private constant [10 x i8] c"*SockAddr\00"
@tn.str.178 = private constant [5 x i8] c"*u32\00"
@@ -88,9 +88,9 @@
@tn.str.188 = private constant [5 x i8] c"[]u8\00"
@tn.str.189 = private constant [5 x i8] c"Sink\00"
@tn.str.190 = private constant [6 x i8] c"*Sink\00"
@tn.str.191 = private constant [17 x i8] c"(s64, JsonError)\00"
@tn.str.191 = private constant [17 x i8] c"(i64, JsonError)\00"
@tn.str.192 = private constant [15 x i8] c"JsonParseError\00"
@tn.str.193 = private constant [22 x i8] c"(s64, JsonParseError)\00"
@tn.str.193 = private constant [22 x i8] c"(i64, JsonParseError)\00"
@tn.str.194 = private constant [7 x i8] c"Parser\00"
@tn.str.195 = private constant [8 x i8] c"*Parser\00"
@tn.str.196 = private constant [25 x i8] c"(string, JsonParseError)\00"
@@ -99,7 +99,7 @@
@tn.str.199 = private constant [13 x i8] c"Architecture\00"
@tn.str.200 = private constant [13 x i8] c"BuildOptions\00"
@tn.str.201 = private constant [11 x i8] c"() -> bool\00"
@tn.str.202 = private constant [5 x i8] c"*s64\00"
@tn.str.202 = private constant [5 x i8] c"*i64\00"
@tn.str.203 = private constant [9 x i8] c"CliError\00"
@tn.str.204 = private constant [9 x i8] c"FlagSpec\00"
@tn.str.205 = private constant [11 x i8] c"[]FlagSpec\00"
@@ -112,12 +112,12 @@
@tn.str.212 = private constant [19 x i8] c"(Parsed, CliError)\00"
@tn.str.213 = private constant [10 x i8] c"[]Command\00"
@tn.str.214 = private constant [6 x i8] c"*Diag\00"
@tn.str.215 = private constant [7 x i8] c"[8]s64\00"
@tn.str.215 = private constant [7 x i8] c"[8]i64\00"
@tn.str.216 = private constant [7 x i8] c"[64]u8\00"
@tn.str.217 = private constant [7 x i8] c"Sha256\00"
@tn.str.218 = private constant [8 x i8] c"*Sha256\00"
@tn.str.219 = private constant [8 x i8] c"?[64]u8\00"
@tn.str.220 = private constant [8 x i8] c"[64]s64\00"
@tn.str.220 = private constant [8 x i8] c"[64]i64\00"
@tn.str.221 = private constant [2 x i8] c"E\00"
@tn.str.222 = private constant [13 x i8] c"**CAllocator\00"
@tn.str.223 = private constant [7 x i8] c"**void\00"
@@ -129,7 +129,7 @@
@tn.str.229 = private constant [8 x i8] c"*[1]Any\00"
@tn.str.230 = private constant [7 x i8] c"*[]Any\00"
@tn.str.231 = private constant [6 x i8] c"*bool\00"
@tn.str.232 = private constant [8 x i8] c"*[4]s64\00"
@tn.str.232 = private constant [8 x i8] c"*[4]i64\00"
@tn.str.233 = private constant [5 x i8] c"*f64\00"
@tn.str.234 = private constant [17 x i8] c"*Source_Location\00"
@tn.str.235 = private constant [11 x i8] c"*Allocator\00"
@@ -147,9 +147,9 @@
@tn.str.247 = private constant [17 x i8] c"*OperatingSystem\00"
@tn.str.248 = private constant [14 x i8] c"*Architecture\00"
@tn.str.249 = private constant [15 x i8] c"*[16]FlagValue\00"
@tn.str.250 = private constant [8 x i8] c"*[8]s64\00"
@tn.str.250 = private constant [8 x i8] c"*[8]i64\00"
@tn.str.251 = private constant [8 x i8] c"*[64]u8\00"
@tn.str.252 = private constant [9 x i8] c"*[64]s64\00"
@tn.str.252 = private constant [9 x i8] c"*[64]i64\00"
@tn.str.253 = private constant [10 x i8] c"*[]string\00"
@tn.str.254 = private constant [6 x i8] c"*[]u8\00"
@tn.str.255 = private constant [12 x i8] c"*[]FlagSpec\00"
@@ -162,7 +162,7 @@
@tn.str.262 = private constant [20 x i8] c"**TrackingAllocator\00"
@tn.str.263 = private constant [7 x i8] c"**File\00"
@tn.str.264 = private constant [5 x i8] c"**u8\00"
@tn.str.265 = private constant [6 x i8] c"**s32\00"
@tn.str.265 = private constant [6 x i8] c"**i32\00"
@tn.str.266 = private constant [11 x i8] c"**SockAddr\00"
@tn.str.267 = private constant [6 x i8] c"**u32\00"
@tn.str.268 = private constant [10 x i8] c"*[*]Value\00"
@@ -171,7 +171,7 @@
@tn.str.271 = private constant [9 x i8] c"**Object\00"
@tn.str.272 = private constant [7 x i8] c"**Sink\00"
@tn.str.273 = private constant [9 x i8] c"**Parser\00"
@tn.str.274 = private constant [6 x i8] c"**s64\00"
@tn.str.274 = private constant [6 x i8] c"**i64\00"
@tn.str.275 = private constant [9 x i8] c"**Parsed\00"
@tn.str.276 = private constant [7 x i8] c"**Diag\00"
@tn.str.277 = private constant [9 x i8] c"**Sha256\00"
@@ -550,7 +550,7 @@
@str.645 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1
@str.646 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.647 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.648 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1
@str.648 = private unnamed_addr constant [5 x i8] c"*i32\00", align 1
@str.649 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.650 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.651 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1
@@ -577,7 +577,7 @@
@str.672 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1
@str.673 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.674 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.675 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1
@str.675 = private unnamed_addr constant [5 x i8] c"*i64\00", align 1
@str.676 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1
@str.677 = private unnamed_addr constant [5 x i8] c"null\00", align 1
@str.678 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1
@@ -1951,7 +1951,7 @@ dispatch.case.295: ; preds = %match.arm.77
%ua.raw174 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr175 = inttoptr i64 %ua.raw174 to ptr
%ua.load176 = load [4 x i64], ptr %ua.ptr175, align 8
%callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load176)
%callN = call { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %ua.load176)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.293
@@ -1967,7 +1967,7 @@ dispatch.case.297: ; preds = %match.arm.77
%ua.raw182 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr183 = inttoptr i64 %ua.raw182 to ptr
%ua.load184 = load [8 x i64], ptr %ua.ptr183, align 8
%callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load184)
%callN = call { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %ua.load184)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.293
@@ -1983,7 +1983,7 @@ dispatch.case.299: ; preds = %match.arm.77
%ua.raw190 = extractvalue { i64, i64 } %loadN, 1
%ua.ptr191 = inttoptr i64 %ua.raw190 to ptr
%ua.load192 = load [64 x i64], ptr %ua.ptr191, align 8
%callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load192)
%callN = call { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %ua.load192)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.293
@@ -2126,7 +2126,7 @@ dispatch.case.374: ; preds = %match.arm.79
dispatch.case.375: ; preds = %match.arm.79
%ua.raw249 = extractvalue { i64, i64 } %loadN, 1
%iNp250 = inttoptr i64 %ua.raw249 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp250)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %iNp250)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.363
@@ -2189,7 +2189,7 @@ dispatch.case.383: ; preds = %match.arm.79
dispatch.case.384: ; preds = %match.arm.79
%ua.raw276 = extractvalue { i64, i64 } %loadN, 1
%iNp277 = inttoptr i64 %ua.raw276 to ptr
%callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp277)
%callN = call { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %iNp277)
store { ptr, i64 } %callN, ptr %allocaN, align 8
br label %dispatch.merge.363
@@ -3624,7 +3624,7 @@ if.merge.23: ; preds = %if.then.22, %if.mer
%addN = add i32 %loadN, %callN
store i32 %addN, ptr %alloca, align 4
%loadN = load i32, ptr %alloca, align 4
call void @print__ct_sbcb4570e4e0d606e__pack_s32(ptr @__sx_default_context, i32 %loadN)
call void @print__ct_sbcb4570e4e0d606e__pack_i32(ptr @__sx_default_context, i32 %loadN)
%loadN = load i32, ptr %alloca, align 4
ret i32 %loadN
}
@@ -3644,7 +3644,7 @@ entry:
}
; Function Attrs: nounwind
define internal void @print__ct_sbcb4570e4e0d606e__pack_s32(ptr %0, i32 %1) #0 {
define internal void @print__ct_sbcb4570e4e0d606e__pack_i32(ptr %0, i32 %1) #0 {
entry:
%alloca = alloca { ptr, i64 }, align 8
store { ptr, i64 } { ptr @str.318, i64 17 }, ptr %alloca, align 8
@@ -3652,8 +3652,8 @@ entry:
store i32 %1, ptr %allocaN, align 4
%allocaN = alloca [1 x { i64, i64 }], align 8
%load = load i32, ptr %allocaN, align 4
%sN = sext i32 %load to i64
%ba.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %load to i64
%ba.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
%igp.ptr = getelementptr { i64, i64 }, ptr %allocaN, i64 0
store { i64, i64 } %ba.val, ptr %igp.ptr, align 8
%allocaN = alloca { ptr, i64 }, align 8
@@ -3671,8 +3671,8 @@ entry:
store { ptr, i64 } %callN, ptr %allocaN, align 8
%loadN = load { ptr, i64 }, ptr %allocaN, align 8
%loadN = load i32, ptr %allocaN, align 4
%sN = sext i32 %loadN to i64
%ba.val13 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %loadN to i64
%ba.val13 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
%callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val13)
%callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN)
store { ptr, i64 } %callN, ptr %allocaN, align 8
@@ -3772,14 +3772,14 @@ fv.case: ; preds = %if.merge.155
fv.case17: ; preds = %if.merge.155
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.155
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.155
@@ -4475,8 +4475,8 @@ fv.default: ; preds = %if.merge.200
fv.case: ; preds = %if.merge.200
%fv.field = extractvalue { i32 } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
}
@@ -4559,14 +4559,14 @@ fv.case: ; preds = %if.merge.205
fv.case17: ; preds = %if.merge.205
%fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1
%sN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field18 to i64
%fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case20: ; preds = %if.merge.205
%fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2
%sN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field21 to i64
%fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case24: ; preds = %if.merge.205
@@ -4651,8 +4651,8 @@ fv.default: ; preds = %if.merge.210
fv.case: ; preds = %if.merge.210
%fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0
%sN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1
%iN = sext i32 %fv.field to i64
%fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1
br label %fv.merge
fv.case17: ; preds = %if.merge.210
@@ -6053,7 +6053,7 @@ if.merge.292: ; preds = %if.then.291, %entry
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_4_i64(ptr %0, [4 x i64] %1) #0 {
entry:
%alloca = alloca [4 x i64], align 8
%ig.tmp = alloca [4 x i64], align 8
@@ -6156,7 +6156,7 @@ if.merge.310: ; preds = %if.then.309, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_8_i64(ptr %0, [8 x i64] %1) #0 {
entry:
%alloca = alloca [8 x i64], align 8
%ig.tmp = alloca [8 x i64], align 8
@@ -6257,7 +6257,7 @@ if.merge.320: ; preds = %if.then.319, %while
}
; Function Attrs: nounwind
define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 {
define internal { ptr, i64 } @array_to_string__AR_64_i64(ptr %0, [64 x i64] %1) #0 {
entry:
%alloca = alloca [64 x i64], align 8
%ig.tmp = alloca [64 x i64], align 8
@@ -6907,7 +6907,7 @@ if.merge.438: ; preds = %if.else.437, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8
@@ -7157,7 +7157,7 @@ if.merge.465: ; preds = %if.else.464, %if.th
}
; Function Attrs: nounwind
define internal { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %1) #0 {
define internal { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %1) #0 {
entry:
%alloca = alloca ptr, align 8
store ptr %1, ptr %alloca, align 8

View File

@@ -1,5 +1,5 @@
error: `catch` requires a failable expression; operand has type 's32'
error: `catch` requires a failable expression; operand has type 'i32'
--> examples/1010-errors-catch-rejections.sx:11:5
|
11 | plain() catch (e) { return 1; }; // error: operand has type s32 (not failable)
11 | plain() catch (e) { return 1; }; // error: operand has type i32 (not failable)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

View File

@@ -1,4 +1,4 @@
error: `catch` body must produce a value of type 's32' (or diverge with `return` / `raise`)
error: `catch` body must produce a value of type 'i32' (or diverge with `return` / `raise`)
--> examples/1013-errors-value-failable-reject.sx:17:10
|
17 | x := parse(-1) catch (e) { print("oops\n") }; // error: body yields no value

View File

@@ -1,5 +1,5 @@
error: `or value` requires a value-carrying failable (`-> (T, !)`) — a `-> !` has no success value to fall back to; use `catch` to absorb the error
--> /Users/agra/projects/sx/examples/1015-errors-failable-or-reject.sx:17:10
--> examples/1015-errors-failable-or-reject.sx:17:10
|
17 | x := must(-1) or 0; // error: `-> !` has no success value to fall back to
| ^^^^^^^^

View File

@@ -1,5 +1,5 @@
error: `onfail` is only valid inside a failable function (a return type with `!` or `!Named`) — use `defer` for unconditional cleanup
--> /Users/agra/projects/sx/examples/1017-errors-onfail-reject.sx:9:5
--> examples/1017-errors-onfail-reject.sx:9:5
|
9 | onfail print("never fires\n"); // error: onfail outside a failable function
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

View File

@@ -1,11 +1,11 @@
error: the error slot of a failable cannot be dropped — bind it (`v, err := …`) and handle it, or use `try` / `catch`
--> /Users/agra/projects/sx/examples/1019-errors-failable-discard-reject.sx:27:13
--> examples/1019-errors-failable-discard-reject.sx:27:13
|
27 | a, b := pair(5); // ERROR: error slot omitted (3 slots, 2 names)
| ^^^^^^^
error: the error slot of a failable cannot be dropped — bind it (`v, err := …`) and handle it, or use `try` / `catch`
--> /Users/agra/projects/sx/examples/1019-errors-failable-discard-reject.sx:28:13
--> examples/1019-errors-failable-discard-reject.sx:28:13
|
28 | v, _ := parse(5); // ERROR: error slot discarded with `_`
| ^^^^^^^^

View File

@@ -1,5 +1,5 @@
error: `return` is not allowed inside a `defer` body — cleanup runs while the function is already exiting, so there is nothing to transfer control to
--> /Users/agra/projects/sx/examples/1020-errors-cleanup-body-restrictions.sx:18:14
--> examples/1020-errors-cleanup-body-restrictions.sx:18:14
|
18 | defer { return; } // ERROR: return in defer body
| ^^^^^^

View File

@@ -1,5 +1,5 @@
error: main: return type must be void, an integer, or `!`; got 'string'
--> /Users/agra/projects/sx/examples/1022-errors-main-signature-reject.sx:13:15
--> examples/1022-errors-main-signature-reject.sx:13:15
|
13 | main :: () -> string { // ERROR: return type must be void, an integer, or `!`
| ^^^^^^

View File

@@ -1,2 +1,2 @@
first assert passed
ASSERTION FAILED at /Users/agra/projects/sx/examples/1032-errors-assert.sx:12: two plus two is not five
ASSERTION FAILED at examples/1032-errors-assert.sx:12: two plus two is not five

View File

@@ -1,11 +1,11 @@
error: error tag 'error.Negative' is not in caller's error set 'Small'
--> /Users/agra/projects/sx/examples/1042-errors-failable-closure-shape-union-reject.sx:13:12
--> examples/1042-errors-failable-closure-shape-union-reject.sx:13:12
|
13 | return try h(x); // Negative, Other ∉ Small → two diagnostics
| ^^^^^^^^
error: error tag 'error.Other' is not in caller's error set 'Small'
--> /Users/agra/projects/sx/examples/1042-errors-failable-closure-shape-union-reject.sx:13:12
--> examples/1042-errors-failable-closure-shape-union-reject.sx:13:12
|
13 | return try h(x); // Negative, Other ∉ Small → two diagnostics
| ^^^^^^^^

View File

@@ -1,5 +1,5 @@
error: lambda body raises; declare its return type explicitly with `-> (T, !)` or `-> (T, !Named)`
--> /Users/agra/projects/sx/examples/1043-errors-lambda-raise-annotation-hint.sx:18:61
--> examples/1043-errors-lambda-raise-annotation-hint.sx:18:61
|
18 | print("{}\n", take(closure((x: s32) -> s32 { if x < 0 { raise error.Neg; } return x; }), -1));
18 | print("{}\n", take(closure((x: i32) -> i32 { if x < 0 { raise error.Neg; } return x; }), -1));
| ^^^^^^^^^^^^^^^^

View File

@@ -1,17 +1,17 @@
error: a closure value cannot be passed as a bare function-pointer `(...) -> ...` — its environment can't be carried across the bare ABI; pass the closure literal directly at the call site, or declare the parameter type as `Closure(...)`
--> /Users/agra/projects/sx/examples/1045-errors-closure-var-bare-slot-reject.sx:23:10
--> examples/1045-errors-closure-var-bare-slot-reject.sx:23:10
|
23 | _ := bare(inc, 9); // reject: closure value → bare slot
| ^^^^^^^^^^^^
error: a closure value cannot be passed as a bare function-pointer `(...) -> ...` — its environment can't be carried across the bare ABI; pass the closure literal directly at the call site, or declare the parameter type as `Closure(...)`
--> /Users/agra/projects/sx/examples/1045-errors-closure-var-bare-slot-reject.sx:24:10
--> examples/1045-errors-closure-var-bare-slot-reject.sx:24:10
|
24 | _ := baref(inc, 9); // reject: also the ∅-widening crossing
| ^^^^^^^^^^^^^
error: a closure value cannot be passed as a bare function-pointer `(...) -> ...` — its environment can't be carried across the bare ABI; pass the closure literal directly at the call site, or declare the parameter type as `Closure(...)`
--> /Users/agra/projects/sx/examples/1045-errors-closure-var-bare-slot-reject.sx:25:10
--> examples/1045-errors-closure-var-bare-slot-reject.sx:25:10
|
25 | _ := bare(add, 9); // reject: capturing closure → bare slot
| ^^^^^^^^^^^^

View File

@@ -1,11 +1,11 @@
error: value `v` from a failable can be used only where its error `err` is proven absent — guard the use with `if !err { … }`, or return early with `if err { return; }` before reading `v`
--> /Users/agra/projects/sx/examples/1047-errors-value-slot-liveness-reject.sx:22:21
--> examples/1047-errors-value-slot-liveness-reject.sx:22:21
|
22 | if err { return v; } // REJECTED: err present on this path
| ^
error: value `v` from a failable can be used only where its error `err` is proven absent — guard the use with `if !err { … }`, or return early with `if err { return; }` before reading `v`
--> /Users/agra/projects/sx/examples/1047-errors-value-slot-liveness-reject.sx:30:12
--> examples/1047-errors-value-slot-liveness-reject.sx:30:12
|
30 | return v; // REJECTED: err not proven absent
| ^

View File

@@ -1,11 +1,11 @@
error: a bare failable call in a `defer` body has nowhere to send its error — the block is already exiting; absorb it locally with `catch` or `or <value>`
--> /Users/agra/projects/sx/examples/1049-errors-cleanup-absorption-reject.sx:14:12
--> examples/1049-errors-cleanup-absorption-reject.sx:14:12
|
14 | defer failing(); // REJECTED: bare failable in a defer body
| ^^^^^^^^^
error: a bare failable call in a `onfail` body has nowhere to send its error — the block is already exiting; absorb it locally with `catch` or `or <value>`
--> /Users/agra/projects/sx/examples/1049-errors-cleanup-absorption-reject.sx:15:14
--> examples/1049-errors-cleanup-absorption-reject.sx:15:14
|
15 | onfail { failing(); } // REJECTED: bare failable in an onfail body
| ^^^^^^^^^

View File

@@ -1,5 +1,5 @@
error: field 'bogus' not found on type 'Vec'
--> /Users/agra/projects/sx/examples/1100-diagnostics-err-field-not-found.sx:8:15
--> examples/1100-diagnostics-err-field-not-found.sx:8:15
|
8 | return xx v.bogus;
| ^^^^^^^

View File

@@ -1,5 +1,5 @@
error: field '42' not found on type 'tuple'
--> /Users/agra/projects/sx/examples/1101-diagnostics-err-tuple-oob.sx:6:15
--> examples/1101-diagnostics-err-tuple-oob.sx:6:15
|
6 | return xx t.42;
| ^^^^

View File

@@ -1,5 +1,5 @@
error: cannot infer enum type for '.Foo' — use an explicit type or assign to a typed variable
--> /Users/agra/projects/sx/examples/1102-diagnostics-err-dot-shorthand.sx:5:10
--> examples/1102-diagnostics-err-dot-shorthand.sx:5:10
|
5 | x := .Foo(1, 2);
| ^^^^

View File

@@ -1,5 +1,5 @@
error: no variant 'Bogus' on type 'Shape'
--> /Users/agra/projects/sx/examples/1103-diagnostics-err-bad-variant.sx:18:14
--> examples/1103-diagnostics-err-bad-variant.sx:18:14
|
18 | case .Bogus: (x) { print("bogus={}\n", x); }
| ^^^^^^

View File

@@ -1,5 +1,5 @@
error: call-convention mismatch: 'sx_handler' is declared with default sx convention but the target type expects callconv(.c)
--> /Users/agra/projects/sx/examples/1104-diagnostics-callconv-mismatch-diagnostic.sx:12:42
--> examples/1104-diagnostics-callconv-mismatch-diagnostic.sx:12:42
|
12 | fp : (*void) -> *void callconv(.c) = sx_handler;
| ^^^^^^^^^^

View File

@@ -1,5 +1,5 @@
error: intentional compile error from #run
--> /Users/agra/projects/sx/examples/1105-diagnostics-compile-error.sx:12:6
--> examples/1105-diagnostics-compile-error.sx:12:6
|
12 | #run compile_error("intentional compile error from #run");
| ^^^^^^^^^^^^^

View File

@@ -1,29 +1,29 @@
error: cannot apply '+' to operands of type 's64' and 'string'
--> /Users/agra/projects/sx/examples/1106-diagnostics-binop-operand-type-check.sx:19:10
error: cannot apply '+' to operands of type 'i64' and 'string'
--> examples/1106-diagnostics-binop-operand-type-check.sx:19:10
|
19 | a := n + s; // arithmetic: s64 + string
19 | a := n + s; // arithmetic: i64 + string
| ^
error: cannot apply '*' to operands of type 'string' and 's64'
--> /Users/agra/projects/sx/examples/1106-diagnostics-binop-operand-type-check.sx:20:10
error: cannot apply '*' to operands of type 'string' and 'i64'
--> examples/1106-diagnostics-binop-operand-type-check.sx:20:10
|
20 | b := s * n; // arithmetic: non-numeric LHS (string * s64)
20 | b := s * n; // arithmetic: non-numeric LHS (string * i64)
| ^
error: cannot apply '<' to operands of type 's64' and 'string'
--> /Users/agra/projects/sx/examples/1106-diagnostics-binop-operand-type-check.sx:21:10
error: cannot apply '<' to operands of type 'i64' and 'string'
--> examples/1106-diagnostics-binop-operand-type-check.sx:21:10
|
21 | c := n < s; // ordering: s64 < string
21 | c := n < s; // ordering: i64 < string
| ^
error: cannot apply '&' to operands of type 's64' and 'string'
--> /Users/agra/projects/sx/examples/1106-diagnostics-binop-operand-type-check.sx:22:10
error: cannot apply '&' to operands of type 'i64' and 'string'
--> examples/1106-diagnostics-binop-operand-type-check.sx:22:10
|
22 | d := n & s; // bitwise: s64 & string
22 | d := n & s; // bitwise: i64 & string
| ^
error: cannot apply '<<' to operands of type 's64' and 'string'
--> /Users/agra/projects/sx/examples/1106-diagnostics-binop-operand-type-check.sx:23:10
error: cannot apply '<<' to operands of type 'i64' and 'string'
--> examples/1106-diagnostics-binop-operand-type-check.sx:23:10
|
23 | e := n << s; // shift: s64 << string
23 | e := n << s; // shift: i64 << string
| ^

Some files were not shown because too many files have changed in this diff Show More