From bd21f499dcd1b50a6ac39644303a9647d16adb0f Mon Sep 17 00:00:00 2001 From: Veikka Tuominen Date: Thu, 4 Aug 2022 11:37:09 +0300 Subject: [PATCH] Type: adjust C type sizes --- lib/std/target.zig | 3 ++- src/type.zig | 66 +++++++++++++++++++++++++++------------------- 2 files changed, 41 insertions(+), 28 deletions(-) diff --git a/lib/std/target.zig b/lib/std/target.zig index d15eae7dc5..f77f73bce0 100644 --- a/lib/std/target.zig +++ b/lib/std/target.zig @@ -1750,10 +1750,11 @@ pub const Target = struct { else => false, }, f64 => switch (target.cpu.arch) { + .aarch64 => target.isDarwin(), + .x86_64, .i386, .riscv64, - .aarch64, .aarch64_be, .aarch64_32, .s390x, diff --git a/src/type.zig b/src/type.zig index 3b1b0dd59d..d53158735a 100644 --- a/src/type.zig +++ b/src/type.zig @@ -6530,6 +6530,11 @@ pub const CType = enum { .long, .ulong => return 32, .longlong, .ulonglong, .longdouble => return 64, }, + .avr => switch (self) { + .short, .ushort, .int, .uint => return 16, + .long, .ulong, .longdouble => return 32, + .longlong, .ulonglong => return 64, + }, else => switch (self) { .short, .ushort => return 16, .int, .uint => return 32, @@ -6568,31 +6573,42 @@ pub const CType = enum { .emscripten, .plan9, .solaris, - => switch (self) { - .short, .ushort => return 16, - .int, .uint => return 32, - .long, .ulong => return target.cpu.arch.ptrBitWidth(), - .longlong, .ulonglong => return 64, - .longdouble => switch (target.cpu.arch) { - .i386, .x86_64 => return 80, + .haiku, + .ananas, + .fuchsia, + .minix, + => switch (target.cpu.arch) { + .avr => switch (self) { + .short, .ushort, .int, .uint => return 16, + .long, .ulong, .longdouble => return 32, + .longlong, .ulonglong => return 64, + }, + else => switch (self) { + .short, .ushort => return 16, + .int, .uint => return 32, + .long, .ulong => return target.cpu.arch.ptrBitWidth(), + .longlong, .ulonglong => return 64, + .longdouble => switch (target.cpu.arch) { + .i386, .x86_64 => return 80, - .riscv64, - .aarch64, - .aarch64_be, - .aarch64_32, - .s390x, - .mips64, - .mips64el, - .sparc, - .sparc64, - .sparcel, - .powerpc, - .powerpcle, - .powerpc64, - .powerpc64le, - => return 128, + .riscv64, + .aarch64, + .aarch64_be, + .aarch64_32, + .s390x, + .mips64, + .mips64el, + .sparc, + .sparc64, + .sparcel, + .powerpc, + .powerpcle, + .powerpc64, + .powerpc64le, + => return 128, - else => return 64, + else => return 64, + }, }, }, @@ -6612,14 +6628,10 @@ pub const CType = enum { }, }, - .ananas, .cloudabi, - .fuchsia, .kfreebsd, .lv2, .zos, - .haiku, - .minix, .rtems, .nacl, .aix,