From 6d3e89e33cfd7517eb9f4068ce38f9e1b14a664f Mon Sep 17 00:00:00 2001 From: Jakub Wieczorek Date: Wed, 4 Jun 2014 18:24:58 +0200 Subject: [PATCH] Mark the exit of infinite loops as unreachable --- src/librustc/middle/trans/controlflow.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/librustc/middle/trans/controlflow.rs b/src/librustc/middle/trans/controlflow.rs index 2174fe3df9a..eac7af56ed4 100644 --- a/src/librustc/middle/trans/controlflow.rs +++ b/src/librustc/middle/trans/controlflow.rs @@ -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; } -- 2.44.0