From b3b78e25c09e67207e3e0c9b9890de29c4207c86 Mon Sep 17 00:00:00 2001 From: agra Date: Thu, 11 Jun 2026 21:46:03 +0300 Subject: [PATCH] =?UTF-8?q?std:=20organise=20the=20facade=20=E2=80=94=20th?= =?UTF-8?q?ematic=20groups,=20aligned=20columns?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Same 47 re-exports, regrouped: compiler-resolved types, type-system/ reflection builtins, output + libc escape hatch, formatting (print/ format up front, the *_to_string family together), string ops + allocation helpers, fmt internals marked as legacy-surface, List, tail. Zero output-stream diffs; 37 .ir snapshots re-pinned (renumbering from decl reordering). Gates: suite 588/588, zig build test 0, m3te 23/23, game builds + bundles. --- .../expected/0031-basic-local-fn-return.ir | 512 +++++++++--------- .../expected/0032-basic-ufcs-return-type.ir | 512 +++++++++--------- .../0044-basic-default-arg-expansion.ir | 16 +- .../0107-types-int-cmp-in-float-ternary.ir | 16 +- examples/expected/0200-generics-generic.ir | 16 +- .../expected/0201-generics-generic-struct.ir | 16 +- .../expected/0301-closures-fn-pointers.ir | 16 +- .../0400-protocols-impl-for-builtin.ir | 16 +- ...-protocols-parameterized-protocol-value.ir | 16 +- ...protocols-generic-struct-protocol-erase.ir | 16 +- .../0416-protocols-auto-type-erasure.ir | 512 +++++++++--------- .../expected/0507-packs-pack-mono-dedup.ir | 16 +- .../0513-packs-pack-mixed-comptime.ir | 16 +- .../0518-packs-pack-value-dispatch.ir | 16 +- .../0528-packs-protocol-pack-methods.ir | 16 +- .../0903-optionals-optional-roundtrip.ir | 16 +- .../0904-optionals-any-to-string-optional.ir | 16 +- examples/expected/1004-errors-try.ir | 16 +- .../1006-errors-inferred-error-sets.ir | 16 +- examples/expected/1009-errors-catch.ir | 16 +- .../expected/1202-ffi-cc-c-large-aggregate.ir | 16 +- .../1309-ffi-objc-class-method-lowering.ir | 16 +- .../1314-ffi-objc-class-dealloc-roundtrip.ir | 16 +- .../1319-ffi-objc-property-sx-defined.ir | 16 +- .../1329-ffi-objc-call-03-selector-sharing.ir | 16 +- .../1332-ffi-objc-call-06-sret-return.ir | 16 +- .../1347-ffi-objc-dsl-07-mangling-table.ir | 16 +- .../1402-ffi-jni-call-03-methodid-sharing.ir | 16 +- .../1403-ffi-jni-call-04-jint-return.ir | 16 +- .../1404-ffi-jni-call-05-jlong-return.ir | 16 +- .../1405-ffi-jni-call-06-jdouble-return.ir | 16 +- .../1406-ffi-jni-call-07-jboolean-return.ir | 16 +- .../1407-ffi-jni-call-08-jobject-return.ir | 16 +- .../expected/1408-ffi-jni-call-09-static.ir | 16 +- .../expected/1418-ffi-jni-class-08-call.ir | 16 +- .../1421-ffi-jni-env-02-lexical-direct.ir | 16 +- .../expected/1425-ffi-jni-main-03-ctor.ir | 16 +- library/modules/std.sx | 125 +++-- 38 files changed, 1109 insertions(+), 1096 deletions(-) diff --git a/examples/expected/0031-basic-local-fn-return.ir b/examples/expected/0031-basic-local-fn-return.ir index a3418b1..02957ae 100644 --- a/examples/expected/0031-basic-local-fn-return.ir +++ b/examples/expected/0031-basic-local-fn-return.ir @@ -2861,14 +2861,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 ; Function Attrs: nounwind declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 -; Function Attrs: nounwind -declare ptr @escape(ptr, ptr) #0 - -declare i64 @write(i32, ptr, i64) - -; Function Attrs: nounwind -declare void @log_emit(ptr, ptr, ptr) #0 - ; Function Attrs: nounwind declare i32 @open(ptr, i32, ...) #0 @@ -2878,6 +2870,8 @@ declare i32 @close(i32) #0 ; Function Attrs: nounwind declare i64 @read(i32, ptr, i64) #0 +declare i64 @write(i32, ptr, i64) + ; Function Attrs: nounwind declare i64 @lseek(i32, i64, i32) #0 @@ -3280,6 +3274,9 @@ declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr ; Function Attrs: nounwind declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +; Function Attrs: nounwind +declare ptr @escape(ptr, ptr) #0 + ; Function Attrs: nounwind declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -3607,6 +3604,9 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0 ; Function Attrs: nounwind declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + ; Function Attrs: nounwind declare void @assert.107(ptr, i1) #0 @@ -3902,748 +3902,748 @@ declare ptr @TrackingAllocator.alloc_bytes.181(ptr, ptr, i64) #0 declare void @TrackingAllocator.dealloc_bytes.182(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @escape.183(ptr, ptr) #0 +declare i32 @open.183(ptr, i32, ...) #0 ; Function Attrs: nounwind -declare void @log_emit.184(ptr, ptr, ptr) #0 +declare i32 @close.184(i32) #0 ; Function Attrs: nounwind -declare i32 @open.185(ptr, i32, ...) #0 +declare i64 @read.185(i32, ptr, i64) #0 ; Function Attrs: nounwind -declare i32 @close.186(i32) #0 +declare i64 @lseek.186(i32, i64, i32) #0 ; Function Attrs: nounwind -declare i64 @read.187(i32, ptr, i64) #0 +declare i32 @unlink.187(ptr) #0 ; Function Attrs: nounwind -declare i64 @lseek.188(i32, i64, i32) #0 +declare i32 @rmdir.188(ptr) #0 ; Function Attrs: nounwind -declare i32 @unlink.189(ptr) #0 +declare i32 @mkdir.189(ptr, i32) #0 ; Function Attrs: nounwind -declare i32 @rmdir.190(ptr) #0 +declare i32 @access.190(ptr, i32) #0 ; Function Attrs: nounwind -declare i32 @mkdir.191(ptr, i32) #0 +declare i32 @chmod.191(ptr, i32) #0 ; Function Attrs: nounwind -declare i32 @access.192(ptr, i32) #0 +declare i32 @rename.192(ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @chmod.193(ptr, i32) #0 +declare i1 @File.is_valid.193(ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @rename.194(ptr, ptr) #0 +declare i1 @File.close.194(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @File.is_valid.195(ptr, ptr) #0 +declare i64 @File.read.195(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @File.close.196(ptr, ptr) #0 +declare i64 @File.write.196(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i64 @File.read.197(ptr, ptr, ptr) #0 +declare i64 @File.seek.197(ptr, ptr, i64, i64) #0 ; Function Attrs: nounwind -declare i64 @File.write.198(ptr, ptr, ptr) #0 +declare i32 @mode_to_flags.198(ptr, i64) #0 ; Function Attrs: nounwind -declare i64 @File.seek.199(ptr, ptr, i64, i64) #0 +declare i64 @open_file.199(ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare i32 @mode_to_flags.200(ptr, i64) #0 +declare void @read_file.200(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare i64 @open_file.201(ptr, ptr, i64) #0 +declare i1 @write_file.201(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @read_file.202(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 +declare i1 @append_file.202(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @write_file.203(ptr, ptr, ptr) #0 +declare i1 @exists.203(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @append_file.204(ptr, ptr, ptr) #0 +declare i1 @delete_file.204(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @exists.205(ptr, ptr) #0 +declare i1 @delete_dir.205(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @delete_file.206(ptr, ptr) #0 +declare i1 @create_dir.206(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @delete_dir.207(ptr, ptr) #0 +declare i1 @set_mode.207(ptr, ptr, i32) #0 ; Function Attrs: nounwind -declare i1 @create_dir.208(ptr, ptr) #0 +declare i1 @move.208(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @set_mode.209(ptr, ptr, i32) #0 +declare i1 @create_dir_all.209(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @move.210(ptr, ptr, ptr) #0 +declare i1 @copy_file.210(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @create_dir_all.211(ptr, ptr) #0 +declare ptr @basename.211(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @copy_file.212(ptr, ptr, ptr) #0 +declare ptr @dirname.212(ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @basename.213(ptr, ptr) #0 +declare ptr @spaces.213(ptr, i32) #0 ; Function Attrs: nounwind -declare ptr @dirname.214(ptr, ptr) #0 +declare i32 @sx_trace_len.214() #0 ; Function Attrs: nounwind -declare ptr @spaces.215(ptr, i32) #0 +declare i32 @sx_trace_truncated.215() #0 ; Function Attrs: nounwind -declare i32 @sx_trace_len.216() #0 +declare i64 @sx_trace_frame_at.216(i32) #0 ; Function Attrs: nounwind -declare i32 @sx_trace_truncated.217() #0 +declare ptr @to_string.217(ptr) #0 ; Function Attrs: nounwind -declare i64 @sx_trace_frame_at.218(i32) #0 +declare void @print_current.218(ptr) #0 ; Function Attrs: nounwind -declare ptr @to_string.219(ptr) #0 +declare void @print_interpreter_frames.219(ptr) #0 ; Function Attrs: nounwind -declare void @print_current.220(ptr) #0 +declare ptr @popen.220(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @print_interpreter_frames.221(ptr) #0 +declare i32 @pclose.221(ptr) #0 ; Function Attrs: nounwind -declare ptr @popen.222(ptr, ptr) #0 +declare i64 @fread.222(ptr, i64, i64, ptr) #0 ; Function Attrs: nounwind -declare i32 @pclose.223(ptr) #0 +declare i32 @feof.223(ptr) #0 ; Function Attrs: nounwind -declare i64 @fread.224(ptr, i64, i64, ptr) #0 +declare ptr @getenv.224(ptr) #0 ; Function Attrs: nounwind -declare i32 @feof.225(ptr) #0 +declare i64 @strlen.225(ptr) #0 ; Function Attrs: nounwind -declare ptr @getenv.226(ptr) #0 +declare i32 @system.226(ptr) #0 ; Function Attrs: nounwind -declare i64 @strlen.227(ptr) #0 +declare void @run.227(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @system.228(ptr) #0 +declare void @env.228(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare void @run.229(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 +declare void @find_executable.229(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare void @env.230(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 +declare void @_exit.230(i32) #0 ; Function Attrs: nounwind -declare void @find_executable.231(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 +declare void @exit.231(ptr, i8, ptr) #0 ; Function Attrs: nounwind -declare void @_exit.232(i32) #0 +declare void @assert.232(ptr, i1, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @exit.233(ptr, i8, ptr) #0 +declare i32 @socket.233(i32, i32, i32) #0 ; Function Attrs: nounwind -declare void @assert.234(ptr, i1, ptr, ptr) #0 +declare i32 @setsockopt.234(i32, i32, i32, ptr, i32) #0 ; Function Attrs: nounwind -declare i32 @socket.235(i32, i32, i32) #0 +declare i32 @bind.235(i32, ptr, i32) #0 ; Function Attrs: nounwind -declare i32 @setsockopt.236(i32, i32, i32, ptr, i32) #0 +declare i32 @listen.236(i32, i32) #0 ; Function Attrs: nounwind -declare i32 @bind.237(i32, ptr, i32) #0 +declare i32 @accept.237(i32, ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @listen.238(i32, i32) #0 +declare i64 @read.238(i32, ptr, i64) #0 ; Function Attrs: nounwind -declare i32 @accept.239(i32, ptr, ptr) #0 +declare i32 @close.239(i32) #0 ; Function Attrs: nounwind -declare i64 @read.240(i32, ptr, i64) #0 +declare i16 @htons.240(ptr, i64) #0 ; Function Attrs: nounwind -declare i32 @close.241(i32) #0 +declare ptr @mem_realloc.241(ptr, ptr, ptr, i64, i64, i64) #0 ; Function Attrs: nounwind -declare i16 @htons.242(ptr, i64) #0 +declare ptr @CAllocator.alloc_bytes.242(ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare ptr @mem_realloc.243(ptr, ptr, ptr, i64, i64, i64) #0 +declare void @CAllocator.dealloc_bytes.243(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @CAllocator.alloc_bytes.244(ptr, ptr, i64) #0 +declare i64 @GPA.init.244(ptr) #0 ; Function Attrs: nounwind -declare void @CAllocator.dealloc_bytes.245(ptr, ptr, ptr) #0 +declare ptr @GPA.alloc_bytes.245(ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare i64 @GPA.init.246(ptr) #0 +declare void @GPA.dealloc_bytes.246(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @GPA.alloc_bytes.247(ptr, ptr, i64) #0 +declare void @Arena.add_chunk.247(ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare void @GPA.dealloc_bytes.248(ptr, ptr, ptr) #0 +declare void @Arena.init.248(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare void @Arena.add_chunk.249(ptr, ptr, i64) #0 +declare void @Arena.reset.249(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Arena.init.250(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 +declare void @Arena.deinit.250(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Arena.reset.251(ptr, ptr) #0 +declare ptr @Arena.alloc_bytes.251(ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare void @Arena.deinit.252(ptr, ptr) #0 +declare void @Arena.dealloc_bytes.252(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @Arena.alloc_bytes.253(ptr, ptr, i64) #0 +declare void @BufAlloc.init.253(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare void @Arena.dealloc_bytes.254(ptr, ptr, ptr) #0 +declare void @BufAlloc.reset.254(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @BufAlloc.init.255(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0 +declare ptr @BufAlloc.alloc_bytes.255(ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare void @BufAlloc.reset.256(ptr, ptr) #0 +declare void @BufAlloc.dealloc_bytes.256(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @BufAlloc.alloc_bytes.257(ptr, ptr, i64) #0 +declare void @TrackingAllocator.init.257(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare void @BufAlloc.dealloc_bytes.258(ptr, ptr, ptr) #0 +declare i64 @TrackingAllocator.leak_count.258(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @TrackingAllocator.init.259(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 +declare void @TrackingAllocator.report.259(ptr, ptr) #0 ; Function Attrs: nounwind -declare i64 @TrackingAllocator.leak_count.260(ptr, ptr) #0 +declare ptr @TrackingAllocator.alloc_bytes.260(ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare void @TrackingAllocator.report.261(ptr, ptr) #0 +declare void @TrackingAllocator.dealloc_bytes.261(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @TrackingAllocator.alloc_bytes.262(ptr, ptr, i64) #0 +declare i32 @open.262(ptr, i32, ...) #0 ; Function Attrs: nounwind -declare void @TrackingAllocator.dealloc_bytes.263(ptr, ptr, ptr) #0 +declare i32 @close.263(i32) #0 ; Function Attrs: nounwind -declare i32 @open.264(ptr, i32, ...) #0 +declare i64 @read.264(i32, ptr, i64) #0 ; Function Attrs: nounwind -declare i32 @close.265(i32) #0 +declare i64 @lseek.265(i32, i64, i32) #0 ; Function Attrs: nounwind -declare i64 @read.266(i32, ptr, i64) #0 +declare i32 @unlink.266(ptr) #0 ; Function Attrs: nounwind -declare i64 @lseek.267(i32, i64, i32) #0 +declare i32 @rmdir.267(ptr) #0 ; Function Attrs: nounwind -declare i32 @unlink.268(ptr) #0 +declare i32 @mkdir.268(ptr, i32) #0 ; Function Attrs: nounwind -declare i32 @rmdir.269(ptr) #0 +declare i32 @access.269(ptr, i32) #0 ; Function Attrs: nounwind -declare i32 @mkdir.270(ptr, i32) #0 +declare i32 @chmod.270(ptr, i32) #0 ; Function Attrs: nounwind -declare i32 @access.271(ptr, i32) #0 +declare i32 @rename.271(ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @chmod.272(ptr, i32) #0 +declare i1 @File.is_valid.272(ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @rename.273(ptr, ptr) #0 +declare i1 @File.close.273(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @File.is_valid.274(ptr, ptr) #0 +declare i64 @File.read.274(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @File.close.275(ptr, ptr) #0 +declare i64 @File.write.275(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i64 @File.read.276(ptr, ptr, ptr) #0 +declare i64 @File.seek.276(ptr, ptr, i64, i64) #0 ; Function Attrs: nounwind -declare i64 @File.write.277(ptr, ptr, ptr) #0 +declare i32 @mode_to_flags.277(ptr, i64) #0 ; Function Attrs: nounwind -declare i64 @File.seek.278(ptr, ptr, i64, i64) #0 +declare i64 @open_file.278(ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare i32 @mode_to_flags.279(ptr, i64) #0 +declare void @read_file.279(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare i64 @open_file.280(ptr, ptr, i64) #0 +declare i1 @write_file.280(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @read_file.281(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 +declare i1 @append_file.281(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @write_file.282(ptr, ptr, ptr) #0 +declare i1 @exists.282(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @append_file.283(ptr, ptr, ptr) #0 +declare i1 @delete_file.283(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @exists.284(ptr, ptr) #0 +declare i1 @delete_dir.284(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @delete_file.285(ptr, ptr) #0 +declare i1 @create_dir.285(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @delete_dir.286(ptr, ptr) #0 +declare i1 @set_mode.286(ptr, ptr, i32) #0 ; Function Attrs: nounwind -declare i1 @create_dir.287(ptr, ptr) #0 +declare i1 @move.287(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @set_mode.288(ptr, ptr, i32) #0 +declare i1 @create_dir_all.288(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @move.289(ptr, ptr, ptr) #0 +declare i1 @copy_file.289(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @create_dir_all.290(ptr, ptr) #0 +declare ptr @basename.290(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @copy_file.291(ptr, ptr, ptr) #0 +declare ptr @dirname.291(ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @basename.292(ptr, ptr) #0 +declare void @Array.add.292(ptr, ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @dirname.293(ptr, ptr) #0 +declare void @Array.deinit.293(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Array.add.294(ptr, ptr, ptr, ptr) #0 +declare void @Object.put.294(ptr, ptr, ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Array.deinit.295(ptr, ptr, ptr) #0 +declare void @Object.deinit.295(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Object.put.296(ptr, ptr, ptr, ptr, ptr) #0 +declare i32 @Sink.put_byte.296(ptr, ptr, i8) #0 ; Function Attrs: nounwind -declare void @Object.deinit.297(ptr, ptr, ptr) #0 +declare i32 @Sink.put.297(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @Sink.put_byte.298(ptr, ptr, i8) #0 +declare i32 @Sink.flush.298(ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @Sink.put.299(ptr, ptr, ptr) #0 +declare i8 @hex_digit.299(ptr, i64) #0 ; Function Attrs: nounwind -declare i32 @Sink.flush.300(ptr, ptr) #0 +declare i32 @write_u_escape.300(ptr, i8, ptr) #0 ; Function Attrs: nounwind -declare i8 @hex_digit.301(ptr, i64) #0 +declare i32 @write_string.301(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @write_u_escape.302(ptr, i8, ptr) #0 +declare i32 @write_int.302(ptr, i64, ptr) #0 ; Function Attrs: nounwind -declare i32 @write_string.303(ptr, ptr, ptr) #0 +declare i32 @write_value.303(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @write_int.304(ptr, i64, ptr) #0 +declare i32 @write_array.304(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @write_value.305(ptr, ptr, ptr) #0 +declare i32 @write_object.305(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @write_array.306(ptr, ptr, ptr) #0 +declare [2 x i64] @write_to_buffer.306(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @write_object.307(ptr, ptr, ptr) #0 +declare i32 @write_to_file.307(ptr, ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare [2 x i64] @write_to_buffer.308(ptr, ptr, ptr) #0 +declare [2 x i64] @hex_value.308(ptr, i8) #0 ; Function Attrs: nounwind -declare i32 @write_to_file.309(ptr, ptr, ptr, ptr) #0 +declare i64 @encode_utf8.309(ptr, i64, ptr) #0 ; Function Attrs: nounwind -declare [2 x i64] @hex_value.310(ptr, i8) #0 +declare void @Parser.skip_ws.310(ptr, ptr) #0 ; Function Attrs: nounwind -declare i64 @encode_utf8.311(ptr, i64, ptr) #0 +declare i32 @Parser.expect_lit.311(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Parser.skip_ws.312(ptr, ptr) #0 +declare [2 x i64] @Parser.read_hex4.312(ptr, ptr, i64, i64) #0 ; Function Attrs: nounwind -declare i32 @Parser.expect_lit.313(ptr, ptr, ptr) #0 +declare [2 x i64] @Parser.decode_into.313(ptr, ptr, i64, i64, ptr) #0 ; Function Attrs: nounwind -declare [2 x i64] @Parser.read_hex4.314(ptr, ptr, i64, i64) #0 +declare void @Parser.parse_string.314(ptr sret({ { ptr, i64 }, i32 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare [2 x i64] @Parser.decode_into.315(ptr, ptr, i64, i64, ptr) #0 +declare [2 x i64] @Parser.parse_number.315(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Parser.parse_string.316(ptr sret({ { ptr, i64 }, i32 }), ptr, ptr) #0 +declare void @Parser.parse_array.316(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare [2 x i64] @Parser.parse_number.317(ptr, ptr) #0 +declare void @Parser.parse_object.317(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Parser.parse_array.318(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr) #0 +declare void @Parser.parse_value.318(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Parser.parse_object.319(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr) #0 +declare void @parse.319(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Parser.parse_value.320(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr) #0 +declare ptr @escape.320(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @parse.321(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +declare void @BuildOptions.add_link_flag.321(i64, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.add_link_flag.322(i64, ptr) #0 +declare void @BuildOptions.add_framework.322(i64, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.add_framework.323(i64, ptr) #0 +declare void @BuildOptions.set_output_path.323(i64, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.set_output_path.324(i64, ptr) #0 +declare void @BuildOptions.set_wasm_shell.324(i64, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.set_wasm_shell.325(i64, ptr) #0 +declare void @BuildOptions.add_asset_dir.325(i64, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.add_asset_dir.326(i64, ptr, ptr) #0 +declare i64 @BuildOptions.asset_dir_count.326(i64) #0 ; Function Attrs: nounwind -declare i64 @BuildOptions.asset_dir_count.327(i64) #0 +declare ptr @BuildOptions.asset_dir_src_at.327(i64, i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.asset_dir_src_at.328(i64, i64) #0 +declare ptr @BuildOptions.asset_dir_dest_at.328(i64, i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.asset_dir_dest_at.329(i64, i64) #0 +declare void @BuildOptions.set_post_link_callback.329(i64, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.set_post_link_callback.330(i64, ptr) #0 +declare void @BuildOptions.set_post_link_module.330(i64, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.set_post_link_module.331(i64, ptr) #0 +declare ptr @BuildOptions.binary_path.331(i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.binary_path.332(i64) #0 +declare void @BuildOptions.set_bundle_path.332(i64, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.set_bundle_path.333(i64, ptr) #0 +declare void @BuildOptions.set_bundle_id.333(i64, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.set_bundle_id.334(i64, ptr) #0 +declare void @BuildOptions.set_codesign_identity.334(i64, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.set_codesign_identity.335(i64, ptr) #0 +declare void @BuildOptions.set_provisioning_profile.335(i64, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.set_provisioning_profile.336(i64, ptr) #0 +declare ptr @BuildOptions.bundle_path.336(i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.bundle_path.337(i64) #0 +declare ptr @BuildOptions.bundle_id.337(i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.bundle_id.338(i64) #0 +declare ptr @BuildOptions.codesign_identity.338(i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.codesign_identity.339(i64) #0 +declare ptr @BuildOptions.provisioning_profile.339(i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.provisioning_profile.340(i64) #0 +declare ptr @BuildOptions.target_triple.340(i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.target_triple.341(i64) #0 +declare i1 @BuildOptions.is_macos.341(i64) #0 ; Function Attrs: nounwind -declare i1 @BuildOptions.is_macos.342(i64) #0 +declare i1 @BuildOptions.is_ios.342(i64) #0 ; Function Attrs: nounwind -declare i1 @BuildOptions.is_ios.343(i64) #0 +declare i1 @BuildOptions.is_ios_device.343(i64) #0 ; Function Attrs: nounwind -declare i1 @BuildOptions.is_ios_device.344(i64) #0 +declare i1 @BuildOptions.is_ios_simulator.344(i64) #0 ; Function Attrs: nounwind -declare i1 @BuildOptions.is_ios_simulator.345(i64) #0 +declare i1 @BuildOptions.is_android.345(i64) #0 ; Function Attrs: nounwind -declare i1 @BuildOptions.is_android.346(i64) #0 +declare i64 @BuildOptions.framework_count.346(i64) #0 ; Function Attrs: nounwind -declare i64 @BuildOptions.framework_count.347(i64) #0 +declare ptr @BuildOptions.framework_at.347(i64, i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.framework_at.348(i64, i64) #0 +declare i64 @BuildOptions.framework_path_count.348(i64) #0 ; Function Attrs: nounwind -declare i64 @BuildOptions.framework_path_count.349(i64) #0 +declare ptr @BuildOptions.framework_path_at.349(i64, i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.framework_path_at.350(i64, i64) #0 +declare void @BuildOptions.set_manifest_path.350(i64, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.set_manifest_path.351(i64, ptr) #0 +declare void @BuildOptions.set_keystore_path.351(i64, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.set_keystore_path.352(i64, ptr) #0 +declare ptr @BuildOptions.manifest_path.352(i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.manifest_path.353(i64) #0 +declare ptr @BuildOptions.keystore_path.353(i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.keystore_path.354(i64) #0 +declare i64 @BuildOptions.jni_main_count.354(i64) #0 ; Function Attrs: nounwind -declare i64 @BuildOptions.jni_main_count.355(i64) #0 +declare ptr @BuildOptions.jni_main_foreign_path_at.355(i64, i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.jni_main_foreign_path_at.356(i64, i64) #0 +declare ptr @BuildOptions.jni_main_java_source_at.356(i64, i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.jni_main_java_source_at.357(i64, i64) #0 +declare i64 @build_options.357() #0 ; Function Attrs: nounwind -declare i64 @build_options.358() #0 +declare ptr @spaces.358(ptr, i32) #0 ; Function Attrs: nounwind -declare ptr @spaces.359(ptr, i32) #0 +declare i32 @sx_trace_len.359() #0 ; Function Attrs: nounwind -declare i32 @sx_trace_len.360() #0 +declare i32 @sx_trace_truncated.360() #0 ; Function Attrs: nounwind -declare i32 @sx_trace_truncated.361() #0 +declare i64 @sx_trace_frame_at.361(i32) #0 ; Function Attrs: nounwind -declare i64 @sx_trace_frame_at.362(i32) #0 +declare ptr @to_string.362(ptr) #0 ; Function Attrs: nounwind -declare ptr @to_string.363(ptr) #0 +declare void @print_current.363(ptr) #0 ; Function Attrs: nounwind -declare void @print_current.364(ptr) #0 +declare void @print_interpreter_frames.364(ptr) #0 ; Function Attrs: nounwind -declare void @print_interpreter_frames.365(ptr) #0 +declare ptr @popen.365(ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @popen.366(ptr, ptr) #0 +declare i32 @pclose.366(ptr) #0 ; Function Attrs: nounwind -declare i32 @pclose.367(ptr) #0 +declare i64 @fread.367(ptr, i64, i64, ptr) #0 ; Function Attrs: nounwind -declare i64 @fread.368(ptr, i64, i64, ptr) #0 +declare i32 @feof.368(ptr) #0 ; Function Attrs: nounwind -declare i32 @feof.369(ptr) #0 +declare ptr @getenv.369(ptr) #0 ; Function Attrs: nounwind -declare ptr @getenv.370(ptr) #0 +declare i64 @strlen.370(ptr) #0 ; Function Attrs: nounwind -declare i64 @strlen.371(ptr) #0 +declare i32 @system.371(ptr) #0 ; Function Attrs: nounwind -declare i32 @system.372(ptr) #0 +declare void @run.372(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare void @run.373(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 +declare void @env.373(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare void @env.374(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 +declare void @find_executable.374(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare void @find_executable.375(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 +declare void @_exit.375(i32) #0 ; Function Attrs: nounwind -declare void @_exit.376(i32) #0 +declare void @exit.376(ptr, i8, ptr) #0 ; Function Attrs: nounwind -declare void @exit.377(ptr, i8, ptr) #0 +declare void @assert.377(ptr, i1, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @assert.378(ptr, i1, ptr, ptr) #0 +declare ptr @_NSGetArgv.378() #0 ; Function Attrs: nounwind -declare ptr @_NSGetArgv.379() #0 +declare ptr @_NSGetArgc.379() #0 ; Function Attrs: nounwind -declare ptr @_NSGetArgc.380() #0 +declare void @exit_ok.380(ptr) #0 ; Function Attrs: nounwind -declare void @exit_ok.381(ptr) #0 +declare void @exit_usage.381(ptr) #0 ; Function Attrs: nounwind -declare void @exit_usage.382(ptr) #0 +declare i64 @os_argc.382(ptr) #0 ; Function Attrs: nounwind -declare i64 @os_argc.383(ptr) #0 +declare ptr @os_args.383(ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @os_args.384(ptr, ptr) #0 +declare i1 @Parsed.is_set.384(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @Parsed.is_set.385(ptr, ptr, ptr) #0 +declare ptr @Parsed.value_of.385(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @Parsed.value_of.386(ptr, ptr, ptr) #0 +declare i1 @is_long_flag.386(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @is_long_flag.387(ptr, ptr) #0 +declare void @parse.387(ptr sret({ { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, i32 }), ptr, ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @parse.388(ptr sret({ { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, i32 }), ptr, ptr, ptr, ptr) #0 +declare i32 @open.388(ptr, i32, ...) #0 ; Function Attrs: nounwind -declare i32 @open.389(ptr, i32, ...) #0 +declare i32 @close.389(i32) #0 ; Function Attrs: nounwind -declare i32 @close.390(i32) #0 +declare i64 @read.390(i32, ptr, i64) #0 ; Function Attrs: nounwind -declare i64 @read.391(i32, ptr, i64) #0 +declare i64 @lseek.391(i32, i64, i32) #0 ; Function Attrs: nounwind -declare i64 @lseek.392(i32, i64, i32) #0 +declare i32 @unlink.392(ptr) #0 ; Function Attrs: nounwind -declare i32 @unlink.393(ptr) #0 +declare i32 @rmdir.393(ptr) #0 ; Function Attrs: nounwind -declare i32 @rmdir.394(ptr) #0 +declare i32 @mkdir.394(ptr, i32) #0 ; Function Attrs: nounwind -declare i32 @mkdir.395(ptr, i32) #0 +declare i32 @access.395(ptr, i32) #0 ; Function Attrs: nounwind -declare i32 @access.396(ptr, i32) #0 +declare i32 @chmod.396(ptr, i32) #0 ; Function Attrs: nounwind -declare i32 @chmod.397(ptr, i32) #0 +declare i32 @rename.397(ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @rename.398(ptr, ptr) #0 +declare i1 @File.is_valid.398(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @File.is_valid.399(ptr, ptr) #0 +declare i1 @File.close.399(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @File.close.400(ptr, ptr) #0 +declare i64 @File.read.400(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i64 @File.read.401(ptr, ptr, ptr) #0 +declare i64 @File.write.401(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i64 @File.write.402(ptr, ptr, ptr) #0 +declare i64 @File.seek.402(ptr, ptr, i64, i64) #0 ; Function Attrs: nounwind -declare i64 @File.seek.403(ptr, ptr, i64, i64) #0 +declare i32 @mode_to_flags.403(ptr, i64) #0 ; Function Attrs: nounwind -declare i32 @mode_to_flags.404(ptr, i64) #0 +declare i64 @open_file.404(ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare i64 @open_file.405(ptr, ptr, i64) #0 +declare void @read_file.405(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare void @read_file.406(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 +declare i1 @write_file.406(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @write_file.407(ptr, ptr, ptr) #0 +declare i1 @append_file.407(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @append_file.408(ptr, ptr, ptr) #0 +declare i1 @exists.408(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @exists.409(ptr, ptr) #0 +declare i1 @delete_file.409(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @delete_file.410(ptr, ptr) #0 +declare i1 @delete_dir.410(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @delete_dir.411(ptr, ptr) #0 +declare i1 @create_dir.411(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @create_dir.412(ptr, ptr) #0 +declare i1 @set_mode.412(ptr, ptr, i32) #0 ; Function Attrs: nounwind -declare i1 @set_mode.413(ptr, ptr, i32) #0 +declare i1 @move.413(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @move.414(ptr, ptr, ptr) #0 +declare i1 @create_dir_all.414(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @create_dir_all.415(ptr, ptr) #0 +declare i1 @copy_file.415(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @copy_file.416(ptr, ptr, ptr) #0 +declare ptr @basename.416(ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @basename.417(ptr, ptr) #0 +declare ptr @dirname.417(ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @dirname.418(ptr, ptr) #0 +declare i64 @rotr.418(ptr, i64, i64) #0 ; Function Attrs: nounwind -declare i64 @rotr.419(ptr, i64, i64) #0 +declare i64 @big_sigma0.419(ptr, i64) #0 ; Function Attrs: nounwind -declare i64 @big_sigma0.420(ptr, i64) #0 +declare i64 @big_sigma1.420(ptr, i64) #0 ; Function Attrs: nounwind -declare i64 @big_sigma1.421(ptr, i64) #0 +declare i64 @small_sigma0.421(ptr, i64) #0 ; Function Attrs: nounwind -declare i64 @small_sigma0.422(ptr, i64) #0 +declare i64 @small_sigma1.422(ptr, i64) #0 ; Function Attrs: nounwind -declare i64 @small_sigma1.423(ptr, i64) #0 +declare void @Sha256.process_block.423(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Sha256.process_block.424(ptr, ptr) #0 +declare void @Sha256.update.424(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Sha256.update.425(ptr, ptr, ptr) #0 +declare [64 x i8] @Sha256.final.425(ptr, ptr) #0 ; Function Attrs: nounwind -declare [64 x i8] @Sha256.final.426(ptr, ptr) #0 +declare i8 @nibble_hex.426(ptr, i64) #0 ; Function Attrs: nounwind -declare i8 @nibble_hex.427(ptr, i64) #0 +declare void @init.427(ptr sret({ [8 x i64], [64 x i8], i64, i64 }), ptr) #0 ; Function Attrs: nounwind -declare void @init.428(ptr sret({ [8 x i64], [64 x i8], i64, i64 }), ptr) #0 +declare [64 x i8] @sha256_hex.428(ptr, ptr) #0 ; Function Attrs: nounwind -declare [64 x i8] @sha256_hex.429(ptr, ptr) #0 +declare void @sha256_file.429(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare void @sha256_file.430(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +declare void @log_emit.430(ptr, ptr, ptr) #0 ; Function Attrs: nounwind declare void @assert.431(ptr, i1) #0 diff --git a/examples/expected/0032-basic-ufcs-return-type.ir b/examples/expected/0032-basic-ufcs-return-type.ir index 2e71e54..2d96337 100644 --- a/examples/expected/0032-basic-ufcs-return-type.ir +++ b/examples/expected/0032-basic-ufcs-return-type.ir @@ -2781,14 +2781,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 ; Function Attrs: nounwind declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 -; Function Attrs: nounwind -declare ptr @escape(ptr, ptr) #0 - -declare i64 @write(i32, ptr, i64) - -; Function Attrs: nounwind -declare void @log_emit(ptr, ptr, ptr) #0 - ; Function Attrs: nounwind declare i32 @open(ptr, i32, ...) #0 @@ -2798,6 +2790,8 @@ declare i32 @close(i32) #0 ; Function Attrs: nounwind declare i64 @read(i32, ptr, i64) #0 +declare i64 @write(i32, ptr, i64) + ; Function Attrs: nounwind declare i64 @lseek(i32, i64, i32) #0 @@ -3200,6 +3194,9 @@ declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr ; Function Attrs: nounwind declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +; Function Attrs: nounwind +declare ptr @escape(ptr, ptr) #0 + ; Function Attrs: nounwind declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -3527,6 +3524,9 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0 ; Function Attrs: nounwind declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + ; Function Attrs: nounwind declare void @assert.107(ptr, i1) #0 @@ -3822,748 +3822,748 @@ declare ptr @TrackingAllocator.alloc_bytes.181(ptr, ptr, i64) #0 declare void @TrackingAllocator.dealloc_bytes.182(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @escape.183(ptr, ptr) #0 +declare i32 @open.183(ptr, i32, ...) #0 ; Function Attrs: nounwind -declare void @log_emit.184(ptr, ptr, ptr) #0 +declare i32 @close.184(i32) #0 ; Function Attrs: nounwind -declare i32 @open.185(ptr, i32, ...) #0 +declare i64 @read.185(i32, ptr, i64) #0 ; Function Attrs: nounwind -declare i32 @close.186(i32) #0 +declare i64 @lseek.186(i32, i64, i32) #0 ; Function Attrs: nounwind -declare i64 @read.187(i32, ptr, i64) #0 +declare i32 @unlink.187(ptr) #0 ; Function Attrs: nounwind -declare i64 @lseek.188(i32, i64, i32) #0 +declare i32 @rmdir.188(ptr) #0 ; Function Attrs: nounwind -declare i32 @unlink.189(ptr) #0 +declare i32 @mkdir.189(ptr, i32) #0 ; Function Attrs: nounwind -declare i32 @rmdir.190(ptr) #0 +declare i32 @access.190(ptr, i32) #0 ; Function Attrs: nounwind -declare i32 @mkdir.191(ptr, i32) #0 +declare i32 @chmod.191(ptr, i32) #0 ; Function Attrs: nounwind -declare i32 @access.192(ptr, i32) #0 +declare i32 @rename.192(ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @chmod.193(ptr, i32) #0 +declare i1 @File.is_valid.193(ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @rename.194(ptr, ptr) #0 +declare i1 @File.close.194(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @File.is_valid.195(ptr, ptr) #0 +declare i64 @File.read.195(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @File.close.196(ptr, ptr) #0 +declare i64 @File.write.196(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i64 @File.read.197(ptr, ptr, ptr) #0 +declare i64 @File.seek.197(ptr, ptr, i64, i64) #0 ; Function Attrs: nounwind -declare i64 @File.write.198(ptr, ptr, ptr) #0 +declare i32 @mode_to_flags.198(ptr, i64) #0 ; Function Attrs: nounwind -declare i64 @File.seek.199(ptr, ptr, i64, i64) #0 +declare i64 @open_file.199(ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare i32 @mode_to_flags.200(ptr, i64) #0 +declare void @read_file.200(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare i64 @open_file.201(ptr, ptr, i64) #0 +declare i1 @write_file.201(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @read_file.202(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 +declare i1 @append_file.202(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @write_file.203(ptr, ptr, ptr) #0 +declare i1 @exists.203(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @append_file.204(ptr, ptr, ptr) #0 +declare i1 @delete_file.204(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @exists.205(ptr, ptr) #0 +declare i1 @delete_dir.205(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @delete_file.206(ptr, ptr) #0 +declare i1 @create_dir.206(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @delete_dir.207(ptr, ptr) #0 +declare i1 @set_mode.207(ptr, ptr, i32) #0 ; Function Attrs: nounwind -declare i1 @create_dir.208(ptr, ptr) #0 +declare i1 @move.208(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @set_mode.209(ptr, ptr, i32) #0 +declare i1 @create_dir_all.209(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @move.210(ptr, ptr, ptr) #0 +declare i1 @copy_file.210(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @create_dir_all.211(ptr, ptr) #0 +declare ptr @basename.211(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @copy_file.212(ptr, ptr, ptr) #0 +declare ptr @dirname.212(ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @basename.213(ptr, ptr) #0 +declare ptr @spaces.213(ptr, i32) #0 ; Function Attrs: nounwind -declare ptr @dirname.214(ptr, ptr) #0 +declare i32 @sx_trace_len.214() #0 ; Function Attrs: nounwind -declare ptr @spaces.215(ptr, i32) #0 +declare i32 @sx_trace_truncated.215() #0 ; Function Attrs: nounwind -declare i32 @sx_trace_len.216() #0 +declare i64 @sx_trace_frame_at.216(i32) #0 ; Function Attrs: nounwind -declare i32 @sx_trace_truncated.217() #0 +declare ptr @to_string.217(ptr) #0 ; Function Attrs: nounwind -declare i64 @sx_trace_frame_at.218(i32) #0 +declare void @print_current.218(ptr) #0 ; Function Attrs: nounwind -declare ptr @to_string.219(ptr) #0 +declare void @print_interpreter_frames.219(ptr) #0 ; Function Attrs: nounwind -declare void @print_current.220(ptr) #0 +declare ptr @popen.220(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @print_interpreter_frames.221(ptr) #0 +declare i32 @pclose.221(ptr) #0 ; Function Attrs: nounwind -declare ptr @popen.222(ptr, ptr) #0 +declare i64 @fread.222(ptr, i64, i64, ptr) #0 ; Function Attrs: nounwind -declare i32 @pclose.223(ptr) #0 +declare i32 @feof.223(ptr) #0 ; Function Attrs: nounwind -declare i64 @fread.224(ptr, i64, i64, ptr) #0 +declare ptr @getenv.224(ptr) #0 ; Function Attrs: nounwind -declare i32 @feof.225(ptr) #0 +declare i64 @strlen.225(ptr) #0 ; Function Attrs: nounwind -declare ptr @getenv.226(ptr) #0 +declare i32 @system.226(ptr) #0 ; Function Attrs: nounwind -declare i64 @strlen.227(ptr) #0 +declare void @run.227(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @system.228(ptr) #0 +declare void @env.228(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare void @run.229(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 +declare void @find_executable.229(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare void @env.230(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 +declare void @_exit.230(i32) #0 ; Function Attrs: nounwind -declare void @find_executable.231(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 +declare void @exit.231(ptr, i8, ptr) #0 ; Function Attrs: nounwind -declare void @_exit.232(i32) #0 +declare void @assert.232(ptr, i1, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @exit.233(ptr, i8, ptr) #0 +declare i32 @socket.233(i32, i32, i32) #0 ; Function Attrs: nounwind -declare void @assert.234(ptr, i1, ptr, ptr) #0 +declare i32 @setsockopt.234(i32, i32, i32, ptr, i32) #0 ; Function Attrs: nounwind -declare i32 @socket.235(i32, i32, i32) #0 +declare i32 @bind.235(i32, ptr, i32) #0 ; Function Attrs: nounwind -declare i32 @setsockopt.236(i32, i32, i32, ptr, i32) #0 +declare i32 @listen.236(i32, i32) #0 ; Function Attrs: nounwind -declare i32 @bind.237(i32, ptr, i32) #0 +declare i32 @accept.237(i32, ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @listen.238(i32, i32) #0 +declare i64 @read.238(i32, ptr, i64) #0 ; Function Attrs: nounwind -declare i32 @accept.239(i32, ptr, ptr) #0 +declare i32 @close.239(i32) #0 ; Function Attrs: nounwind -declare i64 @read.240(i32, ptr, i64) #0 +declare i16 @htons.240(ptr, i64) #0 ; Function Attrs: nounwind -declare i32 @close.241(i32) #0 +declare ptr @mem_realloc.241(ptr, ptr, ptr, i64, i64, i64) #0 ; Function Attrs: nounwind -declare i16 @htons.242(ptr, i64) #0 +declare ptr @CAllocator.alloc_bytes.242(ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare ptr @mem_realloc.243(ptr, ptr, ptr, i64, i64, i64) #0 +declare void @CAllocator.dealloc_bytes.243(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @CAllocator.alloc_bytes.244(ptr, ptr, i64) #0 +declare i64 @GPA.init.244(ptr) #0 ; Function Attrs: nounwind -declare void @CAllocator.dealloc_bytes.245(ptr, ptr, ptr) #0 +declare ptr @GPA.alloc_bytes.245(ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare i64 @GPA.init.246(ptr) #0 +declare void @GPA.dealloc_bytes.246(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @GPA.alloc_bytes.247(ptr, ptr, i64) #0 +declare void @Arena.add_chunk.247(ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare void @GPA.dealloc_bytes.248(ptr, ptr, ptr) #0 +declare void @Arena.init.248(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare void @Arena.add_chunk.249(ptr, ptr, i64) #0 +declare void @Arena.reset.249(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Arena.init.250(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 +declare void @Arena.deinit.250(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Arena.reset.251(ptr, ptr) #0 +declare ptr @Arena.alloc_bytes.251(ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare void @Arena.deinit.252(ptr, ptr) #0 +declare void @Arena.dealloc_bytes.252(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @Arena.alloc_bytes.253(ptr, ptr, i64) #0 +declare void @BufAlloc.init.253(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare void @Arena.dealloc_bytes.254(ptr, ptr, ptr) #0 +declare void @BufAlloc.reset.254(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @BufAlloc.init.255(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0 +declare ptr @BufAlloc.alloc_bytes.255(ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare void @BufAlloc.reset.256(ptr, ptr) #0 +declare void @BufAlloc.dealloc_bytes.256(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @BufAlloc.alloc_bytes.257(ptr, ptr, i64) #0 +declare void @TrackingAllocator.init.257(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare void @BufAlloc.dealloc_bytes.258(ptr, ptr, ptr) #0 +declare i64 @TrackingAllocator.leak_count.258(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @TrackingAllocator.init.259(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 +declare void @TrackingAllocator.report.259(ptr, ptr) #0 ; Function Attrs: nounwind -declare i64 @TrackingAllocator.leak_count.260(ptr, ptr) #0 +declare ptr @TrackingAllocator.alloc_bytes.260(ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare void @TrackingAllocator.report.261(ptr, ptr) #0 +declare void @TrackingAllocator.dealloc_bytes.261(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @TrackingAllocator.alloc_bytes.262(ptr, ptr, i64) #0 +declare i32 @open.262(ptr, i32, ...) #0 ; Function Attrs: nounwind -declare void @TrackingAllocator.dealloc_bytes.263(ptr, ptr, ptr) #0 +declare i32 @close.263(i32) #0 ; Function Attrs: nounwind -declare i32 @open.264(ptr, i32, ...) #0 +declare i64 @read.264(i32, ptr, i64) #0 ; Function Attrs: nounwind -declare i32 @close.265(i32) #0 +declare i64 @lseek.265(i32, i64, i32) #0 ; Function Attrs: nounwind -declare i64 @read.266(i32, ptr, i64) #0 +declare i32 @unlink.266(ptr) #0 ; Function Attrs: nounwind -declare i64 @lseek.267(i32, i64, i32) #0 +declare i32 @rmdir.267(ptr) #0 ; Function Attrs: nounwind -declare i32 @unlink.268(ptr) #0 +declare i32 @mkdir.268(ptr, i32) #0 ; Function Attrs: nounwind -declare i32 @rmdir.269(ptr) #0 +declare i32 @access.269(ptr, i32) #0 ; Function Attrs: nounwind -declare i32 @mkdir.270(ptr, i32) #0 +declare i32 @chmod.270(ptr, i32) #0 ; Function Attrs: nounwind -declare i32 @access.271(ptr, i32) #0 +declare i32 @rename.271(ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @chmod.272(ptr, i32) #0 +declare i1 @File.is_valid.272(ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @rename.273(ptr, ptr) #0 +declare i1 @File.close.273(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @File.is_valid.274(ptr, ptr) #0 +declare i64 @File.read.274(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @File.close.275(ptr, ptr) #0 +declare i64 @File.write.275(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i64 @File.read.276(ptr, ptr, ptr) #0 +declare i64 @File.seek.276(ptr, ptr, i64, i64) #0 ; Function Attrs: nounwind -declare i64 @File.write.277(ptr, ptr, ptr) #0 +declare i32 @mode_to_flags.277(ptr, i64) #0 ; Function Attrs: nounwind -declare i64 @File.seek.278(ptr, ptr, i64, i64) #0 +declare i64 @open_file.278(ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare i32 @mode_to_flags.279(ptr, i64) #0 +declare void @read_file.279(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare i64 @open_file.280(ptr, ptr, i64) #0 +declare i1 @write_file.280(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @read_file.281(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 +declare i1 @append_file.281(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @write_file.282(ptr, ptr, ptr) #0 +declare i1 @exists.282(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @append_file.283(ptr, ptr, ptr) #0 +declare i1 @delete_file.283(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @exists.284(ptr, ptr) #0 +declare i1 @delete_dir.284(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @delete_file.285(ptr, ptr) #0 +declare i1 @create_dir.285(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @delete_dir.286(ptr, ptr) #0 +declare i1 @set_mode.286(ptr, ptr, i32) #0 ; Function Attrs: nounwind -declare i1 @create_dir.287(ptr, ptr) #0 +declare i1 @move.287(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @set_mode.288(ptr, ptr, i32) #0 +declare i1 @create_dir_all.288(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @move.289(ptr, ptr, ptr) #0 +declare i1 @copy_file.289(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @create_dir_all.290(ptr, ptr) #0 +declare ptr @basename.290(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @copy_file.291(ptr, ptr, ptr) #0 +declare ptr @dirname.291(ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @basename.292(ptr, ptr) #0 +declare void @Array.add.292(ptr, ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @dirname.293(ptr, ptr) #0 +declare void @Array.deinit.293(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Array.add.294(ptr, ptr, ptr, ptr) #0 +declare void @Object.put.294(ptr, ptr, ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Array.deinit.295(ptr, ptr, ptr) #0 +declare void @Object.deinit.295(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Object.put.296(ptr, ptr, ptr, ptr, ptr) #0 +declare i32 @Sink.put_byte.296(ptr, ptr, i8) #0 ; Function Attrs: nounwind -declare void @Object.deinit.297(ptr, ptr, ptr) #0 +declare i32 @Sink.put.297(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @Sink.put_byte.298(ptr, ptr, i8) #0 +declare i32 @Sink.flush.298(ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @Sink.put.299(ptr, ptr, ptr) #0 +declare i8 @hex_digit.299(ptr, i64) #0 ; Function Attrs: nounwind -declare i32 @Sink.flush.300(ptr, ptr) #0 +declare i32 @write_u_escape.300(ptr, i8, ptr) #0 ; Function Attrs: nounwind -declare i8 @hex_digit.301(ptr, i64) #0 +declare i32 @write_string.301(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @write_u_escape.302(ptr, i8, ptr) #0 +declare i32 @write_int.302(ptr, i64, ptr) #0 ; Function Attrs: nounwind -declare i32 @write_string.303(ptr, ptr, ptr) #0 +declare i32 @write_value.303(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @write_int.304(ptr, i64, ptr) #0 +declare i32 @write_array.304(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @write_value.305(ptr, ptr, ptr) #0 +declare i32 @write_object.305(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @write_array.306(ptr, ptr, ptr) #0 +declare [2 x i64] @write_to_buffer.306(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @write_object.307(ptr, ptr, ptr) #0 +declare i32 @write_to_file.307(ptr, ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare [2 x i64] @write_to_buffer.308(ptr, ptr, ptr) #0 +declare [2 x i64] @hex_value.308(ptr, i8) #0 ; Function Attrs: nounwind -declare i32 @write_to_file.309(ptr, ptr, ptr, ptr) #0 +declare i64 @encode_utf8.309(ptr, i64, ptr) #0 ; Function Attrs: nounwind -declare [2 x i64] @hex_value.310(ptr, i8) #0 +declare void @Parser.skip_ws.310(ptr, ptr) #0 ; Function Attrs: nounwind -declare i64 @encode_utf8.311(ptr, i64, ptr) #0 +declare i32 @Parser.expect_lit.311(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Parser.skip_ws.312(ptr, ptr) #0 +declare [2 x i64] @Parser.read_hex4.312(ptr, ptr, i64, i64) #0 ; Function Attrs: nounwind -declare i32 @Parser.expect_lit.313(ptr, ptr, ptr) #0 +declare [2 x i64] @Parser.decode_into.313(ptr, ptr, i64, i64, ptr) #0 ; Function Attrs: nounwind -declare [2 x i64] @Parser.read_hex4.314(ptr, ptr, i64, i64) #0 +declare void @Parser.parse_string.314(ptr sret({ { ptr, i64 }, i32 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare [2 x i64] @Parser.decode_into.315(ptr, ptr, i64, i64, ptr) #0 +declare [2 x i64] @Parser.parse_number.315(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Parser.parse_string.316(ptr sret({ { ptr, i64 }, i32 }), ptr, ptr) #0 +declare void @Parser.parse_array.316(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare [2 x i64] @Parser.parse_number.317(ptr, ptr) #0 +declare void @Parser.parse_object.317(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Parser.parse_array.318(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr) #0 +declare void @Parser.parse_value.318(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Parser.parse_object.319(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr) #0 +declare void @parse.319(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Parser.parse_value.320(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr) #0 +declare ptr @escape.320(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @parse.321(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +declare void @BuildOptions.add_link_flag.321(i64, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.add_link_flag.322(i64, ptr) #0 +declare void @BuildOptions.add_framework.322(i64, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.add_framework.323(i64, ptr) #0 +declare void @BuildOptions.set_output_path.323(i64, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.set_output_path.324(i64, ptr) #0 +declare void @BuildOptions.set_wasm_shell.324(i64, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.set_wasm_shell.325(i64, ptr) #0 +declare void @BuildOptions.add_asset_dir.325(i64, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.add_asset_dir.326(i64, ptr, ptr) #0 +declare i64 @BuildOptions.asset_dir_count.326(i64) #0 ; Function Attrs: nounwind -declare i64 @BuildOptions.asset_dir_count.327(i64) #0 +declare ptr @BuildOptions.asset_dir_src_at.327(i64, i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.asset_dir_src_at.328(i64, i64) #0 +declare ptr @BuildOptions.asset_dir_dest_at.328(i64, i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.asset_dir_dest_at.329(i64, i64) #0 +declare void @BuildOptions.set_post_link_callback.329(i64, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.set_post_link_callback.330(i64, ptr) #0 +declare void @BuildOptions.set_post_link_module.330(i64, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.set_post_link_module.331(i64, ptr) #0 +declare ptr @BuildOptions.binary_path.331(i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.binary_path.332(i64) #0 +declare void @BuildOptions.set_bundle_path.332(i64, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.set_bundle_path.333(i64, ptr) #0 +declare void @BuildOptions.set_bundle_id.333(i64, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.set_bundle_id.334(i64, ptr) #0 +declare void @BuildOptions.set_codesign_identity.334(i64, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.set_codesign_identity.335(i64, ptr) #0 +declare void @BuildOptions.set_provisioning_profile.335(i64, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.set_provisioning_profile.336(i64, ptr) #0 +declare ptr @BuildOptions.bundle_path.336(i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.bundle_path.337(i64) #0 +declare ptr @BuildOptions.bundle_id.337(i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.bundle_id.338(i64) #0 +declare ptr @BuildOptions.codesign_identity.338(i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.codesign_identity.339(i64) #0 +declare ptr @BuildOptions.provisioning_profile.339(i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.provisioning_profile.340(i64) #0 +declare ptr @BuildOptions.target_triple.340(i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.target_triple.341(i64) #0 +declare i1 @BuildOptions.is_macos.341(i64) #0 ; Function Attrs: nounwind -declare i1 @BuildOptions.is_macos.342(i64) #0 +declare i1 @BuildOptions.is_ios.342(i64) #0 ; Function Attrs: nounwind -declare i1 @BuildOptions.is_ios.343(i64) #0 +declare i1 @BuildOptions.is_ios_device.343(i64) #0 ; Function Attrs: nounwind -declare i1 @BuildOptions.is_ios_device.344(i64) #0 +declare i1 @BuildOptions.is_ios_simulator.344(i64) #0 ; Function Attrs: nounwind -declare i1 @BuildOptions.is_ios_simulator.345(i64) #0 +declare i1 @BuildOptions.is_android.345(i64) #0 ; Function Attrs: nounwind -declare i1 @BuildOptions.is_android.346(i64) #0 +declare i64 @BuildOptions.framework_count.346(i64) #0 ; Function Attrs: nounwind -declare i64 @BuildOptions.framework_count.347(i64) #0 +declare ptr @BuildOptions.framework_at.347(i64, i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.framework_at.348(i64, i64) #0 +declare i64 @BuildOptions.framework_path_count.348(i64) #0 ; Function Attrs: nounwind -declare i64 @BuildOptions.framework_path_count.349(i64) #0 +declare ptr @BuildOptions.framework_path_at.349(i64, i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.framework_path_at.350(i64, i64) #0 +declare void @BuildOptions.set_manifest_path.350(i64, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.set_manifest_path.351(i64, ptr) #0 +declare void @BuildOptions.set_keystore_path.351(i64, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.set_keystore_path.352(i64, ptr) #0 +declare ptr @BuildOptions.manifest_path.352(i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.manifest_path.353(i64) #0 +declare ptr @BuildOptions.keystore_path.353(i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.keystore_path.354(i64) #0 +declare i64 @BuildOptions.jni_main_count.354(i64) #0 ; Function Attrs: nounwind -declare i64 @BuildOptions.jni_main_count.355(i64) #0 +declare ptr @BuildOptions.jni_main_foreign_path_at.355(i64, i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.jni_main_foreign_path_at.356(i64, i64) #0 +declare ptr @BuildOptions.jni_main_java_source_at.356(i64, i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.jni_main_java_source_at.357(i64, i64) #0 +declare i64 @build_options.357() #0 ; Function Attrs: nounwind -declare i64 @build_options.358() #0 +declare ptr @spaces.358(ptr, i32) #0 ; Function Attrs: nounwind -declare ptr @spaces.359(ptr, i32) #0 +declare i32 @sx_trace_len.359() #0 ; Function Attrs: nounwind -declare i32 @sx_trace_len.360() #0 +declare i32 @sx_trace_truncated.360() #0 ; Function Attrs: nounwind -declare i32 @sx_trace_truncated.361() #0 +declare i64 @sx_trace_frame_at.361(i32) #0 ; Function Attrs: nounwind -declare i64 @sx_trace_frame_at.362(i32) #0 +declare ptr @to_string.362(ptr) #0 ; Function Attrs: nounwind -declare ptr @to_string.363(ptr) #0 +declare void @print_current.363(ptr) #0 ; Function Attrs: nounwind -declare void @print_current.364(ptr) #0 +declare void @print_interpreter_frames.364(ptr) #0 ; Function Attrs: nounwind -declare void @print_interpreter_frames.365(ptr) #0 +declare ptr @popen.365(ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @popen.366(ptr, ptr) #0 +declare i32 @pclose.366(ptr) #0 ; Function Attrs: nounwind -declare i32 @pclose.367(ptr) #0 +declare i64 @fread.367(ptr, i64, i64, ptr) #0 ; Function Attrs: nounwind -declare i64 @fread.368(ptr, i64, i64, ptr) #0 +declare i32 @feof.368(ptr) #0 ; Function Attrs: nounwind -declare i32 @feof.369(ptr) #0 +declare ptr @getenv.369(ptr) #0 ; Function Attrs: nounwind -declare ptr @getenv.370(ptr) #0 +declare i64 @strlen.370(ptr) #0 ; Function Attrs: nounwind -declare i64 @strlen.371(ptr) #0 +declare i32 @system.371(ptr) #0 ; Function Attrs: nounwind -declare i32 @system.372(ptr) #0 +declare void @run.372(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare void @run.373(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 +declare void @env.373(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare void @env.374(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 +declare void @find_executable.374(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare void @find_executable.375(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 +declare void @_exit.375(i32) #0 ; Function Attrs: nounwind -declare void @_exit.376(i32) #0 +declare void @exit.376(ptr, i8, ptr) #0 ; Function Attrs: nounwind -declare void @exit.377(ptr, i8, ptr) #0 +declare void @assert.377(ptr, i1, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @assert.378(ptr, i1, ptr, ptr) #0 +declare ptr @_NSGetArgv.378() #0 ; Function Attrs: nounwind -declare ptr @_NSGetArgv.379() #0 +declare ptr @_NSGetArgc.379() #0 ; Function Attrs: nounwind -declare ptr @_NSGetArgc.380() #0 +declare void @exit_ok.380(ptr) #0 ; Function Attrs: nounwind -declare void @exit_ok.381(ptr) #0 +declare void @exit_usage.381(ptr) #0 ; Function Attrs: nounwind -declare void @exit_usage.382(ptr) #0 +declare i64 @os_argc.382(ptr) #0 ; Function Attrs: nounwind -declare i64 @os_argc.383(ptr) #0 +declare ptr @os_args.383(ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @os_args.384(ptr, ptr) #0 +declare i1 @Parsed.is_set.384(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @Parsed.is_set.385(ptr, ptr, ptr) #0 +declare ptr @Parsed.value_of.385(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @Parsed.value_of.386(ptr, ptr, ptr) #0 +declare i1 @is_long_flag.386(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @is_long_flag.387(ptr, ptr) #0 +declare void @parse.387(ptr sret({ { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, i32 }), ptr, ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @parse.388(ptr sret({ { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, i32 }), ptr, ptr, ptr, ptr) #0 +declare i32 @open.388(ptr, i32, ...) #0 ; Function Attrs: nounwind -declare i32 @open.389(ptr, i32, ...) #0 +declare i32 @close.389(i32) #0 ; Function Attrs: nounwind -declare i32 @close.390(i32) #0 +declare i64 @read.390(i32, ptr, i64) #0 ; Function Attrs: nounwind -declare i64 @read.391(i32, ptr, i64) #0 +declare i64 @lseek.391(i32, i64, i32) #0 ; Function Attrs: nounwind -declare i64 @lseek.392(i32, i64, i32) #0 +declare i32 @unlink.392(ptr) #0 ; Function Attrs: nounwind -declare i32 @unlink.393(ptr) #0 +declare i32 @rmdir.393(ptr) #0 ; Function Attrs: nounwind -declare i32 @rmdir.394(ptr) #0 +declare i32 @mkdir.394(ptr, i32) #0 ; Function Attrs: nounwind -declare i32 @mkdir.395(ptr, i32) #0 +declare i32 @access.395(ptr, i32) #0 ; Function Attrs: nounwind -declare i32 @access.396(ptr, i32) #0 +declare i32 @chmod.396(ptr, i32) #0 ; Function Attrs: nounwind -declare i32 @chmod.397(ptr, i32) #0 +declare i32 @rename.397(ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @rename.398(ptr, ptr) #0 +declare i1 @File.is_valid.398(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @File.is_valid.399(ptr, ptr) #0 +declare i1 @File.close.399(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @File.close.400(ptr, ptr) #0 +declare i64 @File.read.400(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i64 @File.read.401(ptr, ptr, ptr) #0 +declare i64 @File.write.401(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i64 @File.write.402(ptr, ptr, ptr) #0 +declare i64 @File.seek.402(ptr, ptr, i64, i64) #0 ; Function Attrs: nounwind -declare i64 @File.seek.403(ptr, ptr, i64, i64) #0 +declare i32 @mode_to_flags.403(ptr, i64) #0 ; Function Attrs: nounwind -declare i32 @mode_to_flags.404(ptr, i64) #0 +declare i64 @open_file.404(ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare i64 @open_file.405(ptr, ptr, i64) #0 +declare void @read_file.405(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare void @read_file.406(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 +declare i1 @write_file.406(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @write_file.407(ptr, ptr, ptr) #0 +declare i1 @append_file.407(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @append_file.408(ptr, ptr, ptr) #0 +declare i1 @exists.408(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @exists.409(ptr, ptr) #0 +declare i1 @delete_file.409(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @delete_file.410(ptr, ptr) #0 +declare i1 @delete_dir.410(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @delete_dir.411(ptr, ptr) #0 +declare i1 @create_dir.411(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @create_dir.412(ptr, ptr) #0 +declare i1 @set_mode.412(ptr, ptr, i32) #0 ; Function Attrs: nounwind -declare i1 @set_mode.413(ptr, ptr, i32) #0 +declare i1 @move.413(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @move.414(ptr, ptr, ptr) #0 +declare i1 @create_dir_all.414(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @create_dir_all.415(ptr, ptr) #0 +declare i1 @copy_file.415(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @copy_file.416(ptr, ptr, ptr) #0 +declare ptr @basename.416(ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @basename.417(ptr, ptr) #0 +declare ptr @dirname.417(ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @dirname.418(ptr, ptr) #0 +declare i64 @rotr.418(ptr, i64, i64) #0 ; Function Attrs: nounwind -declare i64 @rotr.419(ptr, i64, i64) #0 +declare i64 @big_sigma0.419(ptr, i64) #0 ; Function Attrs: nounwind -declare i64 @big_sigma0.420(ptr, i64) #0 +declare i64 @big_sigma1.420(ptr, i64) #0 ; Function Attrs: nounwind -declare i64 @big_sigma1.421(ptr, i64) #0 +declare i64 @small_sigma0.421(ptr, i64) #0 ; Function Attrs: nounwind -declare i64 @small_sigma0.422(ptr, i64) #0 +declare i64 @small_sigma1.422(ptr, i64) #0 ; Function Attrs: nounwind -declare i64 @small_sigma1.423(ptr, i64) #0 +declare void @Sha256.process_block.423(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Sha256.process_block.424(ptr, ptr) #0 +declare void @Sha256.update.424(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Sha256.update.425(ptr, ptr, ptr) #0 +declare [64 x i8] @Sha256.final.425(ptr, ptr) #0 ; Function Attrs: nounwind -declare [64 x i8] @Sha256.final.426(ptr, ptr) #0 +declare i8 @nibble_hex.426(ptr, i64) #0 ; Function Attrs: nounwind -declare i8 @nibble_hex.427(ptr, i64) #0 +declare void @init.427(ptr sret({ [8 x i64], [64 x i8], i64, i64 }), ptr) #0 ; Function Attrs: nounwind -declare void @init.428(ptr sret({ [8 x i64], [64 x i8], i64, i64 }), ptr) #0 +declare [64 x i8] @sha256_hex.428(ptr, ptr) #0 ; Function Attrs: nounwind -declare [64 x i8] @sha256_hex.429(ptr, ptr) #0 +declare void @sha256_file.429(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare void @sha256_file.430(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +declare void @log_emit.430(ptr, ptr, ptr) #0 ; Function Attrs: nounwind declare void @assert.431(ptr, i1) #0 diff --git a/examples/expected/0044-basic-default-arg-expansion.ir b/examples/expected/0044-basic-default-arg-expansion.ir index 978c90e..f01dce2 100644 --- a/examples/expected/0044-basic-default-arg-expansion.ir +++ b/examples/expected/0044-basic-default-arg-expansion.ir @@ -2728,14 +2728,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 ; Function Attrs: nounwind declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 -; Function Attrs: nounwind -declare ptr @escape(ptr, ptr) #0 - -declare i64 @write(i32, ptr, i64) - -; Function Attrs: nounwind -declare void @log_emit(ptr, ptr, ptr) #0 - ; Function Attrs: nounwind declare i32 @open(ptr, i32, ...) #0 @@ -2745,6 +2737,8 @@ declare i32 @close(i32) #0 ; Function Attrs: nounwind declare i64 @read(i32, ptr, i64) #0 +declare i64 @write(i32, ptr, i64) + ; Function Attrs: nounwind declare i64 @lseek(i32, i64, i32) #0 @@ -3147,6 +3141,9 @@ declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr ; Function Attrs: nounwind declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +; Function Attrs: nounwind +declare ptr @escape(ptr, ptr) #0 + ; Function Attrs: nounwind declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -3474,6 +3471,9 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0 ; Function Attrs: nounwind declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + ; Function Attrs: nounwind declare void @assert.107(ptr, i1) #0 diff --git a/examples/expected/0107-types-int-cmp-in-float-ternary.ir b/examples/expected/0107-types-int-cmp-in-float-ternary.ir index ed98684..9456819 100644 --- a/examples/expected/0107-types-int-cmp-in-float-ternary.ir +++ b/examples/expected/0107-types-int-cmp-in-float-ternary.ir @@ -2703,14 +2703,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 ; Function Attrs: nounwind declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 -; Function Attrs: nounwind -declare ptr @escape(ptr, ptr) #0 - -declare i64 @write(i32, ptr, i64) - -; Function Attrs: nounwind -declare void @log_emit(ptr, ptr, ptr) #0 - ; Function Attrs: nounwind declare i32 @open(ptr, i32, ...) #0 @@ -2720,6 +2712,8 @@ declare i32 @close(i32) #0 ; Function Attrs: nounwind declare i64 @read(i32, ptr, i64) #0 +declare i64 @write(i32, ptr, i64) + ; Function Attrs: nounwind declare i64 @lseek(i32, i64, i32) #0 @@ -3122,6 +3116,9 @@ declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr ; Function Attrs: nounwind declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +; Function Attrs: nounwind +declare ptr @escape(ptr, ptr) #0 + ; Function Attrs: nounwind declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -3449,6 +3446,9 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0 ; Function Attrs: nounwind declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + ; Function Attrs: nounwind declare void @assert.107(ptr, i1) #0 diff --git a/examples/expected/0200-generics-generic.ir b/examples/expected/0200-generics-generic.ir index dcc3ef7..572f708 100644 --- a/examples/expected/0200-generics-generic.ir +++ b/examples/expected/0200-generics-generic.ir @@ -2704,14 +2704,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 ; Function Attrs: nounwind declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 -; Function Attrs: nounwind -declare ptr @escape(ptr, ptr) #0 - -declare i64 @write(i32, ptr, i64) - -; Function Attrs: nounwind -declare void @log_emit(ptr, ptr, ptr) #0 - ; Function Attrs: nounwind declare i32 @open(ptr, i32, ...) #0 @@ -2721,6 +2713,8 @@ declare i32 @close(i32) #0 ; Function Attrs: nounwind declare i64 @read(i32, ptr, i64) #0 +declare i64 @write(i32, ptr, i64) + ; Function Attrs: nounwind declare i64 @lseek(i32, i64, i32) #0 @@ -3123,6 +3117,9 @@ declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr ; Function Attrs: nounwind declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +; Function Attrs: nounwind +declare ptr @escape(ptr, ptr) #0 + ; Function Attrs: nounwind declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -3450,6 +3447,9 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0 ; Function Attrs: nounwind declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + ; Function Attrs: nounwind declare void @assert.107(ptr, i1) #0 diff --git a/examples/expected/0201-generics-generic-struct.ir b/examples/expected/0201-generics-generic-struct.ir index 1955c49..f838637 100644 --- a/examples/expected/0201-generics-generic-struct.ir +++ b/examples/expected/0201-generics-generic-struct.ir @@ -3008,14 +3008,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 ; Function Attrs: nounwind declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 -; Function Attrs: nounwind -declare ptr @escape(ptr, ptr) #0 - -declare i64 @write(i32, ptr, i64) - -; Function Attrs: nounwind -declare void @log_emit(ptr, ptr, ptr) #0 - ; Function Attrs: nounwind declare i32 @open(ptr, i32, ...) #0 @@ -3025,6 +3017,8 @@ declare i32 @close(i32) #0 ; Function Attrs: nounwind declare i64 @read(i32, ptr, i64) #0 +declare i64 @write(i32, ptr, i64) + ; Function Attrs: nounwind declare i64 @lseek(i32, i64, i32) #0 @@ -3427,6 +3421,9 @@ declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr ; Function Attrs: nounwind declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +; Function Attrs: nounwind +declare ptr @escape(ptr, ptr) #0 + ; Function Attrs: nounwind declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -3754,6 +3751,9 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0 ; Function Attrs: nounwind declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + ; Function Attrs: nounwind declare void @assert.107(ptr, i1) #0 diff --git a/examples/expected/0301-closures-fn-pointers.ir b/examples/expected/0301-closures-fn-pointers.ir index 1544295..a110b07 100644 --- a/examples/expected/0301-closures-fn-pointers.ir +++ b/examples/expected/0301-closures-fn-pointers.ir @@ -2709,14 +2709,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 ; Function Attrs: nounwind declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 -; Function Attrs: nounwind -declare ptr @escape(ptr, ptr) #0 - -declare i64 @write(i32, ptr, i64) - -; Function Attrs: nounwind -declare void @log_emit(ptr, ptr, ptr) #0 - ; Function Attrs: nounwind declare i32 @open(ptr, i32, ...) #0 @@ -2726,6 +2718,8 @@ declare i32 @close(i32) #0 ; Function Attrs: nounwind declare i64 @read(i32, ptr, i64) #0 +declare i64 @write(i32, ptr, i64) + ; Function Attrs: nounwind declare i64 @lseek(i32, i64, i32) #0 @@ -3128,6 +3122,9 @@ declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr ; Function Attrs: nounwind declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +; Function Attrs: nounwind +declare ptr @escape(ptr, ptr) #0 + ; Function Attrs: nounwind declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -3455,6 +3452,9 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0 ; Function Attrs: nounwind declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + ; Function Attrs: nounwind declare void @assert.107(ptr, i1) #0 diff --git a/examples/expected/0400-protocols-impl-for-builtin.ir b/examples/expected/0400-protocols-impl-for-builtin.ir index 743c8af..01dbf1a 100644 --- a/examples/expected/0400-protocols-impl-for-builtin.ir +++ b/examples/expected/0400-protocols-impl-for-builtin.ir @@ -2817,14 +2817,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 ; Function Attrs: nounwind declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 -; Function Attrs: nounwind -declare ptr @escape(ptr, ptr) #0 - -declare i64 @write(i32, ptr, i64) - -; Function Attrs: nounwind -declare void @log_emit(ptr, ptr, ptr) #0 - ; Function Attrs: nounwind declare i32 @open(ptr, i32, ...) #0 @@ -2834,6 +2826,8 @@ declare i32 @close(i32) #0 ; Function Attrs: nounwind declare i64 @read(i32, ptr, i64) #0 +declare i64 @write(i32, ptr, i64) + ; Function Attrs: nounwind declare i64 @lseek(i32, i64, i32) #0 @@ -3236,6 +3230,9 @@ declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr ; Function Attrs: nounwind declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +; Function Attrs: nounwind +declare ptr @escape(ptr, ptr) #0 + ; Function Attrs: nounwind declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -3563,6 +3560,9 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0 ; Function Attrs: nounwind declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + ; Function Attrs: nounwind declare void @assert.107(ptr, i1) #0 diff --git a/examples/expected/0413-protocols-parameterized-protocol-value.ir b/examples/expected/0413-protocols-parameterized-protocol-value.ir index e018ad1..88e1fcf 100644 --- a/examples/expected/0413-protocols-parameterized-protocol-value.ir +++ b/examples/expected/0413-protocols-parameterized-protocol-value.ir @@ -2914,14 +2914,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 ; Function Attrs: nounwind declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 -; Function Attrs: nounwind -declare ptr @escape(ptr, ptr) #0 - -declare i64 @write(i32, ptr, i64) - -; Function Attrs: nounwind -declare void @log_emit(ptr, ptr, ptr) #0 - ; Function Attrs: nounwind declare i32 @open(ptr, i32, ...) #0 @@ -2931,6 +2923,8 @@ declare i32 @close(i32) #0 ; Function Attrs: nounwind declare i64 @read(i32, ptr, i64) #0 +declare i64 @write(i32, ptr, i64) + ; Function Attrs: nounwind declare i64 @lseek(i32, i64, i32) #0 @@ -3333,6 +3327,9 @@ declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr ; Function Attrs: nounwind declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +; Function Attrs: nounwind +declare ptr @escape(ptr, ptr) #0 + ; Function Attrs: nounwind declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -3660,6 +3657,9 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0 ; Function Attrs: nounwind declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + ; Function Attrs: nounwind declare void @assert.107(ptr, i1) #0 diff --git a/examples/expected/0414-protocols-generic-struct-protocol-erase.ir b/examples/expected/0414-protocols-generic-struct-protocol-erase.ir index a502d8f..4232884 100644 --- a/examples/expected/0414-protocols-generic-struct-protocol-erase.ir +++ b/examples/expected/0414-protocols-generic-struct-protocol-erase.ir @@ -2930,14 +2930,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 ; Function Attrs: nounwind declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 -; Function Attrs: nounwind -declare ptr @escape(ptr, ptr) #0 - -declare i64 @write(i32, ptr, i64) - -; Function Attrs: nounwind -declare void @log_emit(ptr, ptr, ptr) #0 - ; Function Attrs: nounwind declare i32 @open(ptr, i32, ...) #0 @@ -2947,6 +2939,8 @@ declare i32 @close(i32) #0 ; Function Attrs: nounwind declare i64 @read(i32, ptr, i64) #0 +declare i64 @write(i32, ptr, i64) + ; Function Attrs: nounwind declare i64 @lseek(i32, i64, i32) #0 @@ -3349,6 +3343,9 @@ declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr ; Function Attrs: nounwind declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +; Function Attrs: nounwind +declare ptr @escape(ptr, ptr) #0 + ; Function Attrs: nounwind declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -3676,6 +3673,9 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0 ; Function Attrs: nounwind declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + ; Function Attrs: nounwind declare void @assert.107(ptr, i1) #0 diff --git a/examples/expected/0416-protocols-auto-type-erasure.ir b/examples/expected/0416-protocols-auto-type-erasure.ir index 6e3d6d0..b22747c 100644 --- a/examples/expected/0416-protocols-auto-type-erasure.ir +++ b/examples/expected/0416-protocols-auto-type-erasure.ir @@ -3020,14 +3020,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 ; Function Attrs: nounwind declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 -; Function Attrs: nounwind -declare ptr @escape(ptr, ptr) #0 - -declare i64 @write(i32, ptr, i64) - -; Function Attrs: nounwind -declare void @log_emit(ptr, ptr, ptr) #0 - ; Function Attrs: nounwind declare i32 @open(ptr, i32, ...) #0 @@ -3037,6 +3029,8 @@ declare i32 @close(i32) #0 ; Function Attrs: nounwind declare i64 @read(i32, ptr, i64) #0 +declare i64 @write(i32, ptr, i64) + ; Function Attrs: nounwind declare i64 @lseek(i32, i64, i32) #0 @@ -3439,6 +3433,9 @@ declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr ; Function Attrs: nounwind declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +; Function Attrs: nounwind +declare ptr @escape(ptr, ptr) #0 + ; Function Attrs: nounwind declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -3766,6 +3763,9 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0 ; Function Attrs: nounwind declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + ; Function Attrs: nounwind declare void @assert.107(ptr, i1) #0 @@ -4061,748 +4061,748 @@ declare ptr @TrackingAllocator.alloc_bytes.181(ptr, ptr, i64) #0 declare void @TrackingAllocator.dealloc_bytes.182(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @escape.183(ptr, ptr) #0 +declare i32 @open.183(ptr, i32, ...) #0 ; Function Attrs: nounwind -declare void @log_emit.184(ptr, ptr, ptr) #0 +declare i32 @close.184(i32) #0 ; Function Attrs: nounwind -declare i32 @open.185(ptr, i32, ...) #0 +declare i64 @read.185(i32, ptr, i64) #0 ; Function Attrs: nounwind -declare i32 @close.186(i32) #0 +declare i64 @lseek.186(i32, i64, i32) #0 ; Function Attrs: nounwind -declare i64 @read.187(i32, ptr, i64) #0 +declare i32 @unlink.187(ptr) #0 ; Function Attrs: nounwind -declare i64 @lseek.188(i32, i64, i32) #0 +declare i32 @rmdir.188(ptr) #0 ; Function Attrs: nounwind -declare i32 @unlink.189(ptr) #0 +declare i32 @mkdir.189(ptr, i32) #0 ; Function Attrs: nounwind -declare i32 @rmdir.190(ptr) #0 +declare i32 @access.190(ptr, i32) #0 ; Function Attrs: nounwind -declare i32 @mkdir.191(ptr, i32) #0 +declare i32 @chmod.191(ptr, i32) #0 ; Function Attrs: nounwind -declare i32 @access.192(ptr, i32) #0 +declare i32 @rename.192(ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @chmod.193(ptr, i32) #0 +declare i1 @File.is_valid.193(ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @rename.194(ptr, ptr) #0 +declare i1 @File.close.194(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @File.is_valid.195(ptr, ptr) #0 +declare i64 @File.read.195(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @File.close.196(ptr, ptr) #0 +declare i64 @File.write.196(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i64 @File.read.197(ptr, ptr, ptr) #0 +declare i64 @File.seek.197(ptr, ptr, i64, i64) #0 ; Function Attrs: nounwind -declare i64 @File.write.198(ptr, ptr, ptr) #0 +declare i32 @mode_to_flags.198(ptr, i64) #0 ; Function Attrs: nounwind -declare i64 @File.seek.199(ptr, ptr, i64, i64) #0 +declare i64 @open_file.199(ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare i32 @mode_to_flags.200(ptr, i64) #0 +declare void @read_file.200(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare i64 @open_file.201(ptr, ptr, i64) #0 +declare i1 @write_file.201(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @read_file.202(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 +declare i1 @append_file.202(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @write_file.203(ptr, ptr, ptr) #0 +declare i1 @exists.203(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @append_file.204(ptr, ptr, ptr) #0 +declare i1 @delete_file.204(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @exists.205(ptr, ptr) #0 +declare i1 @delete_dir.205(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @delete_file.206(ptr, ptr) #0 +declare i1 @create_dir.206(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @delete_dir.207(ptr, ptr) #0 +declare i1 @set_mode.207(ptr, ptr, i32) #0 ; Function Attrs: nounwind -declare i1 @create_dir.208(ptr, ptr) #0 +declare i1 @move.208(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @set_mode.209(ptr, ptr, i32) #0 +declare i1 @create_dir_all.209(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @move.210(ptr, ptr, ptr) #0 +declare i1 @copy_file.210(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @create_dir_all.211(ptr, ptr) #0 +declare ptr @basename.211(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @copy_file.212(ptr, ptr, ptr) #0 +declare ptr @dirname.212(ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @basename.213(ptr, ptr) #0 +declare ptr @spaces.213(ptr, i32) #0 ; Function Attrs: nounwind -declare ptr @dirname.214(ptr, ptr) #0 +declare i32 @sx_trace_len.214() #0 ; Function Attrs: nounwind -declare ptr @spaces.215(ptr, i32) #0 +declare i32 @sx_trace_truncated.215() #0 ; Function Attrs: nounwind -declare i32 @sx_trace_len.216() #0 +declare i64 @sx_trace_frame_at.216(i32) #0 ; Function Attrs: nounwind -declare i32 @sx_trace_truncated.217() #0 +declare ptr @to_string.217(ptr) #0 ; Function Attrs: nounwind -declare i64 @sx_trace_frame_at.218(i32) #0 +declare void @print_current.218(ptr) #0 ; Function Attrs: nounwind -declare ptr @to_string.219(ptr) #0 +declare void @print_interpreter_frames.219(ptr) #0 ; Function Attrs: nounwind -declare void @print_current.220(ptr) #0 +declare ptr @popen.220(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @print_interpreter_frames.221(ptr) #0 +declare i32 @pclose.221(ptr) #0 ; Function Attrs: nounwind -declare ptr @popen.222(ptr, ptr) #0 +declare i64 @fread.222(ptr, i64, i64, ptr) #0 ; Function Attrs: nounwind -declare i32 @pclose.223(ptr) #0 +declare i32 @feof.223(ptr) #0 ; Function Attrs: nounwind -declare i64 @fread.224(ptr, i64, i64, ptr) #0 +declare ptr @getenv.224(ptr) #0 ; Function Attrs: nounwind -declare i32 @feof.225(ptr) #0 +declare i64 @strlen.225(ptr) #0 ; Function Attrs: nounwind -declare ptr @getenv.226(ptr) #0 +declare i32 @system.226(ptr) #0 ; Function Attrs: nounwind -declare i64 @strlen.227(ptr) #0 +declare void @run.227(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @system.228(ptr) #0 +declare void @env.228(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare void @run.229(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 +declare void @find_executable.229(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare void @env.230(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 +declare void @_exit.230(i32) #0 ; Function Attrs: nounwind -declare void @find_executable.231(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 +declare void @exit.231(ptr, i8, ptr) #0 ; Function Attrs: nounwind -declare void @_exit.232(i32) #0 +declare void @assert.232(ptr, i1, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @exit.233(ptr, i8, ptr) #0 +declare i32 @socket.233(i32, i32, i32) #0 ; Function Attrs: nounwind -declare void @assert.234(ptr, i1, ptr, ptr) #0 +declare i32 @setsockopt.234(i32, i32, i32, ptr, i32) #0 ; Function Attrs: nounwind -declare i32 @socket.235(i32, i32, i32) #0 +declare i32 @bind.235(i32, ptr, i32) #0 ; Function Attrs: nounwind -declare i32 @setsockopt.236(i32, i32, i32, ptr, i32) #0 +declare i32 @listen.236(i32, i32) #0 ; Function Attrs: nounwind -declare i32 @bind.237(i32, ptr, i32) #0 +declare i32 @accept.237(i32, ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @listen.238(i32, i32) #0 +declare i64 @read.238(i32, ptr, i64) #0 ; Function Attrs: nounwind -declare i32 @accept.239(i32, ptr, ptr) #0 +declare i32 @close.239(i32) #0 ; Function Attrs: nounwind -declare i64 @read.240(i32, ptr, i64) #0 +declare i16 @htons.240(ptr, i64) #0 ; Function Attrs: nounwind -declare i32 @close.241(i32) #0 +declare ptr @mem_realloc.241(ptr, ptr, ptr, i64, i64, i64) #0 ; Function Attrs: nounwind -declare i16 @htons.242(ptr, i64) #0 +declare ptr @CAllocator.alloc_bytes.242(ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare ptr @mem_realloc.243(ptr, ptr, ptr, i64, i64, i64) #0 +declare void @CAllocator.dealloc_bytes.243(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @CAllocator.alloc_bytes.244(ptr, ptr, i64) #0 +declare i64 @GPA.init.244(ptr) #0 ; Function Attrs: nounwind -declare void @CAllocator.dealloc_bytes.245(ptr, ptr, ptr) #0 +declare ptr @GPA.alloc_bytes.245(ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare i64 @GPA.init.246(ptr) #0 +declare void @GPA.dealloc_bytes.246(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @GPA.alloc_bytes.247(ptr, ptr, i64) #0 +declare void @Arena.add_chunk.247(ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare void @GPA.dealloc_bytes.248(ptr, ptr, ptr) #0 +declare void @Arena.init.248(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare void @Arena.add_chunk.249(ptr, ptr, i64) #0 +declare void @Arena.reset.249(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Arena.init.250(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 +declare void @Arena.deinit.250(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Arena.reset.251(ptr, ptr) #0 +declare ptr @Arena.alloc_bytes.251(ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare void @Arena.deinit.252(ptr, ptr) #0 +declare void @Arena.dealloc_bytes.252(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @Arena.alloc_bytes.253(ptr, ptr, i64) #0 +declare void @BufAlloc.init.253(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare void @Arena.dealloc_bytes.254(ptr, ptr, ptr) #0 +declare void @BufAlloc.reset.254(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @BufAlloc.init.255(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0 +declare ptr @BufAlloc.alloc_bytes.255(ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare void @BufAlloc.reset.256(ptr, ptr) #0 +declare void @BufAlloc.dealloc_bytes.256(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @BufAlloc.alloc_bytes.257(ptr, ptr, i64) #0 +declare void @TrackingAllocator.init.257(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare void @BufAlloc.dealloc_bytes.258(ptr, ptr, ptr) #0 +declare i64 @TrackingAllocator.leak_count.258(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @TrackingAllocator.init.259(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 +declare void @TrackingAllocator.report.259(ptr, ptr) #0 ; Function Attrs: nounwind -declare i64 @TrackingAllocator.leak_count.260(ptr, ptr) #0 +declare ptr @TrackingAllocator.alloc_bytes.260(ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare void @TrackingAllocator.report.261(ptr, ptr) #0 +declare void @TrackingAllocator.dealloc_bytes.261(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @TrackingAllocator.alloc_bytes.262(ptr, ptr, i64) #0 +declare i32 @open.262(ptr, i32, ...) #0 ; Function Attrs: nounwind -declare void @TrackingAllocator.dealloc_bytes.263(ptr, ptr, ptr) #0 +declare i32 @close.263(i32) #0 ; Function Attrs: nounwind -declare i32 @open.264(ptr, i32, ...) #0 +declare i64 @read.264(i32, ptr, i64) #0 ; Function Attrs: nounwind -declare i32 @close.265(i32) #0 +declare i64 @lseek.265(i32, i64, i32) #0 ; Function Attrs: nounwind -declare i64 @read.266(i32, ptr, i64) #0 +declare i32 @unlink.266(ptr) #0 ; Function Attrs: nounwind -declare i64 @lseek.267(i32, i64, i32) #0 +declare i32 @rmdir.267(ptr) #0 ; Function Attrs: nounwind -declare i32 @unlink.268(ptr) #0 +declare i32 @mkdir.268(ptr, i32) #0 ; Function Attrs: nounwind -declare i32 @rmdir.269(ptr) #0 +declare i32 @access.269(ptr, i32) #0 ; Function Attrs: nounwind -declare i32 @mkdir.270(ptr, i32) #0 +declare i32 @chmod.270(ptr, i32) #0 ; Function Attrs: nounwind -declare i32 @access.271(ptr, i32) #0 +declare i32 @rename.271(ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @chmod.272(ptr, i32) #0 +declare i1 @File.is_valid.272(ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @rename.273(ptr, ptr) #0 +declare i1 @File.close.273(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @File.is_valid.274(ptr, ptr) #0 +declare i64 @File.read.274(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @File.close.275(ptr, ptr) #0 +declare i64 @File.write.275(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i64 @File.read.276(ptr, ptr, ptr) #0 +declare i64 @File.seek.276(ptr, ptr, i64, i64) #0 ; Function Attrs: nounwind -declare i64 @File.write.277(ptr, ptr, ptr) #0 +declare i32 @mode_to_flags.277(ptr, i64) #0 ; Function Attrs: nounwind -declare i64 @File.seek.278(ptr, ptr, i64, i64) #0 +declare i64 @open_file.278(ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare i32 @mode_to_flags.279(ptr, i64) #0 +declare void @read_file.279(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare i64 @open_file.280(ptr, ptr, i64) #0 +declare i1 @write_file.280(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @read_file.281(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 +declare i1 @append_file.281(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @write_file.282(ptr, ptr, ptr) #0 +declare i1 @exists.282(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @append_file.283(ptr, ptr, ptr) #0 +declare i1 @delete_file.283(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @exists.284(ptr, ptr) #0 +declare i1 @delete_dir.284(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @delete_file.285(ptr, ptr) #0 +declare i1 @create_dir.285(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @delete_dir.286(ptr, ptr) #0 +declare i1 @set_mode.286(ptr, ptr, i32) #0 ; Function Attrs: nounwind -declare i1 @create_dir.287(ptr, ptr) #0 +declare i1 @move.287(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @set_mode.288(ptr, ptr, i32) #0 +declare i1 @create_dir_all.288(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @move.289(ptr, ptr, ptr) #0 +declare i1 @copy_file.289(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @create_dir_all.290(ptr, ptr) #0 +declare ptr @basename.290(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @copy_file.291(ptr, ptr, ptr) #0 +declare ptr @dirname.291(ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @basename.292(ptr, ptr) #0 +declare void @Array.add.292(ptr, ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @dirname.293(ptr, ptr) #0 +declare void @Array.deinit.293(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Array.add.294(ptr, ptr, ptr, ptr) #0 +declare void @Object.put.294(ptr, ptr, ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Array.deinit.295(ptr, ptr, ptr) #0 +declare void @Object.deinit.295(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Object.put.296(ptr, ptr, ptr, ptr, ptr) #0 +declare i32 @Sink.put_byte.296(ptr, ptr, i8) #0 ; Function Attrs: nounwind -declare void @Object.deinit.297(ptr, ptr, ptr) #0 +declare i32 @Sink.put.297(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @Sink.put_byte.298(ptr, ptr, i8) #0 +declare i32 @Sink.flush.298(ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @Sink.put.299(ptr, ptr, ptr) #0 +declare i8 @hex_digit.299(ptr, i64) #0 ; Function Attrs: nounwind -declare i32 @Sink.flush.300(ptr, ptr) #0 +declare i32 @write_u_escape.300(ptr, i8, ptr) #0 ; Function Attrs: nounwind -declare i8 @hex_digit.301(ptr, i64) #0 +declare i32 @write_string.301(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @write_u_escape.302(ptr, i8, ptr) #0 +declare i32 @write_int.302(ptr, i64, ptr) #0 ; Function Attrs: nounwind -declare i32 @write_string.303(ptr, ptr, ptr) #0 +declare i32 @write_value.303(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @write_int.304(ptr, i64, ptr) #0 +declare i32 @write_array.304(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @write_value.305(ptr, ptr, ptr) #0 +declare i32 @write_object.305(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @write_array.306(ptr, ptr, ptr) #0 +declare [2 x i64] @write_to_buffer.306(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @write_object.307(ptr, ptr, ptr) #0 +declare i32 @write_to_file.307(ptr, ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare [2 x i64] @write_to_buffer.308(ptr, ptr, ptr) #0 +declare [2 x i64] @hex_value.308(ptr, i8) #0 ; Function Attrs: nounwind -declare i32 @write_to_file.309(ptr, ptr, ptr, ptr) #0 +declare i64 @encode_utf8.309(ptr, i64, ptr) #0 ; Function Attrs: nounwind -declare [2 x i64] @hex_value.310(ptr, i8) #0 +declare void @Parser.skip_ws.310(ptr, ptr) #0 ; Function Attrs: nounwind -declare i64 @encode_utf8.311(ptr, i64, ptr) #0 +declare i32 @Parser.expect_lit.311(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Parser.skip_ws.312(ptr, ptr) #0 +declare [2 x i64] @Parser.read_hex4.312(ptr, ptr, i64, i64) #0 ; Function Attrs: nounwind -declare i32 @Parser.expect_lit.313(ptr, ptr, ptr) #0 +declare [2 x i64] @Parser.decode_into.313(ptr, ptr, i64, i64, ptr) #0 ; Function Attrs: nounwind -declare [2 x i64] @Parser.read_hex4.314(ptr, ptr, i64, i64) #0 +declare void @Parser.parse_string.314(ptr sret({ { ptr, i64 }, i32 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare [2 x i64] @Parser.decode_into.315(ptr, ptr, i64, i64, ptr) #0 +declare [2 x i64] @Parser.parse_number.315(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Parser.parse_string.316(ptr sret({ { ptr, i64 }, i32 }), ptr, ptr) #0 +declare void @Parser.parse_array.316(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare [2 x i64] @Parser.parse_number.317(ptr, ptr) #0 +declare void @Parser.parse_object.317(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Parser.parse_array.318(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr) #0 +declare void @Parser.parse_value.318(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Parser.parse_object.319(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr) #0 +declare void @parse.319(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Parser.parse_value.320(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr) #0 +declare ptr @escape.320(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @parse.321(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +declare void @BuildOptions.add_link_flag.321(i64, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.add_link_flag.322(i64, ptr) #0 +declare void @BuildOptions.add_framework.322(i64, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.add_framework.323(i64, ptr) #0 +declare void @BuildOptions.set_output_path.323(i64, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.set_output_path.324(i64, ptr) #0 +declare void @BuildOptions.set_wasm_shell.324(i64, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.set_wasm_shell.325(i64, ptr) #0 +declare void @BuildOptions.add_asset_dir.325(i64, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.add_asset_dir.326(i64, ptr, ptr) #0 +declare i64 @BuildOptions.asset_dir_count.326(i64) #0 ; Function Attrs: nounwind -declare i64 @BuildOptions.asset_dir_count.327(i64) #0 +declare ptr @BuildOptions.asset_dir_src_at.327(i64, i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.asset_dir_src_at.328(i64, i64) #0 +declare ptr @BuildOptions.asset_dir_dest_at.328(i64, i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.asset_dir_dest_at.329(i64, i64) #0 +declare void @BuildOptions.set_post_link_callback.329(i64, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.set_post_link_callback.330(i64, ptr) #0 +declare void @BuildOptions.set_post_link_module.330(i64, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.set_post_link_module.331(i64, ptr) #0 +declare ptr @BuildOptions.binary_path.331(i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.binary_path.332(i64) #0 +declare void @BuildOptions.set_bundle_path.332(i64, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.set_bundle_path.333(i64, ptr) #0 +declare void @BuildOptions.set_bundle_id.333(i64, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.set_bundle_id.334(i64, ptr) #0 +declare void @BuildOptions.set_codesign_identity.334(i64, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.set_codesign_identity.335(i64, ptr) #0 +declare void @BuildOptions.set_provisioning_profile.335(i64, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.set_provisioning_profile.336(i64, ptr) #0 +declare ptr @BuildOptions.bundle_path.336(i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.bundle_path.337(i64) #0 +declare ptr @BuildOptions.bundle_id.337(i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.bundle_id.338(i64) #0 +declare ptr @BuildOptions.codesign_identity.338(i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.codesign_identity.339(i64) #0 +declare ptr @BuildOptions.provisioning_profile.339(i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.provisioning_profile.340(i64) #0 +declare ptr @BuildOptions.target_triple.340(i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.target_triple.341(i64) #0 +declare i1 @BuildOptions.is_macos.341(i64) #0 ; Function Attrs: nounwind -declare i1 @BuildOptions.is_macos.342(i64) #0 +declare i1 @BuildOptions.is_ios.342(i64) #0 ; Function Attrs: nounwind -declare i1 @BuildOptions.is_ios.343(i64) #0 +declare i1 @BuildOptions.is_ios_device.343(i64) #0 ; Function Attrs: nounwind -declare i1 @BuildOptions.is_ios_device.344(i64) #0 +declare i1 @BuildOptions.is_ios_simulator.344(i64) #0 ; Function Attrs: nounwind -declare i1 @BuildOptions.is_ios_simulator.345(i64) #0 +declare i1 @BuildOptions.is_android.345(i64) #0 ; Function Attrs: nounwind -declare i1 @BuildOptions.is_android.346(i64) #0 +declare i64 @BuildOptions.framework_count.346(i64) #0 ; Function Attrs: nounwind -declare i64 @BuildOptions.framework_count.347(i64) #0 +declare ptr @BuildOptions.framework_at.347(i64, i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.framework_at.348(i64, i64) #0 +declare i64 @BuildOptions.framework_path_count.348(i64) #0 ; Function Attrs: nounwind -declare i64 @BuildOptions.framework_path_count.349(i64) #0 +declare ptr @BuildOptions.framework_path_at.349(i64, i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.framework_path_at.350(i64, i64) #0 +declare void @BuildOptions.set_manifest_path.350(i64, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.set_manifest_path.351(i64, ptr) #0 +declare void @BuildOptions.set_keystore_path.351(i64, ptr) #0 ; Function Attrs: nounwind -declare void @BuildOptions.set_keystore_path.352(i64, ptr) #0 +declare ptr @BuildOptions.manifest_path.352(i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.manifest_path.353(i64) #0 +declare ptr @BuildOptions.keystore_path.353(i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.keystore_path.354(i64) #0 +declare i64 @BuildOptions.jni_main_count.354(i64) #0 ; Function Attrs: nounwind -declare i64 @BuildOptions.jni_main_count.355(i64) #0 +declare ptr @BuildOptions.jni_main_foreign_path_at.355(i64, i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.jni_main_foreign_path_at.356(i64, i64) #0 +declare ptr @BuildOptions.jni_main_java_source_at.356(i64, i64) #0 ; Function Attrs: nounwind -declare ptr @BuildOptions.jni_main_java_source_at.357(i64, i64) #0 +declare i64 @build_options.357() #0 ; Function Attrs: nounwind -declare i64 @build_options.358() #0 +declare ptr @spaces.358(ptr, i32) #0 ; Function Attrs: nounwind -declare ptr @spaces.359(ptr, i32) #0 +declare i32 @sx_trace_len.359() #0 ; Function Attrs: nounwind -declare i32 @sx_trace_len.360() #0 +declare i32 @sx_trace_truncated.360() #0 ; Function Attrs: nounwind -declare i32 @sx_trace_truncated.361() #0 +declare i64 @sx_trace_frame_at.361(i32) #0 ; Function Attrs: nounwind -declare i64 @sx_trace_frame_at.362(i32) #0 +declare ptr @to_string.362(ptr) #0 ; Function Attrs: nounwind -declare ptr @to_string.363(ptr) #0 +declare void @print_current.363(ptr) #0 ; Function Attrs: nounwind -declare void @print_current.364(ptr) #0 +declare void @print_interpreter_frames.364(ptr) #0 ; Function Attrs: nounwind -declare void @print_interpreter_frames.365(ptr) #0 +declare ptr @popen.365(ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @popen.366(ptr, ptr) #0 +declare i32 @pclose.366(ptr) #0 ; Function Attrs: nounwind -declare i32 @pclose.367(ptr) #0 +declare i64 @fread.367(ptr, i64, i64, ptr) #0 ; Function Attrs: nounwind -declare i64 @fread.368(ptr, i64, i64, ptr) #0 +declare i32 @feof.368(ptr) #0 ; Function Attrs: nounwind -declare i32 @feof.369(ptr) #0 +declare ptr @getenv.369(ptr) #0 ; Function Attrs: nounwind -declare ptr @getenv.370(ptr) #0 +declare i64 @strlen.370(ptr) #0 ; Function Attrs: nounwind -declare i64 @strlen.371(ptr) #0 +declare i32 @system.371(ptr) #0 ; Function Attrs: nounwind -declare i32 @system.372(ptr) #0 +declare void @run.372(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare void @run.373(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 +declare void @env.373(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare void @env.374(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 +declare void @find_executable.374(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare void @find_executable.375(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 +declare void @_exit.375(i32) #0 ; Function Attrs: nounwind -declare void @_exit.376(i32) #0 +declare void @exit.376(ptr, i8, ptr) #0 ; Function Attrs: nounwind -declare void @exit.377(ptr, i8, ptr) #0 +declare void @assert.377(ptr, i1, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @assert.378(ptr, i1, ptr, ptr) #0 +declare ptr @_NSGetArgv.378() #0 ; Function Attrs: nounwind -declare ptr @_NSGetArgv.379() #0 +declare ptr @_NSGetArgc.379() #0 ; Function Attrs: nounwind -declare ptr @_NSGetArgc.380() #0 +declare void @exit_ok.380(ptr) #0 ; Function Attrs: nounwind -declare void @exit_ok.381(ptr) #0 +declare void @exit_usage.381(ptr) #0 ; Function Attrs: nounwind -declare void @exit_usage.382(ptr) #0 +declare i64 @os_argc.382(ptr) #0 ; Function Attrs: nounwind -declare i64 @os_argc.383(ptr) #0 +declare ptr @os_args.383(ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @os_args.384(ptr, ptr) #0 +declare i1 @Parsed.is_set.384(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @Parsed.is_set.385(ptr, ptr, ptr) #0 +declare ptr @Parsed.value_of.385(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @Parsed.value_of.386(ptr, ptr, ptr) #0 +declare i1 @is_long_flag.386(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @is_long_flag.387(ptr, ptr) #0 +declare void @parse.387(ptr sret({ { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, i32 }), ptr, ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @parse.388(ptr sret({ { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, i32 }), ptr, ptr, ptr, ptr) #0 +declare i32 @open.388(ptr, i32, ...) #0 ; Function Attrs: nounwind -declare i32 @open.389(ptr, i32, ...) #0 +declare i32 @close.389(i32) #0 ; Function Attrs: nounwind -declare i32 @close.390(i32) #0 +declare i64 @read.390(i32, ptr, i64) #0 ; Function Attrs: nounwind -declare i64 @read.391(i32, ptr, i64) #0 +declare i64 @lseek.391(i32, i64, i32) #0 ; Function Attrs: nounwind -declare i64 @lseek.392(i32, i64, i32) #0 +declare i32 @unlink.392(ptr) #0 ; Function Attrs: nounwind -declare i32 @unlink.393(ptr) #0 +declare i32 @rmdir.393(ptr) #0 ; Function Attrs: nounwind -declare i32 @rmdir.394(ptr) #0 +declare i32 @mkdir.394(ptr, i32) #0 ; Function Attrs: nounwind -declare i32 @mkdir.395(ptr, i32) #0 +declare i32 @access.395(ptr, i32) #0 ; Function Attrs: nounwind -declare i32 @access.396(ptr, i32) #0 +declare i32 @chmod.396(ptr, i32) #0 ; Function Attrs: nounwind -declare i32 @chmod.397(ptr, i32) #0 +declare i32 @rename.397(ptr, ptr) #0 ; Function Attrs: nounwind -declare i32 @rename.398(ptr, ptr) #0 +declare i1 @File.is_valid.398(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @File.is_valid.399(ptr, ptr) #0 +declare i1 @File.close.399(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @File.close.400(ptr, ptr) #0 +declare i64 @File.read.400(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i64 @File.read.401(ptr, ptr, ptr) #0 +declare i64 @File.write.401(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i64 @File.write.402(ptr, ptr, ptr) #0 +declare i64 @File.seek.402(ptr, ptr, i64, i64) #0 ; Function Attrs: nounwind -declare i64 @File.seek.403(ptr, ptr, i64, i64) #0 +declare i32 @mode_to_flags.403(ptr, i64) #0 ; Function Attrs: nounwind -declare i32 @mode_to_flags.404(ptr, i64) #0 +declare i64 @open_file.404(ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare i64 @open_file.405(ptr, ptr, i64) #0 +declare void @read_file.405(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare void @read_file.406(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 +declare i1 @write_file.406(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @write_file.407(ptr, ptr, ptr) #0 +declare i1 @append_file.407(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @append_file.408(ptr, ptr, ptr) #0 +declare i1 @exists.408(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @exists.409(ptr, ptr) #0 +declare i1 @delete_file.409(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @delete_file.410(ptr, ptr) #0 +declare i1 @delete_dir.410(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @delete_dir.411(ptr, ptr) #0 +declare i1 @create_dir.411(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @create_dir.412(ptr, ptr) #0 +declare i1 @set_mode.412(ptr, ptr, i32) #0 ; Function Attrs: nounwind -declare i1 @set_mode.413(ptr, ptr, i32) #0 +declare i1 @move.413(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @move.414(ptr, ptr, ptr) #0 +declare i1 @create_dir_all.414(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @create_dir_all.415(ptr, ptr) #0 +declare i1 @copy_file.415(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @copy_file.416(ptr, ptr, ptr) #0 +declare ptr @basename.416(ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @basename.417(ptr, ptr) #0 +declare ptr @dirname.417(ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @dirname.418(ptr, ptr) #0 +declare i64 @rotr.418(ptr, i64, i64) #0 ; Function Attrs: nounwind -declare i64 @rotr.419(ptr, i64, i64) #0 +declare i64 @big_sigma0.419(ptr, i64) #0 ; Function Attrs: nounwind -declare i64 @big_sigma0.420(ptr, i64) #0 +declare i64 @big_sigma1.420(ptr, i64) #0 ; Function Attrs: nounwind -declare i64 @big_sigma1.421(ptr, i64) #0 +declare i64 @small_sigma0.421(ptr, i64) #0 ; Function Attrs: nounwind -declare i64 @small_sigma0.422(ptr, i64) #0 +declare i64 @small_sigma1.422(ptr, i64) #0 ; Function Attrs: nounwind -declare i64 @small_sigma1.423(ptr, i64) #0 +declare void @Sha256.process_block.423(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Sha256.process_block.424(ptr, ptr) #0 +declare void @Sha256.update.424(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Sha256.update.425(ptr, ptr, ptr) #0 +declare [64 x i8] @Sha256.final.425(ptr, ptr) #0 ; Function Attrs: nounwind -declare [64 x i8] @Sha256.final.426(ptr, ptr) #0 +declare i8 @nibble_hex.426(ptr, i64) #0 ; Function Attrs: nounwind -declare i8 @nibble_hex.427(ptr, i64) #0 +declare void @init.427(ptr sret({ [8 x i64], [64 x i8], i64, i64 }), ptr) #0 ; Function Attrs: nounwind -declare void @init.428(ptr sret({ [8 x i64], [64 x i8], i64, i64 }), ptr) #0 +declare [64 x i8] @sha256_hex.428(ptr, ptr) #0 ; Function Attrs: nounwind -declare [64 x i8] @sha256_hex.429(ptr, ptr) #0 +declare void @sha256_file.429(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare void @sha256_file.430(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +declare void @log_emit.430(ptr, ptr, ptr) #0 ; Function Attrs: nounwind declare void @assert.431(ptr, i1) #0 diff --git a/examples/expected/0507-packs-pack-mono-dedup.ir b/examples/expected/0507-packs-pack-mono-dedup.ir index 9ecc7b7..dff8dbf 100644 --- a/examples/expected/0507-packs-pack-mono-dedup.ir +++ b/examples/expected/0507-packs-pack-mono-dedup.ir @@ -2773,14 +2773,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 ; Function Attrs: nounwind declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 -; Function Attrs: nounwind -declare ptr @escape(ptr, ptr) #0 - -declare i64 @write(i32, ptr, i64) - -; Function Attrs: nounwind -declare void @log_emit(ptr, ptr, ptr) #0 - ; Function Attrs: nounwind declare i32 @open(ptr, i32, ...) #0 @@ -2790,6 +2782,8 @@ declare i32 @close(i32) #0 ; Function Attrs: nounwind declare i64 @read(i32, ptr, i64) #0 +declare i64 @write(i32, ptr, i64) + ; Function Attrs: nounwind declare i64 @lseek(i32, i64, i32) #0 @@ -3192,6 +3186,9 @@ declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr ; Function Attrs: nounwind declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +; Function Attrs: nounwind +declare ptr @escape(ptr, ptr) #0 + ; Function Attrs: nounwind declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -3519,6 +3516,9 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0 ; Function Attrs: nounwind declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + ; Function Attrs: nounwind declare void @assert.107(ptr, i1) #0 diff --git a/examples/expected/0513-packs-pack-mixed-comptime.ir b/examples/expected/0513-packs-pack-mixed-comptime.ir index ea41c1a..ed22ed8 100644 --- a/examples/expected/0513-packs-pack-mixed-comptime.ir +++ b/examples/expected/0513-packs-pack-mixed-comptime.ir @@ -2716,14 +2716,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 ; Function Attrs: nounwind declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 -; Function Attrs: nounwind -declare ptr @escape(ptr, ptr) #0 - -declare i64 @write(i32, ptr, i64) - -; Function Attrs: nounwind -declare void @log_emit(ptr, ptr, ptr) #0 - ; Function Attrs: nounwind declare i32 @open(ptr, i32, ...) #0 @@ -2733,6 +2725,8 @@ declare i32 @close(i32) #0 ; Function Attrs: nounwind declare i64 @read(i32, ptr, i64) #0 +declare i64 @write(i32, ptr, i64) + ; Function Attrs: nounwind declare i64 @lseek(i32, i64, i32) #0 @@ -3135,6 +3129,9 @@ declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr ; Function Attrs: nounwind declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +; Function Attrs: nounwind +declare ptr @escape(ptr, ptr) #0 + ; Function Attrs: nounwind declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -3462,6 +3459,9 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0 ; Function Attrs: nounwind declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + ; Function Attrs: nounwind declare void @assert.107(ptr, i1) #0 diff --git a/examples/expected/0518-packs-pack-value-dispatch.ir b/examples/expected/0518-packs-pack-value-dispatch.ir index 118092b..97c0866 100644 --- a/examples/expected/0518-packs-pack-value-dispatch.ir +++ b/examples/expected/0518-packs-pack-value-dispatch.ir @@ -2710,14 +2710,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 ; Function Attrs: nounwind declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 -; Function Attrs: nounwind -declare ptr @escape(ptr, ptr) #0 - -declare i64 @write(i32, ptr, i64) - -; Function Attrs: nounwind -declare void @log_emit(ptr, ptr, ptr) #0 - ; Function Attrs: nounwind declare i32 @open(ptr, i32, ...) #0 @@ -2727,6 +2719,8 @@ declare i32 @close(i32) #0 ; Function Attrs: nounwind declare i64 @read(i32, ptr, i64) #0 +declare i64 @write(i32, ptr, i64) + ; Function Attrs: nounwind declare i64 @lseek(i32, i64, i32) #0 @@ -3129,6 +3123,9 @@ declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr ; Function Attrs: nounwind declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +; Function Attrs: nounwind +declare ptr @escape(ptr, ptr) #0 + ; Function Attrs: nounwind declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -3456,6 +3453,9 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0 ; Function Attrs: nounwind declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + ; Function Attrs: nounwind declare void @assert.107(ptr, i1) #0 diff --git a/examples/expected/0528-packs-protocol-pack-methods.ir b/examples/expected/0528-packs-protocol-pack-methods.ir index eaafd0a..2c34e97 100644 --- a/examples/expected/0528-packs-protocol-pack-methods.ir +++ b/examples/expected/0528-packs-protocol-pack-methods.ir @@ -2866,14 +2866,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 ; Function Attrs: nounwind declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 -; Function Attrs: nounwind -declare ptr @escape(ptr, ptr) #0 - -declare i64 @write(i32, ptr, i64) - -; Function Attrs: nounwind -declare void @log_emit(ptr, ptr, ptr) #0 - ; Function Attrs: nounwind declare i32 @open(ptr, i32, ...) #0 @@ -2883,6 +2875,8 @@ declare i32 @close(i32) #0 ; Function Attrs: nounwind declare i64 @read(i32, ptr, i64) #0 +declare i64 @write(i32, ptr, i64) + ; Function Attrs: nounwind declare i64 @lseek(i32, i64, i32) #0 @@ -3285,6 +3279,9 @@ declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr ; Function Attrs: nounwind declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +; Function Attrs: nounwind +declare ptr @escape(ptr, ptr) #0 + ; Function Attrs: nounwind declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -3612,6 +3609,9 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0 ; Function Attrs: nounwind declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + ; Function Attrs: nounwind declare void @assert.107(ptr, i1) #0 diff --git a/examples/expected/0903-optionals-optional-roundtrip.ir b/examples/expected/0903-optionals-optional-roundtrip.ir index 61a062e..d25d2b5 100644 --- a/examples/expected/0903-optionals-optional-roundtrip.ir +++ b/examples/expected/0903-optionals-optional-roundtrip.ir @@ -2898,14 +2898,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 ; Function Attrs: nounwind declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 -; Function Attrs: nounwind -declare ptr @escape(ptr, ptr) #0 - -declare i64 @write(i32, ptr, i64) - -; Function Attrs: nounwind -declare void @log_emit(ptr, ptr, ptr) #0 - ; Function Attrs: nounwind declare i32 @open(ptr, i32, ...) #0 @@ -2915,6 +2907,8 @@ declare i32 @close(i32) #0 ; Function Attrs: nounwind declare i64 @read(i32, ptr, i64) #0 +declare i64 @write(i32, ptr, i64) + ; Function Attrs: nounwind declare i64 @lseek(i32, i64, i32) #0 @@ -3317,6 +3311,9 @@ declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr ; Function Attrs: nounwind declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +; Function Attrs: nounwind +declare ptr @escape(ptr, ptr) #0 + ; Function Attrs: nounwind declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -3644,6 +3641,9 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0 ; Function Attrs: nounwind declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + ; Function Attrs: nounwind declare void @assert.107(ptr, i1) #0 diff --git a/examples/expected/0904-optionals-any-to-string-optional.ir b/examples/expected/0904-optionals-any-to-string-optional.ir index b7a2a85..af65532 100644 --- a/examples/expected/0904-optionals-any-to-string-optional.ir +++ b/examples/expected/0904-optionals-any-to-string-optional.ir @@ -2749,14 +2749,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 ; Function Attrs: nounwind declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 -; Function Attrs: nounwind -declare ptr @escape(ptr, ptr) #0 - -declare i64 @write(i32, ptr, i64) - -; Function Attrs: nounwind -declare void @log_emit(ptr, ptr, ptr) #0 - ; Function Attrs: nounwind declare i32 @open(ptr, i32, ...) #0 @@ -2766,6 +2758,8 @@ declare i32 @close(i32) #0 ; Function Attrs: nounwind declare i64 @read(i32, ptr, i64) #0 +declare i64 @write(i32, ptr, i64) + ; Function Attrs: nounwind declare i64 @lseek(i32, i64, i32) #0 @@ -3168,6 +3162,9 @@ declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr ; Function Attrs: nounwind declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +; Function Attrs: nounwind +declare ptr @escape(ptr, ptr) #0 + ; Function Attrs: nounwind declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -3495,6 +3492,9 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0 ; Function Attrs: nounwind declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + ; Function Attrs: nounwind declare void @assert.107(ptr, i1) #0 diff --git a/examples/expected/1004-errors-try.ir b/examples/expected/1004-errors-try.ir index 7d58e03..6dcd3c4 100644 --- a/examples/expected/1004-errors-try.ir +++ b/examples/expected/1004-errors-try.ir @@ -2713,14 +2713,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 ; Function Attrs: nounwind declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 -; Function Attrs: nounwind -declare ptr @escape(ptr, ptr) #0 - -declare i64 @write(i32, ptr, i64) - -; Function Attrs: nounwind -declare void @log_emit(ptr, ptr, ptr) #0 - ; Function Attrs: nounwind declare i32 @open(ptr, i32, ...) #0 @@ -2730,6 +2722,8 @@ declare i32 @close(i32) #0 ; Function Attrs: nounwind declare i64 @read(i32, ptr, i64) #0 +declare i64 @write(i32, ptr, i64) + ; Function Attrs: nounwind declare i64 @lseek(i32, i64, i32) #0 @@ -3132,6 +3126,9 @@ declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr ; Function Attrs: nounwind declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +; Function Attrs: nounwind +declare ptr @escape(ptr, ptr) #0 + ; Function Attrs: nounwind declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -3459,6 +3456,9 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0 ; Function Attrs: nounwind declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + ; Function Attrs: nounwind declare void @assert.107(ptr, i1) #0 diff --git a/examples/expected/1006-errors-inferred-error-sets.ir b/examples/expected/1006-errors-inferred-error-sets.ir index be04c02..b78abcd 100644 --- a/examples/expected/1006-errors-inferred-error-sets.ir +++ b/examples/expected/1006-errors-inferred-error-sets.ir @@ -2720,14 +2720,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 ; Function Attrs: nounwind declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 -; Function Attrs: nounwind -declare ptr @escape(ptr, ptr) #0 - -declare i64 @write(i32, ptr, i64) - -; Function Attrs: nounwind -declare void @log_emit(ptr, ptr, ptr) #0 - ; Function Attrs: nounwind declare i32 @open(ptr, i32, ...) #0 @@ -2737,6 +2729,8 @@ declare i32 @close(i32) #0 ; Function Attrs: nounwind declare i64 @read(i32, ptr, i64) #0 +declare i64 @write(i32, ptr, i64) + ; Function Attrs: nounwind declare i64 @lseek(i32, i64, i32) #0 @@ -3139,6 +3133,9 @@ declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr ; Function Attrs: nounwind declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +; Function Attrs: nounwind +declare ptr @escape(ptr, ptr) #0 + ; Function Attrs: nounwind declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -3466,6 +3463,9 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0 ; Function Attrs: nounwind declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + ; Function Attrs: nounwind declare void @assert.107(ptr, i1) #0 diff --git a/examples/expected/1009-errors-catch.ir b/examples/expected/1009-errors-catch.ir index 9028a60..4d7be50 100644 --- a/examples/expected/1009-errors-catch.ir +++ b/examples/expected/1009-errors-catch.ir @@ -2715,14 +2715,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 ; Function Attrs: nounwind declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 -; Function Attrs: nounwind -declare ptr @escape(ptr, ptr) #0 - -declare i64 @write(i32, ptr, i64) - -; Function Attrs: nounwind -declare void @log_emit(ptr, ptr, ptr) #0 - ; Function Attrs: nounwind declare i32 @open(ptr, i32, ...) #0 @@ -2732,6 +2724,8 @@ declare i32 @close(i32) #0 ; Function Attrs: nounwind declare i64 @read(i32, ptr, i64) #0 +declare i64 @write(i32, ptr, i64) + ; Function Attrs: nounwind declare i64 @lseek(i32, i64, i32) #0 @@ -3134,6 +3128,9 @@ declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr ; Function Attrs: nounwind declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +; Function Attrs: nounwind +declare ptr @escape(ptr, ptr) #0 + ; Function Attrs: nounwind declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -3461,6 +3458,9 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0 ; Function Attrs: nounwind declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + ; Function Attrs: nounwind declare void @assert.107(ptr, i1) #0 diff --git a/examples/expected/1202-ffi-cc-c-large-aggregate.ir b/examples/expected/1202-ffi-cc-c-large-aggregate.ir index 713e854..ab9c25e 100644 --- a/examples/expected/1202-ffi-cc-c-large-aggregate.ir +++ b/examples/expected/1202-ffi-cc-c-large-aggregate.ir @@ -138,14 +138,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 ; Function Attrs: nounwind declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 -; Function Attrs: nounwind -declare ptr @escape(ptr, ptr) #0 - -declare i64 @write(i32, ptr, i64) - -; Function Attrs: nounwind -declare void @log_emit(ptr, ptr, ptr) #0 - ; Function Attrs: nounwind declare i32 @open(ptr, i32, ...) #0 @@ -155,6 +147,8 @@ declare i32 @close(i32) #0 ; Function Attrs: nounwind declare i64 @read(i32, ptr, i64) #0 +declare i64 @write(i32, ptr, i64) + ; Function Attrs: nounwind declare i64 @lseek(i32, i64, i32) #0 @@ -557,6 +551,9 @@ declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr ; Function Attrs: nounwind declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +; Function Attrs: nounwind +declare ptr @escape(ptr, ptr) #0 + ; Function Attrs: nounwind declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -884,6 +881,9 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0 ; Function Attrs: nounwind declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + ; Function Attrs: nounwind declare void @assert.107(ptr, i1) #0 diff --git a/examples/expected/1309-ffi-objc-class-method-lowering.ir b/examples/expected/1309-ffi-objc-class-method-lowering.ir index d1db0f8..5d5f731 100644 --- a/examples/expected/1309-ffi-objc-class-method-lowering.ir +++ b/examples/expected/1309-ffi-objc-class-method-lowering.ir @@ -630,14 +630,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 ; Function Attrs: nounwind declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 -; Function Attrs: nounwind -declare ptr @escape(ptr, ptr) #0 - -declare i64 @write(i32, ptr, i64) - -; Function Attrs: nounwind -declare void @log_emit(ptr, ptr, ptr) #0 - ; Function Attrs: nounwind declare i32 @open(ptr, i32, ...) #0 @@ -647,6 +639,8 @@ declare i32 @close(i32) #0 ; Function Attrs: nounwind declare i64 @read(i32, ptr, i64) #0 +declare i64 @write(i32, ptr, i64) + ; Function Attrs: nounwind declare i64 @lseek(i32, i64, i32) #0 @@ -1049,6 +1043,9 @@ declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr ; Function Attrs: nounwind declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +; Function Attrs: nounwind +declare ptr @escape(ptr, ptr) #0 + ; Function Attrs: nounwind declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -1376,6 +1373,9 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0 ; Function Attrs: nounwind declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + ; Function Attrs: nounwind declare void @assert.107(ptr, i1) #0 diff --git a/examples/expected/1314-ffi-objc-class-dealloc-roundtrip.ir b/examples/expected/1314-ffi-objc-class-dealloc-roundtrip.ir index 6996440..5969c89 100644 --- a/examples/expected/1314-ffi-objc-class-dealloc-roundtrip.ir +++ b/examples/expected/1314-ffi-objc-class-dealloc-roundtrip.ir @@ -646,14 +646,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 ; Function Attrs: nounwind declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 -; Function Attrs: nounwind -declare ptr @escape(ptr, ptr) #0 - -declare i64 @write(i32, ptr, i64) - -; Function Attrs: nounwind -declare void @log_emit(ptr, ptr, ptr) #0 - ; Function Attrs: nounwind declare i32 @open(ptr, i32, ...) #0 @@ -663,6 +655,8 @@ declare i32 @close(i32) #0 ; Function Attrs: nounwind declare i64 @read(i32, ptr, i64) #0 +declare i64 @write(i32, ptr, i64) + ; Function Attrs: nounwind declare i64 @lseek(i32, i64, i32) #0 @@ -1065,6 +1059,9 @@ declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr ; Function Attrs: nounwind declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +; Function Attrs: nounwind +declare ptr @escape(ptr, ptr) #0 + ; Function Attrs: nounwind declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -1392,6 +1389,9 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0 ; Function Attrs: nounwind declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + ; Function Attrs: nounwind declare void @assert.107(ptr, i1) #0 diff --git a/examples/expected/1319-ffi-objc-property-sx-defined.ir b/examples/expected/1319-ffi-objc-property-sx-defined.ir index a0d8a59..6e50aee 100644 --- a/examples/expected/1319-ffi-objc-property-sx-defined.ir +++ b/examples/expected/1319-ffi-objc-property-sx-defined.ir @@ -2864,14 +2864,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 ; Function Attrs: nounwind declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 -; Function Attrs: nounwind -declare ptr @escape(ptr, ptr) #0 - -declare i64 @write(i32, ptr, i64) - -; Function Attrs: nounwind -declare void @log_emit(ptr, ptr, ptr) #0 - ; Function Attrs: nounwind declare i32 @open(ptr, i32, ...) #0 @@ -2881,6 +2873,8 @@ declare i32 @close(i32) #0 ; Function Attrs: nounwind declare i64 @read(i32, ptr, i64) #0 +declare i64 @write(i32, ptr, i64) + ; Function Attrs: nounwind declare i64 @lseek(i32, i64, i32) #0 @@ -3283,6 +3277,9 @@ declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr ; Function Attrs: nounwind declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +; Function Attrs: nounwind +declare ptr @escape(ptr, ptr) #0 + ; Function Attrs: nounwind declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -3610,6 +3607,9 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0 ; Function Attrs: nounwind declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + ; Function Attrs: nounwind declare void @assert.107(ptr, i1) #0 diff --git a/examples/expected/1329-ffi-objc-call-03-selector-sharing.ir b/examples/expected/1329-ffi-objc-call-03-selector-sharing.ir index 08b624f..a8706af 100644 --- a/examples/expected/1329-ffi-objc-call-03-selector-sharing.ir +++ b/examples/expected/1329-ffi-objc-call-03-selector-sharing.ir @@ -622,14 +622,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 ; Function Attrs: nounwind declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 -; Function Attrs: nounwind -declare ptr @escape(ptr, ptr) #0 - -declare i64 @write(i32, ptr, i64) - -; Function Attrs: nounwind -declare void @log_emit(ptr, ptr, ptr) #0 - ; Function Attrs: nounwind declare i32 @open(ptr, i32, ...) #0 @@ -639,6 +631,8 @@ declare i32 @close(i32) #0 ; Function Attrs: nounwind declare i64 @read(i32, ptr, i64) #0 +declare i64 @write(i32, ptr, i64) + ; Function Attrs: nounwind declare i64 @lseek(i32, i64, i32) #0 @@ -1041,6 +1035,9 @@ declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr ; Function Attrs: nounwind declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +; Function Attrs: nounwind +declare ptr @escape(ptr, ptr) #0 + ; Function Attrs: nounwind declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -1368,6 +1365,9 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0 ; Function Attrs: nounwind declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + ; Function Attrs: nounwind declare void @assert.107(ptr, i1) #0 diff --git a/examples/expected/1332-ffi-objc-call-06-sret-return.ir b/examples/expected/1332-ffi-objc-call-06-sret-return.ir index f3778c1..09b531c 100644 --- a/examples/expected/1332-ffi-objc-call-06-sret-return.ir +++ b/examples/expected/1332-ffi-objc-call-06-sret-return.ir @@ -2792,14 +2792,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 ; Function Attrs: nounwind declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 -; Function Attrs: nounwind -declare ptr @escape(ptr, ptr) #0 - -declare i64 @write(i32, ptr, i64) - -; Function Attrs: nounwind -declare void @log_emit(ptr, ptr, ptr) #0 - ; Function Attrs: nounwind declare i32 @open(ptr, i32, ...) #0 @@ -2809,6 +2801,8 @@ declare i32 @close(i32) #0 ; Function Attrs: nounwind declare i64 @read(i32, ptr, i64) #0 +declare i64 @write(i32, ptr, i64) + ; Function Attrs: nounwind declare i64 @lseek(i32, i64, i32) #0 @@ -3211,6 +3205,9 @@ declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr ; Function Attrs: nounwind declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +; Function Attrs: nounwind +declare ptr @escape(ptr, ptr) #0 + ; Function Attrs: nounwind declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -3538,6 +3535,9 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0 ; Function Attrs: nounwind declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + ; Function Attrs: nounwind declare void @assert.107(ptr, i1) #0 diff --git a/examples/expected/1347-ffi-objc-dsl-07-mangling-table.ir b/examples/expected/1347-ffi-objc-dsl-07-mangling-table.ir index 311a8e3..6c72330 100644 --- a/examples/expected/1347-ffi-objc-dsl-07-mangling-table.ir +++ b/examples/expected/1347-ffi-objc-dsl-07-mangling-table.ir @@ -648,14 +648,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 ; Function Attrs: nounwind declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 -; Function Attrs: nounwind -declare ptr @escape(ptr, ptr) #0 - -declare i64 @write(i32, ptr, i64) - -; Function Attrs: nounwind -declare void @log_emit(ptr, ptr, ptr) #0 - ; Function Attrs: nounwind declare i32 @open(ptr, i32, ...) #0 @@ -665,6 +657,8 @@ declare i32 @close(i32) #0 ; Function Attrs: nounwind declare i64 @read(i32, ptr, i64) #0 +declare i64 @write(i32, ptr, i64) + ; Function Attrs: nounwind declare i64 @lseek(i32, i64, i32) #0 @@ -1067,6 +1061,9 @@ declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr ; Function Attrs: nounwind declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +; Function Attrs: nounwind +declare ptr @escape(ptr, ptr) #0 + ; Function Attrs: nounwind declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -1394,6 +1391,9 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0 ; Function Attrs: nounwind declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + ; Function Attrs: nounwind declare void @assert.107(ptr, i1) #0 diff --git a/examples/expected/1402-ffi-jni-call-03-methodid-sharing.ir b/examples/expected/1402-ffi-jni-call-03-methodid-sharing.ir index f8488f7..eee661d 100644 --- a/examples/expected/1402-ffi-jni-call-03-methodid-sharing.ir +++ b/examples/expected/1402-ffi-jni-call-03-methodid-sharing.ir @@ -624,14 +624,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 ; Function Attrs: nounwind declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 -; Function Attrs: nounwind -declare ptr @escape(ptr, ptr) #0 - -declare i64 @write(i32, ptr, i64) - -; Function Attrs: nounwind -declare void @log_emit(ptr, ptr, ptr) #0 - ; Function Attrs: nounwind declare i32 @open(ptr, i32, ...) #0 @@ -641,6 +633,8 @@ declare i32 @close(i32) #0 ; Function Attrs: nounwind declare i64 @read(i32, ptr, i64) #0 +declare i64 @write(i32, ptr, i64) + ; Function Attrs: nounwind declare i64 @lseek(i32, i64, i32) #0 @@ -1043,6 +1037,9 @@ declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr ; Function Attrs: nounwind declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +; Function Attrs: nounwind +declare ptr @escape(ptr, ptr) #0 + ; Function Attrs: nounwind declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -1370,6 +1367,9 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0 ; Function Attrs: nounwind declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + ; Function Attrs: nounwind declare void @assert.107(ptr, i1) #0 diff --git a/examples/expected/1403-ffi-jni-call-04-jint-return.ir b/examples/expected/1403-ffi-jni-call-04-jint-return.ir index a57e3b1..d15169f 100644 --- a/examples/expected/1403-ffi-jni-call-04-jint-return.ir +++ b/examples/expected/1403-ffi-jni-call-04-jint-return.ir @@ -622,14 +622,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 ; Function Attrs: nounwind declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 -; Function Attrs: nounwind -declare ptr @escape(ptr, ptr) #0 - -declare i64 @write(i32, ptr, i64) - -; Function Attrs: nounwind -declare void @log_emit(ptr, ptr, ptr) #0 - ; Function Attrs: nounwind declare i32 @open(ptr, i32, ...) #0 @@ -639,6 +631,8 @@ declare i32 @close(i32) #0 ; Function Attrs: nounwind declare i64 @read(i32, ptr, i64) #0 +declare i64 @write(i32, ptr, i64) + ; Function Attrs: nounwind declare i64 @lseek(i32, i64, i32) #0 @@ -1041,6 +1035,9 @@ declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr ; Function Attrs: nounwind declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +; Function Attrs: nounwind +declare ptr @escape(ptr, ptr) #0 + ; Function Attrs: nounwind declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -1368,6 +1365,9 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0 ; Function Attrs: nounwind declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + ; Function Attrs: nounwind declare void @assert.107(ptr, i1) #0 diff --git a/examples/expected/1404-ffi-jni-call-05-jlong-return.ir b/examples/expected/1404-ffi-jni-call-05-jlong-return.ir index cc3df50..fc7e608 100644 --- a/examples/expected/1404-ffi-jni-call-05-jlong-return.ir +++ b/examples/expected/1404-ffi-jni-call-05-jlong-return.ir @@ -622,14 +622,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 ; Function Attrs: nounwind declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 -; Function Attrs: nounwind -declare ptr @escape(ptr, ptr) #0 - -declare i64 @write(i32, ptr, i64) - -; Function Attrs: nounwind -declare void @log_emit(ptr, ptr, ptr) #0 - ; Function Attrs: nounwind declare i32 @open(ptr, i32, ...) #0 @@ -639,6 +631,8 @@ declare i32 @close(i32) #0 ; Function Attrs: nounwind declare i64 @read(i32, ptr, i64) #0 +declare i64 @write(i32, ptr, i64) + ; Function Attrs: nounwind declare i64 @lseek(i32, i64, i32) #0 @@ -1041,6 +1035,9 @@ declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr ; Function Attrs: nounwind declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +; Function Attrs: nounwind +declare ptr @escape(ptr, ptr) #0 + ; Function Attrs: nounwind declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -1368,6 +1365,9 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0 ; Function Attrs: nounwind declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + ; Function Attrs: nounwind declare void @assert.107(ptr, i1) #0 diff --git a/examples/expected/1405-ffi-jni-call-06-jdouble-return.ir b/examples/expected/1405-ffi-jni-call-06-jdouble-return.ir index 8abbd15..4ddcec0 100644 --- a/examples/expected/1405-ffi-jni-call-06-jdouble-return.ir +++ b/examples/expected/1405-ffi-jni-call-06-jdouble-return.ir @@ -622,14 +622,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 ; Function Attrs: nounwind declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 -; Function Attrs: nounwind -declare ptr @escape(ptr, ptr) #0 - -declare i64 @write(i32, ptr, i64) - -; Function Attrs: nounwind -declare void @log_emit(ptr, ptr, ptr) #0 - ; Function Attrs: nounwind declare i32 @open(ptr, i32, ...) #0 @@ -639,6 +631,8 @@ declare i32 @close(i32) #0 ; Function Attrs: nounwind declare i64 @read(i32, ptr, i64) #0 +declare i64 @write(i32, ptr, i64) + ; Function Attrs: nounwind declare i64 @lseek(i32, i64, i32) #0 @@ -1041,6 +1035,9 @@ declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr ; Function Attrs: nounwind declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +; Function Attrs: nounwind +declare ptr @escape(ptr, ptr) #0 + ; Function Attrs: nounwind declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -1368,6 +1365,9 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0 ; Function Attrs: nounwind declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + ; Function Attrs: nounwind declare void @assert.107(ptr, i1) #0 diff --git a/examples/expected/1406-ffi-jni-call-07-jboolean-return.ir b/examples/expected/1406-ffi-jni-call-07-jboolean-return.ir index 3465733..38e4bf9 100644 --- a/examples/expected/1406-ffi-jni-call-07-jboolean-return.ir +++ b/examples/expected/1406-ffi-jni-call-07-jboolean-return.ir @@ -622,14 +622,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 ; Function Attrs: nounwind declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 -; Function Attrs: nounwind -declare ptr @escape(ptr, ptr) #0 - -declare i64 @write(i32, ptr, i64) - -; Function Attrs: nounwind -declare void @log_emit(ptr, ptr, ptr) #0 - ; Function Attrs: nounwind declare i32 @open(ptr, i32, ...) #0 @@ -639,6 +631,8 @@ declare i32 @close(i32) #0 ; Function Attrs: nounwind declare i64 @read(i32, ptr, i64) #0 +declare i64 @write(i32, ptr, i64) + ; Function Attrs: nounwind declare i64 @lseek(i32, i64, i32) #0 @@ -1041,6 +1035,9 @@ declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr ; Function Attrs: nounwind declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +; Function Attrs: nounwind +declare ptr @escape(ptr, ptr) #0 + ; Function Attrs: nounwind declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -1368,6 +1365,9 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0 ; Function Attrs: nounwind declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + ; Function Attrs: nounwind declare void @assert.107(ptr, i1) #0 diff --git a/examples/expected/1407-ffi-jni-call-08-jobject-return.ir b/examples/expected/1407-ffi-jni-call-08-jobject-return.ir index 8acea41..fb6e0f2 100644 --- a/examples/expected/1407-ffi-jni-call-08-jobject-return.ir +++ b/examples/expected/1407-ffi-jni-call-08-jobject-return.ir @@ -622,14 +622,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 ; Function Attrs: nounwind declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 -; Function Attrs: nounwind -declare ptr @escape(ptr, ptr) #0 - -declare i64 @write(i32, ptr, i64) - -; Function Attrs: nounwind -declare void @log_emit(ptr, ptr, ptr) #0 - ; Function Attrs: nounwind declare i32 @open(ptr, i32, ...) #0 @@ -639,6 +631,8 @@ declare i32 @close(i32) #0 ; Function Attrs: nounwind declare i64 @read(i32, ptr, i64) #0 +declare i64 @write(i32, ptr, i64) + ; Function Attrs: nounwind declare i64 @lseek(i32, i64, i32) #0 @@ -1041,6 +1035,9 @@ declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr ; Function Attrs: nounwind declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +; Function Attrs: nounwind +declare ptr @escape(ptr, ptr) #0 + ; Function Attrs: nounwind declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -1368,6 +1365,9 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0 ; Function Attrs: nounwind declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + ; Function Attrs: nounwind declare void @assert.107(ptr, i1) #0 diff --git a/examples/expected/1408-ffi-jni-call-09-static.ir b/examples/expected/1408-ffi-jni-call-09-static.ir index 34e4d9a..5e07ab5 100644 --- a/examples/expected/1408-ffi-jni-call-09-static.ir +++ b/examples/expected/1408-ffi-jni-call-09-static.ir @@ -622,14 +622,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 ; Function Attrs: nounwind declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 -; Function Attrs: nounwind -declare ptr @escape(ptr, ptr) #0 - -declare i64 @write(i32, ptr, i64) - -; Function Attrs: nounwind -declare void @log_emit(ptr, ptr, ptr) #0 - ; Function Attrs: nounwind declare i32 @open(ptr, i32, ...) #0 @@ -639,6 +631,8 @@ declare i32 @close(i32) #0 ; Function Attrs: nounwind declare i64 @read(i32, ptr, i64) #0 +declare i64 @write(i32, ptr, i64) + ; Function Attrs: nounwind declare i64 @lseek(i32, i64, i32) #0 @@ -1041,6 +1035,9 @@ declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr ; Function Attrs: nounwind declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +; Function Attrs: nounwind +declare ptr @escape(ptr, ptr) #0 + ; Function Attrs: nounwind declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -1368,6 +1365,9 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0 ; Function Attrs: nounwind declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + ; Function Attrs: nounwind declare void @assert.107(ptr, i1) #0 diff --git a/examples/expected/1418-ffi-jni-class-08-call.ir b/examples/expected/1418-ffi-jni-class-08-call.ir index 8d3e149..3e109b7 100644 --- a/examples/expected/1418-ffi-jni-class-08-call.ir +++ b/examples/expected/1418-ffi-jni-class-08-call.ir @@ -622,14 +622,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 ; Function Attrs: nounwind declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 -; Function Attrs: nounwind -declare ptr @escape(ptr, ptr) #0 - -declare i64 @write(i32, ptr, i64) - -; Function Attrs: nounwind -declare void @log_emit(ptr, ptr, ptr) #0 - ; Function Attrs: nounwind declare i32 @open(ptr, i32, ...) #0 @@ -639,6 +631,8 @@ declare i32 @close(i32) #0 ; Function Attrs: nounwind declare i64 @read(i32, ptr, i64) #0 +declare i64 @write(i32, ptr, i64) + ; Function Attrs: nounwind declare i64 @lseek(i32, i64, i32) #0 @@ -1041,6 +1035,9 @@ declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr ; Function Attrs: nounwind declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +; Function Attrs: nounwind +declare ptr @escape(ptr, ptr) #0 + ; Function Attrs: nounwind declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -1368,6 +1365,9 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0 ; Function Attrs: nounwind declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + ; Function Attrs: nounwind declare void @assert.107(ptr, i1) #0 diff --git a/examples/expected/1421-ffi-jni-env-02-lexical-direct.ir b/examples/expected/1421-ffi-jni-env-02-lexical-direct.ir index 9026414..9781929 100644 --- a/examples/expected/1421-ffi-jni-env-02-lexical-direct.ir +++ b/examples/expected/1421-ffi-jni-env-02-lexical-direct.ir @@ -622,14 +622,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 ; Function Attrs: nounwind declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 -; Function Attrs: nounwind -declare ptr @escape(ptr, ptr) #0 - -declare i64 @write(i32, ptr, i64) - -; Function Attrs: nounwind -declare void @log_emit(ptr, ptr, ptr) #0 - ; Function Attrs: nounwind declare i32 @open(ptr, i32, ...) #0 @@ -639,6 +631,8 @@ declare i32 @close(i32) #0 ; Function Attrs: nounwind declare i64 @read(i32, ptr, i64) #0 +declare i64 @write(i32, ptr, i64) + ; Function Attrs: nounwind declare i64 @lseek(i32, i64, i32) #0 @@ -1041,6 +1035,9 @@ declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr ; Function Attrs: nounwind declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +; Function Attrs: nounwind +declare ptr @escape(ptr, ptr) #0 + ; Function Attrs: nounwind declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -1368,6 +1365,9 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0 ; Function Attrs: nounwind declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + ; Function Attrs: nounwind declare void @assert.107(ptr, i1) #0 diff --git a/examples/expected/1425-ffi-jni-main-03-ctor.ir b/examples/expected/1425-ffi-jni-main-03-ctor.ir index ccc5e70..1aa37a9 100644 --- a/examples/expected/1425-ffi-jni-main-03-ctor.ir +++ b/examples/expected/1425-ffi-jni-main-03-ctor.ir @@ -145,14 +145,6 @@ declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 ; Function Attrs: nounwind declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 -; Function Attrs: nounwind -declare ptr @escape(ptr, ptr) #0 - -declare i64 @write(i32, ptr, i64) - -; Function Attrs: nounwind -declare void @log_emit(ptr, ptr, ptr) #0 - ; Function Attrs: nounwind declare i32 @open(ptr, i32, ...) #0 @@ -162,6 +154,8 @@ declare i32 @close(i32) #0 ; Function Attrs: nounwind declare i64 @read(i32, ptr, i64) #0 +declare i64 @write(i32, ptr, i64) + ; Function Attrs: nounwind declare i64 @lseek(i32, i64, i32) #0 @@ -564,6 +558,9 @@ declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr ; Function Attrs: nounwind declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 +; Function Attrs: nounwind +declare ptr @escape(ptr, ptr) #0 + ; Function Attrs: nounwind declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -891,6 +888,9 @@ declare [64 x i8] @sha256_hex(ptr, ptr) #0 ; Function Attrs: nounwind declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + ; Function Attrs: nounwind declare void @assert.107(ptr, i1) #0 diff --git a/library/modules/std.sx b/library/modules/std.sx index 3b9632a..4dc5ea7 100644 --- a/library/modules/std.sx +++ b/library/modules/std.sx @@ -11,73 +11,86 @@ core :: #import "modules/std/core.sx"; fmt :: #import "modules/std/fmt.sx"; list :: #import "modules/std/list.sx"; -// --- core: builtins, libc escape hatch, compiler-resolved types --- +// --- Compiler-resolved types --- // (`string` has no alias here: it is a reserved type name — its #builtin // declaration in core.sx resolves program-wide and cannot be re-bound.) -Vector :: core.Vector; -out :: core.out; -size_of :: core.size_of; -align_of :: core.align_of; -libc_malloc :: core.libc_malloc; -libc_free :: core.libc_free; -memcpy :: core.memcpy; -memset :: core.memset; -type_of :: core.type_of; -type_name :: core.type_name; -field_count :: core.field_count; -field_name :: core.field_name; -field_value :: core.field_value; -is_flags :: core.is_flags; -type_is_unsigned :: core.type_is_unsigned; -field_value_int :: core.field_value_int; -field_index :: core.field_index; -error_tag_name :: core.error_tag_name; +Context :: core.Context; +Allocator :: core.Allocator; +Into :: core.Into; Source_Location :: core.Source_Location; -Allocator :: core.Allocator; -Context :: core.Context; -Into :: core.Into; -// --- fmt: formatting, string helpers, slice/string allocation --- +// --- Type system & reflection builtins --- -cstring :: fmt.cstring; -alloc_slice :: fmt.alloc_slice; -int_to_string :: fmt.int_to_string; -uint_to_string :: fmt.uint_to_string; -bool_to_string :: fmt.bool_to_string; -float_to_string :: fmt.float_to_string; -hex_group :: fmt.hex_group; -decompose_u16x4 :: fmt.decompose_u16x4; -int_to_hex_string :: fmt.int_to_hex_string; -concat :: fmt.concat; -substr :: fmt.substr; -path_join :: fmt.path_join; -struct_to_string :: fmt.struct_to_string; -vector_to_string :: fmt.vector_to_string; -array_to_string :: fmt.array_to_string; -slice_to_string :: fmt.slice_to_string; -pointer_to_string :: fmt.pointer_to_string; -flags_to_string :: fmt.flags_to_string; -enum_to_string :: fmt.enum_to_string; -optional_to_string :: fmt.optional_to_string; -any_to_string :: fmt.any_to_string; -build_format :: fmt.build_format; +Vector :: core.Vector; +size_of :: core.size_of; +align_of :: core.align_of; +type_of :: core.type_of; +type_name :: core.type_name; +type_is_unsigned :: core.type_is_unsigned; +field_count :: core.field_count; +field_name :: core.field_name; +field_value :: core.field_value; +field_value_int :: core.field_value_int; +field_index :: core.field_index; +is_flags :: core.is_flags; +error_tag_name :: core.error_tag_name; + +// --- Output & libc escape hatch --- + +out :: core.out; +libc_malloc :: core.libc_malloc; +libc_free :: core.libc_free; +memcpy :: core.memcpy; +memset :: core.memset; + +// --- Formatting --- + +print :: fmt.print; format :: fmt.format; -print :: fmt.print; -// --- list --- +any_to_string :: fmt.any_to_string; +int_to_string :: fmt.int_to_string; +uint_to_string :: fmt.uint_to_string; +int_to_hex_string :: fmt.int_to_hex_string; +float_to_string :: fmt.float_to_string; +bool_to_string :: fmt.bool_to_string; +struct_to_string :: fmt.struct_to_string; +enum_to_string :: fmt.enum_to_string; +flags_to_string :: fmt.flags_to_string; +vector_to_string :: fmt.vector_to_string; +array_to_string :: fmt.array_to_string; +slice_to_string :: fmt.slice_to_string; +pointer_to_string :: fmt.pointer_to_string; +optional_to_string :: fmt.optional_to_string; + +// --- String ops & allocation helpers --- + +concat :: fmt.concat; +substr :: fmt.substr; +path_join :: fmt.path_join; +cstring :: fmt.cstring; +alloc_slice :: fmt.alloc_slice; + +// fmt internals, re-exported only because they were always part of the +// flat prelude surface. +build_format :: fmt.build_format; +hex_group :: fmt.hex_group; +decompose_u16x4 :: fmt.decompose_u16x4; + +// --- Containers --- List :: list.List; // --- The stdlib namespace tail: flat-importing std.sx carries these --- -mem :: #import "modules/std/mem.sx"; -xml :: #import "modules/std/xml.sx"; -log :: #import "modules/std/log.sx"; -fs :: #import "modules/std/fs.sx"; +mem :: #import "modules/std/mem.sx"; +fs :: #import "modules/std/fs.sx"; process :: #import "modules/std/process.sx"; -socket :: #import "modules/std/socket.sx"; -json :: #import "modules/std/json.sx"; -cli :: #import "modules/std/cli.sx"; -hash :: #import "modules/std/hash.sx"; -test :: #import "modules/std/test.sx"; +socket :: #import "modules/std/socket.sx"; +json :: #import "modules/std/json.sx"; +xml :: #import "modules/std/xml.sx"; +cli :: #import "modules/std/cli.sx"; +hash :: #import "modules/std/hash.sx"; +log :: #import "modules/std/log.sx"; +test :: #import "modules/std/test.sx";