[INFO] cloning repository https://github.com/tanin47/lilit [INFO] running `"git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/tanin47/lilit" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftanin47%2Flilit"` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftanin47%2Flilit'... [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] cb20b46c045ca64e99fd3e7edf4ce2d81a8d48b5 [INFO] testing tanin47/lilit against beta-2020-06-03 for beta-1.45-1 [INFO] running `"git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftanin47%2Flilit" "/workspace/builds/worker-6/source"` [INFO] [stderr] Cloning into '/workspace/builds/worker-6/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/tanin47/lilit on toolchain beta-2020-06-03 [INFO] running `"/workspace/cargo-home/bin/cargo" "+beta-2020-06-03" "read-manifest" "--manifest-path" "Cargo.toml"` [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-6/source/Cargo.toml [INFO] crate git repo https://github.com/tanin47/lilit already has a lockfile, it will not be regenerated [INFO] running `"/workspace/cargo-home/bin/cargo" "+beta-2020-06-03" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] [stderr] Updating git repository `https://github.com/tanin47/inkwell` [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/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=warn" "-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" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-06-03" "build" "--frozen"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 6182b171a1737e7d915f16fc00af501f0a3ca44a93e621d49e2b313146a197ec [INFO] running `"docker" "start" "-a" "6182b171a1737e7d915f16fc00af501f0a3ca44a93e621d49e2b313146a197ec"` [INFO] [stderr] sudo: setrlimit(RLIMIT_CORE): Operation not permitted [INFO] [stderr] Compiling version_check v0.1.5 [INFO] [stderr] Compiling cfg-if v0.1.6 [INFO] [stderr] Compiling libc v0.2.43 [INFO] [stderr] Compiling ucd-util v0.1.2 [INFO] [stderr] Compiling regex v0.2.11 [INFO] [stderr] Compiling lazy_static v1.2.0 [INFO] [stderr] Compiling proc-macro2 v0.4.23 [INFO] [stderr] Compiling utf8-ranges v1.0.2 [INFO] [stderr] Compiling semver-parser v0.7.0 [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 quote v0.3.15 [INFO] [stderr] Compiling serde v1.0.106 [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 synom v0.11.3 [INFO] [stderr] Compiling thread_local v0.3.6 [INFO] [stderr] Compiling regex-syntax v0.5.6 [INFO] [stderr] Compiling syn v0.11.11 [INFO] [stderr] Compiling semver v0.9.0 [INFO] [stderr] Compiling memchr v2.1.1 [INFO] [stderr] Compiling quote v0.6.10 [INFO] [stderr] Compiling aho-corasick v0.6.9 [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] [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 dev [unoptimized + debuginfo] target(s) in 52.23s [INFO] running `"docker" "inspect" "6182b171a1737e7d915f16fc00af501f0a3ca44a93e621d49e2b313146a197ec"` [INFO] running `"docker" "rm" "-f" "6182b171a1737e7d915f16fc00af501f0a3ca44a93e621d49e2b313146a197ec"` [INFO] [stdout] 6182b171a1737e7d915f16fc00af501f0a3ca44a93e621d49e2b313146a197ec [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/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=warn" "-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" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-06-03" "test" "--frozen" "--no-run"` [INFO] [stdout] 56ccbe5b752d414190de5c9597ec9b8d4d00c615f3f9a634c34ef264f324296e [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `"docker" "start" "-a" "56ccbe5b752d414190de5c9597ec9b8d4d00c615f3f9a634c34ef264f324296e"` [INFO] [stderr] sudo: setrlimit(RLIMIT_CORE): Operation not permitted [INFO] [stderr] Compiling lilit v0.1.0 (/opt/rustwide/workdir) [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 8.65s [INFO] running `"docker" "inspect" "56ccbe5b752d414190de5c9597ec9b8d4d00c615f3f9a634c34ef264f324296e"` [INFO] running `"docker" "rm" "-f" "56ccbe5b752d414190de5c9597ec9b8d4d00c615f3f9a634c34ef264f324296e"` [INFO] [stdout] 56ccbe5b752d414190de5c9597ec9b8d4d00c615f3f9a634c34ef264f324296e [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/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=warn" "-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" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-06-03" "test" "--frozen"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 6aa57df3c8799ba18213977df603400e1829483a70b3764025e4d2160c119768 [INFO] running `"docker" "start" "-a" "6aa57df3c8799ba18213977df603400e1829483a70b3764025e4d2160c119768"` [INFO] [stderr] sudo: setrlimit(RLIMIT_CORE): Operation not permitted [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.18s [INFO] [stderr] Running /opt/rustwide/target/debug/deps/lilit-e49646c9417605ec [INFO] [stdout] [INFO] [stdout] running 42 tests [INFO] [stderr] ; ModuleID = 'main' [INFO] [stderr] source_filename = "mai; ModuleID = 'main' [INFO] [stderr] source_filename = "main" [INFO] [stderr] [INFO] [stderr] %Int = type {} [INFO] [stderr] %Test = type { %Int* } [INFO] [stderr] [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] n" [INFO] [stderr] [INFO] [stderr] %Char; ModuleID = ' = type { %Native__Char* } [INFO] [stderr] %Native__Char = type 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 (i64i, 8 } [INFO] [stderr] [INFO] [stderr] define %Char* i64* null, i32 1) to @i64)) [INFO] [stderr] call void @GC_register_finalizer(i8* %malloclilit_user_space__test(, void (i8*, i8*)* @GC_finalizer, i8* null, void (i8*, i8*)** null, i8** null) [INFO] [stdout] test analyse::expr::int::tests::test_simple ... ok [INFO] [stdout] test analyse::expr::literal_string::tests::test_simple ... ok [INFO] [stdout] test analyse::expr::member_access::tests::test_simple ... ok [INFO] [stdout] test analyse::tests::test_simple ... ok [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] [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] %"Gep for the native value of the class Native__Char" = getelementptr inbounds %Native__Char, %Native__Char* %cast, i32 0, i32 0 [INFO] [stdout] test analyse::tests::test_full ... ok [INFO] [stderr] store i8 97, i8* %"Gep for the native value of the class Native__Char" [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 %Char* [INFO] [stderr] %"Gep for the field #0 of the class Char" = getelementptr inbounds %Char, %Char* %cast2, i32 0, i32 0 [INFO] [stderr] store %Native__Char* %cast, %Native__Char** %"Gep for the field #0 of the class Char" [INFO] [stderr] ret %Char* %cast2 [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] [stdout] test emit::expr::identifier::tests::test_simple ... ok [INFO] [stdout] test analyse::expr::literal_char::tests::test_simple ... ok [INFO] [stdout] test emit::expr::assignment::tests::test_full ... ok [INFO] [stdout] test parse::def::method::tests::test_no_params ... ok [INFO] [stdout] test analyse::expr::identifier::tests::test_class_param ... ok [INFO] [stdout] test index::tests::test_simple ... ok [INFO] [stdout] test parse::def::class::tests::test_simple ... ok [INFO] [stdout] test parse::def::method::tests::test_with_params ... ok [INFO] [stdout] test emit::expr::literal_char::tests::test_full ... ok [INFO] [stdout] test analyse::expr::invoke::tests::test_instance_method ... ok [INFO] [stdout] test parse::expr::atom::invoke::tests::test_simple ... ok [INFO] [stdout] test parse::def::params::tests::test_empty ... ok [INFO] [stdout] test tokenize::tests::test_empty_string ... ok [INFO] [stdout] test parse::expr::atom::new_instance::tests::test_simple ... ok [INFO] [stdout] test parse::def::params::tests::test_simple ... ok [INFO] [stdout] test analyse::expr::assignment::tests::test_simple ... ok [INFO] [stdout] test tokenize::tests::test_complex ... ok [INFO] [stdout] test tokenize::tests::test_bit ... ok [INFO] [stdout] test parse::tests::test_simple ... ok [INFO] [stdout] test tokenize::tests::test_char ... ok [INFO] [stdout] test tokenize::tests::test_escaped_backslash_char ... ok [INFO] [stdout] test tokenize::tests::test_empty_char ... ok [INFO] [stdout] test tokenize::tests::test_string ... ok [INFO] [stdout] test tokenize::tests::test_int ... ok [INFO] [stdout] test tokenize::tests::test_oneline_comment ... 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_backslash_string ... ok [INFO] [stdout] test tokenize::tests::test_word ... ok [INFO] [stdout] test tokenize::tests::test_symbol ... ok [INFO] [stdout] test tokenize::tests::test_escaped_char ... ok [INFO] [stdout] test tokenize::tests::test_unicode ... ok [INFO] [stdout] test tokenize::tests::test_float ... ok [INFO] [stdout] test tokenize::tests::test_hex ... ok [INFO] [stdout] test parse::expr::level_010::tests::test_dot ... ok [INFO] [stderr] ; ModuleID = 'main' [INFO] [stderr] source_filename = "main" [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 void @native__printf(i8* %0) { [INFO] [stderr] first_block: [INFO] [stderr] call void @printf(i8* %0) [INFO] [stderr] ret void [INFO] [stderr] } [INFO] [stderr] [INFO] [stderr] declare void @printf(i8* %0) [INFO] [stderr] [INFO] [stderr] define void @lilit_user_space__println(%String* %0) { [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] %"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] 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 Hel; ModuleID = 'main' [INFO] [stderr] source_filename = "main" [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] [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*lo 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] [stderr] null, void (i8*, i8*)** null, i8** null) [INFO] [stdout] test emit::tests::test_full ... ok [INFO] [stderr] %cast3 = bitcast i8* %malloc2 to %String* [INFO] [stdout] test emit::expr::invoke::tests::test_full ... ok [INFO] [stderr] %"Gep for the field #0 of the class String" = getelementptr inbounds %String, %String* %cast3, i32 0, i32 0 [INFO] [stdout] [INFO] [stderr] store %Native__String* %cast, %Native__String** %"Gep for the field #0 of the class String" [INFO] [stdout] test result: ok. 42 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stderr] %malloc4 = call i8* @GC_malloc(i64 ptrtoint (i64* getelementptr (i64, i64* null, i32 1) to i64)) [INFO] [stdout] [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] [stderr] Running /opt/rustwide/target/debug/deps/lilit-2d4f39eea08fd4bf [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 `"docker" "inspect" "6aa57df3c8799ba18213977df603400e1829483a70b3764025e4d2160c119768"` [INFO] running `"docker" "rm" "-f" "6aa57df3c8799ba18213977df603400e1829483a70b3764025e4d2160c119768"` [INFO] [stdout] 6aa57df3c8799ba18213977df603400e1829483a70b3764025e4d2160c119768