about summary refs log tree commit diff
path: root/src/libcore
diff options
context:
space:
mode:
authorKeegan McAllister <kmcallister@mozilla.com>2014-09-03 12:00:08 -0700
committerKeegan McAllister <kmcallister@mozilla.com>2014-10-04 20:09:09 -0700
commit401aeaf6d3a6ec712ee46151faf574adaa5ff3c6 (patch)
treed8f456d0fa5868f969d868ce0eaf7c62d9a327ef /src/libcore
parent1f3cda8bd8496c3b3771b0201d1073ed575321d0 (diff)
downloadrust-401aeaf6d3a6ec712ee46151faf574adaa5ff3c6.tar.gz
rust-401aeaf6d3a6ec712ee46151faf574adaa5ff3c6.zip
Add intrinsics::unreachable
Diffstat (limited to 'src/libcore')
-rw-r--r--src/libcore/intrinsics.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/libcore/intrinsics.rs b/src/libcore/intrinsics.rs
index a3d63bbe06c..7d86b65168f 100644
--- a/src/libcore/intrinsics.rs
+++ b/src/libcore/intrinsics.rs
@@ -250,6 +250,13 @@ extern "rust-intrinsic" {
     /// Abort the execution of the process.
     pub fn abort() -> !;
 
+    /// Tell LLVM that this point in the code is not reachable,
+    /// enabling further optimizations.
+    ///
+    /// NB: This is very different from the `unreachable!()` macro!
+    #[cfg(not(stage0))]
+    pub fn unreachable() -> !;
+
     /// Execute a breakpoint trap, for inspection by a debugger.
     pub fn breakpoint();