diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2022-01-03 16:50:29 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-01-03 16:50:29 -0500 |
| commit | 81fa31c05456facea1d1963a1e7f665351fb248d (patch) | |
| tree | 8ea6dba0c5b8ec9e8ba9cdff48189da68c198dfd /src/type.zig | |
| parent | 850b053ea6b7d6f0f5e0e8dbcf37080ca012024f (diff) | |
| parent | d94303be2bcee33e7efba22a186fd06eaa809707 (diff) | |
| download | zig-81fa31c05456facea1d1963a1e7f665351fb248d.tar.gz zig-81fa31c05456facea1d1963a1e7f665351fb248d.zip | |
Merge pull request #10451 from ziglang/cache-mode
stage2: introduce CacheMode
Diffstat (limited to 'src/type.zig')
| -rw-r--r-- | src/type.zig | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/type.zig b/src/type.zig index 5bcf310fc4..b948093994 100644 --- a/src/type.zig +++ b/src/type.zig @@ -3106,9 +3106,9 @@ pub const Type = extern union { .c_ulonglong => return .{ .signedness = .unsigned, .bits = CType.ulonglong.sizeInBits(target) }, .enum_full, .enum_nonexhaustive => ty = ty.cast(Payload.EnumFull).?.data.tag_ty, - .enum_numbered => ty = self.castTag(.enum_numbered).?.data.tag_ty, + .enum_numbered => ty = ty.castTag(.enum_numbered).?.data.tag_ty, .enum_simple => { - const enum_obj = self.castTag(.enum_simple).?.data; + const enum_obj = ty.castTag(.enum_simple).?.data; const field_count = enum_obj.fields.count(); if (field_count == 0) return .{ .signedness = .unsigned, .bits = 0 }; return .{ .signedness = .unsigned, .bits = smallestUnsignedBits(field_count - 1) }; @@ -4603,7 +4603,18 @@ pub const CType = enum { .longlong, .ulonglong, => return 64, - .longdouble => @panic("TODO figure out what kind of float `long double` is on this target"), + .longdouble => switch (target.cpu.arch) { + .riscv64, + .aarch64, + .aarch64_be, + .aarch64_32, + .s390x, + .mips64, + .mips64el, + => return 128, + + else => return 80, + }, }, .windows, .uefi => switch (self) { |
