C backend: fix emitting '$' in identifier names

This causes warnings from clang when compiled.
This commit is contained in:
Andrew Kelley 2021-05-11 14:51:21 -07:00
parent fb39526159
commit a74632b50a

View File

@ -61,12 +61,13 @@ fn formatIdent(
for (ident) |c, i| { for (ident) |c, i| {
switch (c) { switch (c) {
'a'...'z', 'A'...'Z', '_' => try writer.writeByte(c), 'a'...'z', 'A'...'Z', '_' => try writer.writeByte(c),
'.' => try writer.writeByte('_'),
'0'...'9' => if (i == 0) { '0'...'9' => if (i == 0) {
try writer.print("${x:2}", .{c}); try writer.print("_{x:2}", .{c});
} else { } else {
try writer.writeByte(c); try writer.writeByte(c);
}, },
else => try writer.print("${x:2}", .{c}), else => try writer.print("_{x:2}", .{c}),
} }
} }
} }
@ -599,7 +600,6 @@ pub fn genDecl(o: *Object) !void {
} }
try w.writeAll(";"); try w.writeAll(";");
try o.indent_writer.insertNewline(); try o.indent_writer.insertNewline();
} else { } else {
const writer = o.writer(); const writer = o.writer();
try writer.writeAll("static "); try writer.writeAll("static ");