]> git.lizzy.rs Git - rust.git/blob - src/test/codegen-units/item-collection/non-generic-functions.rs
Rollup merge of #105109 - rcvalle:rust-kcfi, r=bjorn3
[rust.git] / src / test / codegen-units / item-collection / non-generic-functions.rs
1 // compile-flags:-Zprint-mono-items=eager
2
3 #![deny(dead_code)]
4 #![feature(start)]
5
6 //~ MONO_ITEM fn foo
7 fn foo() {
8     {
9         //~ MONO_ITEM fn foo::foo
10         fn foo() {}
11         foo();
12     }
13
14     {
15         //~ MONO_ITEM fn foo::foo
16         fn foo() {}
17         foo();
18     }
19 }
20
21 //~ MONO_ITEM fn bar
22 fn bar() {
23     //~ MONO_ITEM fn bar::baz
24     fn baz() {}
25     baz();
26 }
27
28 struct Struct { _x: i32 }
29
30 impl Struct {
31     //~ MONO_ITEM fn Struct::foo
32     fn foo() {
33         {
34             //~ MONO_ITEM fn Struct::foo::foo
35             fn foo() {}
36             foo();
37         }
38
39         {
40             //~ MONO_ITEM fn Struct::foo::foo
41             fn foo() {}
42             foo();
43         }
44     }
45
46     //~ MONO_ITEM fn Struct::bar
47     fn bar(&self) {
48         {
49             //~ MONO_ITEM fn Struct::bar::foo
50             fn foo() {}
51             foo();
52         }
53
54         {
55             //~ MONO_ITEM fn Struct::bar::foo
56             fn foo() {}
57             foo();
58         }
59     }
60 }
61
62 //~ MONO_ITEM fn start
63 #[start]
64 fn start(_: isize, _: *const *const u8) -> isize {
65     foo();
66     bar();
67     Struct::foo();
68     let x = Struct { _x: 0 };
69     x.bar();
70
71     0
72 }