diff --git a/lib/std/c/tokenizer.zig b/lib/std/c/tokenizer.zig index a7342ba7f9..66e6d9d52d 100644 --- a/lib/std/c/tokenizer.zig +++ b/lib/std/c/tokenizer.zig @@ -651,6 +651,7 @@ pub const Tokenizer = struct { state = .StringLiteral; }, else => { + self.index -= 1; state = .Identifier; }, }, @@ -660,6 +661,7 @@ pub const Tokenizer = struct { state = .StringLiteral; }, else => { + self.index -= 1; state = .Identifier; }, }, @@ -673,6 +675,7 @@ pub const Tokenizer = struct { state = .StringLiteral; }, else => { + self.index -= 1; state = .Identifier; }, }, @@ -686,6 +689,7 @@ pub const Tokenizer = struct { state = .StringLiteral; }, else => { + self.index -= 1; state = .Identifier; }, }, diff --git a/test/translate_c.zig b/test/translate_c.zig index a2eb69100f..b5c889030d 100644 --- a/test/translate_c.zig +++ b/test/translate_c.zig @@ -1362,12 +1362,17 @@ pub fn addCases(cases: *tests.TranslateCContext) void { cases.add("basic macro function", \\extern int c; \\#define BASIC(c) (c*2) + \\#define FOO(L,b) (L + b) , &[_][]const u8{ \\pub extern var c: c_int; , \\pub inline fn BASIC(c_1: var) @TypeOf(c_1 * 2) { \\ return c_1 * 2; \\} + , + \\pub inline fn FOO(L: var, b: var) @TypeOf(L + b) { + \\ return L + b; + \\} }); cases.add("macro defines string literal with hex",