aboutsummaryrefslogtreecommitdiff
path: root/src/type.zig
diff options
context:
space:
mode:
authorEmily Bellows <emily.a.bellows@hey.com>2021-10-31 14:21:02 -0400
committerAndrew Kelley <andrew@ziglang.org>2021-11-02 12:45:29 -0400
commit674932e503e5b3a929f5a17eb4aa2fd2866219c3 (patch)
tree996ee589e424fde8f61fe6edd1a02001c49001e2 /src/type.zig
parent325bae7fc0025f7153bd1de1c28e642e896190b1 (diff)
downloadzig-674932e503e5b3a929f5a17eb4aa2fd2866219c3.tar.gz
zig-674932e503e5b3a929f5a17eb4aa2fd2866219c3.zip
C backend: implement ?void, and other zero sized types
Diffstat (limited to 'src/type.zig')
-rw-r--r--src/type.zig8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/type.zig b/src/type.zig
index a43c80cb2e..e02ec051cf 100644
--- a/src/type.zig
+++ b/src/type.zig
@@ -1805,7 +1805,13 @@ pub const Type = extern union {
.void,
=> 0,
- .@"struct" => return self.structFieldOffset(self.structFieldCount(), target),
+ .@"struct" => {
+ const field_count = self.structFieldCount();
+ if (field_count == 0) {
+ return 0;
+ }
+ return self.structFieldOffset(field_count, target);
+ },
.enum_simple, .enum_full, .enum_nonexhaustive, .enum_numbered => {
var buffer: Payload.Bits = undefined;
const int_tag_ty = self.intTagType(&buffer);