commit 2fefc0b5c7618012916e75e3058b381cf48f0ebb (tree)
parent 648f592db10d3354dcf7e36264291dd82f4d0e3a
Author: Tw <tw19881113@gmail.com>
Date: Sat, 25 Nov 2023 19:39:37 +0800
Zir: add missing extra index for linksection_or_addspace
Closes #18052
Closes #18104
Signed-off-by: Tw <tw19881113@gmail.com>
Diffstat:
3 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/src/Zir.zig b/src/Zir.zig
@@ -3416,8 +3416,9 @@ pub const DeclIterator = struct {
it.extra_index += 5; // src_hash(4) + line(1)
const name = it.zir.nullTerminatedString(it.zir.extra[it.extra_index]);
it.extra_index += 3; // name(1) + value(1) + doc_comment(1)
- it.extra_index += @as(u1, @truncate(flags >> 2));
- it.extra_index += @as(u1, @truncate(flags >> 3));
+ it.extra_index += @as(u1, @truncate(flags >> 2)); // align
+ it.extra_index += @as(u1, @truncate(flags >> 3)); // link_section
+ it.extra_index += @as(u1, @truncate(flags >> 3)); // address_space
return Item{
.sub_index = sub_index,
diff --git a/test/behavior.zig b/test/behavior.zig
@@ -228,6 +228,7 @@ test {
_ = @import("behavior/type.zig");
_ = @import("behavior/type_info.zig");
_ = @import("behavior/type_info_only_pub_decls.zig");
+ _ = @import("behavior/type_info_mul_linksection_addrspace_decls.zig");
_ = @import("behavior/typename.zig");
_ = @import("behavior/undefined.zig");
_ = @import("behavior/underscore.zig");
diff --git a/test/behavior/type_info_mul_linksection_addrspace_decls.zig b/test/behavior/type_info_mul_linksection_addrspace_decls.zig
@@ -0,0 +1,12 @@
+const std = @import("std");
+const expect = std.testing.expect;
+
+pub const a linksection("sec_a") = 0;
+pub const b linksection("sec_b") = 0;
+pub const c addrspace("space_c") = 0;
+pub const d addrspace("space_d") = 0;
+
+test {
+ const decls = @typeInfo(@This()).Struct.decls;
+ try expect(decls.len == 4);
+}