]> git.lizzy.rs Git - rust.git/commitdiff
librustc: Stop trying to make invalid slice with vec in static.
authorLuqman Aden <laden@csclub.uwaterloo.ca>
Sat, 27 Jul 2013 08:38:55 +0000 (04:38 -0400)
committerLuqman Aden <laden@csclub.uwaterloo.ca>
Sat, 27 Jul 2013 08:47:12 +0000 (04:47 -0400)
src/librustc/middle/trans/consts.rs

index db9e3db2c0fda41f8603dcb2f04c2e4a9f153a07..853b3a3c28f1cf66fa62b6cd85494030a7b5be25 100644 (file)
@@ -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,