diff options
| author | Luqman Aden <laden@csclub.uwaterloo.ca> | 2013-10-12 21:42:24 -0400 |
|---|---|---|
| committer | Luqman Aden <laden@csclub.uwaterloo.ca> | 2013-10-12 21:42:24 -0400 |
| commit | 4b4b2136e048c39c60c8289f4cd1c870d4aaaeb0 (patch) | |
| tree | 3a2b9966e294f6ce147a05868b18992de77f3535 /src | |
| parent | c6e3501da14784cd2401dded3b53f3ce3405b4ec (diff) | |
| download | rust-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.rs | 7 |
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]; |
