commit 3686787f6751867dc2bc64c4088b56e11d06fd03 (tree)
parent c4dc8515b6321828e1bfa404657f9a5f33aa1346
Author: Jacob Young <jacobly0@users.noreply.github.com>
Date: Tue, 6 Dec 2022 00:37:36 -0500
CBE: add windows-specific reserved identifiers
Diffstat:
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/src/codegen/c.zig b/src/codegen/c.zig
@@ -120,6 +120,7 @@ pub fn typeToCIdentifier(ty: Type, mod: *Module) std.fmt.Formatter(formatTypeAsC
}
const reserved_idents = std.ComptimeStringMap(void, .{
+ // C language
.{ "alignas", {
@setEvalBranchQuota(4000);
} },
@@ -215,14 +216,22 @@ const reserved_idents = std.ComptimeStringMap(void, .{
.{ "void", {} },
.{ "volatile", {} },
.{ "while ", {} },
+
+ // windows.h
+ .{ "max", {} },
+ .{ "min", {} },
});
fn isReservedIdent(ident: []const u8) bool {
- if (ident.len >= 2 and ident[0] == '_') {
+ if (ident.len >= 2 and ident[0] == '_') { // C language
switch (ident[1]) {
'A'...'Z', '_' => return true,
else => return false,
}
+ } else if (std.mem.startsWith(u8, ident, "DUMMYSTRUCTNAME") or
+ std.mem.startsWith(u8, ident, "DUMMYUNIONNAME"))
+ { // windows.h
+ return true;
} else return reserved_idents.has(ident);
}