| ... | ... | @@ -2027,10 +2027,10 @@ pub fn genDecl(o: *Object) !void { |
| 2027 | 2027 | .val = o.dg.decl.val, |
| 2028 | 2028 | }; |
| 2029 | 2029 | if (tv.val.tag() == .extern_fn) { |
| 2030 | | const writer = o.writer(); |
| 2031 | | try writer.writeAll("ZIG_EXTERN_C "); |
| 2032 | | try o.dg.renderFunctionSignature(writer, .Forward); |
| 2033 | | try writer.writeAll(";\n"); |
| 2030 | const fwd_decl_writer = o.dg.fwd_decl.writer(); |
| 2031 | try fwd_decl_writer.writeAll("ZIG_EXTERN_C "); |
| 2032 | try o.dg.renderFunctionSignature(fwd_decl_writer, .Forward); |
| 2033 | try fwd_decl_writer.writeAll(";\n"); |
| 2034 | 2034 | } else if (tv.val.castTag(.variable)) |var_payload| { |
| 2035 | 2035 | const variable: *Module.Var = var_payload.data; |
| 2036 | 2036 | const is_global = o.dg.declIsGlobal(tv) or variable.is_extern; |
| ... | ... | @@ -2055,7 +2055,6 @@ pub fn genDecl(o: *Object) !void { |
| 2055 | 2055 | return; |
| 2056 | 2056 | } |
| 2057 | 2057 | |
| 2058 | | try o.indent_writer.insertNewline(); |
| 2059 | 2058 | const w = o.writer(); |
| 2060 | 2059 | try o.dg.renderTypeAndName(w, o.dg.decl.ty, decl_c_value, .Mut, o.dg.decl.@"align", .Complete); |
| 2061 | 2060 | try w.writeAll(" = "); |
| ... | ... | @@ -2065,15 +2064,18 @@ pub fn genDecl(o: *Object) !void { |
| 2065 | 2064 | try w.writeByte(';'); |
| 2066 | 2065 | try o.indent_writer.insertNewline(); |
| 2067 | 2066 | } else { |
| 2067 | const decl_c_value: CValue = .{ .decl = o.dg.decl_index }; |
| 2068 | |
| 2069 | const fwd_decl_writer = o.dg.fwd_decl.writer(); |
| 2070 | try fwd_decl_writer.writeAll("static "); |
| 2071 | try o.dg.renderTypeAndName(fwd_decl_writer, tv.ty, decl_c_value, .Mut, o.dg.decl.@"align", .Complete); |
| 2072 | try fwd_decl_writer.writeAll(";\n"); |
| 2073 | |
| 2068 | 2074 | const writer = o.writer(); |
| 2069 | 2075 | try writer.writeAll("static "); |
| 2070 | | |
| 2071 | 2076 | // TODO ask the Decl if it is const |
| 2072 | 2077 | // https://github.com/ziglang/zig/issues/7582 |
| 2073 | | |
| 2074 | | const decl_c_value: CValue = .{ .decl = o.dg.decl_index }; |
| 2075 | 2078 | try o.dg.renderTypeAndName(writer, tv.ty, decl_c_value, .Mut, o.dg.decl.@"align", .Complete); |
| 2076 | | |
| 2077 | 2079 | try writer.writeAll(" = "); |
| 2078 | 2080 | try o.dg.renderValue(writer, tv.ty, tv.val, .Initializer); |
| 2079 | 2081 | try writer.writeAll(";\n"); |