Commit 2a728f6e5f

Ryan Liptak <squeek502@hotmail.com>
2021-09-21 02:10:32
tokenizer: Fix index-out-of-bounds on string_literal_backslash right before EOF
1 parent 380ca26
Changed files (1)
lib
lib/std/zig/tokenizer.zig
@@ -700,7 +700,7 @@ pub const Tokenizer = struct {
                 },
 
                 .string_literal_backslash => switch (c) {
-                    '\n' => {
+                    0, '\n' => {
                         result.tag = .invalid;
                         break;
                     },
@@ -1919,6 +1919,10 @@ test "tokenizer - invalid builtin identifiers" {
     try testTokenize("@0()", &.{ .invalid, .integer_literal, .l_paren, .r_paren });
 }
 
+test "tokenizer - backslash before eof in string literal" {
+    try testTokenize("\"\\", &.{.invalid});
+}
+
 fn testTokenize(source: [:0]const u8, expected_tokens: []const Token.Tag) !void {
     var tokenizer = Tokenizer.init(source);
     for (expected_tokens) |expected_token_id| {