summaryrefslogtreecommitdiffstats
path: root/src/test/ui/cross-crate/issue-64872/auxiliary
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/cross-crate/issue-64872/auxiliary')
-rw-r--r--src/test/ui/cross-crate/issue-64872/auxiliary/a_def_obj.rs16
-rw-r--r--src/test/ui/cross-crate/issue-64872/auxiliary/b_reexport_obj.rs7
-rw-r--r--src/test/ui/cross-crate/issue-64872/auxiliary/c_another_vtable_for_obj.rs12
-rw-r--r--src/test/ui/cross-crate/issue-64872/auxiliary/d_chain_of_rlibs_and_dylibs.rs9
4 files changed, 44 insertions, 0 deletions
diff --git a/src/test/ui/cross-crate/issue-64872/auxiliary/a_def_obj.rs b/src/test/ui/cross-crate/issue-64872/auxiliary/a_def_obj.rs
new file mode 100644
index 000000000..82bb95f1e
--- /dev/null
+++ b/src/test/ui/cross-crate/issue-64872/auxiliary/a_def_obj.rs
@@ -0,0 +1,16 @@
+// compile-flags: -C debuginfo=2
+
+// no-prefer-dynamic
+#![crate_type = "rlib"]
+
+pub trait Object { fn method(&self) { } }
+
+impl Object for u32 { }
+impl Object for () { }
+impl<T> Object for &T { }
+
+pub fn unused() {
+ let ref u = 0_u32;
+ let _d = &u as &dyn crate::Object;
+ _d.method()
+}
diff --git a/src/test/ui/cross-crate/issue-64872/auxiliary/b_reexport_obj.rs b/src/test/ui/cross-crate/issue-64872/auxiliary/b_reexport_obj.rs
new file mode 100644
index 000000000..21c0274b9
--- /dev/null
+++ b/src/test/ui/cross-crate/issue-64872/auxiliary/b_reexport_obj.rs
@@ -0,0 +1,7 @@
+// compile-flags: -C debuginfo=2 -C prefer-dynamic
+
+#![crate_type="dylib"]
+
+extern crate a_def_obj;
+
+pub use a_def_obj::Object;
diff --git a/src/test/ui/cross-crate/issue-64872/auxiliary/c_another_vtable_for_obj.rs b/src/test/ui/cross-crate/issue-64872/auxiliary/c_another_vtable_for_obj.rs
new file mode 100644
index 000000000..611238f56
--- /dev/null
+++ b/src/test/ui/cross-crate/issue-64872/auxiliary/c_another_vtable_for_obj.rs
@@ -0,0 +1,12 @@
+// no-prefer-dynamic
+// compile-flags: -C debuginfo=2
+#![crate_type="rlib"]
+
+extern crate b_reexport_obj;
+use b_reexport_obj::Object;
+
+pub fn another_dyn_debug() {
+ let ref u = 1_u32;
+ let _d = &u as &dyn crate::Object;
+ _d.method()
+}
diff --git a/src/test/ui/cross-crate/issue-64872/auxiliary/d_chain_of_rlibs_and_dylibs.rs b/src/test/ui/cross-crate/issue-64872/auxiliary/d_chain_of_rlibs_and_dylibs.rs
new file mode 100644
index 000000000..8d73f9b66
--- /dev/null
+++ b/src/test/ui/cross-crate/issue-64872/auxiliary/d_chain_of_rlibs_and_dylibs.rs
@@ -0,0 +1,9 @@
+// compile-flags: -C debuginfo=2 -C prefer-dynamic
+
+#![crate_type="rlib"]
+
+extern crate c_another_vtable_for_obj;
+
+pub fn chain() {
+ c_another_vtable_for_obj::another_dyn_debug();
+}