about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLuqman Aden <me@luqman.ca>2014-08-25 12:03:43 -0700
committerLuqman Aden <me@luqman.ca>2014-08-25 12:48:35 -0700
commit395ef8ba1c7fb63f2c6b6479ec942a1f2d34ae73 (patch)
treed2d32f7a3f041eeb117cd8d702dc072a756d6bd1
parent6ad0346f0b7ed04454206521db82d2976ba3981d (diff)
downloadrust-395ef8ba1c7fb63f2c6b6479ec942a1f2d34ae73.tar.gz
rust-395ef8ba1c7fb63f2c6b6479ec942a1f2d34ae73.zip
Add tests to make sure intrinsicck doesn't apply to non-intrinsic fn's.
-rw-r--r--src/test/auxiliary/issue-15562.rs15
-rw-r--r--src/test/run-pass/issue-15562.rs29
2 files changed, 44 insertions, 0 deletions
diff --git a/src/test/auxiliary/issue-15562.rs b/src/test/auxiliary/issue-15562.rs
new file mode 100644
index 00000000000..76243d3bced
--- /dev/null
+++ b/src/test/auxiliary/issue-15562.rs
@@ -0,0 +1,15 @@
+// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+#![crate_type = "lib"]
+
+extern {
+    pub fn transmute();
+}
diff --git a/src/test/run-pass/issue-15562.rs b/src/test/run-pass/issue-15562.rs
new file mode 100644
index 00000000000..96de6c90b66
--- /dev/null
+++ b/src/test/run-pass/issue-15562.rs
@@ -0,0 +1,29 @@
+// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+// aux-build:issue-15562.rs
+
+extern crate i = "issue-15562";
+
+pub fn main() {
+    extern {
+        fn transmute();
+    }
+    unsafe {
+        transmute();
+        i::transmute();
+    }
+}
+
+// We declare this so we don't run into unresolved symbol errors
+// The above extern is NOT `extern "rust-intrinsic"` and thus
+// means it'll try to find a corresponding symbol to link to.
+#[no_mangle]
+pub extern fn transmute() {}