diff options
author | John Hodge <tpg@mutabah.net> | 2018-12-15 15:40:54 +0800 |
---|---|---|
committer | John Hodge <tpg@mutabah.net> | 2018-12-15 15:40:54 +0800 |
commit | f893005e2b0a207826d56782afcd456754adb643 (patch) | |
tree | 977dcb234882d47c94e6ba46540ec0868cb986e1 /src/trans/target.hpp | |
parent | f6209dce15ce863e15dc3063d78e43eeb0db25ee (diff) | |
download | mrust-f893005e2b0a207826d56782afcd456754adb643.tar.gz |
Trans Target - Fix MSVC build
Diffstat (limited to 'src/trans/target.hpp')
-rw-r--r-- | src/trans/target.hpp | 42 |
1 files changed, 30 insertions, 12 deletions
diff --git a/src/trans/target.hpp b/src/trans/target.hpp index b6f04a42..4e0309dd 100644 --- a/src/trans/target.hpp +++ b/src/trans/target.hpp @@ -20,26 +20,44 @@ enum class CodegenMode // NOTE: The default architecture is an unnamed 32-bit little-endian arch with all types natively aligned struct TargetArch { - ::std::string m_name = ""; - unsigned m_pointer_bits = 32; - bool m_big_endian = false; + ::std::string m_name; + unsigned m_pointer_bits; + bool m_big_endian; - struct { + struct Atomics { bool u8 = true; bool u16 = true; bool u32 = true; bool u64 = false; bool ptr = true; + Atomics(bool u8 = true, bool u16 = true, bool u32 = true, bool u64 = false, bool ptr = true) + :u8(u8) + ,u16(u16) + ,u32(u32) + ,u64(u64) + ,ptr(ptr) + { + } } m_atomics; - struct { - uint8_t u16 = 2; - uint8_t u32 = 4; - uint8_t u64 = 8; - uint8_t u128 = 16; - uint8_t f32 = 4; - uint8_t f64 = 8; - uint8_t ptr = 4; + struct Alignments { + uint8_t u16; + uint8_t u32; + uint8_t u64; + uint8_t u128; + uint8_t f32; + uint8_t f64; + uint8_t ptr; + Alignments(uint8_t u16 = 2, uint8_t u32 = 4, uint8_t u64 = 8, uint8_t u128 = 16, uint8_t f32 = 4, uint8_t f64 = 8, uint8_t ptr = 4) + :u16 (u16) + ,u32 (u32 ) + ,u64 (u64 ) + ,u128(u128) + ,f32 (f32 ) + ,f64 (f64 ) + ,ptr (ptr ) + { + } } m_alignments; }; struct BackendOptsC |