diff options
Diffstat (limited to 'src/test/run-make-fulldeps/extern-multiple-copies2')
4 files changed, 33 insertions, 0 deletions
diff --git a/src/test/run-make-fulldeps/extern-multiple-copies2/Makefile b/src/test/run-make-fulldeps/extern-multiple-copies2/Makefile new file mode 100644 index 000000000..567d7e78a --- /dev/null +++ b/src/test/run-make-fulldeps/extern-multiple-copies2/Makefile @@ -0,0 +1,10 @@ +-include ../tools.mk + +all: + $(RUSTC) foo1.rs + $(RUSTC) foo2.rs + mkdir $(TMPDIR)/foo + cp $(TMPDIR)/libfoo1.rlib $(TMPDIR)/foo/libfoo1.rlib + $(RUSTC) bar.rs \ + --extern foo1=$(TMPDIR)/foo/libfoo1.rlib \ + --extern foo2=$(TMPDIR)/libfoo2.rlib diff --git a/src/test/run-make-fulldeps/extern-multiple-copies2/bar.rs b/src/test/run-make-fulldeps/extern-multiple-copies2/bar.rs new file mode 100644 index 000000000..b3088152d --- /dev/null +++ b/src/test/run-make-fulldeps/extern-multiple-copies2/bar.rs @@ -0,0 +1,8 @@ +#[macro_use] +extern crate foo2; // foo2 first to exhibit the bug +#[macro_use] +extern crate foo1; + +fn main() { + foo2::foo2(foo1::A); +} diff --git a/src/test/run-make-fulldeps/extern-multiple-copies2/foo1.rs b/src/test/run-make-fulldeps/extern-multiple-copies2/foo1.rs new file mode 100644 index 000000000..4c778e52f --- /dev/null +++ b/src/test/run-make-fulldeps/extern-multiple-copies2/foo1.rs @@ -0,0 +1,7 @@ +#![crate_type = "rlib"] + +pub struct A; + +pub fn foo1(a: A) { + drop(a); +} diff --git a/src/test/run-make-fulldeps/extern-multiple-copies2/foo2.rs b/src/test/run-make-fulldeps/extern-multiple-copies2/foo2.rs new file mode 100644 index 000000000..2be103507 --- /dev/null +++ b/src/test/run-make-fulldeps/extern-multiple-copies2/foo2.rs @@ -0,0 +1,8 @@ +#![crate_type = "rlib"] + +#[macro_use] +extern crate foo1; + +pub fn foo2(a: foo1::A) { + foo1::foo1(a); +} |