aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Zir.zig5
-rw-r--r--test/behavior.zig1
-rw-r--r--test/behavior/type_info_mul_linksection_addrspace_decls.zig12
3 files changed, 16 insertions, 2 deletions
diff --git a/src/Zir.zig b/src/Zir.zig
index 4fecfd3c50..1f1da17949 100644
--- 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
index f288606a07..287a9d7ea8 100644
--- 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
new file mode 100644
index 0000000000..cfb9b556df
--- /dev/null
+++ 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);
+}