Skip to content

Call parameter type does not match function signature (with LTO enabled) #26541

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
BurntSushi opened this issue Jun 24, 2015 · 2 comments
Closed
Labels
A-linkage Area: linking into static, shared libraries and binaries

Comments

@BurntSushi
Copy link
Member

This seems to be an LTO related bug that the benchmarks game maintainer has come across from this page: https://alioth.debian.org/tracker/index.php?func=detail&aid=315089&group_id=100815&atid=413122 (ctrl-f for "Call parameter type"). Specifically, these are the steps:

$ cargo new regex-deps
$ printf '[dependencies]\nregex = "=0.1.38"\n' >> regex-deps/Cargo.toml
$ cargo build --release --manifest-path regex-deps/Cargo.toml
Updating registry `https://github.com/rust-lang/crates.io-index`
Compiling regex-syntax v0.1.2
Compiling libc v0.1.8
Compiling memchr v0.1.3
Compiling aho-corasick v0.2.1
Compiling regex v0.1.38
Compiling regex-deps v0.1.0 (file:///testzone/regex-deps)
$ rustc -C opt-level=3 -C lto -L ./regex-deps/target/release/deps/ regex-dna.rs -o regex-dna
Call parameter type does not match function signature!
Illegal instruction (core dumped)

rustc version: rustc 1.0.0 (a59de37e9 2015-05-13) (built 2015-05-14)

If -C lto is removed from the final rustc command, then compilation succeeds.

I am not able to reproduce this myself, and I suspect there probably isn't enough info here for this to be a helpful bug report. But I'm reporting it anyway in case anyone knows something.

@BurntSushi
Copy link
Member Author

Here's another data point (from the linked thread):

dunham@x86:~/Documents/testzone$ cargo new --verbose regex-deps
dunham@x86:~/Documents/testzone$ printf '[dependencies]\nregex = "=0.1.38"\n' >> regex-deps/Cargo.toml
dunham@x86:~/Documents/testzone$ cargo build --verbose --release --manifest-path regex-deps/Cargo.toml
Updating registry `https://github.com/rust-lang/crates.io-index`
Compiling libc v0.1.8
Running `rustc /home/dunham/.cargo/registry/src/github.com-1285ae84e5963aae/libc-0.1.8/rust/src/liblibc/lib.rs --crate-name libc --crate-type lib -C opt-level=3 --cfg feature="cargo-build" --cfg feature="default" -C metadata=38eabbf337f9ec62 -C extra-filename=-38eabbf337f9ec62 --out-dir /home/dunham/Documents/testzone/regex-deps/target/release/deps --emit=dep-info,link -L dependency=/home/dunham/Documents/testzone/regex-deps/target/release/deps -L dependency=/home/dunham/Documents/testzone/regex-deps/target/release/deps -Awarnings`
Compiling regex-syntax v0.1.2
Running `rustc /home/dunham/.cargo/registry/src/github.com-1285ae84e5963aae/regex-syntax-0.1.2/src/lib.rs --crate-name regex_syntax --crate-type lib -C opt-level=3 -C metadata=be48a5d99c29d3c3 -C extra-filename=-be48a5d99c29d3c3 --out-dir /home/dunham/Documents/testzone/regex-deps/target/release/deps --emit=dep-info,link -L dependency=/home/dunham/Documents/testzone/regex-deps/target/release/deps -L dependency=/home/dunham/Documents/testzone/regex-deps/target/release/deps -Awarnings`
Compiling memchr v0.1.3
Running `rustc /home/dunham/.cargo/registry/src/github.com-1285ae84e5963aae/memchr-0.1.3/src/lib.rs --crate-name memchr --crate-type lib -C opt-level=3 -C metadata=402ca7c396253b4c -C extra-filename=-402ca7c396253b4c --out-dir /home/dunham/Documents/testzone/regex-deps/target/release/deps --emit=dep-info,link -L dependency=/home/dunham/Documents/testzone/regex-deps/target/release/deps -L dependency=/home/dunham/Documents/testzone/regex-deps/target/release/deps --extern libc=/home/dunham/Documents/testzone/regex-deps/target/release/deps/liblibc-38eabbf337f9ec62.rlib -Awarnings`
Compiling aho-corasick v0.2.1
Running `rustc /home/dunham/.cargo/registry/src/github.com-1285ae84e5963aae/aho-corasick-0.2.1/src/lib.rs --crate-name aho_corasick --crate-type lib -C opt-level=3 -C metadata=643dfbfe7b0f3f89 -C extra-filename=-643dfbfe7b0f3f89 --out-dir /home/dunham/Documents/testzone/regex-deps/target/release/deps --emit=dep-info,link -L dependency=/home/dunham/Documents/testzone/regex-deps/target/release/deps -L dependency=/home/dunham/Documents/testzone/regex-deps/target/release/deps --extern memchr=/home/dunham/Documents/testzone/regex-deps/target/release/deps/libmemchr-402ca7c396253b4c.rlib -Awarnings`
Compiling regex v0.1.38
Running `rustc /home/dunham/.cargo/registry/src/github.com-1285ae84e5963aae/regex-0.1.38/src/lib.rs --crate-name regex --crate-type lib -C opt-level=3 -C metadata=24aef2815b09a635 -C extra-filename=-24aef2815b09a635 --out-dir /home/dunham/Documents/testzone/regex-deps/target/release/deps --emit=dep-info,link -L dependency=/home/dunham/Documents/testzone/regex-deps/target/release/deps -L dependency=/home/dunham/Documents/testzone/regex-deps/target/release/deps --extern memchr=/home/dunham/Documents/testzone/regex-deps/target/release/deps/libmemchr-402ca7c396253b4c.rlib --extern regex_syntax=/home/dunham/Documents/testzone/regex-deps/target/release/deps/libregex_syntax-be48a5d99c29d3c3.rlib --extern aho_corasick=/home/dunham/Documents/testzone/regex-deps/target/release/deps/libaho_corasick-643dfbfe7b0f3f89.rlib -Awarnings`
Compiling regex-deps v0.1.0 (file:///home/dunham/Documents/testzone/regex-deps)
Running `rustc regex-deps/src/lib.rs --crate-name regex_deps --crate-type lib -C opt-level=3 --out-dir /home/dunham/Documents/testzone/regex-deps/target/release --emit=dep-info,link -L dependency=/home/dunham/Documents/testzone/regex-deps/target/release -L dependency=/home/dunham/Documents/testzone/regex-deps/target/release/deps --extern regex=/home/dunham/Documents/testzone/regex-deps/target/release/deps/libregex-24aef2815b09a635.rlib`
dunham@x86:~/Documents/testzone$ rustc -C opt-level=3 -C lto -L ./regex-deps/target/release/deps/ regex-dna.rs -o regex-dna
Call parameter type does not match function signature!
Illegal instruction (core dumped)

@steveklabnik
Copy link
Member

Triage:

I am not able to reproduce this myself, and I suspect there probably isn't enough info here for this to be a helpful bug report. But I'm reporting it anyway in case anyone knows something.

No other comments in almost two years, so I'm gonna give this a close.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-linkage Area: linking into static, shared libraries and binaries
Projects
None yet
Development

No branches or pull requests

2 participants