aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVexu <git@vexu.eu>2020-02-13 09:09:49 +0200
committerAndrew Kelley <andrew@ziglang.org>2020-02-13 12:21:28 -0500
commitfa377dbd1510fc733607afe47dc04dfe55d5ff88 (patch)
treec69eb6c3be0a1747768e7137bd26ad9e24a7e69e
parent1fb70497d24da9c0cb6f0e025948fa40eaaa36af (diff)
downloadzig-fa377dbd1510fc733607afe47dc04dfe55d5ff88.tar.gz
zig-fa377dbd1510fc733607afe47dc04dfe55d5ff88.zip
fix c tokenizer bug
-rw-r--r--lib/std/c/tokenizer.zig4
-rw-r--r--test/translate_c.zig5
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",