[INFO] updating cached repository https://github.com/tanin47/lilit [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "-c" "remote.origin.fetch=refs/heads/*:refs/heads/*" "fetch" "origin" "--force" "--prune", kill_on_drop: false }` [INFO] [stderr] From https://github.com/tanin47/lilit [INFO] [stderr] + 832e290...0260fb6 more-complex-exec-api -> more-complex-exec-api (forced update) [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] cb20b46c045ca64e99fd3e7edf4ce2d81a8d48b5 [INFO] testing tanin47/lilit against master#8534be72fc3b9c5f2f2dc4e4ee7b651a008e9a3e for pr-74409 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftanin47%2Flilit" "/workspace/builds/worker-0/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/tanin47/lilit on toolchain 8534be72fc3b9c5f2f2dc4e4ee7b651a008e9a3e [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+8534be72fc3b9c5f2f2dc4e4ee7b651a008e9a3e" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/tanin47/lilit [INFO] finished tweaking git repo https://github.com/tanin47/lilit [INFO] tweaked toml for git repo https://github.com/tanin47/lilit written to /workspace/builds/worker-0/source/Cargo.toml [INFO] crate git repo https://github.com/tanin47/lilit already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+8534be72fc3b9c5f2f2dc4e4ee7b651a008e9a3e" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+8534be72fc3b9c5f2f2dc4e4ee7b651a008e9a3e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 1eda5b70b5023491811d065cf350ad1aae5064bdecfd246db5f89c5021809b18 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "1eda5b70b5023491811d065cf350ad1aae5064bdecfd246db5f89c5021809b18", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "1eda5b70b5023491811d065cf350ad1aae5064bdecfd246db5f89c5021809b18", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1eda5b70b5023491811d065cf350ad1aae5064bdecfd246db5f89c5021809b18", kill_on_drop: false }` [INFO] [stdout] 1eda5b70b5023491811d065cf350ad1aae5064bdecfd246db5f89c5021809b18 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+8534be72fc3b9c5f2f2dc4e4ee7b651a008e9a3e" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a2ac05e4e41d11d83c37c909adc7f900c327692ae42ea99ca6a021659fbc4d02 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "a2ac05e4e41d11d83c37c909adc7f900c327692ae42ea99ca6a021659fbc4d02", kill_on_drop: false }` [INFO] [stderr] Compiling version_check v0.1.5 [INFO] [stderr] Compiling libc v0.2.43 [INFO] [stderr] Compiling cfg-if v0.1.6 [INFO] [stderr] Compiling ucd-util v0.1.2 [INFO] [stderr] Compiling lazy_static v1.2.0 [INFO] [stderr] Compiling regex v0.2.11 [INFO] [stderr] Compiling utf8-ranges v1.0.2 [INFO] [stderr] Compiling semver-parser v0.7.0 [INFO] [stderr] Compiling proc-macro2 v0.4.23 [INFO] [stderr] Compiling gcc v0.3.55 [INFO] [stderr] Compiling unicode-xid v0.0.4 [INFO] [stderr] Compiling ryu v1.0.3 [INFO] [stderr] Compiling serde v1.0.106 [INFO] [stderr] Compiling quote v0.3.15 [INFO] [stderr] Compiling inkwell v0.1.0 (https://github.com/tanin47/inkwell?rev=46d576c63a7bec3a5ff4c81efbe74842f850ff0a#46d576c6) [INFO] [stderr] Compiling itoa v0.4.5 [INFO] [stderr] Compiling either v1.5.0 [INFO] [stderr] Compiling thread_local v0.3.6 [INFO] [stderr] Compiling synom v0.11.3 [INFO] [stderr] Compiling regex-syntax v0.5.6 [INFO] [stderr] Compiling semver v0.9.0 [INFO] [stderr] Compiling syn v0.11.11 [INFO] [stderr] Compiling memchr v2.1.1 [INFO] [stderr] Compiling aho-corasick v0.6.9 [INFO] [stderr] Compiling quote v0.6.10 [INFO] [stderr] Compiling syn v0.15.20 [INFO] [stderr] Compiling enum-methods v0.0.8 [INFO] [stderr] Compiling llvm-sys v60.2.0 [INFO] [stderr] Compiling inkwell_internal_macros v0.1.0 (https://github.com/tanin47/inkwell?rev=46d576c63a7bec3a5ff4c81efbe74842f850ff0a#46d576c6) [INFO] [stderr] Compiling serde_json v1.0.51 [INFO] [stderr] Compiling lilit v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: the type `parse::tree::CompilationUnit` does not permit zero-initialization [INFO] [stdout] --> src/parse/mod.rs:43:24 [INFO] [stdout] | [INFO] [stdout] 43 | unit: unsafe { std::mem::MaybeUninit::zeroed().assume_init() }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this code causes undefined behavior when executed [INFO] [stdout] | help: use `MaybeUninit` instead, and only call `assume_init` after initialization is done [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(invalid_value)]` on by default [INFO] [stdout] note: `std::ptr::Unique` must be non-null (in this struct field) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 59.97s [INFO] running `Command { std: "docker" "inspect" "a2ac05e4e41d11d83c37c909adc7f900c327692ae42ea99ca6a021659fbc4d02", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a2ac05e4e41d11d83c37c909adc7f900c327692ae42ea99ca6a021659fbc4d02", kill_on_drop: false }` [INFO] [stdout] a2ac05e4e41d11d83c37c909adc7f900c327692ae42ea99ca6a021659fbc4d02 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+8534be72fc3b9c5f2f2dc4e4ee7b651a008e9a3e" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] de525e6f3c761f4ec3e8768074d3c5aca7ae79a974fb1fc1e0a94382bf98d739 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "de525e6f3c761f4ec3e8768074d3c5aca7ae79a974fb1fc1e0a94382bf98d739", kill_on_drop: false }` [INFO] [stderr] Compiling lilit v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: the type `parse::tree::CompilationUnit` does not permit zero-initialization [INFO] [stdout] --> src/parse/mod.rs:43:24 [INFO] [stdout] | [INFO] [stdout] 43 | unit: unsafe { std::mem::MaybeUninit::zeroed().assume_init() }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this code causes undefined behavior when executed [INFO] [stdout] | help: use `MaybeUninit` instead, and only call `assume_init` after initialization is done [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(invalid_value)]` on by default [INFO] [stdout] note: `std::ptr::Unique` must be non-null (in this struct field) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type `parse::tree::CompilationUnit` does not permit zero-initialization [INFO] [stdout] --> src/parse/mod.rs:43:24 [INFO] [stdout] | [INFO] [stdout] 43 | unit: unsafe { std::mem::MaybeUninit::zeroed().assume_init() }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this code causes undefined behavior when executed [INFO] [stdout] | help: use `MaybeUninit` instead, and only call `assume_init` after initialization is done [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(invalid_value)]` on by default [INFO] [stdout] note: `std::ptr::Unique` must be non-null (in this struct field) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 8.36s [INFO] running `Command { std: "docker" "inspect" "de525e6f3c761f4ec3e8768074d3c5aca7ae79a974fb1fc1e0a94382bf98d739", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "de525e6f3c761f4ec3e8768074d3c5aca7ae79a974fb1fc1e0a94382bf98d739", kill_on_drop: false }` [INFO] [stdout] de525e6f3c761f4ec3e8768074d3c5aca7ae79a974fb1fc1e0a94382bf98d739 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+8534be72fc3b9c5f2f2dc4e4ee7b651a008e9a3e" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] e2eaecfe2d14666f07a45665c7956b18523b958847355b8e3c1285fd4af49ca2 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "e2eaecfe2d14666f07a45665c7956b18523b958847355b8e3c1285fd4af49ca2", kill_on_drop: false }` [INFO] [stderr] warning: the type `parse::tree::CompilationUnit` does not permit zero-initialization [INFO] [stderr] --> src/parse/mod.rs:43:24 [INFO] [stderr] | [INFO] [stderr] 43 | unit: unsafe { std::mem::MaybeUninit::zeroed().assume_init() }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | this code causes undefined behavior when executed [INFO] [stderr] | help: use `MaybeUninit` instead, and only call `assume_init` after initialization is done [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(invalid_value)]` on by default [INFO] [stderr] note: `std::ptr::Unique` must be non-null (in this struct field) [INFO] [stderr] [INFO] [stderr] warning: 1 warning emitted [INFO] [stderr] [INFO] [stderr] warning: the type `parse::tree::CompilationUnit` does not permit zero-initialization [INFO] [stderr] --> src/parse/mod.rs:43:24 [INFO] [stderr] | [INFO] [stderr] 43 | unit: unsafe { std::mem::MaybeUninit::zeroed().assume_init() }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | this code causes undefined behavior when executed [INFO] [stderr] | help: use `MaybeUninit` instead, and only call `assume_init` after initialization is done [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(invalid_value)]` on by default [INFO] [stderr] note: `std::ptr::Unique` must be non-null (in this struct field) [INFO] [stderr] [INFO] [stderr] warning: 1 warning emitted [INFO] [stderr] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.23s [INFO] [stderr] Running /opt/rustwide/target/debug/deps/lilit-2dddce6a920c1e2f [INFO] [stdout] [INFO] [stdout] running 42 tests [INFO] [stdout] test analyse::expr::int::tests::test_simple ... ok [INFO] [stdout] test analyse::expr::invoke::tests::test_instance_method ... ok [INFO] [stdout] test analyse::expr::identifier::tests::test_class_param ... ok [INFO] [stdout] test parse::def::method::tests::test_with_params ... ok [INFO] [stdout] test parse::def::method::tests::test_no_params ... ok [INFO] [stdout] test parse::def::params::tests::test_simple ... ok [INFO] [stdout] test parse::expr::atom::invoke::tests::test_simple ... ok [INFO] [stdout] test parse::expr::atom::new_instance::tests::test_simple ... ok [INFO] [stdout] test parse::expr::level_010::tests::test_dot ... ok [INFO] [stdout] test parse::tests::test_simple ... ok [INFO] [stdout] test tokenize::tests::test_bit ... ok [INFO] [stdout] test tokenize::tests::test_char ... ok [INFO] [stdout] test tokenize::tests::test_complex ... ok [INFO] [stdout] test tokenize::tests::test_empty_char ... ok [INFO] [stdout] test tokenize::tests::test_empty_string ... ok [INFO] [stdout] test tokenize::tests::test_escaped_backslash_char ... ok [INFO] [stdout] test tokenize::tests::test_escaped_backslash_string ... ok [INFO] [stdout] test tokenize::tests::test_escaped_backslash_string_2 ... ok [INFO] [stdout] test tokenize::tests::test_escaped_backslash_string_3 ... ok [INFO] [stdout] test tokenize::tests::test_escaped_char ... ok [INFO] [stdout] test parse::def::class::tests::test_simple ... ok [INFO] [stderr] ; ModuleID = 'main' [INFO] [stdout] test tokenize::tests::test_float ... ok [INFO] [stderr] source_filename = "main" [INFO] [stdout] test parse::def::params::tests::test_empty ... ok [INFO] [stderr] [INFO] [stderr] %String = type { %Native__String* } [INFO] [stderr] %Native__String = type { i8* } [INFO] [stderr] %Int = type { %Native__Int* } [INFO] [stderr] %Native__Int = type { i64 } [INFO] [stderr] [INFO] [stderr] define i64 @native__vprintf(i8* %0, ...) { [INFO] [stderr] first_block: [INFO] [stderr] %va_list = alloca { i32, i32, i8*, i8* } [INFO] [stderr] call void @llvm.va_start({ i32, i32, i8*, i8* }* %va_list) [INFO] [stderr] %"Invoke native method vprintf" = call i64 @vprintf(i8* %0, { i32, i32, i8*, i8* }* %va_list) [INFO] [stderr] call void @llvm.va_end({ i32, i32, i8*, i8* }* %va_list) [INFO] [stderr] ret i64 %"Invoke native method vprintf" [INFO] [stderr] } [INFO] [stderr] [INFO] [stderr] ; Function Attrs: nounwind [INFO] [stderr] declare void @llvm.va_start(i8* %0) #0 [INFO] [stderr] [INFO] [stderr] declare i64 @vprintf(i8* %0, { i32, i32, i8*, i8* }* %1) [INFO] [stderr] [INFO] [stderr] ; Function Attrs: nounwind [INFO] [stderr] declare void @llvm.va_end(i8* %0) #0 [INFO] [stderr] [INFO] [stderr] define void @lilit_user_space__println(%String* %0, %Int* %1, %Int* %2) { [INFO] [stderr] first_block: [INFO] [stderr] %"Param 0 of method println" = alloca %String* [INFO] [stderr] store %String* %0, %String** %"Param 0 of method println" [INFO] [stderr] %"Param 1 of method println" = alloca %Int* [INFO] [stderr] store %Int* %1, %Int** %"Param 1 of method println" [INFO] [stderr] %"Param 2 of method println" = alloca %Int* [INFO] [stderr] store %Int* %2, %Int** %"Param 2 of method println" [INFO] [stderr] %"Read ptr into String" = load %String*, %String** %"Param 0 of method println" [INFO] [stderr] %"Gep field 0 of String" = getelementptr inbounds %String, %String* %"Read ptr into String", i32 0, i32 0 [INFO] [stderr] %"Load field underlying for identifier underlying" = load %Native__String*, %Native__String** %"Gep field 0 of String" [INFO] [stderr] %"Gep the native value" = getelementptr inbounds %Native__String, %Native__String* %"Load field underlying for identifier underlying", i32 0, i32 0 [INFO] [stderr] %"Load the native value" = load i8*, i8** %"Gep the native value" [INFO] [stderr] %"Read ptr into Int" = load %Int*, %Int** %"Param 1 of method println" [INFO] [stderr] %"Gep field 0 of Int" = getelementptr inbounds %Int, %Int* %"Read ptr into Int", i32 0, i32 0 [INFO] [stderr] %"Load field underlying for identifier underlying1" = load %Native__Int*, %Native__Int** %"Gep field 0 of Int" [INFO] [stderr] %"Gep the native value2" = getelementptr inbounds %Native__Int, %Native__Int* %"Load field underlying for identifier underlying1", i32 0, i32 0 [INFO] [stderr] %"Load the native value3" = load i64, i64* %"Gep the native value2" [INFO] [stderr] %"Read ptr into Int4" = load %Int*, %Int** %"Param 2 of method println" [INFO] [stderr] %"Gep field 0 of Int5" = getelementptr inbounds %Int, %Int* %"Read ptr into Int4", i32 0, i32 0 [INFO] [stderr] %"Load field underlying for identifier underlying6" = load %Native__Int*, %Native__Int** %"Gep field 0 of Int5" [INFO] [stderr] %"Gep the native value7" = getelementptr inbounds %Native__Int, %Native__Int* %"Load field underlying for identifier underlying6", i32 0, i32 0 [INFO] [stderr] %"Load the native value8" = load i64, i64* %"Gep the native value7" [INFO] [stderr] %native__vprintf = call i64 (i8*, ...) @native__vprintf(i8* %"Load the native value", i64 %"Load the native value3", i64 %"Load the native value8") [INFO] [stderr] %malloc = call i8* @GC_malloc(i64 ptrtoint (i64* getelementptr (i64, i64* null, i32 1) to i64)) [INFO] [stderr] call void @GC_register_finalizer(i8* %malloc, void (i8*, i8*)* @GC_finalizer, i8* null, void (i8*, i8*)** null, i8** null) [INFO] [stderr] %cast = bitcast i8* %malloc to %Native__Int* [INFO] [stderr] %"Gep for the native param of the class Native__Int" = getelementptr inbounds %Native__Int, %Native__Int* %cast, i32 0, i32 0 [INFO] [stderr] store i64 %native__vprintf, i64* %"Gep for the native param of the class Native__Int" [INFO] [stderr] ret void [INFO] [stderr] } [INFO] [stderr] [INFO] [stderr] declare noalias i8* @GC_malloc(i64 %0) [INFO] [stderr] [INFO] [stderr] declare void @GC_finalizer(i8* %0, i8* %1) [INFO] [stderr] [INFO] [stderr] declare void @GC_register_finalizer(i8* %0, void (i8*, i8*)* %1, i8* %2, void (i8*, i8*)** %3, i8** %4) [INFO] [stderr] [INFO] [stderr] define void @lilit_user_space__test() { [INFO] [stderr] first_block: [INFO] [stderr] %malloc = call i8* @GC_malloc(i64 mul nuw (i64 ptrtoint (i8* getelementptr (i8, i8* null, i32 1) to i64), i64 11)) [INFO] [stdout] test emit::expr::invoke::tests::test_full ... ok [INFO] [stderr] call void @GC_register_finalizer(i8* %malloc, void (i8*, i8*)* @GC_finalizer, i8* null, void (i8*, i8*)** null, i8** null) [INFO] [stderr] %"Cast pointer to ArrayType" = bitcast i8* %malloc to [11 x i8]* [INFO] [stderr] %"Gep char 0 of string Test %d %d" = getelementptr inbounds [11 x i8], [11 x i8]* %"Cast pointer to ArrayType", i32 0, i32 0 [INFO] [stderr] store i8 84, i8* %"Gep char 0 of string Test %d %d" [INFO] [stderr] %"Gep char 1 of string Test %d %d" = getelementptr inbounds [11 x i8], [11 x i8]* %"Cast pointer to ArrayType", i32 0, i32 1 [INFO] [stderr] store i8 101, i8* %"Gep char 1 of string Test %d %d" [INFO] [stderr] %"Gep char 2 of string Test %d %d" = getelementptr inbounds [11 x i8], [11 x i8]* %"Cast pointer to ArrayType", i32 0, i32 2 [INFO] [stderr] store i8 115, i8* %"Gep char 2 of string Test %d %d" [INFO] [stderr] %"Gep char 3 of string Test %d %d" = getelementptr inbounds [11 x i8], [11 x i8]* %"Cast pointer to ArrayType", i32 0, i32 3 [INFO] [stderr] store i8 116, i8* %"Gep char 3 of string Test %d %d" [INFO] [stderr] %"Gep char 4 of string Test %d %d" = getelementptr inbounds [11 x i8], [11 x i8]* %"Cast pointer to ArrayType", i32 0, i32 4 [INFO] [stderr] store i8 32, i8* %"Gep char 4 of string Test %d %d" [INFO] [stderr] %"Gep char 5 of string Test %d %d" = getelementptr inbounds [11 x i8], [11 x i8]* %"Cast pointer to ArrayType", i32 0, i32 5 [INFO] [stderr] store i8 37, i8* %"Gep char 5 of string Test %d %d" [INFO] [stderr] %"Gep char 6 of string Test %d %d" = getelementptr inbounds [11 x i8], [11 x i8]* %"Cast pointer to ArrayType", i32 0, i32 6 [INFO] [stderr] store i8 100, i8* %"Gep char 6 of string Test %d %d" [INFO] [stderr] %"Gep char 7 of string Test %d %d" = getelementptr inbounds [11 x i8], [11 x i8]* %"Cast pointer to ArrayType", i32 0, i32 7 [INFO] [stderr] store i8 32, i8* %"Gep char 7 of string Test %d %d" [INFO] [stderr] %"Gep char 8 of string Test %d %d" = getelementptr inbounds [11 x i8], [11 x i8]* %"Cast pointer to ArrayType", i32 0, i32 8 [INFO] [stderr] store i8 37, i8* %"Gep char 8 of string Test %d %d" [INFO] [stderr] %"Gep char 9 of string Test %d %d" = getelementptr inbounds [11 x i8], [11 x i8]* %"Cast pointer to ArrayType", i32 0, i32 9 [INFO] [stderr] store i8 100, i8* %"Gep char 9 of string Test %d %d" [INFO] [stderr] %"Gep the last position for the terminating symbol of string Test %d %d" = getelementptr inbounds [11 x i8], [11 x i8]* %"Cast pointer to ArrayType", i32 0, i32 10 [INFO] [stderr] store i8 0, i8* %"Gep the last position for the terminating symbol of string Test %d %d" [INFO] [stderr] %"Cast to eliminate the size info" = bitcast [11 x i8]* %"Cast pointer to ArrayType" to i8* [INFO] [stderr] %malloc1 = call i8* @GC_malloc(i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64)) [INFO] [stderr] call void @GC_register_finalizer(i8* %malloc1, void (i8*, i8*)* @GC_finalizer, i8* null, void (i8*, i8*)** null, i8** null) [INFO] [stderr] %cast = bitcast i8* %malloc1 to %Native__String* [INFO] [stderr] %"Gep for the native value of the class Native__String" = getelementptr inbounds %Native__String, %Native__String* %cast, i32 0, i32 0 [INFO] [stderr] store i8* %"Cast to eliminate the size info", i8** %"Gep for the native value of the class Native__String" [INFO] [stderr] %malloc2 = call i8* @GC_malloc(i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64)) [INFO] [stderr] call void @GC_register_finalizer(i8* %malloc2, void (i8*, i8*)* @GC_finalizer, i8* null, void (i8*, i8*)** null, i8** null) [INFO] [stderr] %cast3 = bitcast i8* %malloc2 to %String* [INFO] [stderr] %"Gep for the field #0 of the class String" = getelementptr inbounds %String, %String* %cast3, i32 0, i32 0 [INFO] [stderr] store %Native__String* %cast, %Native__String** %"Gep for the field #0 of the class String" [INFO] [stderr] %malloc4 = call i8* @GC_malloc(i64 ptrtoint (i64* getelementptr (i64, i64* null, i32 1) to i64)) [INFO] [stderr] call void @GC_register_finalizer(i8* %malloc4, void (i8*, i8*)* @GC_finalizer, i8* null, void (i8*, i8*)** null, i8** null) [INFO] [stderr] %cast5 = bitcast i8* %malloc4 to %Native__Int* [INFO] [stderr] %"Gep for the native value of the class Native__Int" = getelementptr inbounds %Native__Int, %Native__Int* %cast5, i32 0, i32 0 [INFO] [stderr] store i64 1, i64* %"Gep for the native value of the class Native__Int" [INFO] [stderr] %malloc6 = call i8* @GC_malloc(i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64)) [INFO] [stderr] call void @GC_register_finalizer(i8* %malloc6, void (i8*, i8*)* @GC_finalizer, i8* null, void (i8*, i8*)** null, i8** null) [INFO] [stderr] %cast7 = bitcast i8* %malloc6 to %Int* [INFO] [stderr] %"Gep for the field #0 of the class Int" = getelementptr inbounds %Int, %Int* %cast7, i32 0, i32 0 [INFO] [stderr] store %Native__Int* %cast5, %Native__Int** %"Gep for the field #0 of the class Int" [INFO] [stderr] %malloc8 = call i8* @GC_malloc(i64 ptrtoint (i64* getelementptr (i64, i64* null, i32 1) to i64)) [INFO] [stderr] call void @GC_register_finalizer(i8* %malloc8, void (i8*, i8*)* @GC_finalizer, i8* null, void (i8*, i8*)** null, i8** null) [INFO] [stderr] %cast9 = bitcast i8* %malloc8 to %Native__Int* [INFO] [stderr] %"Gep for the native value of the class Native__Int10" = getelementptr inbounds %Native__Int, %Native__Int* %cast9, i32 0, i32 0 [INFO] [stderr] store i64 2, i64* %"Gep for the native value of the class Native__Int10" [INFO] [stderr] %malloc11 = call i8* @GC_malloc(i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64)) [INFO] [stderr] call void @GC_register_finalizer(i8* %malloc11, void (i8*, i8*)* @GC_finalizer, i8* null, void (i8*, i8*)** null, i8** null) [INFO] [stderr] %cast12 = bitcast i8* %malloc11 to %Int* [INFO] [stderr] %"Gep for the field #0 of the class Int13" = getelementptr inbounds %Int, %Int* %cast12, i32 0, i32 0 [INFO] [stderr] store %Native__Int* %cast9, %Native__Int** %"Gep for the field #0 of the class Int13" [INFO] [stderr] call void @lilit_user_space__println(%String* %cast3, %Int* %cast7, %Int* %cast12) [INFO] [stderr] ret void [INFO] [stderr] } [INFO] [stderr] [INFO] [stderr] attributes #0 = { nounwind } [INFO] [stdout] test tokenize::tests::test_hex ... ok [INFO] [stdout] test tokenize::tests::test_oneline_comment ... ok [INFO] [stdout] test tokenize::tests::test_string ... ok [INFO] [stdout] test analyse::tests::test_simple ... ok [INFO] [stdout] test analyse::expr::literal_string::tests::test_simple ... ok [INFO] [stdout] test tokenize::tests::test_symbol ... ok [INFO] [stdout] test analyse::expr::member_access::tests::test_simple ... ok [INFO] [stdout] test analyse::expr::assignment::tests::test_simple ... ok [INFO] [stdout] test analyse::expr::literal_char::tests::test_simple ... ok [INFO] [stdout] test index::tests::test_simple ... ok [INFO] [stdout] test emit::expr::literal_char::tests::test_full ... ok [INFO] [stdout] test tokenize::tests::test_unicode ... ok [INFO] [stderr] ; ModuleID = 'main' [INFO] [stderr] source_filename = "main" [INFO] [stderr] [INFO] [stderr] %Char = type { %Native__Char* } [INFO] [stderr] %Native__Char = type { i8 } [INFO] [stderr] [INFO] [stderr] define %Char* @lilit_user_space__test() { [INFO] [stderr] first_block: [INFO] [stderr] %malloc = call i8* @GC_malloc(i64 ptrtoint (i8* getelementptr (i8, i8* null, i32 1) to i64)) [INFO] [stderr] call void @GC_register_finalizer(i8* %malloc, void (i8*, i8*)* @GC_finalizer, i8* null, void (i8*, i8*)** null, i8** null) [INFO] [stderr] %cast = bitcast i8* %malloc to %Native__Char* [INFO] [stderr] ; ModuleID = ' main%' [INFO] [stderr] "source_filename = "Gmeapi nf" [INFO] [stderr] or the nati [INFO] [stderr] v%eString = type v{ a%lNative__Stringu*e } [INFO] [stderr] o%fNative__String = type t{ hie8 *c }l [INFO] [stderr] a%sInts = type { N%aNative__Intt*i }v [INFO] [stderr] e%_Native__Int_ = type C{ hia64r }" [INFO] [stderr] = [INFO] [stderr] getelementptrdefine inboundsvoid %@Native__Charnative__printf,( i%8Native__Char** % %cast0, )i {32 [INFO] [stderr] first_block0:, [INFO] [stderr] i 32call 0 [INFO] [stderr] void @storeprintf (ii88 *97 , %i08)* [INFO] [stderr] %ret" voidG [INFO] [stderr] ep} [INFO] [stderr] [INFO] [stderr] fdeclareo rvoid t@hprintfe( in8a*t %i0v)e [INFO] [stderr] [INFO] [stderr] vdefine avoidl u@elilit_user_space__println (o%fString *th %e0 )c {l [INFO] [stderr] afirst_blocks:s [INFO] [stderr] N%a"tPiavrea_m_ C0h aorf" [INFO] [stderr] m e%tmalloc1h = ocalld ip8r*i n@tGC_mallocl(ni"64 = allocaptrtoint (%iString1** [INFO] [stderr] * storegetelementptr (%iString1** , %i01, *%*String *null*, i%32" P1a)r to aim64 )0) [INFO] [stderr] o fcall mvoide t@hGC_register_finalizero(di 8p*r i%nmalloc1t, lvoidn ("i [INFO] [stderr] 8 *%, "iR8e*a)d* p@tGC_finalizerr, ii8n*t onull , Svoidt (rii8n*g, "i = 8load* )%*String** ,null , %iString8**** %null")P [INFO] [stderr] a r%acast2m = bitcast0 io8f* m%emalloc1t to h%oChard* [INFO] [stderr] p r%i"nGtelpn "f [INFO] [stderr] o r% "tGheep ffiieelldd #00 ooff Stthrei ncgl"a = sgetelementptrs inbounds C%hStringa,r "% = Stringgetelementptr* inbounds %%"CharR,e a%dChar *p t%rcast2 , iin32t o0 , Sit32r i0n [INFO] [stderr] g "store, i%32Native__Char *0 , %icast32, %0Native__Char [INFO] [stderr] * *% "%L"oGaedp ffioerl dt huen dfeirellydi n#g0 foofr tihdee nctliafsise rC huanrd"e [INFO] [stderr] r lrety i%nCharg*" = %loadcast2 [INFO] [stderr] %} [INFO] [stderr] Native__String [INFO] [stderr] *declare, %Native__Stringnoalias* *i 8%*" G@eGC_mallocp( if64ie %l0d) [INFO] [stderr] 0 [INFO] [stderr] declareo fvoid S@tGC_finalizerr(iin8g*" % [INFO] [stderr] 0 , %i"8G*e %p1 )t [INFO] [stderr] h [INFO] [stderr] edeclare nvoida t@iGC_register_finalizerv(ei 8v*a %l0u, evoid" ( = igetelementptr8 inbounds* , %iNative__String8,* )%*Native__String %*1 , %i"8L*o %a2d, voidf (iie8l*d, iu8n*d)e*r*l %y3i, nig8 *f*o %r4 )i [INFO] [stderr] dentifier underlying", i32 0, i32 0 [INFO] [stderr] %"Load the native value" = load i8*, i8** %"Gep the native value" [INFO] [stderr] call void @native__printf(i8* %"Load the native value") [INFO] [stderr] ret void [INFO] [stderr] } [INFO] [stderr] [INFO] [stderr] define %Int* @native__main() { [INFO] [stderr] first_block: [INFO] [stderr] %malloc = call i8* @GC_malloc(i64 mul nuw (i64 ptrtoint (i8* getelementptr (i8, i8* null, i32 1) to i64), i64 13)) [INFO] [stderr] call void @GC_register_finalizer(i8* %malloc, void (i8*, i8*)* @GC_finalizer, i8* null, void (i8*, i8*)** null, i8** null) [INFO] [stderr] %"Cast pointer to ArrayType" = bitcast i8* %malloc to [13 x i8]* [INFO] [stderr] %"Gep char 0 of string Hello world!" = getelementptr inbounds [13 x i8], [13 x i8]* %"Cast pointer to ArrayType", i32 0, i32 0 [INFO] [stderr] store i8 72, i8* %"Gep char 0 of string Hello world!" [INFO] [stderr] %"Gep char 1 of string Hello world!" = getelementptr inbounds [13 x i8], [13 x i8]* %"Cast pointer to ArrayType", i32 0, i32 1 [INFO] [stderr] store i8 101, i8* %"Gep char 1 of string Hello world!" [INFO] [stderr] %"Gep char 2 of string Hello world!" = getelementptr inbounds [13 x i8], [13 x i8]* %"Cast pointer to ArrayType", i32 0, i32 2 [INFO] [stderr] store i8 108, i8* %"Gep char 2 of string Hello world!" [INFO] [stderr] %"Gep char 3 of string Hello world!" = getelementptr inbounds [13 x i8], [13 x i8]* %"Cast pointer to ArrayType", i32 0, i32 3 [INFO] [stderr] store i8 108, i8* %"Gep char 3 of string Hello world!" [INFO] [stderr] %"Gep char 4 of string Hello world!" = getelementptr inbounds [13 x i8], [13 x i8]* %"Cast pointer to ArrayType", i32 0, i32 4 [INFO] [stderr] store i8 111, i8* %"Gep char 4 of string Hello world!" [INFO] [stderr] %"Gep char 5 of string Hello world!" = getelementptr inbounds [13 x i8], [13 x i8]* %"Cast pointer to ArrayType", i32 0, i32 5 [INFO] [stderr] store i8 32, i8* %"Gep char 5 of string Hello world!" [INFO] [stderr] %"Gep char 6 of string Hello world!" = getelementptr inbounds [13 x i8], [13 x i8]* %"Cast pointer to ArrayType", i32 0, i32 6 [INFO] [stderr] store i8 119, i8* %"Gep char 6 of string Hello world!" [INFO] [stderr] %"Gep char 7 of string Hello world!" = getelementptr inbounds [13 x i8], [13 x i8]* %"Cast pointer to ArrayType", i32 0, i32 7 [INFO] [stderr] store i8 111, i8* %"Gep char 7 of string Hello world!" [INFO] [stderr] %"Gep char 8 of string Hello world!" = getelementptr inbounds [13 x i8], [13 x i8]* %"Cast pointer to ArrayType", i32 0, i32 8 [INFO] [stderr] store i8 114, i8* %"Gep char 8 of string Hello world!" [INFO] [stderr] %"Gep char 9 of string Hello world!" = getelementptr inbounds [13 x i8], [13 x i8]* %"Cast pointer to ArrayType", i32 0, i32 9 [INFO] [stderr] store i8 108, i8* %"Gep char 9 of string Hello world!" [INFO] [stderr] %"Gep char 10 of string Hello world!" = getelementptr inbounds [13 x i8], [13 x i8]* %"Cast pointer to ArrayType", i32 0, i32 10 [INFO] [stderr] store i8 100, i8* %"Gep char 10 of string Hello world!" [INFO] [stderr] %"Gep char 11 of string Hello world!" = getelementptr inbounds [13 x i8], [13 x i8]* %"Cast pointer to ArrayType", i32 0, i32 11 [INFO] [stderr] store i8 33, i8* %"Gep char 11 of string Hello world!" [INFO] [stderr] %"Gep the last position for the terminating symbol of string Hello world!" = getelementptr inbounds [13 x i8], [13 x i8]* %"Cast pointer to ArrayType", i32 0, i32 12 [INFO] [stderr] store i8 0, i8* %"Gep the last position for the terminating symbol of string Hello world!" [INFO] [stderr] %"Cast to eliminate the size info" = bitcast [13 x i8]* %"Cast pointer to ArrayType" to i8* [INFO] [stderr] %malloc1 = call i8* @GC_malloc(i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64)) [INFO] [stderr] call void @GC_register_finalizer(i8* %malloc1, void (i8*, i8*)* @GC_finalizer, i8* null, void (i8*, i8*)** null, i8** null) [INFO] [stderr] %cast = bitcast i8* %malloc1 to %Native__String* [INFO] [stderr] %"Gep for the native value of the class Native__String" = getelementptr inbounds %Native__String, %Native__String* %cast, i32 0, i32 0 [INFO] [stderr] store i8* %"Cast to eliminate the size info", i8** %"Gep for the native value of the class Native__String" [INFO] [stderr] %malloc2 = call i8* @GC_malloc(i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64)) [INFO] [stderr] call void @GC_register_finalizer(i8* %malloc2, void (i8*, i8*)* @GC_finalizer, i8* null, void (i8*, i8*)** null, i8** null) [INFO] [stderr] %cast3 = bitcast i8* %malloc2 to %String* [INFO] [stderr] %"Gep for the field #0 of the class String" = getelementptr inbounds %String, %String* %cast3, i32 0, i32 0 [INFO] [stderr] store %Native__String* %cast, %Native__String** %"Gep for the field #0 of the class String" [INFO] [stderr] call void @lilit_user_space__println(%String* %cast3) [INFO] [stderr] %malloc4 = call i8* @GC_malloc(i64 ptrtoint (i64* getelementptr (i64, i64* null, i32 1) to i64)) [INFO] [stderr] call void @GC_register_finalizer(i8* %malloc4, void (i8*, i8*)* @GC_finalizer, i8* null, void (i8*, i8*)** null, i8** null) [INFO] [stderr] %cast5 = bitcast i8* %malloc4 to %Native__Int* [INFO] [stderr] %"Gep for the native value of the class Native__Int" = getelementptr inbounds %Native__Int, %Native__Int* %cast5, i32 0, i32 0 [INFO] [stderr] store i64 123, i64* %"Gep for the native value of the class Native__Int" [INFO] [stderr] %malloc6 = call i8* @GC_malloc(i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64)) [INFO] [stderr] call void @GC_register_finalizer(i8* %malloc6, void (i8*, i8*)* @GC_finalizer, i8* null, void (i8*, i8*)** null, i8** null) [INFO] [stderr] %cast7 = bitcast i8* %malloc6 to %Int* [INFO] [stderr] %"Gep for the field #0 of the class Int" = getelementptr inbounds %Int, %Int* %cast7, i32 0, i32 0 [INFO] [stderr] store %Native__Int* %cast5, %Native__Int** %"Gep for the field #0 of the class Int" [INFO] [stderr] ret %Int* %cast7 [INFO] [stderr] } [INFO] [stderr] [INFO] [stderr] declare noalias i8* @GC_malloc(i64 %0) [INFO] [stderr] [INFO] [stderr] declare void @GC_finalizer(i8* %0, i8* %1) [INFO] [stderr] [INFO] [stderr] declare void @GC_register_finalizer(i8* %0, void (i8*, i8*)* %1, i8* %2, void (i8*, i8*)** %3, i8** %4) [INFO] [stderr] [INFO] [stderr] define i32 @main(i32 %0, i8** %1) { [INFO] [stderr] first_block: [INFO] [stderr] %main = call %Int* @native__main() [INFO] [stderr] %"Gep for the first param of Int" = getelementptr inbounds %Int, %Int* %main, i32 0, i32 0 [INFO] [stderr] %"Load the first param of Int" = load %Native__Int*, %Native__Int** %"Gep for the first param of Int" [INFO] [stderr] %"Gep for the first param of Native__Int" = getelementptr inbounds %Native__Int, %Native__Int* %"Load the first param of Int", i32 0, i32 0 [INFO] [stderr] %"Load the first param of Native__Int" = load i64, i64* %"Gep for the first param of Native__Int" [INFO] [stderr] %"Cast return type" = trunc i64 %"Load the first param of Native__Int" to i32 [INFO] [stderr] ret i32 %"Cast return type" [INFO] [stderr] } [INFO] [stdout] test tokenize::tests::test_int ... ok [INFO] [stdout] test emit::tests::test_full ... ok [INFO] [stdout] test tokenize::tests::test_word ... ok [INFO] [stderr] ; ModuleID = 'main' [INFO] [stdout] test emit::expr::identifier::tests::test_simple ... ok [INFO] [stderr] source_filename = "main" [INFO] [stdout] test emit::expr::assignment::tests::test_full ... ok [INFO] [stderr] [INFO] [stdout] test analyse::tests::test_full ... ok [INFO] [stderr] %Int = type {} [INFO] [stdout] [INFO] [stderr] %Test = type { %Int* } [INFO] [stdout] test result: ok. 42 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stderr] [INFO] [stdout] [INFO] [stderr] define %Int* @lilit_user_space__test(%Test* %0) { [INFO] [stderr] first_block: [INFO] [stderr] %"Param 0 of method test" = alloca %Test* [INFO] [stderr] store %Test* %0, %Test** %"Param 0 of method test" [INFO] [stderr] %"Read ptr into Test" = load %Test*, %Test** %"Param 0 of method test" [INFO] [stderr] %"Gep field 0 of Test" = getelementptr inbounds %Test, %Test* %"Read ptr into Test", i32 0, i32 0 [INFO] [stderr] %"Load field a for identifier -" = load %Int*, %Int** %"Gep field 0 of Test" [INFO] [stderr] ret %Int* %"Load field a for identifier -" [INFO] [stderr] } [INFO] [stderr] ; ModuleID = 'main' [INFO] [stderr] source_filename = "main" [INFO] [stderr] [INFO] [stderr] %Int = type { %Native__Int* } [INFO] [stderr] %Native__Int = type { i64 } [INFO] [stderr] [INFO] [stderr] define void @lilit_user_space__test() { [INFO] [stderr] first_block: [INFO] [stderr] %"alloca assignment" = alloca %Int* [INFO] [stderr] %malloc = call i8* @GC_malloc(i64 ptrtoint (i64* getelementptr (i64, i64* null, i32 1) to i64)) [INFO] [stderr] call void @GC_register_finalizer(i8* %malloc, void (i8*, i8*)* @GC_finalizer, i8* null, void (i8*, i8*)** null, i8** null) [INFO] [stderr] %cast = bitcast i8* %malloc to %Native__Int* [INFO] [stderr] %"Gep for the native value of the class Native__Int" = getelementptr inbounds %Native__Int, %Native__Int* %cast, i32 0, i32 0 [INFO] [stderr] store i64 2, i64* %"Gep for the native value of the class Native__Int" [INFO] [stderr] %malloc1 = call i8* @GC_malloc(i64 ptrtoint (i1** getelementptr (i1*, i1** null, i32 1) to i64)) [INFO] [stderr] call void @GC_register_finalizer(i8* %malloc1, void (i8*, i8*)* @GC_finalizer, i8* null, void (i8*, i8*)** null, i8** null) [INFO] [stderr] %cast2 = bitcast i8* %malloc1 to %Int* [INFO] [stderr] %"Gep for the field #0 of the class Int" = getelementptr inbounds %Int, %Int* %cast2, i32 0, i32 0 [INFO] [stderr] store %Native__Int* %cast, %Native__Int** %"Gep for the field #0 of the class Int" [INFO] [stderr] store %Int* %cast2, %Int** %"alloca assignment" [INFO] [stderr] ret void [INFO] [stderr] } [INFO] [stderr] [INFO] [stderr] declare noalias i8* @GC_malloc(i64 %0) [INFO] [stderr] [INFO] [stderr] declare void @GC_finalizer(i8* %0, i8* %1) [INFO] [stderr] [INFO] [stderr] declare void @GC_register_finalizer(i8* %0, void (i8*, i8*)* %1, i8* %2, void (i8*, i8*)** %3, i8** %4) [INFO] [stderr] Running /opt/rustwide/target/debug/deps/lilit-a114b19aee909edb [INFO] [stdout] [INFO] [stderr] Doc-tests lilit [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "e2eaecfe2d14666f07a45665c7956b18523b958847355b8e3c1285fd4af49ca2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e2eaecfe2d14666f07a45665c7956b18523b958847355b8e3c1285fd4af49ca2", kill_on_drop: false }` [INFO] [stdout] e2eaecfe2d14666f07a45665c7956b18523b958847355b8e3c1285fd4af49ca2