diff options
| author | Vexu <git@vexu.eu> | 2020-02-13 09:09:49 +0200 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2020-02-13 12:21:28 -0500 |
| commit | fa377dbd1510fc733607afe47dc04dfe55d5ff88 (patch) | |
| tree | c69eb6c3be0a1747768e7137bd26ad9e24a7e69e | |
| parent | 1fb70497d24da9c0cb6f0e025948fa40eaaa36af (diff) | |
| download | zig-fa377dbd1510fc733607afe47dc04dfe55d5ff88.tar.gz zig-fa377dbd1510fc733607afe47dc04dfe55d5ff88.zip | |
fix c tokenizer bug
| -rw-r--r-- | lib/std/c/tokenizer.zig | 4 | ||||
| -rw-r--r-- | test/translate_c.zig | 5 |
2 files changed, 9 insertions, 0 deletions
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", |
