about summary refs log tree commit diff
path: root/src/libstd/rt
diff options
context:
space:
mode:
authorklutzy <klutzytheklutzy@gmail.com>2014-09-18 22:37:46 +0900
committerklutzy <klutzytheklutzy@gmail.com>2014-09-18 22:53:38 +0900
commit0d70d57617ba4567d8398c5f8916fc35e9eb67ac (patch)
tree526c6f077c878b7cb91d28b204dd5a70d92fb7b5 /src/libstd/rt
parent9508faa2270a35595670cb3ca610ad17abff272d (diff)
downloadrust-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.rs4
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
         }