From 3686787f6751867dc2bc64c4088b56e11d06fd03 Mon Sep 17 00:00:00 2001 From: Jacob Young Date: Tue, 6 Dec 2022 00:37:36 -0500 Subject: [PATCH] CBE: add windows-specific reserved identifiers --- src/codegen/c.zig | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/codegen/c.zig b/src/codegen/c.zig index f32d53ef0d..677a227c6c 100644 --- 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); }