Skip to content

Commit

Permalink
Rollup merge of #59696 - michaelwoerister:fix-issue-59137, r=alexcric…
Browse files Browse the repository at this point in the history
…hton

Remove invalid assertion back::link::from add_upstream_rust_crates().

This removes a misplaced assertion. The function containing the assertion is actually only ever called for upstream crates that are not considered for LTO, so we don't care whether upstream code has been merged in by LTO or not.

Fixes #59137

r? @alexcrichton
  • Loading branch information
Centril authored Apr 5, 2019
2 parents 85bc735 + a6e802a commit 5a93250
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 4 deletions.
4 changes: 0 additions & 4 deletions src/librustc_codegen_llvm/back/link.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1396,10 +1396,6 @@ fn add_upstream_rust_crates(cmd: &mut dyn Linker,

// Same thing as above, but for dynamic crates instead of static crates.
fn add_dynamic_crate(cmd: &mut dyn Linker, sess: &Session, cratepath: &Path) {
// If we're performing LTO, then it should have been previously required
// that all upstream rust dependencies were available in an rlib format.
assert!(!are_upstream_rust_objects_already_included(sess));

// Just need to tell the linker about where the library lives and
// what its name is
let parent = cratepath.parent();
Expand Down
10 changes: 10 additions & 0 deletions src/test/run-make-fulldeps/lto-dylib-dep/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
-include ../tools.mk

# Test that we don't run into an assertion when using a Rust dylib dependency
# while compiling with full LTO.
# See https://github.com/rust-lang/rust/issues/59137

all:
$(RUSTC) a_dylib.rs --crate-type=dylib -C prefer-dynamic
$(RUSTC) main.rs -C lto
$(call RUN,main)
4 changes: 4 additions & 0 deletions src/test/run-make-fulldeps/lto-dylib-dep/a_dylib.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@

pub fn foo() {
println!("bar");
}
6 changes: 6 additions & 0 deletions src/test/run-make-fulldeps/lto-dylib-dep/main.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@

extern crate a_dylib;

fn main() {
a_dylib::foo();
}

0 comments on commit 5a93250

Please sign in to comment.