Merge pull request #12256 from Vexu/stage2

stage2 typeInfo UAF fix + more
This commit is contained in:
Andrew Kelley
2022-07-27 16:11:07 -07:00
committed by GitHub
5 changed files with 49 additions and 10 deletions

View File

@@ -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,
}
}