about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorLuqman Aden <laden@csclub.uwaterloo.ca>2013-10-12 21:42:24 -0400
committerLuqman Aden <laden@csclub.uwaterloo.ca>2013-10-12 21:42:24 -0400
commit4b4b2136e048c39c60c8289f4cd1c870d4aaaeb0 (patch)
tree3a2b9966e294f6ce147a05868b18992de77f3535 /src
parentc6e3501da14784cd2401dded3b53f3ce3405b4ec (diff)
downloadrust-4b4b2136e048c39c60c8289f4cd1c870d4aaaeb0.tar.gz
rust-4b4b2136e048c39c60c8289f4cd1c870d4aaaeb0.zip
librustc: Don't ICE on packed structs in statics.
Diffstat (limited to 'src')
-rw-r--r--src/librustc/middle/trans/adt.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/librustc/middle/trans/adt.rs b/src/librustc/middle/trans/adt.rs
index 0fdbc04a6c1..2494b854f26 100644
--- a/src/librustc/middle/trans/adt.rs
+++ b/src/librustc/middle/trans/adt.rs
@@ -505,7 +505,12 @@ pub fn trans_const(ccx: &mut CrateContext, r: &Repr, discr: Disr,
         }
         Univariant(ref st, _dro) => {
             assert_eq!(discr, 0);
-            C_struct(build_const_struct(ccx, st, vals))
+            let contents = build_const_struct(ccx, st, vals);
+            if st.packed {
+                C_packed_struct(contents)
+            } else {
+                C_struct(contents)
+            }
         }
         General(ref cases) => {
             let case = &cases[discr];