]> git.lizzy.rs Git - rust.git/commitdiff
Mark the exit of infinite loops as unreachable
authorJakub Wieczorek <jakub@jakub.cc>
Wed, 4 Jun 2014 16:24:58 +0000 (18:24 +0200)
committerJakub Wieczorek <jakub@jakub.cc>
Wed, 4 Jun 2014 16:37:46 +0000 (18:37 +0200)
src/librustc/middle/trans/controlflow.rs

index 2174fe3df9a078481bd78147884cc2fef39784b9..eac7af56ed4c00bd371c181273500e4c30fa0e54 100644 (file)
@@ -264,6 +264,10 @@ pub fn trans_loop<'a>(bcx:&'a Block<'a>,
 
     fcx.pop_loop_cleanup_scope(loop_id);
 
+    if ty::type_is_bot(node_id_type(bcx, loop_id)) {
+        Unreachable(next_bcx_in);
+    }
+
     return next_bcx_in;
 }