]>
Commit | Line | Data |
---|---|---|
a7813a04 | 1 | // ignore-tidy-linelength |
ba9703b0 | 2 | // We specify -C incremental here because we want to test the partitioning for |
a7813a04 | 3 | // incremental compilation |
ba9703b0 | 4 | // compile-flags:-Zprint-mono-items=lazy -Cincremental=tmp/partitioning-tests/inlining-from-extern-crate |
ea8adc8c | 5 | // compile-flags:-Zinline-in-all-cgus |
a7813a04 XL |
6 | |
7 | #![crate_type="lib"] | |
8 | ||
9 | // aux-build:cgu_explicit_inlining.rs | |
10 | extern crate cgu_explicit_inlining; | |
11 | ||
12 | // This test makes sure that items inlined from external crates are privately | |
13 | // instantiated in every codegen unit they are used in. | |
14 | ||
1b1a35ee XL |
15 | //~ MONO_ITEM fn cgu_explicit_inlining::inlined @@ inlining_from_extern_crate[Internal] inlining_from_extern_crate-mod1[Internal] |
16 | //~ MONO_ITEM fn cgu_explicit_inlining::always_inlined @@ inlining_from_extern_crate[Internal] inlining_from_extern_crate-mod2[Internal] | |
a7813a04 | 17 | |
1b1a35ee | 18 | //~ MONO_ITEM fn user @@ inlining_from_extern_crate[External] |
a7813a04 XL |
19 | pub fn user() |
20 | { | |
21 | cgu_explicit_inlining::inlined(); | |
22 | cgu_explicit_inlining::always_inlined(); | |
23 | ||
94b46f34 | 24 | // does not generate a monomorphization in this crate |
a7813a04 XL |
25 | cgu_explicit_inlining::never_inlined(); |
26 | } | |
27 | ||
abe05a73 | 28 | pub mod mod1 { |
a7813a04 XL |
29 | use cgu_explicit_inlining; |
30 | ||
1b1a35ee | 31 | //~ MONO_ITEM fn mod1::user @@ inlining_from_extern_crate-mod1[External] |
a7813a04 XL |
32 | pub fn user() |
33 | { | |
34 | cgu_explicit_inlining::inlined(); | |
35 | ||
94b46f34 | 36 | // does not generate a monomorphization in this crate |
a7813a04 XL |
37 | cgu_explicit_inlining::never_inlined(); |
38 | } | |
39 | } | |
40 | ||
abe05a73 | 41 | pub mod mod2 { |
a7813a04 XL |
42 | use cgu_explicit_inlining; |
43 | ||
1b1a35ee | 44 | //~ MONO_ITEM fn mod2::user @@ inlining_from_extern_crate-mod2[External] |
a7813a04 XL |
45 | pub fn user() |
46 | { | |
47 | cgu_explicit_inlining::always_inlined(); | |
48 | ||
94b46f34 | 49 | // does not generate a monomorphization in this crate |
a7813a04 XL |
50 | cgu_explicit_inlining::never_inlined(); |
51 | } | |
52 | } |