[INFO] cloning repository https://github.com/andreymgn/pascal-compiler
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/andreymgn/pascal-compiler" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fandreymgn%2Fpascal-compiler", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fandreymgn%2Fpascal-compiler'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7081fd980c3fd35581a64892fd99d420b7c28f03
[INFO] testing andreymgn/pascal-compiler against 1.54.0 for beta-1.55-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fandreymgn%2Fpascal-compiler" "/workspace/builds/worker-8/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-8/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/andreymgn/pascal-compiler on toolchain 1.54.0
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.54.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/andreymgn/pascal-compiler
[INFO] finished tweaking git repo https://github.com/andreymgn/pascal-compiler
[INFO] tweaked toml for git repo https://github.com/andreymgn/pascal-compiler written to /workspace/builds/worker-8/source/Cargo.toml
[INFO] crate git repo https://github.com/andreymgn/pascal-compiler already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.54.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/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" "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" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+1.54.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] 41163e7bcda70c3e50dff48a086cb1d1869732fbc9eef879a7a54880456ef7c9
[INFO] running `Command { std: "docker" "start" "-a" "41163e7bcda70c3e50dff48a086cb1d1869732fbc9eef879a7a54880456ef7c9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "41163e7bcda70c3e50dff48a086cb1d1869732fbc9eef879a7a54880456ef7c9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "41163e7bcda70c3e50dff48a086cb1d1869732fbc9eef879a7a54880456ef7c9", kill_on_drop: false }`
[INFO] [stdout] 41163e7bcda70c3e50dff48a086cb1d1869732fbc9eef879a7a54880456ef7c9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/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" "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" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+1.54.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] cf5d26f10bb1c4fd2541214d97d6bedfebe46a73ee8a77f57c1d50e33d6ecf09
[INFO] running `Command { std: "docker" "start" "-a" "cf5d26f10bb1c4fd2541214d97d6bedfebe46a73ee8a77f57c1d50e33d6ecf09", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v0.1.2
[INFO] [stderr]    Compiling rand_core v0.4.0
[INFO] [stderr]    Compiling libc v0.2.54
[INFO] [stderr]    Compiling proc-macro2 v0.4.29
[INFO] [stderr]    Compiling byteorder v1.3.1
[INFO] [stderr]    Compiling syn v0.15.33
[INFO] [stderr]    Compiling either v1.5.2
[INFO] [stderr]    Compiling num-complex v0.2.1
[INFO] [stderr]    Compiling matrixmultiply v0.1.15
[INFO] [stderr]    Compiling serde v1.0.90
[INFO] [stderr]    Compiling ndarray v0.12.1
[INFO] [stderr]    Compiling string_cache_shared v0.3.0
[INFO] [stderr]    Compiling regex v1.1.6
[INFO] [stderr]    Compiling cfg-if v0.1.7
[INFO] [stderr]    Compiling cc v1.0.37
[INFO] [stderr]    Compiling ordermap v0.3.5
[INFO] [stderr]    Compiling opaque-debug v0.2.2
[INFO] [stderr]    Compiling fixedbitset v0.1.9
[INFO] [stderr]    Compiling new_debug_unreachable v1.0.3
[INFO] [stderr]    Compiling bit-vec v0.5.1
[INFO] [stderr]    Compiling diff v0.1.11
[INFO] [stderr]    Compiling lalrpop-util v0.16.3
[INFO] [stderr]    Compiling bitflags v1.0.5
[INFO] [stderr]    Compiling lalrpop-util v0.17.0
[INFO] [stderr]    Compiling thread_local v0.3.6
[INFO] [stderr]    Compiling regex-syntax v0.6.6
[INFO] [stderr]    Compiling log v0.4.6
[INFO] [stderr]    Compiling itertools v0.7.11
[INFO] [stderr]    Compiling itertools v0.8.0
[INFO] [stderr]    Compiling rand_core v0.3.1
[INFO] [stderr]    Compiling rand_jitter v0.1.4
[INFO] [stderr]    Compiling ascii-canvas v1.0.0
[INFO] [stderr]    Compiling petgraph v0.4.13
[INFO] [stderr]    Compiling textwrap v0.11.0
[INFO] [stderr]    Compiling bit-set v0.5.1
[INFO] [stderr]    Compiling rand_chacha v0.1.1
[INFO] [stderr]    Compiling rand_pcg v0.1.2
[INFO] [stderr]    Compiling rand v0.6.5
[INFO] [stderr]    Compiling rand_isaac v0.1.1
[INFO] [stderr]    Compiling rand_hc v0.1.0
[INFO] [stderr]    Compiling rand_xorshift v0.1.1
[INFO] [stderr]    Compiling aho-corasick v0.6.10
[INFO] [stderr]    Compiling aho-corasick v0.7.3
[INFO] [stderr]    Compiling generic-array v0.12.0
[INFO] [stderr]    Compiling ena v0.11.0
[INFO] [stderr]    Compiling digest v0.8.0
[INFO] [stderr]    Compiling regex v0.2.11
[INFO] [stderr]    Compiling hashbrown v0.1.8
[INFO] [stderr]    Compiling block-buffer v0.7.3
[INFO] [stderr]    Compiling sha2 v0.8.0
[INFO] [stderr]    Compiling rand_os v0.1.3
[INFO] [stderr]    Compiling atty v0.2.11
[INFO] [stderr]    Compiling quote v0.6.12
[INFO] [stderr]    Compiling clap v2.33.0
[INFO] [stderr]    Compiling phf_generator v0.7.24
[INFO] [stderr]    Compiling string_cache_codegen v0.4.2
[INFO] [stderr]    Compiling string_cache v0.7.3
[INFO] [stderr]    Compiling llvm-sys v60.4.0
[INFO] [stderr]    Compiling strsim v0.9.1
[INFO] [stderr]    Compiling serde_derive v1.0.90
[INFO] [stderr]    Compiling docopt v1.1.0
[INFO] [stderr]    Compiling lalrpop v0.16.3
[INFO] [stderr]    Compiling pascal-kursach v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]      --> /opt/rustwide/target/debug/build/pascal-kursach-f3fb76f584d84443/out/pascal.rs:13511:5
[INFO] [stdout]       |
[INFO] [stdout] 13511 |     (__0)
[INFO] [stdout]       |     ^^^^^ help: remove these parentheses
[INFO] [stdout]       |
[INFO] [stdout]       = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]      --> /opt/rustwide/target/debug/build/pascal-kursach-f3fb76f584d84443/out/pascal.rs:14827:5
[INFO] [stdout]       |
[INFO] [stdout] 14827 |     (__0)
[INFO] [stdout]       |     ^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]      --> /opt/rustwide/target/debug/build/pascal-kursach-f3fb76f584d84443/out/pascal.rs:15519:5
[INFO] [stdout]       |
[INFO] [stdout] 15519 |     (__0)
[INFO] [stdout]       |     ^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]      --> /opt/rustwide/target/debug/build/pascal-kursach-f3fb76f584d84443/out/pascal.rs:15560:5
[INFO] [stdout]       |
[INFO] [stdout] 15560 |     (__0)
[INFO] [stdout]       |     ^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]      --> /opt/rustwide/target/debug/build/pascal-kursach-f3fb76f584d84443/out/pascal.rs:15568:5
[INFO] [stdout]       |
[INFO] [stdout] 15568 |     (__0)
[INFO] [stdout]       |     ^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]      --> /opt/rustwide/target/debug/build/pascal-kursach-f3fb76f584d84443/out/pascal.rs:15592:5
[INFO] [stdout]       |
[INFO] [stdout] 15592 |     (__0)
[INFO] [stdout]       |     ^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]      --> /opt/rustwide/target/debug/build/pascal-kursach-f3fb76f584d84443/out/pascal.rs:15600:5
[INFO] [stdout]       |
[INFO] [stdout] 15600 |     (__0)
[INFO] [stdout]       |     ^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]      --> /opt/rustwide/target/debug/build/pascal-kursach-f3fb76f584d84443/out/pascal.rs:16375:5
[INFO] [stdout]       |
[INFO] [stdout] 16375 |     (__0)
[INFO] [stdout]       |     ^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]      --> /opt/rustwide/target/debug/build/pascal-kursach-f3fb76f584d84443/out/pascal.rs:16435:5
[INFO] [stdout]       |
[INFO] [stdout] 16435 |     (__0)
[INFO] [stdout]       |     ^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]      --> /opt/rustwide/target/debug/build/pascal-kursach-f3fb76f584d84443/out/pascal.rs:16461:5
[INFO] [stdout]       |
[INFO] [stdout] 16461 |     (__0)
[INFO] [stdout]       |     ^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]      --> /opt/rustwide/target/debug/build/pascal-kursach-f3fb76f584d84443/out/pascal.rs:16487:5
[INFO] [stdout]       |
[INFO] [stdout] 16487 |     (__0)
[INFO] [stdout]       |     ^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]      --> /opt/rustwide/target/debug/build/pascal-kursach-f3fb76f584d84443/out/pascal.rs:16513:5
[INFO] [stdout]       |
[INFO] [stdout] 16513 |     (__0)
[INFO] [stdout]       |     ^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]      --> /opt/rustwide/target/debug/build/pascal-kursach-f3fb76f584d84443/out/pascal.rs:16539:5
[INFO] [stdout]       |
[INFO] [stdout] 16539 |     (__0)
[INFO] [stdout]       |     ^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]      --> /opt/rustwide/target/debug/build/pascal-kursach-f3fb76f584d84443/out/pascal.rs:16565:5
[INFO] [stdout]       |
[INFO] [stdout] 16565 |     (__0)
[INFO] [stdout]       |     ^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]      --> /opt/rustwide/target/debug/build/pascal-kursach-f3fb76f584d84443/out/pascal.rs:16591:5
[INFO] [stdout]       |
[INFO] [stdout] 16591 |     (__0)
[INFO] [stdout]       |     ^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]      --> /opt/rustwide/target/debug/build/pascal-kursach-f3fb76f584d84443/out/pascal.rs:16617:5
[INFO] [stdout]       |
[INFO] [stdout] 16617 |     (__0)
[INFO] [stdout]       |     ^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]      --> /opt/rustwide/target/debug/build/pascal-kursach-f3fb76f584d84443/out/pascal.rs:16643:5
[INFO] [stdout]       |
[INFO] [stdout] 16643 |     (__0)
[INFO] [stdout]       |     ^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]      --> /opt/rustwide/target/debug/build/pascal-kursach-f3fb76f584d84443/out/pascal.rs:16669:5
[INFO] [stdout]       |
[INFO] [stdout] 16669 |     (__0)
[INFO] [stdout]       |     ^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]      --> /opt/rustwide/target/debug/build/pascal-kursach-f3fb76f584d84443/out/pascal.rs:16695:5
[INFO] [stdout]       |
[INFO] [stdout] 16695 |     (__0)
[INFO] [stdout]       |     ^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]      --> /opt/rustwide/target/debug/build/pascal-kursach-f3fb76f584d84443/out/pascal.rs:16721:5
[INFO] [stdout]       |
[INFO] [stdout] 16721 |     (__0)
[INFO] [stdout]       |     ^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]      --> /opt/rustwide/target/debug/build/pascal-kursach-f3fb76f584d84443/out/pascal.rs:16747:5
[INFO] [stdout]       |
[INFO] [stdout] 16747 |     (__0)
[INFO] [stdout]       |     ^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]      --> /opt/rustwide/target/debug/build/pascal-kursach-f3fb76f584d84443/out/pascal.rs:16773:5
[INFO] [stdout]       |
[INFO] [stdout] 16773 |     (__0)
[INFO] [stdout]       |     ^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]   --> src/codegen.rs:76:78
[INFO] [stdout]    |
[INFO] [stdout] 76 |         let printf = LLVMAddFunction(module, CString::new("printf").unwrap().as_ptr(), printf_typ);
[INFO] [stdout]    |                                              ------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]    |                                              |
[INFO] [stdout]    |                                              this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(temporary_cstring_as_ptr)]` on by default
[INFO] [stdout]    = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]    = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:124:67
[INFO] [stdout]     |
[INFO] [stdout] 124 |                     CString::new(constant.name.as_str()).unwrap().as_ptr(),
[INFO] [stdout]     |                     --------------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:141:67
[INFO] [stdout]     |
[INFO] [stdout] 141 |                     CString::new(constant.name.as_str()).unwrap().as_ptr(),
[INFO] [stdout]     |                     --------------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:179:71
[INFO] [stdout]     |
[INFO] [stdout] 179 |                         CString::new(constant.name.as_str()).unwrap().as_ptr(),
[INFO] [stdout]     |                         --------------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:243:54
[INFO] [stdout]     |
[INFO] [stdout] 243 |             CString::new(proc.name.clone()).unwrap().as_ptr(),
[INFO] [stdout]     |             ---------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:264:45
[INFO] [stdout]     |
[INFO] [stdout] 264 |             CString::new(filename).unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:277:43
[INFO] [stdout]     |
[INFO] [stdout] 277 |             CString::new("main").unwrap().as_ptr(),
[INFO] [stdout]     |             ----------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:281:82
[INFO] [stdout]     |
[INFO] [stdout] 281 |         let bb_entry = LLVMAppendBasicBlock(func, CString::new("entry").unwrap().as_ptr());
[INFO] [stdout]     |                                                   ------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                   |
[INFO] [stdout]     |                                                   this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:306:62
[INFO] [stdout]     |
[INFO] [stdout] 306 |                     CString::new(var.name.as_str()).unwrap().as_ptr(),
[INFO] [stdout]     |                     ---------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:352:70
[INFO] [stdout]     |
[INFO] [stdout] 352 | ...                   CString::new(var.name.as_str()).unwrap().as_ptr(),
[INFO] [stdout]     |                       ---------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:444:88
[INFO] [stdout]     |
[INFO] [stdout] 444 |                 let bb_then = LLVMAppendBasicBlock(func, CString::new("then").unwrap().as_ptr());
[INFO] [stdout]     |                                                          ----------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                          |
[INFO] [stdout]     |                                                          this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:445:88
[INFO] [stdout]     |
[INFO] [stdout] 445 |                 let bb_else = LLVMAppendBasicBlock(func, CString::new("else").unwrap().as_ptr());
[INFO] [stdout]     |                                                          ----------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                          |
[INFO] [stdout]     |                                                          this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:446:90
[INFO] [stdout]     |
[INFO] [stdout] 446 |                 let bb_merge = LLVMAppendBasicBlock(func, CString::new("merge").unwrap().as_ptr());
[INFO] [stdout]     |                                                           ------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                           |
[INFO] [stdout]     |                                                           this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:475:88
[INFO] [stdout]     |
[INFO] [stdout] 475 |                 let bb_then = LLVMAppendBasicBlock(func, CString::new("then").unwrap().as_ptr());
[INFO] [stdout]     |                                                          ----------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                          |
[INFO] [stdout]     |                                                          this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:476:88
[INFO] [stdout]     |
[INFO] [stdout] 476 |                 let bb_else = LLVMAppendBasicBlock(func, CString::new("else").unwrap().as_ptr());
[INFO] [stdout]     |                                                          ----------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                          |
[INFO] [stdout]     |                                                          this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:477:90
[INFO] [stdout]     |
[INFO] [stdout] 477 |                 let bb_merge = LLVMAppendBasicBlock(func, CString::new("merge").unwrap().as_ptr());
[INFO] [stdout]     |                                                           ------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                           |
[INFO] [stdout]     |                                                           this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:532:46
[INFO] [stdout]     |
[INFO] [stdout] 532 |                 CString::new("eql").unwrap().as_ptr(),
[INFO] [stdout]     |                 ---------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:539:45
[INFO] [stdout]     |
[INFO] [stdout] 539 |                 CString::new("gt").unwrap().as_ptr(),
[INFO] [stdout]     |                 --------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:546:45
[INFO] [stdout]     |
[INFO] [stdout] 546 |                 CString::new("lt").unwrap().as_ptr(),
[INFO] [stdout]     |                 --------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:579:46
[INFO] [stdout]     |
[INFO] [stdout] 579 |                 CString::new("add").unwrap().as_ptr(),
[INFO] [stdout]     |                 ---------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:585:46
[INFO] [stdout]     |
[INFO] [stdout] 585 |                 CString::new("sub").unwrap().as_ptr(),
[INFO] [stdout]     |                 ---------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:591:45
[INFO] [stdout]     |
[INFO] [stdout] 591 |                 CString::new("or").unwrap().as_ptr(),
[INFO] [stdout]     |                 --------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:623:46
[INFO] [stdout]     |
[INFO] [stdout] 623 |                 CString::new("mul").unwrap().as_ptr(),
[INFO] [stdout]     |                 ---------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:629:46
[INFO] [stdout]     |
[INFO] [stdout] 629 |                 CString::new("div").unwrap().as_ptr(),
[INFO] [stdout]     |                 ---------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:635:46
[INFO] [stdout]     |
[INFO] [stdout] 635 |                 CString::new("and").unwrap().as_ptr(),
[INFO] [stdout]     |                 ---------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:658:46
[INFO] [stdout]     |
[INFO] [stdout] 658 |                 CString::new("neg").unwrap().as_ptr(),
[INFO] [stdout]     |                 ---------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:718:55
[INFO] [stdout]     |
[INFO] [stdout] 718 |                     CString::new("arrayidx").unwrap().as_ptr(),
[INFO] [stdout]     |                     --------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:756:85
[INFO] [stdout]     |
[INFO] [stdout] 756 |         let bb_init = LLVMAppendBasicBlock(func, CString::new("loop_init").unwrap().as_ptr());
[INFO] [stdout]     |                                                  ---------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                  |
[INFO] [stdout]     |                                                  this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:757:85
[INFO] [stdout]     |
[INFO] [stdout] 757 |         let bb_test = LLVMAppendBasicBlock(func, CString::new("loop_test").unwrap().as_ptr());
[INFO] [stdout]     |                                                  ---------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                  |
[INFO] [stdout]     |                                                  this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:758:85
[INFO] [stdout]     |
[INFO] [stdout] 758 |         let bb_body = LLVMAppendBasicBlock(func, CString::new("loop_body").unwrap().as_ptr());
[INFO] [stdout]     |                                                  ---------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                  |
[INFO] [stdout]     |                                                  this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:759:85
[INFO] [stdout]     |
[INFO] [stdout] 759 |         let bb_step = LLVMAppendBasicBlock(func, CString::new("loop_step").unwrap().as_ptr());
[INFO] [stdout]     |                                                  ---------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                  |
[INFO] [stdout]     |                                                  this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:760:85
[INFO] [stdout]     |
[INFO] [stdout] 760 |         let bb_exit = LLVMAppendBasicBlock(func, CString::new("loop_exit").unwrap().as_ptr());
[INFO] [stdout]     |                                                  ---------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                  |
[INFO] [stdout]     |                                                  this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:786:55
[INFO] [stdout]     |
[INFO] [stdout] 786 |             CString::new("loop_bound_check").unwrap().as_ptr(),
[INFO] [stdout]     |             ----------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:972:61
[INFO] [stdout]     |
[INFO] [stdout] 972 |                         CString::new("float_cast").unwrap().as_ptr(),
[INFO] [stdout]     |                         ----------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:981:59
[INFO] [stdout]     |
[INFO] [stdout] 981 |                         CString::new("int_cast").unwrap().as_ptr(),
[INFO] [stdout]     |                         --------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:995:54
[INFO] [stdout]     |
[INFO] [stdout] 995 |                 CString::new("cast_format").unwrap().as_ptr(),
[INFO] [stdout]     |                 ------------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]     --> src/codegen.rs:1018:54
[INFO] [stdout]      |
[INFO] [stdout] 1018 |                     CString::new("to_bool").unwrap().as_ptr(),
[INFO] [stdout]      |                     -------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]      |
[INFO] [stdout]      = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]      = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]     --> src/codegen.rs:1026:50
[INFO] [stdout]      |
[INFO] [stdout] 1026 |                 CString::new("to_bool").unwrap().as_ptr(),
[INFO] [stdout]      |                 -------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]      |
[INFO] [stdout]      = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]      = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]     --> src/codegen.rs:1034:82
[INFO] [stdout]      |
[INFO] [stdout] 1034 |                 LLVMBuildLoad(self.builder, v, CString::new("load_ptr").unwrap().as_ptr())
[INFO] [stdout]      |                                                --------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]      |                                                |
[INFO] [stdout]      |                                                this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]      |
[INFO] [stdout]      = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]      = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: linking with `cc` failed: exit status: 1
[INFO] [stdout]   |
[INFO] [stdout]   = note: "cc" "-m64" "/opt/rustwide/target/debug/deps/pascal_kursach-966c5c9961034d76.pascal_kursach.bn1hrg6c-cgu.0.rcgu.o" "/opt/rustwide/target/debug/deps/pascal_kursach-966c5c9961034d76.pascal_kursach.bn1hrg6c-cgu.1.rcgu.o" "/opt/rustwide/target/debug/deps/pascal_kursach-966c5c9961034d76.pascal_kursach.bn1hrg6c-cgu.10.rcgu.o" "/opt/rustwide/target/debug/deps/pascal_kursach-966c5c9961034d76.pascal_kursach.bn1hrg6c-cgu.11.rcgu.o" "/opt/rustwide/target/debug/deps/pascal_kursach-966c5c9961034d76.pascal_kursach.bn1hrg6c-cgu.12.rcgu.o" "/opt/rustwide/target/debug/deps/pascal_kursach-966c5c9961034d76.pascal_kursach.bn1hrg6c-cgu.13.rcgu.o" "/opt/rustwide/target/debug/deps/pascal_kursach-966c5c9961034d76.pascal_kursach.bn1hrg6c-cgu.14.rcgu.o" "/opt/rustwide/target/debug/deps/pascal_kursach-966c5c9961034d76.pascal_kursach.bn1hrg6c-cgu.15.rcgu.o" "/opt/rustwide/target/debug/deps/pascal_kursach-966c5c9961034d76.pascal_kursach.bn1hrg6c-cgu.2.rcgu.o" "/opt/rustwide/target/debug/deps/pascal_kursach-966c5c9961034d76.pascal_kursach.bn1hrg6c-cgu.3.rcgu.o" "/opt/rustwide/target/debug/deps/pascal_kursach-966c5c9961034d76.pascal_kursach.bn1hrg6c-cgu.4.rcgu.o" "/opt/rustwide/target/debug/deps/pascal_kursach-966c5c9961034d76.pascal_kursach.bn1hrg6c-cgu.5.rcgu.o" "/opt/rustwide/target/debug/deps/pascal_kursach-966c5c9961034d76.pascal_kursach.bn1hrg6c-cgu.6.rcgu.o" "/opt/rustwide/target/debug/deps/pascal_kursach-966c5c9961034d76.pascal_kursach.bn1hrg6c-cgu.7.rcgu.o" "/opt/rustwide/target/debug/deps/pascal_kursach-966c5c9961034d76.pascal_kursach.bn1hrg6c-cgu.8.rcgu.o" "/opt/rustwide/target/debug/deps/pascal_kursach-966c5c9961034d76.pascal_kursach.bn1hrg6c-cgu.9.rcgu.o" "/opt/rustwide/target/debug/deps/pascal_kursach-966c5c9961034d76.4sx91t8nj8b4u8r7.rcgu.o" "-Wl,--as-needed" "-L" "/opt/rustwide/target/debug/deps" "-L" "/opt/rustwide/target/debug/build/llvm-sys-c3dc33ad54f57f70/out" "-L" "/usr/lib/llvm-10/lib" "-L" "/opt/rustwide/rustup-home/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/opt/rustwide/target/debug/deps/libregex-2a23a5cb75941bc0.rlib" "/opt/rustwide/target/debug/deps/libutf8_ranges-731d99d2c9a38d17.rlib" "/opt/rustwide/target/debug/deps/libregex_syntax-7099c59c6304034c.rlib" "/opt/rustwide/target/debug/deps/libucd_util-ee0f14a2fe919c8a.rlib" "/opt/rustwide/target/debug/deps/libthread_local-f969d11ed59015e9.rlib" "/opt/rustwide/target/debug/deps/liblazy_static-6d57f98cb51285ab.rlib" "/opt/rustwide/target/debug/deps/libaho_corasick-2e8e604cf15463c0.rlib" "/opt/rustwide/target/debug/deps/libmemchr-3419868c45e7dd15.rlib" "/opt/rustwide/target/debug/deps/liblalrpop_util-3ab799e999f222ae.rlib" "/opt/rustwide/target/debug/deps/libclap-df9e97c3c09ee2e3.rlib" "/opt/rustwide/target/debug/deps/libyaml_rust-65988d1f95b35d03.rlib" "/opt/rustwide/target/debug/deps/libvec_map-61023bbc11b5c191.rlib" "/opt/rustwide/target/debug/deps/libtextwrap-714bb93ce16b8644.rlib" "/opt/rustwide/target/debug/deps/libunicode_width-bb9dbf93966263f4.rlib" "/opt/rustwide/target/debug/deps/libstrsim-b10957d572414a9c.rlib" "/opt/rustwide/target/debug/deps/libbitflags-027ca9fc578b3633.rlib" "/opt/rustwide/target/debug/deps/libatty-73b71d5b564ecbf9.rlib" "/opt/rustwide/target/debug/deps/libansi_term-e2a35aae900e64a8.rlib" "/opt/rustwide/target/debug/deps/libllvm_sys-7b581efa0d92dd51.rlib" "/opt/rustwide/target/debug/deps/liblibc-563f7868d7f70050.rlib" "-Wl,--start-group" "/opt/rustwide/rustup-home/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-2420485b9e5ef5e1.rlib" "/opt/rustwide/rustup-home/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-785e3cb61c4b1960.rlib" "/opt/rustwide/rustup-home/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-087191a88bdaa22d.rlib" "/opt/rustwide/rustup-home/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-9981842c02975178.rlib" "/opt/rustwide/rustup-home/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-6fb405869b015fde.rlib" "/opt/rustwide/rustup-home/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-d05c5c3c56004b7b.rlib" "/opt/rustwide/rustup-home/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-42d74d2097528b38.rlib" "/opt/rustwide/rustup-home/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-fb36534c113d2209.rlib" "/opt/rustwide/rustup-home/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-b56b9042c12b6535.rlib" "/opt/rustwide/rustup-home/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-491902d6cb3e76df.rlib" "/opt/rustwide/rustup-home/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-61834e0981b8c367.rlib" "/opt/rustwide/rustup-home/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-f78aa99d613a55bc.rlib" "/opt/rustwide/rustup-home/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-53ee54cd7fed2c57.rlib" "/opt/rustwide/rustup-home/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-544ecdbd6cda3c58.rlib" "/opt/rustwide/rustup-home/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-379cc252b6943a79.rlib" "/opt/rustwide/rustup-home/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-8063eea38dcc5e62.rlib" "/opt/rustwide/rustup-home/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-5b228734afae15ee.rlib" "-Wl,--end-group" "/opt/rustwide/rustup-home/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-d6c7a399d95d173f.rlib" "-Wl,-Bdynamic" "-lz" "-lrt" "-ldl" "-ltinfo" "-lpthread" "-lm" "-lstdc++" "-lutil" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-znoexecstack" "-L" "/opt/rustwide/rustup-home/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/opt/rustwide/target/debug/deps/pascal_kursach-966c5c9961034d76" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro" "-Wl,-znow" "-nodefaultlibs"
[INFO] [stdout]   = note: /usr/bin/ld: /opt/rustwide/target/debug/deps/libllvm_sys-7b581efa0d92dd51.rlib(ExternalFunctions.cpp.o): in function `llvm::Interpreter::callExternalFunction(llvm::Function*, llvm::ArrayRef<llvm::GenericValue>)':
[INFO] [stdout]           (.text._ZN4llvm11Interpreter20callExternalFunctionEPNS_8FunctionENS_8ArrayRefINS_12GenericValueEEE+0x93f): undefined reference to `ffi_type_void'
[INFO] [stdout]           /usr/bin/ld: (.text._ZN4llvm11Interpreter20callExternalFunctionEPNS_8FunctionENS_8ArrayRefINS_12GenericValueEEE+0x953): undefined reference to `ffi_type_float'
[INFO] [stdout]           /usr/bin/ld: (.text._ZN4llvm11Interpreter20callExternalFunctionEPNS_8FunctionENS_8ArrayRefINS_12GenericValueEEE+0x9aa): undefined reference to `ffi_type_double'
[INFO] [stdout]           /usr/bin/ld: (.text._ZN4llvm11Interpreter20callExternalFunctionEPNS_8FunctionENS_8ArrayRefINS_12GenericValueEEE+0x9d1): undefined reference to `ffi_type_pointer'
[INFO] [stdout]           /usr/bin/ld: (.text._ZN4llvm11Interpreter20callExternalFunctionEPNS_8FunctionENS_8ArrayRefINS_12GenericValueEEE+0xc6b): undefined reference to `ffi_type_void'
[INFO] [stdout]           /usr/bin/ld: (.text._ZN4llvm11Interpreter20callExternalFunctionEPNS_8FunctionENS_8ArrayRefINS_12GenericValueEEE+0xc85): undefined reference to `ffi_type_double'
[INFO] [stdout]           /usr/bin/ld: (.text._ZN4llvm11Interpreter20callExternalFunctionEPNS_8FunctionENS_8ArrayRefINS_12GenericValueEEE+0xcab): undefined reference to `ffi_type_float'
[INFO] [stdout]           /usr/bin/ld: (.text._ZN4llvm11Interpreter20callExternalFunctionEPNS_8FunctionENS_8ArrayRefINS_12GenericValueEEE+0xcb4): undefined reference to `ffi_type_pointer'
[INFO] [stdout]           /usr/bin/ld: (.text._ZN4llvm11Interpreter20callExternalFunctionEPNS_8FunctionENS_8ArrayRefINS_12GenericValueEEE+0xcd6): undefined reference to `ffi_prep_cif'
[INFO] [stdout]           /usr/bin/ld: (.text._ZN4llvm11Interpreter20callExternalFunctionEPNS_8FunctionENS_8ArrayRefINS_12GenericValueEEE+0xdbc): undefined reference to `ffi_call'
[INFO] [stdout]           /usr/bin/ld: /opt/rustwide/target/debug/deps/libllvm_sys-7b581efa0d92dd51.rlib(ExternalFunctions.cpp.o):(.data.rel.ro..Lswitch.table._ZN4llvm11Interpreter20callExternalFunctionEPNS_8FunctionENS_8ArrayRefINS_12GenericValueEEE.33+0x0): undefined reference to `ffi_type_sint8'
[INFO] [stdout]           /usr/bin/ld: /opt/rustwide/target/debug/deps/libllvm_sys-7b581efa0d92dd51.rlib(ExternalFunctions.cpp.o):(.data.rel.ro..Lswitch.table._ZN4llvm11Interpreter20callExternalFunctionEPNS_8FunctionENS_8ArrayRefINS_12GenericValueEEE.33+0x8): undefined reference to `ffi_type_sint16'
[INFO] [stdout]           /usr/bin/ld: /opt/rustwide/target/debug/deps/libllvm_sys-7b581efa0d92dd51.rlib(ExternalFunctions.cpp.o):(.data.rel.ro..Lswitch.table._ZN4llvm11Interpreter20callExternalFunctionEPNS_8FunctionENS_8ArrayRefINS_12GenericValueEEE.33+0x10): undefined reference to `ffi_type_float'
[INFO] [stdout]           /usr/bin/ld: /opt/rustwide/target/debug/deps/libllvm_sys-7b581efa0d92dd51.rlib(ExternalFunctions.cpp.o):(.data.rel.ro..Lswitch.table._ZN4llvm11Interpreter20callExternalFunctionEPNS_8FunctionENS_8ArrayRefINS_12GenericValueEEE.33+0x18): undefined reference to `ffi_type_sint32'
[INFO] [stdout]           /usr/bin/ld: /opt/rustwide/target/debug/deps/libllvm_sys-7b581efa0d92dd51.rlib(ExternalFunctions.cpp.o):(.data.rel.ro..Lswitch.table._ZN4llvm11Interpreter20callExternalFunctionEPNS_8FunctionENS_8ArrayRefINS_12GenericValueEEE.33+0x20): undefined reference to `ffi_type_float'
[INFO] [stdout]           /usr/bin/ld: /opt/rustwide/target/debug/deps/libllvm_sys-7b581efa0d92dd51.rlib(ExternalFunctions.cpp.o):(.data.rel.ro..Lswitch.table._ZN4llvm11Interpreter20callExternalFunctionEPNS_8FunctionENS_8ArrayRefINS_12GenericValueEEE.33+0x28): undefined reference to `ffi_type_float'
[INFO] [stdout]           /usr/bin/ld: /opt/rustwide/target/debug/deps/libllvm_sys-7b581efa0d92dd51.rlib(ExternalFunctions.cpp.o):(.data.rel.ro..Lswitch.table._ZN4llvm11Interpreter20callExternalFunctionEPNS_8FunctionENS_8ArrayRefINS_12GenericValueEEE.33+0x30): undefined reference to `ffi_type_float'
[INFO] [stdout]           /usr/bin/ld: /opt/rustwide/target/debug/deps/libllvm_sys-7b581efa0d92dd51.rlib(ExternalFunctions.cpp.o):(.data.rel.ro..Lswitch.table._ZN4llvm11Interpreter20callExternalFunctionEPNS_8FunctionENS_8ArrayRefINS_12GenericValueEEE.33+0x38): undefined reference to `ffi_type_sint64'
[INFO] [stdout]           collect2: error: ld returned 1 exit status
[INFO] [stdout]           
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to previous error; 61 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `pascal-kursach`
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] running `Command { std: "docker" "inspect" "cf5d26f10bb1c4fd2541214d97d6bedfebe46a73ee8a77f57c1d50e33d6ecf09", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cf5d26f10bb1c4fd2541214d97d6bedfebe46a73ee8a77f57c1d50e33d6ecf09", kill_on_drop: false }`
[INFO] [stdout] cf5d26f10bb1c4fd2541214d97d6bedfebe46a73ee8a77f57c1d50e33d6ecf09
