File tree 4 files changed +31
-6
lines changed
src/test/run-make/pipelined
4 files changed +31
-6
lines changed Original file line number Diff line number Diff line change 1
1
-include ../../run-make-fulldeps/tools.mk
2
2
3
- O =$(TMPDIR )
3
+ O =$(TMPDIR ) /together
4
+ S =$(TMPDIR ) /separate
4
5
5
- all : $O/main
6
- $O /main
6
+ all : $O/main $S/main
7
+ # Should produce identical output
8
+ cmp $O /main $S /main
7
9
10
+ # Build with combined --emit metadata,link
8
11
$O/main : $O/libmiddle.rlib $O/libleaf.rlib
9
- $(RUSTC ) main.rs --extern middle=$O /libmiddle.rlib -Ldependency=$O
12
+ $(BARE_RUSTC ) --out-dir $O main.rs --extern middle=$O /libmiddle.rlib -Ldependency=$O
13
+ $O /main
10
14
11
15
$O/libmiddle.rlib : middle.rs $O/libleaf.rmeta
12
- $(RUSTC ) --emit link middle.rs --extern leaf=$O /libleaf.rmeta
16
+ $(BARE_RUSTC ) --out-dir $O --emit link middle.rs --extern leaf=$O /libleaf.rmeta
13
17
14
18
$O/libleaf.rlib $O/libleaf.rmeta : leaf.rs
15
- $(RUSTC ) --emit metadata,link leaf.rs
19
+ $(BARE_RUSTC ) --out-dir $O --emit metadata,link leaf.rs
20
+
21
+ # Build with separate --emit metadata / --emit link
22
+ $S/main : $S/libmiddle.rlib $S/libleaf.rlib
23
+ $(BARE_RUSTC ) --out-dir $S main.rs --extern middle=$S /libmiddle.rlib -Ldependency=$S
24
+ $S /main
25
+
26
+ $S/libmiddle.rlib : middle.rs $S/libleaf.rmeta
27
+ $(BARE_RUSTC ) --out-dir $S --emit link middle.rs --extern leaf=$S /libleaf.rmeta
28
+
29
+ $S/libleaf.rlib : leaf.rs
30
+ $(BARE_RUSTC ) --out-dir $S --emit link leaf.rs
31
+
32
+ $S/libleaf.rmeta : leaf.rs
33
+ $(BARE_RUSTC ) --out-dir $S --emit metadata -Zmetadata-link leaf.rs
Original file line number Diff line number Diff line change @@ -20,6 +20,11 @@ pub fn simple(a: u32, b: u32) -> u32 {
20
20
c
21
21
}
22
22
23
+ #[ inline]
24
+ pub fn inlined ( a : u32 , b : u32 ) -> u32 {
25
+ a * b
26
+ }
27
+
23
28
pub fn generic < D : std:: fmt:: Debug > ( d : D ) {
24
29
println ! ( "generically printing {:?}" , d) ;
25
30
}
Original file line number Diff line number Diff line change @@ -6,4 +6,5 @@ fn main() {
6
6
println ! ( "middle::BAR {}" , middle:: BAR ) ;
7
7
8
8
assert_eq ! ( middle:: simple( 2 , 3 ) , 5 ) ;
9
+ assert_eq ! ( middle:: inlined( 2 , 3 ) , 6 ) ;
9
10
}
Original file line number Diff line number Diff line change @@ -5,6 +5,7 @@ extern crate leaf;
5
5
pub static BAR : & str = leaf:: FOO ;
6
6
7
7
pub use leaf:: simple;
8
+ pub use leaf:: inlined;
8
9
9
10
pub fn do_a_thing ( ) {
10
11
let s = leaf:: GenericStruct {
You can’t perform that action at this time.
0 commit comments