diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2013-05-30 17:08:49 -0700 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2013-05-30 18:17:32 -0700 |
| commit | 40b455792d441ef431dfb4de6bdfe082d104269b (patch) | |
| tree | e4720f037b09d6dff5212ecfc7a3dc459e92d6b1 | |
| parent | 3a3bf8bdef513c889117ab6a90b463fc0b2e2642 (diff) | |
| download | rust-40b455792d441ef431dfb4de6bdfe082d104269b.tar.gz rust-40b455792d441ef431dfb4de6bdfe082d104269b.zip | |
librustc: Bump the offset when translating const structs. Closes #6352.
| -rw-r--r-- | src/librustc/middle/trans/adt.rs | 1 | ||||
| -rw-r--r-- | src/test/run-pass/const-struct-offsets.rs | 14 |
2 files changed, 15 insertions, 0 deletions
diff --git a/src/librustc/middle/trans/adt.rs b/src/librustc/middle/trans/adt.rs index 4d1c4851e1f..b26f80fc355 100644 --- a/src/librustc/middle/trans/adt.rs +++ b/src/librustc/middle/trans/adt.rs @@ -563,6 +563,7 @@ fn build_const_struct(ccx: @CrateContext, st: &Struct, vals: &[ValueRef]) vals[i] }; cfields.push(val); + offset += machine::llsize_of_alloc(ccx, llty) as u64 } return cfields; diff --git a/src/test/run-pass/const-struct-offsets.rs b/src/test/run-pass/const-struct-offsets.rs new file mode 100644 index 00000000000..0966fa055bf --- /dev/null +++ b/src/test/run-pass/const-struct-offsets.rs @@ -0,0 +1,14 @@ +enum Foo { + IntVal(i32), + Int64Val(i64) +} + +struct Bar { + i: i32, + v: Foo +} + +static bar: Bar = Bar { i: 0, v: IntVal(0) }; + +fn main() {} + |
