| ... | @@ -30369,7 +30369,9 @@ fn resolveStructLayout(sema: *Sema, ty: Type) CompileError!void { | ... | @@ -30369,7 +30369,9 @@ fn resolveStructLayout(sema: *Sema, ty: Type) CompileError!void { |
| 30369 | } | 30369 | } |
| 30370 | | 30370 | |
| 30371 | if (struct_obj.layout == .Auto and sema.mod.backendSupportsFeature(.field_reordering)) { | 30371 | if (struct_obj.layout == .Auto and sema.mod.backendSupportsFeature(.field_reordering)) { |
| 30372 | const optimized_order = blk: { | 30372 | const optimized_order = if (struct_obj.owner_decl == sema.owner_decl_index) |
| | 30373 | try sema.perm_arena.alloc(u32, struct_obj.fields.count()) |
| | 30374 | else blk: { |
| 30373 | const decl = sema.mod.declPtr(struct_obj.owner_decl); | 30375 | const decl = sema.mod.declPtr(struct_obj.owner_decl); |
| 30374 | var decl_arena = decl.value_arena.?.promote(sema.mod.gpa); | 30376 | var decl_arena = decl.value_arena.?.promote(sema.mod.gpa); |
| 30375 | defer decl.value_arena.?.* = decl_arena.state; | 30377 | defer decl.value_arena.?.* = decl_arena.state; |