feature. See also
. The project being documented here (as the example) is the Zig library itself.
Translator.createZeroValueNode
fn createZeroValueNode(
t: *Translator,
qt: QualType,
type_node: ZigNode,
suppress_as: SuppressCast,
) !ZigNode
File
Code
fn createZeroValueNode(
t: *Translator,
qt: QualType,
type_node: ZigNode,
suppress_as: SuppressCast,
) !ZigNode {
switch (qt.base(t.comp).type) {
.bool => return ZigTag.false_literal.init(),
.int, .bit_int, .float => {
const zero_literal = ZigTag.zero_literal.init();
return switch (suppress_as) {
.with_as => try t.createBinOpNode(.as, type_node, zero_literal),
.no_as => zero_literal,
};
},
.pointer => {
const null_literal = ZigTag.null_literal.init();
return switch (suppress_as) {
.with_as => try t.createBinOpNode(.as, type_node, null_literal),
.no_as => null_literal,
};
},
else => {},
}
return try ZigTag.std_mem_zeroes.create(t.arena, type_node);
}