summaryrefslogtreecommitdiffstats
path: root/src/test/codegen-units/item-collection/non-generic-functions.rs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/test/codegen-units/item-collection/non-generic-functions.rs72
1 files changed, 72 insertions, 0 deletions
diff --git a/src/test/codegen-units/item-collection/non-generic-functions.rs b/src/test/codegen-units/item-collection/non-generic-functions.rs
new file mode 100644
index 000000000..092e64562
--- /dev/null
+++ b/src/test/codegen-units/item-collection/non-generic-functions.rs
@@ -0,0 +1,72 @@
+// compile-flags:-Zprint-mono-items=eager
+
+#![deny(dead_code)]
+#![feature(start)]
+
+//~ MONO_ITEM fn foo
+fn foo() {
+ {
+ //~ MONO_ITEM fn foo::foo
+ fn foo() {}
+ foo();
+ }
+
+ {
+ //~ MONO_ITEM fn foo::foo
+ fn foo() {}
+ foo();
+ }
+}
+
+//~ MONO_ITEM fn bar
+fn bar() {
+ //~ MONO_ITEM fn bar::baz
+ fn baz() {}
+ baz();
+}
+
+struct Struct { _x: i32 }
+
+impl Struct {
+ //~ MONO_ITEM fn Struct::foo
+ fn foo() {
+ {
+ //~ MONO_ITEM fn Struct::foo::foo
+ fn foo() {}
+ foo();
+ }
+
+ {
+ //~ MONO_ITEM fn Struct::foo::foo
+ fn foo() {}
+ foo();
+ }
+ }
+
+ //~ MONO_ITEM fn Struct::bar
+ fn bar(&self) {
+ {
+ //~ MONO_ITEM fn Struct::bar::foo
+ fn foo() {}
+ foo();
+ }
+
+ {
+ //~ MONO_ITEM fn Struct::bar::foo
+ fn foo() {}
+ foo();
+ }
+ }
+}
+
+//~ MONO_ITEM fn start
+#[start]
+fn start(_: isize, _: *const *const u8) -> isize {
+ foo();
+ bar();
+ Struct::foo();
+ let x = Struct { _x: 0 };
+ x.bar();
+
+ 0
+}