| author | |
| committer | |
| log | 4ecc384f99e5f4c5a320714484866fb48699245f |
| tree | 3b520a0ef4fe06337a76bee353b70e9df51c46ab |
| parent | c96f85852ed2e1d5b2ecb43770a3c41d7f38f284 |
The larger alignment on this platform means that long double reports
a sizeof 16 bytes, but it's underlying size is really just the 10
bytes of `f80`
C doesn't give us a way to see the "underlying" size of a type, so
this has to be caught by hand or by monitoring runtime memory. Luckily,
x86 and x86-64 are the only platforms that seem to use a non-power-of-two
type like this.1 files changed, 1 insertions(+), 1 deletions(-)
src/type.zig+1-1| ... | @@ -6827,7 +6827,7 @@ pub const CType = enum { | ... | @@ -6827,7 +6827,7 @@ pub const CType = enum { |
| 6827 | }, | 6827 | }, |
| 6828 | .longlong, .ulonglong, .double => return 64, | 6828 | .longlong, .ulonglong, .double => return 64, |
| 6829 | .longdouble => switch (target.abi) { | 6829 | .longdouble => switch (target.abi) { |
| 6830 | .gnu, .gnuilp32, .cygnus => return 128, | 6830 | .gnu, .gnuilp32, .cygnus => return 80, |
| 6831 | else => return 64, | 6831 | else => return 64, |
| 6832 | }, | 6832 | }, |
| 6833 | }, | 6833 | }, |