astgen: fix container_field extra_data guard, enable aes_ocb, SmpAllocator, Mir
The AST_NODE_CONTAINER_FIELD case in structDeclInner had an incorrect guard `if (nd.rhs != 0)` before reading align/value from extra_data. Since rhs is an extra_data index (not a node), 0 is a valid index. Removing the guard fixes 3-5 missing instructions in files where the first extra_data entry happens to be a container_field's align+value. Also fix clang-format: addBuiltinValue arg wrapping, for-loop semicolons. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -6493,8 +6493,8 @@ static uint32_t ptrTypeExpr(GenZir* gz, Scope* scope, uint32_t node) {
|
||||
ag->source_line = saved_source_line;
|
||||
ag->source_column = saved_source_column;
|
||||
// AstGen.zig:3880-3881
|
||||
uint32_t addrspace_ty = addBuiltinValue(gz, addrspace_node,
|
||||
ZIR_BUILTIN_VALUE_ADDRESS_SPACE);
|
||||
uint32_t addrspace_ty = addBuiltinValue(
|
||||
gz, addrspace_node, ZIR_BUILTIN_VALUE_ADDRESS_SPACE);
|
||||
ResultLoc asrl = { .tag = RL_COERCED_TY,
|
||||
.data = addrspace_ty,
|
||||
.src_node = 0,
|
||||
@@ -8139,7 +8139,7 @@ static bool nodeIsTriviallyZero(const Ast* tree, uint32_t node) {
|
||||
// Handle prefixed forms: 0b, 0o, 0x (case insensitive).
|
||||
if (c == 'b' || c == 'B' || c == 'o' || c == 'O' || c == 'x' || c == 'X') {
|
||||
// Check that all remaining digits are '0' or '_'.
|
||||
for (uint32_t i = tok_start + 2; ; i++) {
|
||||
for (uint32_t i = tok_start + 2;; i++) {
|
||||
char d = source[i];
|
||||
if (d == '0' || d == '_')
|
||||
continue;
|
||||
@@ -17514,10 +17514,8 @@ static uint32_t structDeclInner(AstGenCtx* ag, GenZir* gz, Scope* scope,
|
||||
break;
|
||||
case AST_NODE_CONTAINER_FIELD:
|
||||
// lhs = type_expr, rhs = extra index to {align, value}
|
||||
if (nd.rhs != 0) {
|
||||
align_node = tree->extra_data.arr[nd.rhs];
|
||||
value_node = tree->extra_data.arr[nd.rhs + 1];
|
||||
}
|
||||
align_node = tree->extra_data.arr[nd.rhs];
|
||||
value_node = tree->extra_data.arr[nd.rhs + 1];
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -506,7 +506,7 @@ const corpus_files = .{
|
||||
"../lib/std/crypto/aes/aesni.zig",
|
||||
"../lib/std/crypto/aes/armcrypto.zig",
|
||||
"../lib/std/crypto/aes_gcm.zig",
|
||||
//"../lib/std/crypto/aes_ocb.zig",
|
||||
"../lib/std/crypto/aes_ocb.zig",
|
||||
"../lib/std/crypto/aes/soft.zig",
|
||||
"../lib/std/crypto/aes.zig",
|
||||
"../lib/std/crypto/argon2.zig",
|
||||
@@ -644,7 +644,7 @@ const corpus_files = .{
|
||||
"../lib/std/heap/memory_pool.zig",
|
||||
"../lib/std/heap/PageAllocator.zig",
|
||||
"../lib/std/heap/sbrk_allocator.zig",
|
||||
//"../lib/std/heap/SmpAllocator.zig",
|
||||
"../lib/std/heap/SmpAllocator.zig",
|
||||
"../lib/std/heap/ThreadSafeAllocator.zig",
|
||||
"../lib/std/heap/WasmAllocator.zig",
|
||||
"../lib/std/heap.zig",
|
||||
@@ -1008,7 +1008,7 @@ const corpus_files = .{
|
||||
//"../src/codegen/aarch64/Assemble.zig",
|
||||
"../src/codegen/aarch64/Disassemble.zig",
|
||||
"../src/codegen/aarch64/encoding.zig",
|
||||
//"../src/codegen/aarch64/Mir.zig",
|
||||
"../src/codegen/aarch64/Mir.zig",
|
||||
"../src/codegen/aarch64/Select.zig",
|
||||
"../src/codegen/aarch64.zig",
|
||||
"../src/codegen/arm/abi.zig",
|
||||
|
||||
Reference in New Issue
Block a user