From 4a85b08e08456920f07cf8bb583064f84c23575d Mon Sep 17 00:00:00 2001 From: Luqman Aden Date: Sat, 27 Jul 2013 04:38:55 -0400 Subject: [PATCH] librustc: Stop trying to make invalid slice with vec in static. --- src/librustc/middle/trans/consts.rs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/librustc/middle/trans/consts.rs b/src/librustc/middle/trans/consts.rs index db9e3db2c0f..853b3a3c28f 100644 --- a/src/librustc/middle/trans/consts.rs +++ b/src/librustc/middle/trans/consts.rs @@ -211,11 +211,16 @@ pub fn const_expr(cx: @mut CrateContext, e: @ast::expr) -> ValueRef { } ty::AutoBorrowVec(ty::re_static, m) => { assert!(m != ast::m_mutbl); - let size = machine::llsize_of(cx, - val_ty(llconst)); assert_eq!(abi::slice_elt_base, 0); assert_eq!(abi::slice_elt_len, 1); - llconst = C_struct([llptr, size]); + + match ty::get(ty).sty { + ty::ty_evec(_, ty::vstore_fixed(*)) => { + let size = machine::llsize_of(cx, val_ty(llconst)); + llconst = C_struct([llptr, size]); + } + _ => {} + } } _ => { cx.sess.span_bug(e.span,