Fix broken codegen for [expr; n] where "expr" diverges
This commit is contained in:
parent
3a8f989dbb
commit
9eed8ea644
|
@ -410,8 +410,12 @@ pub fn iter_vec_loop<'blk, 'tcx, F>(bcx: Block<'blk, 'tcx>,
|
|||
F: FnOnce(Block<'blk, 'tcx>, ValueRef, Ty<'tcx>) -> Block<'blk, 'tcx>,
|
||||
{
|
||||
let _icx = push_ctxt("tvec::iter_vec_loop");
|
||||
let fcx = bcx.fcx;
|
||||
|
||||
if bcx.unreachable.get() {
|
||||
return bcx;
|
||||
}
|
||||
|
||||
let fcx = bcx.fcx;
|
||||
let loop_bcx = fcx.new_temp_block("expr_repeat");
|
||||
let next_bcx = fcx.new_temp_block("expr_repeat: next");
|
||||
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
// Copyright 2015 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.
|
||||
|
||||
// error-pattern:panic evaluated
|
||||
|
||||
#[allow(unused_variables)]
|
||||
fn main() {
|
||||
// This used to trigger an LLVM assertion during compilation
|
||||
let x = [panic!("panic evaluated"); 2];
|
||||
}
|
Loading…
Reference in New Issue