From 5d4b1ad4c4118be865db5ac46a28f0df9ccc12b4 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Wed, 6 Jan 2021 09:46:50 -0600 Subject: [PATCH] fixed the broken test case and a gnarly bug --- bin/onyx | Bin 308848 -> 308848 bytes onyx.exe | Bin 393216 -> 393216 bytes src/onyxtypes.c | 4 ++-- tests/aoc-2020/day14.onyx | 1 - 4 files changed, 2 insertions(+), 3 deletions(-) diff --git a/bin/onyx b/bin/onyx index c30ab5a1437ed471a470bcf639172d30365b0e20..75d65de0283e28d944bf073842f5e26ec67bb665 100755 GIT binary patch delta 92 zcmV-i0Hgo#>=N+o60m3k6ge+F8LL?SK@6-SR_h`iTN~9x$b)qNrS`)NQ*!i=_vgF|F>Z20geFySBLNF0f+DE0=Mt#1A)s88Ys~K delta 92 zcmV-i0Hgo#>=N+o60m3k6dz7U+JX6*QGrb~5fe_?UZkhl+Jk%pw|oNu#^oMFBqRaF yNQ*=yD1$^KAOT5(#0W@>Kp5#N{Qv)Ekhfsz0geFyRfq5D0f+DE0=Mt#1A)t3Z7H|_ diff --git a/onyx.exe b/onyx.exe index e47275a89f782ea3125511cd3a7958af34eeeb54..512452fb5000ffb1b48c997066ebfd0608948d1e 100644 GIT binary patch delta 26203 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

xdD;fgh&uR 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 diff --git a/src/onyxtypes.c b/src/onyxtypes.c index d346d960..3d8bb299 100644 --- a/src/onyxtypes.c +++ b/src/onyxtypes.c @@ -395,8 +395,8 @@ Type* type_build_from_ast(bh_allocator alloc, AstType* type_node) { u32 type_size = type_size_of((*member)->type); if (!is_union) offset += type_size; - if (!is_union) size += type_size; - else size = bh_max(size, type_size); + if (!is_union) size = offset; + else size = bh_max(size, type_size); idx++; } diff --git a/tests/aoc-2020/day14.onyx b/tests/aoc-2020/day14.onyx index 9d23a103..380dc1cc 100644 --- a/tests/aoc-2020/day14.onyx +++ b/tests/aoc-2020/day14.onyx @@ -71,7 +71,6 @@ bitmask_iter_next :: proc (use bmi: ^BitmaskIter) -> u64 { done = true; } - printf("val is %l\n", val); return val; } -- 2.25.1