diff options
| author | klutzy <klutzytheklutzy@gmail.com> | 2014-09-18 22:37:46 +0900 |
|---|---|---|
| committer | klutzy <klutzytheklutzy@gmail.com> | 2014-09-18 22:53:38 +0900 |
| commit | 0d70d57617ba4567d8398c5f8916fc35e9eb67ac (patch) | |
| tree | 526c6f077c878b7cb91d28b204dd5a70d92fb7b5 /src/libstd/rt | |
| parent | 9508faa2270a35595670cb3ca610ad17abff272d (diff) | |
| download | rust-0d70d57617ba4567d8398c5f8916fc35e9eb67ac.tar.gz rust-0d70d57617ba4567d8398c5f8916fc35e9eb67ac.zip | |
std::rt::backtrace: Fix backtrace on Win64
`struct CONTEXT` and its substructs require 16-byte alignment.
Diffstat (limited to 'src/libstd/rt')
| -rw-r--r-- | src/libstd/rt/backtrace.rs | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/libstd/rt/backtrace.rs b/src/libstd/rt/backtrace.rs index 5557ef9943b..f4887a143d1 100644 --- a/src/libstd/rt/backtrace.rs +++ b/src/libstd/rt/backtrace.rs @@ -831,9 +831,11 @@ mod imp { mod arch { use libc::{c_longlong, c_ulonglong}; use libc::types::os::arch::extra::{WORD, DWORD, DWORDLONG}; + use simd; #[repr(C)] pub struct CONTEXT { + _align_hack: [simd::u64x2, ..0], // FIXME align on 16-byte P1Home: DWORDLONG, P2Home: DWORDLONG, P3Home: DWORDLONG, @@ -892,12 +894,14 @@ mod imp { #[repr(C)] pub struct M128A { + _align_hack: [simd::u64x2, ..0], // FIXME align on 16-byte Low: c_ulonglong, High: c_longlong } #[repr(C)] pub struct FLOATING_SAVE_AREA { + _align_hack: [simd::u64x2, ..0], // FIXME align on 16-byte _Dummy: [u8, ..512] // FIXME: Fill this out } |
