aboutsummaryrefslogtreecommitdiff
path: root/src/Module.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2022-07-27 16:11:07 -0700
committerGitHub <noreply@github.com>2022-07-27 16:11:07 -0700
commitdfc7493dcb049788b92137ca09b8bd47cee23865 (patch)
treedfd6c4da8bc1ff71e0ecc8a1d3a1ac29c433bc64 /src/Module.zig
parent90f23e131eadae427c4253fb658002633263b82e (diff)
parent793db63746ca044927743ee94405dad2a3f02fb8 (diff)
downloadzig-dfc7493dcb049788b92137ca09b8bd47cee23865.tar.gz
zig-dfc7493dcb049788b92137ca09b8bd47cee23865.zip
Merge pull request #12256 from Vexu/stage2
stage2 typeInfo UAF fix + more
Diffstat (limited to 'src/Module.zig')
-rw-r--r--src/Module.zig10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/Module.zig b/src/Module.zig
index da69dc9781..4576538a35 100644
--- a/src/Module.zig
+++ b/src/Module.zig
@@ -1220,6 +1220,7 @@ pub const Union = struct {
};
const node = owner_decl.relativeToNodeIndex(u.node_offset);
const node_tags = tree.nodes.items(.tag);
+ var buf: [2]Ast.Node.Index = undefined;
switch (node_tags[node]) {
.container_decl,
.container_decl_trailing,
@@ -1231,6 +1232,15 @@ pub const Union = struct {
.container_decl_arg,
.container_decl_arg_trailing,
=> return queryFieldSrc(tree.*, query, file, tree.containerDeclArg(node)),
+ .tagged_union,
+ .tagged_union_trailing,
+ => return queryFieldSrc(tree.*, query, file, tree.taggedUnion(node)),
+ .tagged_union_two,
+ .tagged_union_two_trailing,
+ => return queryFieldSrc(tree.*, query, file, tree.taggedUnionTwo(&buf, node)),
+ .tagged_union_enum_tag,
+ .tagged_union_enum_tag_trailing,
+ => return queryFieldSrc(tree.*, query, file, tree.taggedUnionEnumTag(node)),
else => unreachable,
}
}