authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2022-12-06 00:37:36-05:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-12-06 12:27:28-07:00
log3686787f6751867dc2bc64c4088b56e11d06fd03
treeadcef6d4c39d557a60225b8156d36ebb80647c6a
parentc4dc8515b6321828e1bfa404657f9a5f33aa1346

CBE: add windows-specific reserved identifiers


1 files changed, 10 insertions(+), 1 deletions(-)

src/codegen/c.zig+10-1
...@@ -120,6 +120,7 @@ pub fn typeToCIdentifier(ty: Type, mod: *Module) std.fmt.Formatter(formatTypeAsC...@@ -120,6 +120,7 @@ pub fn typeToCIdentifier(ty: Type, mod: *Module) std.fmt.Formatter(formatTypeAsC
120}120}
121121
122const reserved_idents = std.ComptimeStringMap(void, .{122const reserved_idents = std.ComptimeStringMap(void, .{
123 // C language
123 .{ "alignas", {124 .{ "alignas", {
124 @setEvalBranchQuota(4000);125 @setEvalBranchQuota(4000);
125 } },126 } },
...@@ -215,14 +216,22 @@ const reserved_idents = std.ComptimeStringMap(void, .{...@@ -215,14 +216,22 @@ const reserved_idents = std.ComptimeStringMap(void, .{
215 .{ "void", {} },216 .{ "void", {} },
216 .{ "volatile", {} },217 .{ "volatile", {} },
217 .{ "while ", {} },218 .{ "while ", {} },
219
220 // windows.h
221 .{ "max", {} },
222 .{ "min", {} },
218});223});
219224
220fn isReservedIdent(ident: []const u8) bool {225fn isReservedIdent(ident: []const u8) bool {
221 if (ident.len >= 2 and ident[0] == '_') {226 if (ident.len >= 2 and ident[0] == '_') { // C language
222 switch (ident[1]) {227 switch (ident[1]) {
223 'A'...'Z', '_' => return true,228 'A'...'Z', '_' => return true,
224 else => return false,229 else => return false,
225 }230 }
231 } else if (std.mem.startsWith(u8, ident, "DUMMYSTRUCTNAME") or
232 std.mem.startsWith(u8, ident, "DUMMYUNIONNAME"))
233 { // windows.h
234 return true;
226 } else return reserved_idents.has(ident);235 } else return reserved_idents.has(ident);
227}236}
228237