mirror of
https://github.com/ziglang/zig.git
synced 2026-01-21 06:45:24 +00:00
cbe: fix code header being omitted from the output
This commit is contained in:
parent
043079d765
commit
720cd43fc1
@ -154,6 +154,7 @@ pub const Env = enum {
|
||||
else => Env.ast_gen.supports(feature),
|
||||
},
|
||||
.cbe => switch (feature) {
|
||||
.legalize,
|
||||
.c_backend,
|
||||
.c_linker,
|
||||
=> true,
|
||||
|
||||
@ -63,13 +63,20 @@ const String = extern struct {
|
||||
.start = 0,
|
||||
.len = 0,
|
||||
};
|
||||
|
||||
fn concat(lhs: String, rhs: String) String {
|
||||
assert(lhs.start + lhs.len == rhs.start);
|
||||
return .{
|
||||
.start = lhs.start,
|
||||
.len = lhs.len + rhs.len,
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
/// Per-declaration data.
|
||||
pub const AvBlock = struct {
|
||||
fwd_decl: String = .empty,
|
||||
code: String = .empty,
|
||||
code_header: String = .empty,
|
||||
/// Each `Decl` stores a set of used `CType`s. In `flush()`, we iterate
|
||||
/// over each `Decl` and generate the definition for each used `CType` once.
|
||||
ctype_pool: codegen.CType.Pool = .empty,
|
||||
@ -205,9 +212,10 @@ pub fn updateFunc(
|
||||
.ctype_pool = mir.c.ctype_pool.move(),
|
||||
.lazy_fns = mir.c.lazy_fns.move(),
|
||||
};
|
||||
gop.value_ptr.code = try self.addString(mir.c.code);
|
||||
gop.value_ptr.fwd_decl = try self.addString(mir.c.fwd_decl);
|
||||
gop.value_ptr.code_header = try self.addString(mir.c.code_header);
|
||||
const code_header = try self.addString(mir.c.code_header);
|
||||
const code = try self.addString(mir.c.code);
|
||||
gop.value_ptr.code = code_header.concat(code);
|
||||
try self.addUavsFromCodegen(&mir.c.uavs);
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user